Set Intruksi
Set Intruksi
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 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
Posting Komentar