Simple As Possible (SAP) - 1 Abdul Syukur abdulsyukur@eng.uir.ac.id http://skurlinux.blogspot.com 053740514
Perangkat Pembangun Pencacah Program (Program Counter) Register Masukan & Memory Address Register (MAR) Memori RAM 16 x Register Instruksi Pengendali Pengurut (Control Sequencer) Akumulator A Penjumlah & Pengurang Register B Register Keluaran Peraga Biner
Arsitektur Komputer SAP-1 Cp CLR Ep LM CE Pencacah Program (Program Counter) Register Masukan dan MAR 4 4 Memori RAM 16 x 4 4 W Akumulator A Penjumlah & Pengurang Register B L A E A S U E U L B L I CLR E I Register Instruksi 4 Pengendali Pengurut 4 CLR Register Keluaran Peraga Biner L O 12 CLR CpEp L M CE L I E I L A E A S U E U L B L O
Penahan Tiga Keadaan (Three State Buffer) D In D Out Semua masukan dan keluaran register menuju dan dari bus W dikendalikan oleh Three State Buffer (TSB). TSB memungkinkan tiga kondisi : High (1) : Data 1 ditransfer Low (0) : Data 0 ditransfer ENABLE High Impedance (impedansi tinggi) : Tidak ada data yang mengalir dari D In menuju D Out. Kondisi ini terjadi saat signal Enable = 0 diberikan.
Jalur Kendali Komputer SAP Jalur kendali umum adalah jalur kendali yang hampir ada pada setiap komponen yaitu : : Memicu pengaktifan komponen dengan mode active high, aktif jika nilainya 1. : Memicu pengaktifan komponen dengan mode active low, aktif jika nilainya 0. CLR : Mereset komponen dengan mode active high, aktif jika nilainya 1. CLR : Mereset komponen dengan mode active low, aktif jika nilainya 0.
Pencacah Program (Program Counter) Cp CLR Ep Pencacah Program (Program Counter) 4 Jalur kendali pada Program Counter (PC) : Ep : Mengeluarkan nilai dari PC ke Bus W Cp : Mengendalikan increment PC : PC PC + 1 Dalam SAP-1 instruksi disimpan pada RAM dibagian awal (dari alamat 0000, 0001, 0010, dst) dan data dibagian akhir. Ketika komputer bekerja PC direset menjadi 0000.
Pencacah Program (Program Counter) Pada saat fetch, nilai 0000 ini dikirim ke MAR untuk diambil data pada alamat tersebut. PC menaikkan angka cacahannya menjadi 0001 MAR PC PC PC + 1 Setelah fetch dan instruksi dilaksanakan, nilai 0001 dikirim ke MAR dan PC kembali menaikkan angkanya menjadi 0010. Proses ini terus berlangsung sampai semua instruksi dilaksanakan kecuali PC mendapat signal HALT. PC dapat mencacah dari 0000 s/d 1111.
Register Masukan & MAR LM Register Masukan dan MAR 4 4 4 Jalur kendali pada register ini : LM : Mengambil data dari bus W ke dalam MAR. Register ini memungkinkan pengiriman 4 bit alamat dan bit data ke RAM. Selama komputer bekerja, alamat pada PC ditahan (latched) pada MAR. Selanjutnya MAR mengirim alamat tersebut ke memori RAM, untuk membaca instruksi dalam memori.
Random Access Memory (RAM) 16 x Jalur kendali : CE : Mengeluarkan data bit dari memori ke bus W. Memori utama tempat menyimpan instruksi dan data. 4 4 Memori RAM 16 x Selama komputer beroperasi, RAM menerima alamat 4 bit dari MAR dan operasi baca dilaksanakan. Memori dibaca, instruksi atau data akan keluar dari memori dan masuk ke dalam bus W. CE
Register Instruksi Merupakan bagian dari unit kendali. Pada saat instruksi dari RAM masuk ke bus W, IR diaktifkan sehingga instruksi akan masuk ke IR. IR dibagi jadi 2 bagian : L I CLR Register Instruksi Bagian atas (4 bit) dikirim ke pengendali-pengurut. Bagian bawah (4 bit lagi) ke bus W dikendalikan oleh TSB Jalur kendali : L I : Mengambil data bit dari bus W. E I : Mengendalikan data 4 bit dari IR ke bus W. E I 4 4
Pengendali Pengurut (Controller Sequencer) 4 Pengendali Pengurut 12 CLR CLR CpEp L M CE L I E I L A E A S U E U L B L O Berfungsi untuk mengatur jalannya seluruh komputer termasuk eksekusi instruksi. Sebelum komputer mulai bekerja, signal CLR dan dikirimkan ke PC dan IR.
Pengendali Pengurut (Controller Sequencer) Signal dikirimkan ke semua register untuk mensinkronkan operasi komputer. Data 12 bit dari register Pengendali Pengurut ini disebut Mikroinstruksi. Mikroinstruksi mengendalikan kerja seluruh register.
Akumulator (Accumulator) Jalur kendali : L A : Mengambil data bit dari bus W E A : Mengendalikan data bit ke bus W Akumulator A Menyimpan hasil sementara selama komputer bekerja. Terdapat dua macam keluaran : Keluaran dua keadaan yang secara langsung diteruskan ke penjumlah-pengurang. Keluaran tiga keadaan dikirim ke bus W dan akumulator secara terus menerus mengaktifkan rangkaian penjumlah-pengurang. L A E A
Penjumlah & Pengurang Jalur kendali : S U : Signal rendah (0) maka operasi penjumlahan, bila signal tinggi (1) maka operasi pengurangan. E U : Mengeluarkan data ke bus W Penjumlah & Pengurang S U E U SAP-1 menggunakan penjumlah & pengurang komplemen-2. Data yang dijumlahkan atau dikurangkan berasal dari Akumulator dan Register B.
Register B Register B L B Jalur kendali : L B : Menyalurkan data dari bus W ke register B. Isi dari register B akan dipindahkan ke Penjumlah & Pengurang saat operasi penjumlahan atau pengurangan.
Register Keluaran Jalur kendali : L O : Mengambil data bit dari bus W Pada akhir operasi, isi Akumulator akan dipindahkan ke register keluaran. Register Keluaran Register ini sering disebut output port karena data yang telah diproses dapat dikeluarkan dari komputer melalui register ini. Output port ini akan dihubungkan dengan interface circuit. Peraga Biner L O
Perangkat Instruksi (Instruction 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 H Misal isi alamat AH = 0000 0011 dan H = 0001 0001 Maka : LDA AH A = 0000 0011 ADD H A = 0000 0011 + 0001 0001 A = 0001 0100
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 = 0100 0101 dan 5H = 0100 0100 Maka : LDA AH A = 0100 0101 SUB 5H A = 0100 0101-0100 0100 A = 0000 0001
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.
Latihan (1) LDA DH (DH = 0000 1001) ADD 5H (5H = 0001 0010) OUT HLT LDA FH (FH = 0010 0110) SUB 4H (4H = 0000 0011) OUT HLT Sertakan dengan gambar pada RAM.
Latihan (2) LDA AH (AH = 0000 1111) ADD H (H = 0001 0011) OUT HLT LDA CH (CH = 0000 0111) SUB EH (EH = 0010 0110) OUT HLT Sertakan dengan gambar pada RAM.