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 Instruksi

  4 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 0100

Perangkat 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):

   FETCHEXECUTE 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

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

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 M

  Ep 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