Simple As Possible (SAP) - 1
Simple As Possible (SAP) - 1
Abdul Syukur
[email protected] http://skurlinux.blogspot.com 085374051884
Arsitektur Komputer SAP-1
4
L A CLK E A S U E U L B CLK L O CLK
CLR CLK CLK
Ep CLR CLR CLK CE CLK LM L I E I CLR
8 CLK
8
8
8
8
8
8
8
Pencacah Program (Program Counter)
Memori RAM 16 x 8
4
Cp
8 Peraga Biner
& Pengurang Register Keluaran
Register B Penjumlah
Pengurut Akumulator A
4 Pengendali
8
Register Instruksi4 W
4
4
Register Masukan dan MAR
8
Perangkat Instruksi (Instuction Set)
Terdapat dua jenis instruksi pada komputer SAP-1 : Memiliki satu operand : LDA, ADD, dan SUB.
Ketiganya disebut juga Memory Reference Intruction. Tanpa operand : OUT dan HLT.
Perangkat Instruksi (1) LDA (Load The Accumulator)
Instruksi LDA mengambil data dari memori dan
memasukkannya ke Akumulator. Contoh : LDA AH Instruksi ini mengambil data dari memori AH dan disalinkan ke Akumulator.Perangkat Instruksi (2)
ADD (Adder) Instruksi ini menjumlahkan isi Akumulator dengan data memori yang telah dipindahkan ke Register B dan hasilnya disimpan kembali di Akumulator. Contoh : LDA AH ADD 8H
Misal isi alamat AH = 0000 0011 dan 8H = 0000 0001
Maka : LDA AH
A = 0000 0011 ADD 8H A = 0001 0011 + 0000 0001
Perangkat Instruksi (3)
SUB (Subtract) Instruksi ini mengurangkan isi Akumulator dengan data memori yang telah dipindahkan ke Register B dan hasilnya disimpan kembali di Akumulator Contoh : LDA AH SUB 5H
Misal isi alamat AH = 0000 0101 dan 5H = 0000 0100
Maka : LDA AH A = 0000 0101 SUB 5H A = 0000 0101 - 0000 0100Perangkat Instruksi (4)
OUT Instruksi ini tanpa operand. Data dari Akumulator akan diambil dan dipindahkan ke register keluaran.
HLT (Halt) Instruksi ini berfungsi untuk menghentikan proses data. HLT menandai akhir suatu program. Setiap program dalam SAP-1 harus diakhiri oleh HLT.
Pemrograman SAP-1
Siklus Instruksi Siklus instruksi terdiri dari 2 tahapan (siklus):
FETCH EXECUTE Masing-masing siklus memerlukan 3 siklus detak (clock cycle).
No Mnemonic Kode Operasi (Opcode)
1 LDA 0000
2 ADD 0001
3 SUB 0010
4 OUT 1110
5 HLT 1111
Pemrograman SAP-1 (2)
Masing-masing tahapan menggunakan satu siklus detak (clock cycle).
Siklus FETCH (T1, T2, T3) Pada siklus ini dilakukan pengambilan instruksi dari RAM ke IR.
- – Mengirim isi PC ke MAR (Address state)
- – Menaikkan cacahan PC (Increment state)
- – Mengambil instruksi dari RAM ke IR (Memory state)
Pemrograman SAP-1 (3) Siklus FETCH
M
I I A A U U B O CON = Cp Ep L CE L E L E S E L L
Tahapan pengiriman alamat, T1. Nilai PC dikirim ke MAR,
1 CON = 1 1 1 1 0 0 0 1 1
Cp W
Pengendali & Pengurut Pencacah Program CLK
(Program Counter) mengirim signal kendali
CLR Ep (CON) berikut :
LM Register Masukan dan MAR CLK
4
4
Pemrograman SAP-1 (4) Siklus FETCH
M
I I A A U U B O CON = Cp Ep L CE L E L E S E L L
1 CON = 1 1 1 1 0 0 0 1 1
1 Tahapan penambahan nilai PC dengan 1, T2.
Cp Pengendali & Pengurut
W
Pencacah Program CLK mengirim signal kendali
(Program Counter) CLR (CON) berikut :
Ep LM Register Masukan dan MAR
CLK
4
4
Pemrograman SAP-1 (5)
CON = Cp Ep L M CE L
I E
I L A E A S U E U L B L O Siklus FETCH
1 Tahapan pengambilan instruksi dari RAM ke
CON = 1 1 0 0 0 1 1
IR, T3. Pengendali & W
Memori
8 CE RAM 16 x 8
Pengurut mengirim signal kendali (CON)
I L
8 CLK berikut :
Register Instruksi CLR
4 I E
4
Siklus FETCH Keseluruhan
Tahap pengalamatan (address state), penambahan nilai
pencacah (increment state) dan pengambilan instruksi dari memori (memory state) disebut juga dengan siklus fetch.
Berikut adalah gambar komponen-komponen yang aktif
(warna biru) pada setiap tahapan T1, T2, T3.Ilustrasi Siklus FETCH (T1) Address State
4
L A CLK E A S U E U L B CLK L O CLK
CLR CLK CLK
Ep CLR CLR CLK CE CLK LM L I E I CLR
8
CLK
8
8
8
8
8
8
8
Pencacah Program (Program Counter)
Memori RAM 16 x 8
4
Cp
8 Peraga Biner
& Pengurang Register Keluaran
Register B Penjumlah
Pengurut Akumulator A
4 Pengendali
8 Register Instruksi
4 W
4
4
Register Masukan dan MAR
8
Ilustrasi Siklus FETCH (T2) Increment State
Cp
W
8 A
L Pencacah Program
CLK
4
8 Akumulator A
CLK (Program Counter)
CLR
8 A
E Ep
8 LM
Register Masukan
4 Penjumlah U
S
8
dan MAR CLK
& Pengurang U E
4
4
8 Memori B L
8 CE
8 Register B
RAM 16 x 8 I CLK L
8 O
L CLK
8 Register Keluaran
Register Instruksi CLR I
4 CLK
E
8
4 Peraga Biner CLK CLK
Pengendali Pengurut
CLR CLR
Ilustrasi Siklus FETCH (T3) Memory State
4
L A CLK E A S U E U L B CLK L O CLK
CLR CLK CLK
Ep CLR CLR CLK CE CLK LM L I E I CLR
8 CLK
8
8
8
8
8
8
8
Pencacah Program (Program Counter)
Memori RAM 16 x 8
4
Cp
8 Peraga Biner
& Pengurang Register Keluaran
Register B Penjumlah
Pengurut Akumulator A
4 Pengendali
8 Register Instruksi
4 W
4
4
Register Masukan dan MAR
8
Pemrograman SAP-1 (6)
Siklus Eksekusi (T4, T5, T6) Instruksi LDA (T4 dan T5) Tahapan pada instruksi LDA : – Pada T4 alamat memori dikirim dari IR ke MAR.
- – Pada T5 data dari RAM diambil dan dikirim ke Akumulator.
- – Pada T6 tidak melakukan apa-apa.
Pemrograman SAP-1 (7) Siklus Eksekusi
M
I I A A U U B O CON = Cp Ep L CE L E L E S E L L
Instruksi LDA CON = 1 1 0 0 0 1 1
1 Tahap pengiriman alamat, T4 : Pengendali
W
LM Register Masukan & Pengurut mengirim dan MAR CLK signal kendali (CON)
4
4 berikut :
I L
8 Register Instruksi
4 I E
Pemrograman SAP-1 (8) Siklus Eksekusi
Instruksi LDA Tahap pengambilan data, T5 : Pengendali & Pengurut mengirim M
I I A A U U B O CON = Cp Ep L CE L E L E S E L L signal kendali (CON)
CON = 0 1 1 1 0 0 1 1 berikut :
8 W A
L Akumulator A CLK
8 A E
8
Siklus Instruksi LDA Keseluruhan
Berikut ini adalah gambar komponen-komponen yang
aktif (warna biru) pada tahap T4 dan T5 instruksi LDA.Ilustrasi Siklus Intruksi LDA (T4) LDA
4
L A CLK E A S U E U L B CLK L O CLK
CLR CLK CLK
Ep CLR CLR CLK CE CLK LM L I E I CLR
8
CLK
8
8
8
8
8
8
8
Pencacah Program (Program Counter)
Memori RAM 16 x 8
4
Cp
8 Peraga Biner
& Pengurang Register Keluaran
Register B Penjumlah
Pengurut Akumulator A
4 Pengendali
8 Register Instruksi
4 W
4
4
Register Masukan dan MAR
8
Ilustrasi Siklus Intruksi LDA (T5) LDA
Cp
W
8 A
L Pencacah Program
CLK
4
8 Akumulator A
CLK (Program Counter)
CLR
8
AE Ep
8 LM
Register Masukan
4 Penjumlah U
S
8
dan MAR CLK
& Pengurang U E
4
4
8 Memori B L
8 CE
8
Register BRAM 16 x 8 I CLK L
8 O
L CLK
8
Register KeluaranRegister Instruksi CLR I
4 CLK
E
8
4 Peraga Biner CLK CLK
Pengendali Pengurut
CLR CLR
Pemrograman SAP-1 (9) Siklus Eksekusi
Perbedaan antara ADD dengan SUB hanya pada T6.
Instruksi ADD dan SUB – T4 : Alamat memori dikirim dari IR ke MAR.
- – T5 : Pemindahan data dari memori ke register B.
– T6 : Data dari akumulator dioperasikan (jumlah atau kurang)
dengan data dari register B dan hasilnya disimpan di akumulator.
Pemrograman SAP-1 (10) Siklus Eksekusi
T4 : Alamat memori dikirim dari IR ke MAR sama dengan
tahapan T4 pada LDA. T5 : Pemindahan data dari memori ke register B.
Pengendali & Pengurut mengirim signal kendali (CON)
berikut : CE L MEp Cp L
I E
E A S U E U L B L O CON = CON =
I L A
1 1 0 0
1
1 0 1 Memori RAM 16 x 8
Register B
8 L B
W
Pemrograman SAP-1 (11) Siklus Eksekusi
Operasi ADD : CON : Operasi SUB : CON :
CE L M Ep Cp L
I E
E A S U E U L B L O CON = CON =
I L A
1 1
1
1 0 1
1 CE L M Ep Cp L
I E
E A S U E U L B L O CON = CON =
I L A
1 0 1
1 Akumulator A
Penjumlah & Pengurang
8
8
8
8
CLK E A S U E U
1
1 1
1
Siklus Instruksi ADD/SUB Keseluruhan Berikut ini adalah gambar komponen-komponen yang aktif (warna biru) pada tahap T4, T5, dan T6 instruksi ADD/SUB.
Ilustrasi Siklus Instruksi ADD/SUB (T5)
4
L A CLK E A S U E U L B CLK L O CLK
CLR CLK CLK
Ep CLR CLR CLK CE CLK LM L I E I CLR
8 CLK
8
8
8
8
8
8
8
Pencacah Program (Program Counter)
Memori RAM 16 x 8
4
Cp
8 Peraga Biner
& Pengurang Register Keluaran
Register B Penjumlah
Pengurut Akumulator A
4 Pengendali
8 Register Instruksi
4 W
4
4
Register Masukan dan MAR
8
Ilustrasi Siklus Instruksi ADD/SUB (T6)
4
L A CLK E A S U E U L B CLK L O CLK
CLR CLK CLK
Ep CLR CLR CLK CE CLK LM L I E I CLR
8 CLK
8
8
8
8
8
8
8
Pencacah Program (Program Counter)
Memori RAM 16 x 8
4
Cp
8 Peraga Biner
& Pengurang Register Keluaran
Register B Penjumlah
Pengurut Akumulator A
4 Pengendali
8 Register Instruksi
4 W
4
4
Register Masukan dan MAR
8
Instruksi OUT Instruksi OUT memerlukan satu tahap T4 yaitu memindahkan data dari akumulator kedalam register keluaran.
Siklus Instruksi OUT Keseluruhan
4
L A CLK E A S U E U L B CLK L O CLK
CLR CLK CLK
Ep CLR CLR CLK CE CLK LM L I E I CLR
8 CLK
8
8
8
8
8
8
8
Pencacah Program (Program Counter)
Memori RAM 16 x 8
4
Cp
8 Peraga Biner
& Pengurang Register Keluaran
Register B Penjumlah
Pengurut Akumulator A
4 Pengendali
8 Register Instruksi
4 W
4
4
Register Masukan dan MAR
8
R A M
Alamat Mnemonik
0 H LDA 9H
Latihan (1)
1 H ADD AH
2 H ADD BH Berikut adalah sebuah program
3 H SUB CH SAP-1 dalam bentuk Mnemonik.
4 H OUT
5 H HLT Berapakah nilai akhir pada
Alamat Data
register Akumulator ?
6 H
00 H
7 H
00 H
8 H
00 H
9 H
01 H A H
02 H B H
03 H C H
04 H D H
00 H
Jawaban (Hexadesimal)
A = 01H (LDA 9H) A = 01H + 02H (ADD AH) A =
03 H A = 03H + 03H (ADD BH) A =
06 H A = 06H
- – 04H (SUB CH)
A = 02 H
Instruksi OUT akan mengeluarkan isi akumulator ke
register keluaran 0000 0010 atau (02 H). Instruksi HALT menghentikan permrosesan data.
Alamat Instruksi
Latihan (2)
Berikut adalah sebuah program SAP-1 dalam bentuk Mnemonik.
Berapakah nilai akhir pada register Akumulator ? R A M
0 H 0000 1001
1 H 0001 1010
2 H 0001 1011
3 H 0010 1100
4 H 1110 xxxx
5 H 1111 xxxx
Alamat Data
6 H 0000 0000
7 H 0000 0000
8 H 0000 0000
9 H 0000 0001 A H 0000 0010 B H 0000 0011 C H 0000 0100 D H 0000 0000
Jawaban (Biner)
A = 0000 0001 (LDA 9H) A = 0000 0001 + 0000 0010 (ADD AH) A = 0000 0011 A = 0000 0011 + 0000 0011 (ADD BH) A = 0000 0110 A = 0000 0110
- – 0000 0100 (SUB CH) A = 0000 0010
Instruksi OUT akan mengeluarkan isi akumulator ke
register keluaran 0000 0010 . Instruksi HALT menghentikan pemrosesan data.
R A M
Alamat Mnemonik
0 H LDA EH
Latihan (3)
1 H ADD 8H
2 H SUB DH Berikut adalah sebuah program
3 H ADD BH SAP-1 dalam bentuk Mnemonik.
4 H OUT
5 H HLT Berapakah nilai akhir pada
Alamat Data
register Akumulator ?
6 H
00 H
7 H
00 H
8 H
08 H
9 H
00 H A H
00 H B H
07 H C H
00 H D H
05 H