Set Instruksi atau yang biasa dikenal dengan Instruction Set Architecture (ISA)
merupakan bagian dari suatu aspek dalam arsitektur komputer yang
dapat dilihat oleh para pemrogram. Secara umum, ISA ini mencakup jenis data yang didukung, jenisinstruksi yang dipakai, jenis register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi, dan operasi I/O eksternalnya (jika ada). ISA merupakan
sebuah spesifikasi dari Pullman semua kode-kode biner (opcode) yang diimplementasikan dalam bentuk aslinya
(native form) dalam sebuah desain prosesor tertentu. Kumpulan opcode tersebut,
umumnya disebut sebagai bahasa
mesin(machine language) untuk ISA yang bersangkutan. ISA yang
populer digunakan adalah set instruksi untuk chip Intel x86, IA-64, IBM PowerPC, Motorola 68000, Sun SPARC, DEC
Alpha, dan lain-lain.
ISA kadang-kadang digunakan untuk membedakan kumpulan
karakteristik yang disebut di atas dengan mikroarsitektur prosesor, yang
merupakan kumpulan teknik desain prosesor untuk mengimplementasikan set
instruksi (mencakup microcode, pipeline,sistem cache, manajemen daya, dan lainnya). Komputer-komputer dengan mikroarsitektur berbeda dapat saling berbagi set instruksi yang sama.
Sebagai contoh, prosesor Intel
Pentium dan prosesor AMD
Athlon mengimplementasikan versi yang
hampir identik dari set instruksi Intel x86, tetapi jika ditinjau dari desain
internalnya, perbedaannya sangat radikal. Konsep ini dapat diperluas untuk
ISA-ISA yang unik seperti TIMI yang terdapat dalam IBM System/38 dan IBM IAS/400. TIMI merupakan sebuah ISA yang diimplementasikan sebagai
perangkat lunak level rendah yang berfungsi sebagai mesin virtual. TIMI
didesain untuk meningkatkan masa hidup sebuah platform dan aplikasi yang
ditulis untuknya, sehingga mengizinkan platform tersebut agar dapat dipindahkan
ke perangkat keras yang sama sekali berbeda tanpa harus memodifikasi perangkat
lunak (kecuali yang berkaitan dengan TIMI). Hal ini membuat IBM dapat
memindahkan platform AS/400 dari arsitektur mikroprosesor CISC ke arsitektur mikroprosesor POWERtanpa harus menulis ulang bagian-bagian dari dalam sistem
operasi atau perangkat lunak yang diasosiasikan dengannya.
Ketika mendesain mikroarsitektur, para desainer menggunakan Register
Transfer Language (RTL) untuk mendefinisikan
operasi dari setiap instruksi yang terdapat dalam ISA. Sebuah ISA juga dapat
diemulasikan dalam bentuk perangkat
lunak oleh sebuah interpreter. Karena terjadi translasi tambahan yang dibutuhkan untuk
melakukan emulasi, hal ini memang menjadikannya lebih lambat jika
dibandingkan dengan menjalankan program secara langsung di atas perangkat keras
yang mengimplementasikan ISA tersebut. Akhir-akhir ini, banyak vendor ISA atau
mikroarsitektur yang baru membuat perangkat lunak emulator yang dapat digunakan
oleh para pengembang perangkat lunak sebelum implementasi dalam bentuk perangkat
keras dirilis oleh vendor.
Program Komputer
Program komputer adalah serangkaian instruksi yang ditulis untuk
melakukan suatu fungsi spesifik pada komputer. Komputer pada dasarnya membutuhkan keberadaan
program agar bisa menjalankan fungsinya sebagai komputer, biasanya hal ini
dilakukan dengan cara mengeksekusi serangkaian instruksi program tersebut pada prosesor. Sebuah program biasanya memiliki suatu bentuk model
pengeksekusian tertentu agar dapat secara langsung dieksekusi oleh komputer.
Program yang sama dalam format kode yang dapat dibaca oleh manusia disebut
sebagai kode sumber, bentuk program yang memungkinkan programmer menganalisis serta melakukan penelaahan algoritma yang
digunakan pada program tersebut. Kode sumber tersebut pada akhirnya dikompilasi oleh utilitas bahasa pemrograman tertentu sehingga
membentuk sebuah program. Bentuk alternatif lain model pengeksekusian sebuah
program adalah dengan menggunakan bantuan interpreter, kode sumber tersebut langsung dijalankan oleh
utilitas interpreter suatu bahasa pemrograman yang digunakan.
Beberapa
program komputer dapat dijalankan pada sebuah komputer pada saat bersamaan.
kemampuan komputer untuk menjalankan beberapa program pada saat bersamaan disebut
sebagai multitasking. Program komputer dapat dikategorikan menurut
fungsinya; perangkat
lunak sistem atau perangkat
lunak aplikasi.
Pemrograman
komputer merupakan suatu proses iteratif penulisan dan penyuntingan kode sumber
sehingga membentuk sebuah program. Penyuntingan kode sumber meliputi proses
pengetesan, analisis, pembetulan kesalahan, pengoptimasian algoritma,
normalisasi kode, dan kadang-kadang pengkoordinasian antara satu programmer
dengan programmer lainnya jika sebuah program dikerjakan oleh beberapa orang
dalam sebuah tim. Seorang praktisi yang memiliki keahlian untuk melakukan
penulisan kode dalam bahasa pemrograman disebut sebagai programmer komputer atau programmer, pengembang perangkat lunak, atau
koder. Istilahrekayasa perangkat lunak (bahasa
Inggris: Software
engineering) seringkali digunakan karena proses penulisan program tersebut
dipandang sebagai suatu disiplin ilmu perekayasaan.
Program komputer dapat dikategorikan menurut paradigma
bahasa pemrograman yang digunakannya. Dua paradigma utama yang umum digunakan
adalah imperatif dan deklaratif.
Program yang ditulis dalam bahasa pemrograman
imperatif biasanya memiliki algoritma yang ditulis dalam serangkaian klausal
pendeklarasian, ekspresi aritmatis, dan sejumlah perintah. Pendeklarasian meliputi pendeklarasian
variabel serta tipe data atas variabel tersebut, contoh:
var x: integer;
Penggunaan ekpresi operasi aritmatis
yang menghasilkan nilai, contoh: 2 + 2
menghasilkan
nilai 4
. Dan perintah yang melingkupi pendelegasian
nilai atas hasil dari operasi aritmatis tersebut ke dalam sebuah variabel,
contoh: x := 2 + 2; if x = 4 then lakukan_sesuatu();
Salah satu bentuk kritik atas
implementasi imperatif ini adalah efek samping yang timbul atas pendelegasian
perintah terhadap variabel yang berada di luar cakupan dari fungsi tersebut
atau lebih dikenal sebagai non-local
variable.
Program yang ditulis dengan bahasa deklaratif meliputi
sejumlah properti yang harus dipenuhi untuk mendapatkan suatu bentuk hasil
tertentu. Properti tersebut tidak mencerminkan suatu gambaran atas proses kerja
suatu program namun merupakan suatu bentuk deklarasi relasional matematis atas
sejumlah objek melaui properti-propertinya. Dua bagian utama atas pemrograman
deklaratif adalah bahasa
pemrograman fungsional dan bahasa pemrograman logikal. Prinsip dasar dibalik bahasa pemrograman fungsional
(Haskell) adalah mencegah timbulnya efek samping seperti yang
terdapat pada model pemrograman imperatif sehingga membuatnya lebih mudah untuk
digunakan membuat program yang melakukan sejumlah operasi matematis. Sementara
itu, prinsip dari sebuah bahasa pemrograman logikal (Prolog) adalah mendefinisikan permasalahan yang hendak
diselesaikan, tujuan yang hendak dicapai, dan membiarkan sistem melakukan
analisis atas detail solusi terhadap permasalahan tersebut. Tujuan
utama atas sebuah program didefinisikan dengan cara membuat sejumlah
tujuan-tujuan yang lebih kecil, kemudian pada tiap-tiap tujuan tersebut secara
lebih lanjut didefinisikan tujuan-tujuan lain yang lebih kecil lagi, dan begitu
seterusnya. Jika suatu arahan tujuan yang didefinisikan gagal digunakan untuk
menemukan solusi atas suatu permasalahan, maka arahan tujuan anakan yang lebih
kecil akan di telusuri ulang, dan arahan lainnya akan diujicobakan.
Bentuk dari cara sebuah program dibuat bisa berupa
tekstual ataupun visual. Dalam pemrograman visual, elemen-elemen program
biasanya dimanipulasi secara grafis, sementara bila dibuat secara tekstual
artinya sebuah program ditulis secara manual.
Program komputer dalam bentuk yang dapat dibaca oleh
manusia biasanya disebuat sebagai kode sumber. Kode sumber dapat dikonversikan menjadi bentuk
berkas yang dapat dieksekusi secara langsung oleh komputer. Proses
pengkonversian ini disebut sebagai proses kompilasi dan biasanya dilakukan
sebuah program utilitas dari bahasa pemrograman yang digunakan yang disebut
sebagai kompiler. Pada beberapa bahasa pemrograman tertentu, kode
sumber dapat langsung dieksekusi sebagai sebuah program dengan menggunakan
bantuan utilitas yang disebut sebagai interpreter.
Baik melalui proses kompilasi ataupun interpretatif,
eksekusi program dapat dilakukan dalam sebuah proses batch tanpa membutuhkan interaksi dengan
manusia, namun program interpretatif memungkinkan pengguna untuk menulis
perintah dalam suatu sesi interaktif. Pada kasus ini sebuah program dieksekusi
sebagai sebuah perintah, yang kemudian dieksekusi baik secara serial ataupun
paralel. Bahasa pemrograman yang menyediakan fitur interaktif seperti ini
dinamakan sebagai bahasa skrip.
Kompiler digunakan untuk menerjemahkan kode sumber
dari suatu bahasa pemrograman menjadi kode objek ataupun kode mesin. Kode objek biasanya membutuhkan proses lebih lanjut
sehingga dapat menjadi kode mesin, dan kode mesin merupakan instruksi-instruksi
yang dikenali dan dapat secara langsung dieksekusi oleh prosesor. Program
komputer yang telah terkompilasi biasanya disebut sebagai berkas eksekutabel,
ataupun berkas biner; yang merujuk pada bentuk sistem biner yang digunakan
untuk menyimpan kode mesin tersebut.
Program komputer yang diinterpretasikan -baik secara batch ataupun dalam modus interaktif-
biasanya akan diterjemahkan terlebih dulu ke dalam sejumlah token baru kemudian
dieksekusi, atau bisa juga token-token tersebut dioptimasi lebih lanjut
sehingga menjadi sejumlah instruksi yang memiliki tingkat efisiensi yang lebih
baik dan disimpan sebagai berkas P-Code terpisah untuk dieksekusi kemudian oleh interpreter. BASIC, Perl, dan Python merupakan beberapa contoh dari bahasa pemrograman yang
menyediakan fasilitas penerjemahaan langsung. Alternatif lainnya, program
komputer yang ditulis dalam bahasa pemrograman Java merupakan
hasil kompilasi kode sumber ke dalam bytcode yang
kemudian dieksekusi oleh interpreter yang disebut sebagai mesin
virtual java.
Kerugian utama pemanfaatan interpreter adalah unjuk
kerja program biasanya lebih lambat dibandingkan dengan program yang
dikompilasi terlebih dulu. Namun keuntungannya proses pengembangan perangkat
lunak biasanya bisa dilakukan lebih cepat karena proses pengetesan atas
berjalannya program dapat dilakukan dalam waktu yang relatif singkat. Tanpa
memerlukan tahapan-tahapan kompilasi sebelumnya. Kerugian lainnya adalah, untuk
dapat menjalankan program tersebut, utilitas interpreter harus disertakan dalam
setiap pendistribusian, berbeda halnya dengan program terkompilasi yang dapat
didistribusikan tanpa menyertakan kompiler bahasa yang digunakan karena
sifatnya yang sudah dalam bentuk kode mesin.
Umumnya saat ini bahasa-bahasa pemrograman
interpretatif telah dilengkapi pula dengan kompiler JIT (Just in Time)
yang akan menganalisis serta menerjemahkan instruksi-instruksi yang paling
sering digunakan ke dalam bahasa mesin pada saat program dijalankan sehingga
tingkat unjuk kerjanya dapat ditingkatkan mengimbangi unjuk kerja program yang
terkompilasi.
Jenis –
Jenis Instruksi
1.Data procecessing: Arithmetic dan
Logic Instructions
data processing adalah jenis pemrosesan yang dapat mengubah data menjadi informasiatau 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.
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).
Tugas CU
Tugas dari CU adalah sebagai berikut:
Mengatur dan mengendalikan alat-alat input dan output.
Mengambil instruksi-instruksi dari memori utama.
Mengambil data dari memori utama kalau diperlukan oleh proses.
Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja.
Menyimpan hasil proses ke memori utama.
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).
Tugas CU
Tugas dari CU adalah sebagai berikut:
Mengatur dan mengendalikan alat-alat input dan output.
Mengambil instruksi-instruksi dari memori utama.
Mengambil data dari memori utama kalau diperlukan oleh proses.
Mengirim instruksi ke ALU bila ada perhitungan aritmatika atau perbandingan logika serta mengawasi kerja.
Menyimpan hasil proses ke memori utama.
Sumber :
terimakasih membantu sekali
BalasHapushttp://opcplus-capsule.xyz/