Arsitektur set instruksi
Set Instruksi didefinisikan
sebagai suatu aspek dalam arsitektur komputer yang dapat dilihat oleh para
pemrogram, atau dengan kata lain Kumpulan dari instruksi-instruksi yang berbeda
yang dapat dijalankan oleh CPU disebut set Instruksi (Instruction Set). Operasi
dari CPU ditentukan oleh instruksi-instruksi yang dilaksanakan atau
dijalankannya. Instruksi ini sering disebut sebagai instruksi mesin (mechine
instructions) atau instruksi komputer (computer instructions)Secara umum, ISA
ini mencakup jenis data yang didukung, jenis instruksi yang dipakai, jenis
register, mode pengalamatan, arsitektur memori, penanganan interupsi, eksepsi,
dan operasi I/O eksternalnya (jika ada).
-Jenis-jenis set instruksi
1.Data procecessing:
Arithmetic dan 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
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. 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: I/O
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.
4. Control: Test and branch
instructions
CU diimplementasikan sebagai
sebuah microprogram yang disimpan di dalam tempat penyimpanan kontrol (control
store).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.
Teknik Pengalamatan
A.      Immediate Addressing
(Pengalamatan Segera)
–       
Pengalamatan yang paling
sederhana.
–       
Operand benar-benar ada dalam
instruksi atau bagian dari intsruksi
–       
Operand sama dengan field
alamat
–       
Umumnya bilangan akan
disimpan dalam bentuk complement dua
–       
Bit paling kiri sebagai bit
tanda
–       
Ketika operand dimuatkan ke
dalam register data, bit tanda digeser ke kiri hingga maksimum word data
–       
Keuntungan :
–       
Tidak adanya referensi memori
selain dari instruksi yang diperlukan untuk memperoleh operand
–       
Menghemat siklus instruksi
sehingga proses keseluruhanakan akan cepat
–       
Kekurangan :
–       
Ukuran bilangan dibatasi oleh
ukuran field
–       
Contoh :
–       
ADD 7 ; tambahkan 7 pada
akumulator
B.      Direct Addressing
(Pengalamatan Langsung)
–       
Teknik ini banyak digunakan
pada komputer lama dan komputer kecil
–       
Hanya memerlukan sebuah
referensi memori dan tidak memerlukan kalkulus khusus
–       
Kelebihan :
–       
Field alamat berisi efektif
address sebuah operand
–       
Kekurangan :
–       
Keterbatasan field alamat
karena panjang field alamat biasanya lebih kecil dibandingkan panjang word
–       
Contoh :
–       
ADD A ; tambahkan isi pada
lokasi alamat A ke akumulator
C.      Indirect Addressing
(Pengalamatan tak langsung)
–       
Merupakan mode pengalamatan
tak langsung
–       
Field alamat mengacu pada
alamat word di alamat memori, yang pada gilirannya akan berisi alamat operand
yang panjang
–       
Kelebihan :
–       
Ruang bagi alamat menjadi
besar sehingga semakin banyak alamat yang dapat referensi
–       
Kekurangan :
–       
Diperlukan referensi memori
ganda dalam satu fetch sehingga memperlambat proses operasi
–       
Contoh :
–       
ADD (A) ; tambahkan isi
memori yang ditunjuk oleh isi alamat A ke akumulator
D.      Register addressing
(Pengalamatan Register)
–       
Metode pengalamatan register
mirip dengan mode pengalamatan langsung
–       
Perbedaanya terletak pada
field alamat yang mengacu pada register, bukan pada memori utama
–       
Field yang mereferensi
register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16
register general purpose
–       
Keuntungan :
–       
Diperlukan field alamat
berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
–       
Akses ke register lebih cepat
daripada akses ke memori, sehingga proses eksekusi akan lebih cepat
–       
Kerugian : 
– Ruang alamat menjadi
terbatas
E.       Register indirect addressing
(Pengalamatan tak-langsung register)– Metode pengalamatan register tidak
langsung mirip dengan mode pengalamatan tidak langsung
–       
Perbedaannya adalah field
alamat mengacu pada alamat register
–       
Letak operand berada pada
memori yang dituju oleh isi register
–       
Keuntungan dan keterbatasan
pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan
tidak langsung
–       
Keterbatasan field alamat
diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang
dapat direferensi makin banyak
–       
Dalam satu siklus pengambilan
dan penyimpanan, mode pengalamatan register tidak langsung hanya menggunakan
satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan
tidak langsung
F.       Displacement addressing
–       
Menggabungkan kemampuan
pengalamatan langsung dan pengalamatan register tidak langsung
–       
Mode ini mensyaratkan
instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang
eksplisit
–       
Operand berada pada alamat A
ditambahkan isi register
–       
Tiga model displacement
–       
Relative addressing :
register yang direferensi secara implisit adalah Program Counter (PC)
–       
Alamat efektif didapatkan
dari alamat instruksi saat itu ditambahkan ke field alamat
–       
Memanfaatkan konsep lokalitas
memori untuk menyediakan operand-operand berikutnya
–       
Base register addressing :
register yang direferensi berisi sebuah alamat memori dan field alamat berisi
perpindahan dari alamat itu
–       
Referensi register dapat
eksplisit maupun implisit
–       
Memanfaatkan konsep lokalitas
memori
Indexing  : field alamat mereferensi alamat memori
utama, dan register yang direferensikan berisi pemindahan positif dari alamat
tersebut
–       
Merupakan kebalikan dari mode
base register
–       
Field alamat dianggap sebagai
alamat memori dalam indexing
–       
Manfaat penting dari indexing
adalah untuk eksekusi program-pprogram iteratif
–       
Contoh :
–       
Field eksplisit bernilai A
dan field imlisit mengarah pada register
G.     Stack addressing
–       
Stack adalah array lokasi
yang linier = pushdown list = last-in-firs-out
–       
Stack merupakan blok lokasi
yang terbaik
–       
Btir ditambahkan ke puncak
stack sehingga setiap blok akan terisi secara parsial
–       
Yang berkaitan dengan stack
adalah pointer yang nilainya merupakan alamat bagian paling atas stack
–       
Dua elemen teratas stack
dapat berada di dalam register CPU, yang dalam hal ini stack pointer
mereferensi ke elemen ketiga stack
–       
Stack pointer tetap berada
dalam register
–       
Dengan demikian,
referensi-referensi ke lokasi stack di dalam memori pada dasarnya merupakan
pengalamatan register tidak langsung
Desain set instruksi
Desain set instruksi
merupakan masalah yang sangat komplek yang melibatkan banyak aspek, diantaranya
adalah:
Kelengkapan set instruksi
Ortogonalitas (sifat
independensi instruksi)
Kompatibilitas : Source code
compatibility dan Object code Compatibility
Selain ketiga aspek tersebut
juga melibatkan hal-hal sebagai berikut:
Operation Repertoire: Berapa
banyak dan operasi apa saja yang disediakan, dan berapa sulit operasinya .
Data Types: tipe/jenis data
yang dapat olah Instruction Format: panjangnya, banyaknya alamat, dsb.
Register: Banyaknya register
yang dapat digunakan
Addressing: Mode pengalamatan
untuk operand.
Membahas CPU,System bus,
cental logic unit, set register
a. Pengertian CPU
CPU  merupakan 
singkatan  dari  Central 
Prosessor  Unit  yang 
sering  diartikan  oleh 
manusia sebagai  tubuh  maupun 
dari  otak  sikomputer. 
Selain  dapat  mengolah 
berbagai  hitungan Aritmatika,  CPU 
juga  dapat  mengolah 
data-data  yang  telah 
masuk  kedalam  komputer 
dan menyimpannya  kedalam  Hardisk 
maupun  alat  penyimpanan 
lainnya  melalui  perintah prosessor yang ada di CPU. CPU
sendiri terbuat dari lempengan yang 
berbahan silicon yang terdiri 
atas  10  juta 
transitor  yang  biasa 
disebut  “chip”.  Perkembangan 
CPU  dari  waktu 
ke waktu  semakin  meningkat. 
Awal  munculnya  processor, 
yakni  hadir  dengan microprocessornya  yang 
di  buat  oleh 
INTEL,  satu-satunya  produsen 
pada  masa  itu 
untuk pembuatan  processor.  Namun, 
sekarang  ini  sudah 
banyak  perusahaan-perusahaan  yang membuat processor.
b. bagian-bagian CPU dan
Fungsi-funsinya
Perangkat  pengolah 
atau  pemroses  data 
dalam  komputer  adalah 
prosesor  atau  lengkapnya adalah  mikroprosesor,  namun 
umumnya  pengguna  komputer 
menyebutnya  sebagai  CPU (Central Processor Unit). CPU merupakan
otak bagi sebuah system komputer. CPU memiliki 3 komponen utama yang merupakan
bagian tugas utamanya yaitu unit kendali (Control Unit – CU) , unit aritmetika
dan logika (Aritmetic and Logic Unit – ALU) serta komponen register yang
berfungsi membantu melakukan hubungan (interface) dari dan ke memori. Tugas CPU
adalah melaksanakan dan mengawal keseluruhan operasi komputer sehingga bisa
dikatakan hampir keseluruhan pemikiran dilaksanakan disini, sehingga sering
dinamakan sebagai otak komputer. CPU Tempatnya terletak pada papan induk
(motherboard) pada bagian inilah juga terletak 
segala  pusat  perangkat 
komputer  seperti  memori, 
port  input  –output 
(I/O)  dan 
sebagainya.
I. Control Unit
Unit  kontrol 
(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).
Tugas dari CU adalah sebagai
berikut:
1.  Mengatur dan mengendalikan alat-alat input
dan output.
2.  Mengambil instruksi-instruksi dari memori
utama.
3.  Mengambil data dari memori utama kalau
diperlukan oleh proses.
4.  Mengirim instruksi ke ALU bila ada
perhitungan aritmatika atau perbandingan
5.  logika serta mengawasi kerja.
6.  Menyimpan hasil proses ke memori utama.
Proses tiga langkah
karakteristik unit control:
1.  Menentukan elemen dasar prosesor
2.  Menjelaskan operasi mikro yang akan dilakukan
prosesor
3.  Menentukan fungsi-fungsi yang harus dilakukan
unit control agar menyebabkan pembentukan operasi mikro
Masukan-masukan unit control:
1.  Clock / pewaktu
Pewaktu adalah cara unit
control dalam menjaga waktunya. Unit control menyebabkan sebuah operasi mikro
(atau sejumlah operasi mikro yang bersamaan) dibentuk bagi setiap pulsa waktu.
Pulsa ini dikenal sebagai waktu siklus prosesor.
2.  Register instruksi
Opcode instruksi saat itu
digunakan untuk menentukan operasi mikro mana yang akan dilakukan selama siklus
eksekusi.
3.  Flag
Flag ini diperlukan oleh unit
control untuk menentukan status prosesor dan hasil operasi ALU sebelumnya.
4.  Sinyal control untuk mengontrol bus
Bagian bus control bus system
memberikan sinyal-sinyal ke unit control, seperti sinyalsinyal interupsi dan
acknowledgement.
Keluaran-keluaran unit
control: 
• Sinyal control didalam
prosesor: terdiri dari dua macam: sinyal -sinyal yang menyebabkan data
dipindahkan dari register yang satu keregister yang lainnya, dan sinyal-sinyal
yang dapat mengaktifasi fungsi-fungsi ALU tertentu.
II. ALU (Aritmetic and Logic
Unit)
ALU (Arithmetic and Logic
Unit), CU (Control Unit), Register, dan interkoneksinya. ALU merupakan bagian
pengolah bilangan biner dari sebuah prosesor. ALU bertugas melakukan
operasi-operasi  aritmatika  dan 
logika  sesuai  dengan 
instruksi  yang  diberikan. 
ALU  juga merupakan salah satu
bagian yang terpenting. Unit aritmetik logika (ALU) terdiri dari sirkuit
elektronik  yang  membuatnya 
mampu  melaksanakan  operasi 
aritmatika  dan  logika. 
Ia mengeksekusi  instruksi  dan 
melakukan  perhitungan  (tambah, 
kali,  kurang,  dan 
bagi)  dan perbandingan.  ALU 
bekerja  dengan  register 
yang  berbeda  untuk 
menyimpan  data  atau informasi  tentang 
tindakan  terakhir  yang 
dilakukan  oleh  unit 
logika.  ALU  mampu membandingkan huruf, angka, atau
karakter khusus. Komponen dari rangkaian logika pada ALU  adalah 
gerbanggerbang  logika  AND, 
OR,  XOR,  dan 
NOT  yang  dihubungkan 
pada multiplexer.  Selain  itu 
juga  terdapat  juga 
operasi  shifter  yang 
komponen  dasarnya  adalah multiplexer. Komponen ALU mendapatkan
masukan data dari register dan sinyal kontrol dari CU.  Untuk 
operasi  ALU  dengan 
dua  masukan,  diperlukan 
dua  register  8-bit: 
ACC (accumulator) untuk masukan pertama dan temp (register sementara)
untuk masukan kedua. Hasil  dari  operasi 
ALU  ini  adalah 
data  8-bit  yang 
kemudian  diteruskan  ke 
register  untuk menyimpan  hasil 
operasi  ini.  Selain 
itu  juga  dihasilkan 
flag  atau  bit 
status.  Flag  ini 
akan diteruskan  ke  register 
yang  menyimpan  flag 
hasil  dari  operasi 
ALU.  Untuk  mempercepat pemrosesan  data 
di  dalam  prosesor, 
selain  CU  dan 
ALU,  prosesor  juga 
membutuhkan memori  dengan  kecepatan 
yang  sama  dengan 
prosesor.  Memori  khusus 
yang diimplementasikan  pada  prosesor 
ini  disebut  register. 
Komponen  utama  penyusun 
register adalah flip-flop.
III. Register
Bagian  CPU 
berikutnya  adalah  register. 
Register  merupakan  perangkat 
memori  sementara yang  menyimpan 
data.  Register  membantu 
CPU  dalam  melaksanakan 
instruksi.  Mereka dikelola oleh
unit kontrol. Register berfungsi untuk tempat penyimpanan yang berisi data dan
informasi  lainnya  yang 
sering  dibutuhkan  ketika 
sebuah  program  sedang 
berjalan.  Register dimaksudkan
untuk dapat diakses dengan sangat cepat. Yang termasuk register di antaranya
adalah register uji dan instruksi. Register instruksi berisi instruksi CPU
sedangkan register uji dimaksudkan untuk menyimpan hasil kerja yang dilakukan
oleh CPU.
IV. Memory
Memori  merupakan 
media  penyimpanan  program 
maupun  data.  Memori 
semikonduktor dapat dibedakan menjadi Read Only Memory (ROM)  dan Random Access Memory (RAM). ROM  adalah 
memori  non-volatil  yang 
digunakan  untuk  menyimpan 
data  secara  permanen. Data  yang disimpan hanya dapat dibaca, tidak dapat
diubah, dan isinya tidak hilang ketika catuan 
dimatikan.  Sedangkan  RAM  adalah 
tempat  penyimpanan  sementara 
yang  berisi alamat  yang 
isinya  dapat  dibaca 
dan  dimodifikasi.  Memori 
ini  bersifat  volatil, 
isinya  akan hilang ketika catuan
dimatikan.
Memori program merupakan
ruang memori yang digunakan untuk menyimpan program yang akan dijalankan oleh
prosesor. Memori program bersifat read only memory (ROM). Prosesor hanya bisa
membaca isi dari memori program tetapi tidak bisa mengubah isinya. Memori data
pada  prosesor  digunakan 
untuk  menyimpan  data-data 
hasil  pemrosesan  dari 
instruksiinstruksi  yang  dijalankan 
oleh  prosesor.  Pada 
mikrokontroler  8051,  memori 
data  internal sebesar 128 byte.
Didalamnya terdapat bank register, Spesial Function Register (SFR), dan
general-purpose register.
V. Input output
Terdapat dua jenis interface
input dan output pada FPGA untuk komunikasi dengan device di luar FPGA: data
port serial dan data port paralel. 
Interface komunikasi serial biasa disebut UART  (Universal 
Asynchronous  Receiver-  Transmitter). 
Sedangkan  untuk  interface komunikasi parallel disebut PIO
(Parallel Input-Output).
VI. UART
UART  merupakan 
suatu  piranti  asinkron 
yang  memerlukan  bit 
awal  dan  bit 
akhir  untuk setiap  kata 
digital  yang  dikirimkan 
dari  dan  ke 
CPU.  UART  dapat 
deprogram  untuk menentukan mode
operasinya.
UART memiliki dua mode
operasi:
1.Mode  pengiriman, 
dimana  UART  akan 
mengambil  data  paralel 
dan  mengubahnya  dalam aliran data seri yang berisi karakter
start, stop,dan karakter yang sama.
2.Mode  penerimaan, 
dimana  UART  akan 
mengambil  aliran  bit 
seri  dan  mengubahnya 
ke dalam data paralel.
VII. Bus
Suatu sistem digital pada
umumnya memiliki banyak komponen register. Interkoneksi antar komponen  diperlukan 
untuk  transfer  data 
dari  satu  komponen 
ke  komponen  yang 
lainnya. Untuk  efesiensi  dalam 
transfer  data  tersebut 
digunakan  suatu  sistem 
untuk  berbagi  saluran yang disebut bus. Bus adalah
sekelompok kawat penghubung yang digunakan sebagai jalur untuk  menyalurkan 
bit-bit  biner.  Ada 
tiga  jenis  bus 
pada  sistem  prosesor 
:  bus  data, 
bus alamat, dan bus kontrol.
1.  Bus 
data  digunakan  untuk 
mentransfer  data  antara 
CPU  dengan  elemen 
elemen  lain  di dalam sistem. Bus data bersifat
bidirectional, bisa menerima data dan juga mengirimkan data. Juga terdapat
internal data bus untuk transfer data sesama elemen CPU, yang dihubungkan ke
bus data sistem melalui Memory Buffer Register (MBR). MBR merupakan buffer dua
arah.
2. Bus alamat membawa alamat
dari lokasi memori, untuk mengambil data agar dapat dibaca 
atau untuk menyimpan agar
dapat ditulis. Bus alamat dapat juga mengalamati elemen elemen lain di dalam
sistem seperti unit antarmuka masukan/keluaran. Bus alamat dapat membawa 16 bit
informasi digital secara serempak.
3.Bus kontrol membawa semua
isyarat kontrol dari CPU. Fungsi utama bus kontrol adalah:
sinkronisasi memori dan I/O,
penjadwalan CPU (misalnya interupsi), dan 
tugas lain seperti reset dan clock. Sebelum memasuki address bus sistem
maupun control bus sistem, informasi terlebih 
dahulu  melewati  Memory 
Address  Register  (MAR), 
yang  merupakan  buffer 
satu arah.
VIII. Clock
Bagian CPU yang lain adalah
sistem waktu. Sistem terbuat dari sirkuit waktu untuk mengukur tugas yang
dilakukan oleh CPU. Kinerja prosesor umumnya diukur dalam “hertz.”
referensi:
https://triazis13.wordpress.com/2016/11/06/arsitektur-set-instruksi/
https://mahmudiuye.blogspot.co.id/2015/04/struktur-cpu-fungsi-cpu-alu-control.html