Komputer Sederhana SAP-1
Komputer Sederhana SAP-1
V (SIMPLE AS POSSIBLE-1)
5.1 Arsitektur SAP-1
Tujuan komputer SAP-1 adalah menjelaskan cara kerja komputer yang paling sederhana. SAP-1
merupakan tahap pertama dalam revolusi kea rah pengembangan komputer-komputer modern.
Sekalipun masih terhitung sederhana, operasi SAP-1 telah mewakili operasi computer modern.
Kelebihannya, arsitekturnya sederhana sehingga mudah dimengerti oleh pemula sekalipun. Gambar di
bawah ini menunjukkan arsitektur SAP-1.
Cp W8 LA
8
CLK CLK
4
Pencacah Program ( Program Counte)r Akumulator A
CLR
8
Ep CLR
Su
LM
Penjumlahan Dan
Masukan& MAR 4 Pengurangan
CLK
8
Eu
8
4 4
LB
Memori RAM 16 x 8 8 8 Register B
CLK
CE
Li
8 Lo
CLK
Register Intruksi 8 Register Keluaran
CLR CLK
4
Ei
4 8
CLK
CLK
Pengendali Pengurut Peraga Biner
CLR
CLR
12
Cp Ep LM CE Li Ei LA EA Su Eu L B L0
Keluaran dari TSB, DOut, memungkinkan tiga kondisi : 1, 0 atau hambatan tinggi (impedansi
tinggi). Pada saat ENABLE = 0 maka terjadi hambatan tinggi pada TSB sehingga tidak ada data yang
mengalir dari Din menuju DOut.
Pada SAP-1, TSB banyak digunakan untuk menahan data dari register menuju ke W bus atau
sebaliknya.
CLK, CLK, CLR, CLR
Jalur kendali umum yang hampir ada pada setiap komponen dalam computer. Fungsi umum masing-
masing jalur :
CLK : Memicu pengaktifan komponen dengan mode active high, akan aktif jika nilainya = 1
CLK : Memicu pengaktifan komponen dengan mode active low, akan aktif jika nilainya = 0
CLR : Me-RESET komponen dengan mode active high, akan aktif jika nilainya = 1
CLR : Me-RESET komponen dengan mode active low, akan aktif jika nilainya = 0
Berikut ini adalah uraian singkat dari setiap kotak diagram dan penjelasannya :
a. Pencacah Program (Program Counter – PC)
Program, dalam SAP-1, disimpan pada memori RAM dengan intruksi pertama diletakan pada alam
biner 0000, intruksi kedua pada alamat 0001, intruksi ketiga pada alamat 0010 dan seterusnya. Data
biasanya disimpan pada bagian akhir memori. Pencacah program yang merupakan bagian dari unit
kendali (control unit) bertugas mencacah dari 0000 sampai dengan 1111. Keluaran dari pencacah
akan memajukan alamat intruksi berikutnya yang akan dieksekusi.
Cp
Ep
Ketika computer mulai bekerja, pencacah program di-RESET sehingga nilainya menjadi 0000. Nilai
ini dikirimkan ke Register Alamat Memori (Memory Address Register, MAR), pada saat fetch, sebagai
alamat memori yang akan diambil intruksinya. Kemudian pencacah program menaikan angka
cacahnya menjadi 0001.
MAR PC
PC PC + 1
Setelah intruksi pertama diambil dan dilaksanakan, pencacah program mengirimkan alamat 0001 ke
MAR. Pencacah program kembali meningkatkan angka cacahnya. Proses ini terus dilakukan sampai
seluruh intruksi dalam memori selesai dijalankan atau menemukan intruksi untuk berhenti, seperti
intruksi HLT (HALT).
Jalur kendali yang ada pada Pencacah Program :
Ep : mengeluarkan nilai dari Pencacah ke dalam W bus.
Cp : mengendalikan increment Pencacah : PC PC + 1
b. Masukan dan MAR (Memory Address Register)
Di bawah pencacah program adalah Register Masukan dan MAR. Di sini sudah termasuk register
saklar untuk alamat dan data. Register-register saklar ini, yang merupakan bagian dari unit masukan
memungkinkan pengiriman 4 bit alamat dan 8 bit data kepada memori (Random Access Memory,
RAM). Memory Address Register (MAR) adalah bagian dari memori dalam SAP-1.
LM
Masukan & MAR
4
CLK
4 4
Selama komputer bekerja, alamat dalam pencacah program ditahan (latched) pada MAR. Sejenak
kemudian MAR mengirmkan alamat 4 bit ke dalam memori RAM, untuk membaca intruksi dalam
memori. Jalur kendali yang ada pada Masukan dan MAR :
LM : Mengambil data dari W BUS ke dalam MAR
4 4
Memori RAM 16 x 8
8
CE
Li
8
CLK
Register Intruksi
CLR
4
Ei
CLK
Pengendali Pengurut
CLK
CLR
CLR
12
Cp Ep LM CE Li Ei LA EA Su Eu LB L0
Gambar 5.6 Register Intruksi
f. Akumulator
Akumulator adalah sebuah register buffer yang menyimpan hasil sementara selama computer
beroperasi. Akumulator mempunyai dua macam keluaran. Keluaran dua keadaan secara langsung
diteruskan ke bagian penjumlahan-pengurang. Keluaran tiga keadaan dikirimkan ke W bus. Karena
itu data sebanyak 8 bit dan akumulator secara terus menerus mengaktifkan rangkaian penjumlah-
pengurang. Data yang sama muncul pada W bus jika EA tinggi.
LA
8 Akumulator A CLK
8
CLR
Eu
h. Register B
Register B adalah register buffer register buffer yang digunakan dalam operasi aritmatika. Sinyal Lb’
yang rendah dan tepi positif dari sinyal detak akan menyalurkan data dari W bus ke tepi positif dari
sinyal detak akan menyalurkan data dari W bus ke dalam Register B kemudian mengaktifkan
penjumlahan – pengurangan, memasukan bilangan yang akan dijumlahkan dengan atau dikurangkan
dari isi akumulator.
8
Register B LB
8
CLK
i. Register Keluaran
Pada akhir operasi computer,
akumulator berisi hasil operasi yang Lo
Register
diselesaikan dalam register penjumlahan – 8
Keluaran
pengurangan. Setelah, sementara, hasil operasi CLK
disimpan dalam akumulator maka selanjutnya
dipindahkan ke register keluaran. Apabila EA
tinggi dan LO’ rendah tepi positif sinyal detak
berikutnya akan memasukkan data dari 8
akumulator ke dalam register keluaran.
Gambar 5.11 Register Keluaran
Register Keluaran sering disebut output port karena data yang telah diproses dapat dikeluarkan dari
computer melalui register ini. Dalam mikrokomputer output port dihubungkan dengan rangkaian
perantara (interface circuits) yang menggerakan alat-alat seperti printer, monitor dan lain sebagainya.
Jalur kendali yang ada pada Register Intruksi :
L0 : Mengambil data 8 bit dari W bus
j. Peraga Biner
Peraga biner adalah suatu alat yang terdiri dari 8 buah LED. Oleh karena setiap LED dihubungkan
dengan sebuah flip-flop dari output port, maka peraga biner akan menyajikan isi output port. Dengan
demikian setelah kita memindahkan hasil dari bentuk biner pada peraga biner.
LDA AH : A = 00000011
ADD 8 H : A = A + 00000001
= 00000011 + 00000001
= 00000100
Siklus Intruksi
Dalam menyelesaikan setiap intruksi diperlukan tahapan. Tahapan ini disebut siklus intruksi. Siklus
intruksi terdiri dari 2 tahap yaitu FETCH dan EXECUTE. Masing-masing tahap memerlukan 3 siklus detak
(clock cycle) ditandai dengan T1, T2, T3, T4, T5 dan T6. Siklus detak ini diatur oleh pencacah yang disebut
Ring Counter yang mengeluarkan nilai T :
T = T6 T5 T4 T3 T2 T1,
Pada saat computer mulai dijalankan, data keluaran pencacah tersebut adalah : T = 000001
diselesaikan dalam 6 keadaan T tersebut. Penjelasan rinci masing-masing tahap sebagai berikut :
a. Siklus Fetch
Pada siklus fetch dilakukan pengambilan intruksi dari memori dan diletakan di dalam register
instruksi. Semua instruksi melalui tahap ini.
Tiga hal yang dilakukan pada tahap ini :
1) Mengirim isi Pencacah Program (Program Counter) ke dalam register pengalamatan (MAR)
2) Menambah nilai Pencacah Program dengan 1. (increment State)
3) Mengambil intruksi dari memori dan dimasukan ke dalam register intruksi. (Memory State)
T1T2 T3 T4 T5 T6 T7
T1
T2
T3
T4
T5
T6
CLK
Pencac
ah CLR
Ring
T1 T2 T3 T4 T5 T6
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
CON = 0 1 0 1 1 1 1 0 001 1
Jalur yang aktif ada dua EP = 1 aktif High dan LM = 0 aktif Low
Cp
W8
Pencacah Program ( Program Counte)r
CLK
4
CLR
Ep
LM
Masukan & MAR
4
CLK
4 4
Data dari 4 bit akan keluar dari Pencacah Program menuju W bus, bersamaan dengan itu, data dari
W bus akan diambil ke dalam Masukan dan MAR. Akhir tahap ini, 4 bit alamat sudah berada dalam
MAR, menunjuk ke memori RAM.
CON = 1 0 0 1 1 1 1 0 0 0 1 1
CON = 0 0 1 0 0 1 1 0 0 0 1 1
CE
Li
CLK 8
Register Intruksi
CLR
4
Ei
Data 8 bit akan keluar dari memori RAM menuju W bus, bersamaan dengan itu, data W bus akan
diambil ke dalam Register Instruksi. Akhir tahap ini, 8 bit instruksi sudah berada dalam Register
Instruksi.
Cp LA Cp LA
W 8 W 8
CLK CLK
Pencacah Program 8 Akumulator CLK Pencacah Program 8 Akumulator CLK
Program Counter 4 A Program Counter 4 A
CLR CLR
Ep
8 Ep
8
CLR CLR
8 8
Su Su
LM Masukan LM Masukan
dan 4 Penjumlahan dan 4 Penjumlahan
CLK MAR 8 Dan CLK MAR 8 Dan
Pengurangan Pengurangan
Eu Eu
8 8
4 4 4 4
LB Memori LB
Memori Register Register
8 8
RAM 16 x 8 8 B RAM 16 x 8 8 B
CLK CLK
CE CE
Li Li
8 Lo 8 Lo
CLK Register CLK Register
Register Intruksi 8 Keluaran Register Intruksi 8 Keluaran
CLR CLK CLR CLK
4 4
Ei Ei
4 8 4 8
CLK CLK
CLR CLR
142 142
Cp Ep LM CE Li E i L A EA S u Eu L B L0 Cp Ep LM CE Li E i L A EA S u Eu L B L0
Gambar 5.16 Tahapan Siklus Fetch Tahap T1 Gambar 5.17 Tahapan Siklus Fetch Tahap T2
Cp W8 LA
Pencacah Program Program Counter 8 Akumulator A
CLK CLK
44
CLR
Ep 8
CLR
Su
LM Masukan dan MAR
Penjumlahan Dan
4
8 Pengurangan
CLK
Eu
8
4 4
Li
8 Register Keluaran Lo
CLK
Register Intruksi 8
CLR CLK
4
Ei
4 8
CLK
Pengendali Pengurut CLK Peraga Biner
CLR
CLR
142
Cp Ep LM CE Li Ei LA EA Su Eu LB L0
Gambar 5.18 Tahapan Siklus Fetch Tahap T3
Semua instruksi diawali oleh siklus fetch dengan tahapan yang sama. Perbedaan satu instruksi
dengan yang lainnya terletak pada tahap eksekusi.
b. Siklus Eksekusi
Eksekusi instruksi dikendalikan oleh Pengendali/Pengurut (Controller/Sequencer). Masing-
masing tahap eksekusi T4, T5 dan T6 berbeda-beda untuk setiap instruksi.
Instruksi LDA
Pada instruksi LDA hanya T4 dan T5 yang aktif, sementara tahap T6 tidak ada yang aktif. Tahapan
pada instruksi LDA :
Pada tahap T4 alamat memori dikirim dari register instruksi ke MAR
Pada tahap T5 data dari memori diambil dari register instruksi ke akumulator
Pada tahap T6 tidak melakukan apa-apa.
CON = 0 0 0 1 0 0 1 0 0 0 1 1
Jalur yang aktif CE dan Li = 0, Keduanya aktif low
W8
LM
Masukan & MAR
4
CLK
4 4
Li
CLK 8
Register Intruksi
CLR
4
Ei
Data 4 bit keluar dari register instruksi menuju W bus, bersamaan dengan itu, data dari W bus akan
diambil ke dalam MAR. Akhir tahap ini, 4 bit instruksi sudah berada dalam MAR menunjuk ke alamat
memori RAM.
CON = 0 0 1 0 1 1 0 0 0 0 1 1
Jalur yang aktif CE dan LA = 0, Keduanya aktif low
LA
W8 8
Akumulator A CLK
8
CLR
Memori RAM 16 x 8
8
CE
Data 8 bit dari register instruksi menuju W bus, bersamaan dengan itu, data dari W bus akan diambil
ke dalam akumulator. Akhir tahap ini, 8 bit data masuk ke akumulator.
Cp LA Cp
W 8 W 8
CLK CLK
Pencacah Program 8 Akumulator CLK Pencacah Program 8 Akumulator
4 4
CLR (Program Counter) A CLR (Program Counter) A
Ep
8 Ep
8
CLR
8 8
Su
LM
LM
Masukan & Penjumlahan Penjumlahan
8 MAR 8 Dan
CLK
Pengurangan Pengurangan
Eu
8 8
4 4 4 4
Memori LB Memori
8 Register 8 Register
RAM 16 x 8 8 RAM 16 x 8
B
CLK 8
CE
CE
Li
8 Lo Li
CLK Register 8 Register
Register Intruksi 8 8
CLK Keluaran
CLR CLK Register Intruksi
4 CLR 4
Ei
Ei
4 8 8
4
CLK CLK
CLK CLK
Pengendali Peraga Peraga
Pengurut CLR Biner Pengendali CLR Biner
Pengurut
CLR CLR
12
12
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
CON = 0 0 1 0 1 1 1 0 0 0 0 1
8
W8
LB
Memori RAM 16 x 8 Register B
8 8
CLK
CE
Data 8 bit dari memori menuju W bus, bersamaan dengan itu, data dari W bus akan diambil ke dalam
register B. Akhir tahap ini, 8 bit data masuk ke register B.
Operasi ADD
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
CON = 0 0 1 1 1 1 0 0 0 1 1 1
Operasi SUB
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
CON = 0 0 1 0 1 1 1 0 0 0 0 1
8
CLR
Su
Penjumlahan Dan
8
Pengurangan
Eu
LB
Register B
8
CLK
Data 8 bit dari register B dan akumulator dioperasikan (ADD/SUB) dan hasilnya disimpan kembali ke
akumulator lewat W bus.
Cp LA Cp LA
W 8 W 8
CLK Pencacah Program CLK Pencacah Program
8 Akumulator CLK
8 Akumulator CLK
44 44
CLR Program Counter A CLR Program Counter A
Ep
8 Ep
8
CLR CLR
8 8
Su Su
LM Masukan LM Masukan
dan 4 Penjumlahan dan 4 Penjumlahan
MAR 8 Dan MAR 8 Dan
CLK CLK
Pengurangan Pengurangan
Eu Eu
8 8
4 4 4 4
Memori LB Memori LB
Register Register
RAM 16 x 84 8 RAM 16 x 84 8
CLK CLK
8 8
CE CE
Li Li
Lo Lo
CLK 8 Register CLK 8 Register
8 8
CLR CLR
Register Intruksi CLK Register Intruksi CLK
4 4
Ei Ei
8 8
4 4
CLK CLK
142 142
Cp Ep LM CE Li E i LA EA S u Eu L B Cp Ep LM CE Li E i L A EA S u Eu L B
L0 L0
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
CON = 0 0 1 1 1 1 1 1 0 0 1 1
8 Akumulator A
CLR
Lo
Register Keluaran
8
CLK
Su
LM
4 Penjumlahan Dan Pengurangan
8
CLK
Masukan & MAR
Eu
8
4 4
LB
8 Register B
8
Memori RAM 16 x 8 CLK
CE
Li
CLK 8 Lo
CLR 8
Register Intruksi CLK
Ei 4 Register Keluaran
4
8
CLK
CLK
CLR
Pengendali Pengurut
CLR Peraga Biner
12
CON = Cp Ep LM CE Li Ei LA EA Su Eu LB L0
Li
8
CLK
CLR
Register Intruksi
4
Ei
4
CLK
Pengendali Pengurut CLK
CLR
CLR
142
Cp Ep LM CE Li Ei LA EA Su Eu LB L0
Gambar 5.24 Tahap T4 Siklus Instruksi Out
Di antara ke 12 jalur kendali terdapat jalur yang aktif high dan ada juga yang aktif low. Jalur yang
aktif low ditandai dengan gari di atas nama jalurnya, jalur tersebut akan aktif jika nilainya = 0. Sementara
jalur yang aktif high akan aktif jika nilainya = 1.
Keluaran register Pengendali/Pengurut tergantung 4 bit kode operasi (opcode) dari register
instruksi. Setiap instruksi memiliki kode operasi yang berbeda-beda, seperti yang telah dijelaskan
sebelumnya. Lebih jauh lagi bagaimanakah kode operasi diproses oleh Pengendali/Pengurut sehingga
menghasilkan 12 bit mikro instruksi. Kita bisa bisa perhatikan lebih detail lagi
Register Intruksi
ROM Alamat 16 x 4
T3
Pencacah Presettable
CLK
T3
CLR
ROM Kendali 16 x 12
Cp Ep LM CE Li E i L A EA S u Eu L B
Pencacah Presettable
Pencacah Presettable akan mencacah dari 0000 sampai dengan 0011. Selanjutnya tergantung dari
kode operasi yang masuk dari ROM Alamat. Jika instruksinya LDA maka nilai pencacah berikutnya
adalah 0011, jika instruksinya OUT maka nilai pencacahnya berikutnya 1100.
ROM Kendali 16 x 12
Tabel 5.4 Isi ROM Kendali
Mikro Instruksi adalah isi ROM kendali 16 12 yang lebarnya 12 bit. Makro Instruksi adalah instruksi
dalam bahasa assembl seperti LDA, ADD, SUB, dab OUT sering juga disebut Mnemonik, Secara
singkat insruksi SAP-1 :
Tabel 5.5 Mnemonik SAP-1
MNEMONIK OPERASI
LDA Memasukan data RAM ke Akumulator
ADD Menambahkan data RAM ke Akumulator
SUB Mengurangkan data RAM ke Akumulator
OUT Memasukan data Akumulator ke register Keluaran
HLT Menghentikan program
Mikroprgram adalah program yang disimpan dalam ROM kendali. Isi (CON) merupakan
mikroprogram yang secara permanen disimpan dalam ROM kendali.