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 kearah 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.
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.
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.
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
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.
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.
i. Register Keluaran
Pada akhir operasi computer, akumulator
berisi hasil operasi yang diselesaikan dalam
register penjumlahan pengurangan. Setelah,
sementara, hasil operasi disimpan dalam
akumulator maka selanjutnya dipindahkan ke
register keluaran. Apabila EA tinggi dan LO
rendah tepi positif sinyal detak berikutnya akan
memasukkan data dari akumulator ke dalam
register keluaran.
Gambar 5.11 Register Keluaran
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
LDA AH : A = 00000101
SUB DH : A = A - 00000010
= 00000101 + 00000010
= 00000011
Isi alamat memori alamat DH diambil dan dimasukan ke dalam register B.
Kemudian dilakukan proses pengurangan dan hasilna disimpan kembali di
register A..
OUT Instruksi OUT adalah instruksi tanpa operand. Data dari akumulator secara
otomatis akan diambil dan dimasukkan ke dalam register keluaran.
HLT Instruksi HLT berfungsi untuk menghentikan proses. Instruksi ini
(HALT) memberitahu kepada computer untuk berhenti memproses data. HLT
menandai akhir suatu program. Intruksi ini tidak memerlukan operand
memori. Setiap program dalam SAP-1 harus diakhiri dengan HLT.
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)
T1 T2 T3 T4 T5 T6 T7
T1
T2
T3
T4
T5
T6
Jalur yang aktif ada dua EP = 1 aktif High dan LM = 0 aktif Low
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.
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.
Gambar 5.16 Tahapan Siklus Fetch Tahap T1 Gambar 5.17 Tahapan Siklus Fetch Tahap T2
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
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.
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.
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
Operasi SUB
Data 8 bit dari register B dan akumulator dioperasikan (ADD/SUB) dan hasilnya disimpan kembali ke
akumulator lewat W bus.
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
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
Mikroprgram adalah program yang disimpan dalam ROM kendali. Isi (CON) merupakan
mikroprogram yang secara permanen disimpan dalam ROM kendali.