Jumat, 08 November 2019

ARSITEKTUR SET INSTRUKSI

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

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)

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