Set Intruksi

 Set Intruksi

Pada Kesempatan Kali ini Kita akan Membahas SET INTRUKSI KOMPUTER!!!!!

Karakteristik Instruksi Mesin

Instruction set atau set instruksi merupakan kumpulan berbagai jenis instruksi dari CPU tertentu. Sedangkan elemen instruksi mesin merupakan setiap instruksi harus berisi informasi yang dibutuhkan oleh CPU untuk eksekusi. Elemen instruksi biasanya terdiri atas :

·       Kode operasi berfungsi sebagai penentu operasi

·       Sumber operan sebagai referensi data

·       Hasil operand sebagai referensi data

·       Instruksi selanjutnya yang akan dieksekusi (bisa diberikan dalam instruksi saat ini atau secara implisit diberikan - instruksi selanjutnya setelah instruksi saat ini).

Operan sumber dan operan hasil dapat berada di tiga bagian yaitu memori utama atau memori virtual yang merupakan alamat yang harus diberikan ketika sebuah instruksi dibuat. Selanjutnya yang kedua adalah register CPU baik register eksplisit maupun implisit. Termasuk jenis register eksplisit adalah pada penggunaan dua atau tiga register, sedangkan instruksi dengan satu register (satu instruksi operan), kemungkinan besar yang dilibatkan adalah register implisit (biasanya untuk operasi aritmatika) akumulator secara implisit dihubungkan sebagai operan hasil. Jenis operan sumber dan hasil yang kettika adalah perangkat I/O yang digunakan untuk instruksi I/O. Instruksi harus menentukan perangkat I/O atau modul yang digunakan, atau pada kasus memory-mapped I/O maka operan tujuan adalah lokasi memori lain.

Sementara itu, seperti yang dipelajari pada mesin IAS, instruksi biasanya diwakili dengan pernytaan-pernyataan yang sifatnya mudah dipahami atau mudah diingat oleh manusia (mnemonik). Beberapa contoh instruksi adalah sebagai berikut :

ADD

 

artinya “tambahkan”

SUB

 

artinya “kurangkan”

DIV

 

artinya “bagi”

MUL

 

artinya “kalikan”

ADD

R, Y,

artinya tambahkan data R (operan pertama) dan Y (operan kedua)


Gambar Processor Organization


Jenis-Jenis Instruksi
1.Data procecessing: Arithmetic dan Logic Instructions
Data processing adalah jenis pemrosesan yang dapat mengubah data menjadi informasi atau pengetahuan. Pemrosesan data ini sering menggunakan komputer sehingga bisa berjalan secara otomatis. Setelah diolah, data ini biasanya mempunyai nilai yang informatif jika dinyatakan dan dikemas secara terorganisir dan rapi, maka istilah pemrosesan data sering dikatakan sebagai sistem informasi. Kedua istilah ini mempunyai arti yang hampir sama, pemrosesan data mengolah dan memanipulasi data mentah menjadi informasi (hasil pengolahan), sedangkan sistem informasi memakai data sebagai bahan masukan dan menghasilkan informasi sebagai produk keluaran.

2. Data storage: Memory instructions
Sering disebut sebagai memori komputer, merujuk kepada komponen komputer, perangkat komputer, dan media perekaman yang mempertahankan data digital yang digunakan untuk beberapa interval waktu. Penyimpanan data komputer menyediakan salah satu tiga fungsi inti dari komputer modern, yakni mempertahankan informasi. Ia merupakan salah satu komponen fundamental yang terdapat di dalam semua komputer modern, dan memiliki keterkaitan dengan mikroprosesor, dan menjadi model komputer yang digunakan semenjak 1940-an.
Dalam penggunaan kontemporer, memori komputer merujuk kepada bentuk media penyimpanan berbahan semikonduktor, yang dikenal dengan sebutan Random Access Memory (RAM), dan kadang-kadang dalam bentuk lainnya yang lebih cepat tapi hanya dapat menyimpan data secara sementara. Akan tetapi, istilah “computer storage” sekarang secara umum merujuk kepada media penyimpanan massal, yang bisa berupa cakram optis, beberapa bentuk media penyimpanan magnetis (seperti halnya hard disk) dan tipe-tipe media penyimpanan lainnya yang lebih lambat ketimbang RAM, tapi memiliki sifat lebih permanen, seperti flash memory.

3. Data Movement: I/O instructions
Proses data movement ini adalah memindahkan (dapat diakatakan membackup juga) data – data dari database yang berupa data, indeks, grand, schema, dan lain – lain ketempat baru. Tempat baru ini bisa ke dalam database baru atau memang untuk dibackup saja.

Data movement terdiri dari 2 bagian besar yaitu :
• Load & Upload [difokuskan untuk memindahkan data yang berupa indeks atau data itu sendiri alias isi dari database tersebut]
• Export & Import [memindahkan data secara lengkap, mulai dari grand, schema, dan seluruhnya]

Jika dilihat, load tersebut behubungan dengan import dan upload berhubungan dengan export

     Load berfungsi untuk memasukan data / transaksi ke sebuah table. Dapat dikatakan juga insert, replace, atau update. Sedangkan upload berfungsi untuk membuat dari data table ke fisik / file. Kelemahan load adalah dalam prosesnya bisa saja terjadi data yang tidak berpindah secara sempurna.

Upload Parameter
• Limit [membatasi beberapa record]
• Sample [mencari sample yang telah ditentukan]
• When [berdasarkan kondisi]

     Dan pada upload, hanya satu parameter saja yang dapat berjalan alias tak bisa berjalan bersamaan apabila parameternya lebih dari 1.

Bulk Data Movement (Software Pendukung)
• ETL [Extrat Transform Load], software yang focus terhadap data warehouse
• Replication and Propagation, software yang memonitoring source database dan target, dan yang dihasilkan oleh software ini adalah pencatatatn log.

Perlu diperhatikan juga hak akses dalam load & unload, import & export minimal adalah akses select.

Distribution Database
Dalam distribution database terdapat 3 istilah yaitu :
• Autonomi [idependent], untuk tabel umum akses yang diberikan berbeda dari setiap user.
• Isolation [stand alone], untuk tabel khusus (privacy) itu terpisah dari user.
• Transparancy [all user], akses tabel terpisah dari user tetapi user masih dapat mengaksesnya.

    Lawan dari database terdistribusi adalah database terpusat. Server yang terpusat memang diuntungkan dalam sisi maintenance sedangkan server terdistribusi lebih rumit dalam proses integrasinya.

     Jika database terdistribusi paling tidak membutuhkan Sumber Daya Manusia [SDM] yang baik, network yang lebih baik karena permasalahan network itu sangat fatal dan biasanya permasalahannya tidak jauh – jauh dari permasalahan traffic network. Dan yang tidak boleh dilupakan adalah request dan respon.

4. Control: Test and branch instructions
Unit kendali (bahasa Inggris: Control Unit – CU) adalah salah satu bagian dari CPU yang bertugas untuk memberikan arahan/kendali/ kontrol terhadap operasi yang dilakukan di bagian ALU (Arithmetic Logical Unit) di dalam CPU tersebut. Output dari CU ini akan mengatur aktivitas dari bagian lainnya dari perangkat CPU tersebut.

     Pada awal-awal desain komputer, CU diimplementasikan sebagai ad-hoc logic yang susah untuk didesain. Sekarang, CU diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control store). Beberapa word dari microprogram dipilih oleh microsequencer dan bit yang datang dari word-word tersebut akan secara langsung mengontrol bagian-bagian berbeda dari perangkat tersebut, termasuk di antaranya adalah register, ALU, register instruksi, bus dan peralatan input/output di luar chip. Pada komputer modern, setiap subsistem ini telah memiliki kontrolernya masing-masing, dengan CU sebagai pemantaunya (supervisor).

A.  Tipe Instruksi dan Jumlah Alamat

Tipe-tipe instruksi pada mesin komputer terbagi atas empat jenis yang meliputi instruksi untuk pengolahan data aritmatika dan instruksi logika, penyimpanan data yang merupakan instruksi memori, pergerakan Data dari dan menuju I/O atau biasa disebut sebagai instruksi I/O, Kontrol atau pengendalian yang merupakan instruksi engujian dan instruksi cabang serta aritmatika yang mampu memberikan kemampuan komputasi. Jumlah alamat pada instruksi menunjukkan jumlah operan yang dapat dilibatkan dalam operasi tertentu: bisa jadi satu, dua atau tiga, atau bahkan nol (stack machine).

Contoh Instruction Set pada mesin DLX (Hennessy & Patterson) adalah ADD R1, R2, R3 (instruksi RR) atau ADD R1, R2, A (instrruksi RX). Kemudian, contoh lain untuk instruksi yang melibatkan tiga alamat operan adalah sebagai berikut. Buatlah set instruksi atau program untuk mengeksekusi persamaan Y = (A-B) / (C + D * E) dengan menggunakan tiga alamat instruksi:

 

 

Instruksi                                              Komentar

 

SUB

Y,A,B

Y ¬ A - B

MPY

T,D,E

T ¬ D x E

ADD

T,T,C

T ¬ T + C

DIV

Y,Y,T

Y ¬ Y / T


 

Program aritmatika diatas hanya terdiri atas empat set instruksi, dalam program ini terlihat bahwa word length untuk alamat operan lebih panjang ketika menggunka tiga alamat yang terlibat sekaligus dalam setiap instruksi mesin. Sedangkan instruksi yang melibatkan dua buah alamat untuk permasalahan yang sama yaitu Y= (A-B) / (C + D * E) dapat dilihat pada contoh di bawah ini.

 

 

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

Dalam program dengan dua alamat tersebut diatas tampak bahwa program terdiri atas enam instruksi, dimana pada saat jumlah alamat yang terlibat berkurang (dua alamat, dibandingkan contoh sebelumnya tiga alamat) maka instruksi semakin panjang.

Penyelesaian persamaan Y = (A-B)/(C+D*E) dengan menggunakan satu alamat instruksi dapat dilihat pada contoh program di bawah ini

 

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

 

Semakin sedikit alamat  instruksi maka program semakin panjang, tampak pada contoh di atas

dibutukan delapan baris set  instruksi untuk menyeesaikan satu persoalan yang   sama  dengan


dua contoh sebelumnya. Selanjutnya, persamaan Y = (A-B)/(C+D*E) dapat diselesaikan dengan menggunakan instruksi zero address seperti berikut.

Instruksi                                              Komentar

 

PUSH

PUSH

A

B

 

SUB

 

(stack yang bawah dkurangi dengan data pada stack atas)

PUSH

D

 

PUSH

E

 

MUL

 

 

PUSH

C

 

ADD

 

 

DIV

 

(stack yang bawah dibagi dengan data pada stack atas)

POP

Y

(data disimpan atau dikeluarkan pada operan Y)

Jumlah set isntruksi dengan zero address paling banyak dibandingkan dengan satu, dua atau tiga alamat. Hal ang perlu diperhatikan ketika membat program dengan zero address instruction adalah bahwa data yang pertama di input mauk ke stack terlebih dahulu diikuti dengan instruksi-instruksi selanjutnya, sehingga ketika peletakan instruksi tidak pas akan mengakibatkan program tidak berjalan sebagaimana kebutuhan.

 

B.  Desain set instruksi

Fakta tentang sesain set instruksi ternyata masih dalam perselisihan. Masalah desain yang mendasari perselisihan tesebut meliputi operation repertoire yang menyangkut pembahasan tentang sejauh mana tingkat kerumitan sebuah instruksi, tipe data yang menyangkut pertanyaan apakah orang membutuhkan semua jenis data, format instruksi yang berkaitan dengan format jenis tetap atau variabel kemudian ukuran panjang instruksi serta jumlah operan yang teribat. Dua pembahasan yang menjadi perselisihan selanjutnya berkaitan dengan register dan pengalamatan. Pada register ukuran seerta tujuan pemanfaatanya masih diperdebatkan termasuk pada pengalamatan tentang berapa banyak pengalamatan yang dibutuhkan beserta mode pengalamatannya. Sementara itu hal lain yang perlu diperhatikan dalam desain instruksi adalah tipe-tipe operan yang terlibat pada sebuah set instruksi. Instruksi mesin bekerja pada data dengan kategori data yang paling penting adalah alamat, angka, karakter serta data logika. Angka yang ada pada set instruksi mesin bisa dalam bentuk integer, fixed point atau floating point maupun desimal. Sedangkan karakter yang biasa digunakan dalam pengolahan data bisa dalam bentuk karakter ASCII atau EBCDIC tergantung mesinnya


C.  Format dan Mode Pengalamatan

Instruksi dirancang untuk dapat merujuk ke berbagai lokasi di memori utama. Berbagai teknik pengalamatan telah digunakan untuk mencapai akses tersebut. Pertukaran antara rentang alamat dan / atau kompleksitas perhitungan alamat sangat perlu diperhatikan. Jenis-jenis teknik pengalamatan instruksi meliputi pengalamatan segera, langsung, tidak langsung, daftar, daftar tidak langsung, perpindahan, tumpukan (stack). Sementara permasalahan yang ada terdiri atas flexibilty lokasi operan, trade off antara fleksibilitas lokasi dan kecepatan pemrosesan. Diagram untuk berbagai mode pengalamatan tampak pada gambar berikut.


Gambar Metode akses memori secara immediate dan direct



Gambar Metode akses memori secara indirect dan register direct



Gambar  Metode akses register secara indirect dan displacement



Contoh penulisan dari mode pengalamatan atau addressing mode adalah sebagai berikut.

 

·       Immediate :

ADD    #100

; add 100 to Accum.

·       Direct:

ADD    A

; add content of addr. A to accumulator

·       Indirect :

ADD @A

; content of location A is address of operand. add content

 

·       Register Direct:

 

ADD    R1

of loc.   with that address to   accum.

; add content of R1 to accumulator

·       Reg. Indirect :

ADD    (R1)

; add content of mem. Location whose addr.

 

 

is in R1 to acc.

Pengaksesan alamat dengan displacement merupakan metode yang "langka", namun masih mungkin terjadi sebagaimana contoh ini. ADD 1050 (R1) dimana alamat dasar (asal) adalah berada di R1 dan displacement-nya adalah 1050. Dimana dalam instruksi dua alamat (two address instruction), akan terlihat seperti ADD 1050 (R1), R2 yang artinya tambahkan data di R2 dengan data yang alamat dasarnya ada di R1 dan displacement-nya 1050. Tiga displacement addressing yang umum meliputi pengalamatan relative (relative addressing), pengalamatan register dasar (base register addressing) serta pengindeksan (indexing). Pada pengalamatan relative, alamat operan merupakan jumlah alamat dalam instruksi ditambah isi dari program counter (PC). Pada pengalamatan register dasar, isi base-register ditambahkan ke alamat operan dalam instruksi. Sedangkan pada skema pengindeksan, bidang alamat instruksi ditambahkan ke isi register indeks untuk mendapatkan alamat memori yang tepat (dari operan). Tiga skema alamat tersebut membuat register untuk menunjuk ke beberapa segmen memori tertentu dan menggunakan alamat operan dalam instruksi sebagai displacement.


Komentar