Set instruksi (instruction set) adalah sekumpulan lengkap instruksi yang dapat di mengerti oleh sebuah CPU, set instruksi sering juga disebut sebagai bahasa mesin (machine code), karna aslinya juga berbentuk biner kemudian dimengerti sebagai bahasa assembly, untuk konsumsi manusia (programmer), biasanya digunakan representasi yang lebih mudah dimengerti oleh manusia.
Sebuah instruksi terdiri dari sebuah opcode, biasanya bersama dengan beberapa informasi tambahan seperti darimana asal operand-operand dan kemana hasil-hasil akan ditempatkan. Subyek umum untuk menspesifikasikan di mana operand-operand berada (yaitu, alamat-alamatnya) disebut pengalamatan.
Pada beberapa mesin, semua instruksi memiliki panjang yang sama, pada mesin-mesin yang lain mungkin terdapat banyak panjang berbeda. Instruksi-instruksi mungkin lebih pendek dari, memiliki panjang yang sama seperti, atau lebih panjang dari panjang word. Membuat semua instruksi memiliki panjang yang sama lebih muda dilakukan dan membuat pengkodean lebih mudah tetapi sering memboroskan ruang, karena semua instruksi dengan demikian harus sama panjang seperti instruksi yang paling panjang.
Di dalam sebuah instruksi terdapat beberapa elemen-elemen instruksi:
1. Operation code (op code)
2. Source operand reference
3. Result operand reference
4. Xext instruction preference
Format instruksi (biner): Misal instruksi dengan 2 alamat operand : ADD A,B A dan B adalah suatu alamat register. Beberapa simbolik instruksi:
1. ADD : Add (jumlahkan)
2. SUB : Subtract (Kurangkan)
3. MPY/MUL : Multiply (Kalikan)
4. DIV : Divide (Bagi)
5. LOAD : Load data dari register/memory
6. STOR : Simpan data ke register/memory
7. MOVE : Pindahkan data dari satu tempat ke tempat lain
8. SHR : Shift kanan data
9. SHL : Shift kiri data .dan lain-lain
1. ADD : Add (jumlahkan)
2. SUB : Subtract (Kurangkan)
3. MPY/MUL : Multiply (Kalikan)
4. DIV : Divide (Bagi)
5. LOAD : Load data dari register/memory
6. STOR : Simpan data ke register/memory
7. MOVE : Pindahkan data dari satu tempat ke tempat lain
8. SHR : Shift kanan data
9. SHL : Shift kiri data .dan lain-lain
A. Jenis Instruksi
Terdapat empat cakupan jenis instruksi, yaitu:
1. Data Processing : Arithmetic & Logic Instructions
Data processing adalah jenis pemrosesan yang dapat mengubah data menjadi informasi atau pengetahuan.Setelah diolah, data ini biasanya mempunyai nilai yang informative, maka istilah pemrosesan data sering dikatakan sebagai sistem informasi.
2. Data Storage : Memory Instruction
Sering disebut sebagai memori komputer, merujuk kepada komponen komputer, perangkat komputer, dan media perekaman yang mempertahankan data digital yang digunakan untuk beberapa interval waktu. Dalam penggunaan kontemporer, memori komputer merujuk kepada bentuk media penyimpanan berbahan semikonduktor, yang dikenal dengan sebutan Random Access Memory (RAM).Akan tetapi, istilah "computer storage" sekarang secara umum merujuk kepada media penyimpanan massal seperti halnya hard disk
3. Data Movement : Input/Output Instructions
Proses data movement ini adalah memindahkan (dapat dikatakan membackup
juga) data-data dari database yang berupa data, indeks, grand, schema,
dan lain-lain ketempat baru. Data movement terdiri dari 2 bagian
besar yaitu: Load & Upload dan Export & Import. Load berfungsi
untuk memasukan data/transaksi ke sebuah table. Sedangkan upload
berfungsi untuk membuat dari data table ke fisik/file.
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)
• 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)
4. Control : Test and Branch Instructions
Control Unit (CU) diimplementasikan sebagai sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control store).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.
B. Teknik Pengalamatan
Untuk
menyimpan data ke dalam memori komputer, tentu memori tersebut diberi identitas
(yang disebut dengan alamat/address) agar ketika data tersebut diperlukan
kembali, komputer bisa mendapatkannya sesuai dengan data yang pernah diletakkan
di sana, itulah yang disebut pengalamatan.
Ada 3 macam teknik pengalamatan, yaitu:
1. Pemetaan Langsung (Direct Mapping)
(-) Pengalamatan Mutlak (Absolute Addressing)
Teknik
ini dapat dijuluki dengan device dependent (tergantung pada peralatan
rekamnya), artinya, kita tidak dapat begitu saja meng-copy data berkas ini ke
komputer lainnya, karena mungkin saja di komputer lainnya itu menggunakan alat
rekam yang berbeda spesifikasinya.
Teknik
ini juga dapat dijuluki dengan address space dependent (tergantung pada
alamat-alamat yang masih kosong), artinya, kita tidak dapat begitu saja
meng-copy data berkas ini ke komputer lainnya, karena mungkin saja di komputer
lainnya itu alamat-alamat yang dibutuhkan sudah tidak tersedia lagi.
(-) Pengalamatan Relatif (Relative Addressing)
Teknik
ini menjadikan atribut kunci sebagai alamat memorinya, jadi, data dari
NIM
dijadikan bertipe numeric (integer) dan dijadikan alamat dari record
yang bersangkutan. Cara ini memang sangat efektif untuk menemukan
kembali record
yang sudah disimpan, tetapi sangat boros penggunaan memorinya. Tentu
alamat
memori mulai dari 1 hingga alamat ke sekian juta tidak digunakan karena
nilai
dari NIM tidak ada yang kecil. Pelajari keuntungan dan kerugian
lainnya.Teknik
ini termasuk dalam katagori address space dependent.
2. Teknik Pencarian Tabel
Teknik
ini dilakukan dengan cara, mengambil seluruh kunci atribut dan alamat memori
yang ada dan dimasukkan ke dalam tabel tersendiri. Jadi tabel itu (misal
disebut dengan tabel INDEX) hanya berisi kunci atribut (misalkan NIM) yang
telah disorting (diurut) dan alamat memorinya.
Jadi,
sewaktu dilakukan pencarian data, tabel yang pertama dibaca adalah tabel INDEX
itu, setelah ditemukan atribut kuncinya, maka data alamat yang ada di sana
digunakan untuk meraih alamat record dari data (berkas/ file/ tabel) yang
sebenarnya. Pencarian yang dilakukan di tabel INDEX akan lebih cepat dilakukan
dengan teknik pencarian melalui binary search (dibagi dua-dua, ada di mata
kuliah Struktur dan Organisasi Data 2 kelak) ketimbang dilakukan secara
sequential.
Nilai
key field (kunci atribut) bersifat address space independent (tidak terpengaruh
terhadap perubahan organisasi file-nya), yang berubah hanyalah alamat yang ada
di INDEX-nya.
3. Teknik Kalkulasi Alamat
Kalau
pada teknik pencarian tabel kita harus menyediakan ruang memori untuk menyimpan
tabel INDEX-nya, maka pada teknik ini tidak diperlukan hal itu. Yang dilakukan
di sini adalah membuat hitungan sedemikian rupa sehingga dengan memasukkan
kunci atribut record-nya, alamatnya sudah dapat diketahui. Tinggal masalahnya,
bagaimana membuat hitungan dari kunci atribut itu sehingga hasilnya bisa
efisien (dalam penggunaan memori) dan tidak berbenturan nilainya (menggunakan
alamat yang sama).
Perhitungan
(kalkulasi) terhadap nilai kunci atribut untuk mendapatkan nilai suatu alamat
disebut dengan fungsi hash. Bisa juga fungsi hash digabungkan dengan teknik
pencarian seperti tabel di atas, tetapi akan menjadi lebih lama pengerjaannya
dibanding hanya dengan satu jenis saja (fungsi hash saja atau pencarian tabel
saja). Fungsi
hash dikatakan baik bila memiliki kalkulasi yang sederhana dan memiliki kelas
ekivalen (synonim) yang kecil, atau sederhananya, memiliki kalkulasi yang mudah
tetapi memiliki benturan alamat yang sedikit.
C. Desain Set Instruksi
Desain
set instruksi merupakan masalah yang sangat komplek yang melibatkan banyak
aspek, diantaranya adalah:
1.
Kelengkapan set instruksi.
2.
Ortogonalitas (sifat independensi instruksi).
3.
Kompatibilitas: source code compatibility dan object code compatibility.
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 diolah.
3. Instruction Format: panjangnya, banyaknya
alamat, dan sebagainya.
4.
Register: Banyaknya register yang dapat digunakan.
5. Addressing: Mode
pengalamatan untuk operand.
Referensi:
Tidak ada komentar:
Posting Komentar