SAP-1
Komputer SAP (Simple-As Possible; artinya
sederhana mungkin) telah dirancang untuk anda sebagai seorang pemula dalam
bidang ini. Tujuan utama perancangan komputer SAP adalah untuk memperkenalkan
semua gagasan penting dibalik operasi komputer tanpa membenamkan anda kedalam
kerumitan yang tidak perlu. Meskipun demikian, sebuah komputer sederhana
seperti SAP sudah mengandung banyak konsep yang lanjut. Untuk menghindarkan
beban pemahaman yang terlampau banyak sekaligus, kita akan mengkaji secara tiga
generasi yang berbeda dari komputer SAP.
SAP-1 merupakan tahap pertama dalam evolusi
kearah pengembangan komputer-komputer modern. Sekalipun masih terhitung
primitif, pemahaman SAP-1 sudah
merupakan suatu langkah besar bagi
seorang pemula. Jadi dalam bahan yang disajikan dalam bab ini, kuasai
SAP-1, baik arsitekturnya, cara pemrogramannya, maupun rangkaiannya. Setelah
ini, anda akan siap untuk mempelajari komputer
SAP-2.
10-1
ARSITEKTUR
Gambar 10-1 memperlihatkan arsitektur
(struktur) dari SAP-1, sebuah komputer berorganisasi-bus. Semua keluaran
register menuju bus W merupakan saklar tiga-keadaan, yang memungkinkan transfer
data secara teratur. Semua keluaran register yang lain hanya memiliki dua
keadaan; keluaran-keluaran ini secara kontinu menggerakkan kotak-kotak yang
disambungkan kepadanya.
Susunan pada Gambar 10-1
menonjolkan fungsi register-register yang dipakai dalam SAP-1. Karena itu,
tidak ada usaha untuk menempatkan semua rangkaian pengendali dalam satu blok
yang disebut untuk kendali, ataupun meletakkan
semua rangkaian-rangkaian masukan-keluaran di dalam blok lain yang disebut unit
I/O, dsb.
Kebanyakan register dari Gambar 10-1 sudah pernah
dikenal dari contoh dan pembahasan sebelumnya. Berikut ini adalah uraian
singkat dari setiap kotak diagram, dan penjelasan yang terinci akan diberikan
kemudian.
Gambar 10-1 Arsitektur SAP-1
Pencacah Program
Program disimpan pada bagian awal dari memori
dengan instruksi pertama pada alamat biner 0000, intruksi kedua pada alamat
0001, instruksi ketiga pada alamat 0010, dan seterusnya. Pencacah program, yang
merupakan bagian dari unit kendali, mencacah dari 0000 sampai 1111. Tugasnya
adalah mengirimkan ke memori alamat dari instruksi berikutnya yang akan diambil
dan dilaksanakan. Hal
ini dilaksanakan sebagai berikut.
Pencacah program direset ke 0000
setiap kali sebelum komputer dijalankan. Ketika komputer mulai bekerja,
pencacah program mengirimkan alamat 0000
ke memori. Kemudian mencacah program meningkatkan angka cacahannya menjadi
0001. Setelah instruksi pertama diambil dan dilaksanakan, pencacah program
mengirimkan alamat 0001 ke memori. Pencacah program kembali meningkatkan angka
cacahannya. Sesudah instruksi kedua diambil dan dieksekusi, pencacah program
mengirimkan alamat 0010 ke memori. Dengan demikian, pencacah program dapat
menentukan instuksi berikutnya yang akan diambil dan dilaksanakan.
Pencacah program di sini dapat
dibayangkan seperti seseorang yang memakai jarinya untuk menunjuk kepada suatu
daftar instruksi ini harus dilaksanakan pertama, itu kedua, itu ketiga, dan
seterusnya. Itu sebabnya mengapa
pencacah program kadang-kadang disebut penunjuk (pointer): pencacah itu
menunjuk kepada suatu alamat tertentu dalam memori yang menyimpan isi penting
pada alamat tsb.
Masukan dan MAR
Di bawah pencacah program adalah blok masukan dan MAR. Disini sudah termasuk register
saklar untuk alamat dan data seperti dibahas dalam Pasal 9-4. Register-register
saklar ini, yang merupakan bagian dari unit masukan, memungkinkan pengiriman 4
bit alamat dan 8 bit data kepada RAM. Ingatlah bahwa instruksi dan kata-data
dituliskan ke dalam Ram sebelum komputer
bekerja.
Memory
address register (disingkat MAR: artinya register alamat memori) adalah bagian
dari memori SAR-1. Selama komputer bekerja, alamat dalam pencacah program
ditahan (latched) pada MAR. Sejenak kemudian, MAR mengirimkan alamat 4 bit ini
ke dalam RAM, dimana operasi membaca
dilaksanakan.
RAM
Kotak Ram dalam gambar merupakan sebuah RAM
TTL statik 16 x 8. Sebagaimana dibahas dalam Pasal 9-4, kita dapat memprogram
RAM dengan register saklar alamat dan register saklar data. Melalui cara ini
kita dapat memasukkan program dan data ke dalam memori sebelum komputer
bekerja.
Selama
komputer beroperasi, RAM menerima alamat
4-bit dari MAR dan operasi membaca dilaksanakan. Dalam proses ini, instruksi
dan kata-data yang tersimpan dala RAM ditempatkan pada bus W untuk digunakan
oleh beberapa bagian lain dari komputer.
Register Instruksi
Register instruksi merupakan bagian dari unit
kendali. Untuk mengambil sebuah
instruksi dari memori, komputer melakukan operasi membaca memori. Dalam
operasi ini isi dari lokasi memori yang
ditunjuk alamatnya ditempatkan pada bus W. Pada waktu yang sama, register
instruksi disiapkan untuk pengisian pada tepi positif dari sinyal detak (clock)
berikutnya.
Isi
register instruksi dibagi menjadi dua nibble. Nibble bagian atas merupakan
keluaran dua-keadaan yang langsung dikirimkan kepada blok “
pengendali-pengurut”. Nibble bagian bawah adalah keluaran tiga-keadaan yang
dapat dibaca (ditempatkan) pada bus W bilamana diperlukan.
Pengendali-Pengurut
Blok terbawah di bagian kiri berisi
pengendali-pengurut (controller-sequencer) sebelum komputer bekerja,
sinyal-sinyal CLR dan CLR masing-masing dikirimkan ke pencanah program dan register
instruksi. Sebagai akibatnya, pencacah program direset ke 0000 dan bersamaan
ini instruksi terakhir dalam register instruksi dihapus.
Sebuah
sinyal detak CLK dikirimkan ke semua register bufer; sinyal ini mensinkronkan
operasi komputer, yang menjamin bahwa setiap langkah operasi akan terjadi
sebagaimana mestinya. Dengan kata lain, semua transfer dalam regiter terjadi
pada tepi positif dari sinyal detak CLK yang sama. Perhatikan bahwa sinyal CLK
juga memasuki pencacah program.
Data
12-bit yang berasal dari pengendali-pengurut membentuk suatu kata-pengendalian
komputer (seperti seorang pengawas yang memberitahu tentang apa yang harus
dikerjakan). 12 kawat yang menyalurkan kata-kendali itu disebut bus kendali
(control bus).
Kata kendali mempunyai format sbb:
CON = CpEpM 11AEA SuEuBo
Kata ini menentukan bagaimana
register-register harus bereaksi terhadap tepi positif sinyal detak berikutnya.
Misalnya, Ep tinggi dan M rendah berarti bahwa isi pencacah
program ditahan di dalam MAP pada tepi positif berikutnya. Sebagai contoh yang
lain, dan A yang
rendah berrati kata RAM yang telah
ditunjuk alamatnya akan ditransfer ke akumulator pada tepi positif berikutnya
dari lonceng. Kelak kita akan mempelajari diagram pewaktuan yang bersangkutan
untuk melihat tepatnya kapan dan bagaimana transfer data ini dilakukan.
Akumulator
Akumulator (A) adalah sebuah register buffer
yang menyimpan jawaban sementara (tahap menengah, intermediate) selama
komputer beroperasi. Dalam Gambar 10-1
diperlihatkan bahwa akumulator mempunyai dua macam keluaran. Keluaran dua
keadaan secara langsung diteruskan ke bagian penjumlahan-pengurang. Keluaran
tiga-keadaan dikirimkan kepada bus W. Karena
itu kata 8-bit dari akumulator secara terus menerus menggerakkan rangkaian
penjumlah-pengurangan; dan kata yang sama juga muncul pada bus W bilamana EA
tinggi.
Penjumlah- Pengurang
SAP-1 menggunakan sebuah penjumlah-pengurang
komplemen-2. Bila Su berharga rendah, maka keluaran jumlah dari
penjumlah-pengurang dalam Gambar 10-1 adalah:
S = A + B
Apalagi Su tinggi, keluarannya berupa selisih
A
= A + B’
(ingat kembali bahwa komplemen-2 ekivalen dengan perubahan tanda dalam
bilangan desimal)
Rangkaian
penjumah-pengurang bersifat asinkron (tidak diatur oleh sinyal detak); ini
berarti isi keluarannya akan berubah bila terjadinya perubahan pada kata-kata
masukan. Bilamana Eu tinggi, isi yang bersangkutan akan muncul pada
bus W.
Register B
Register B adalah register bufer yang
lain diantara register-register bufer yang ada. Register
ini digunakan dalam operasi aritmetik. Sinyal B yang
rendah dan tepi positif dari sinyal detak akan mengisikan kata pada bus W ke
dalam register B. Keluaran dua-keadaan dari register B kemudian menggerakkan penjumlah-pengurang, memasukkan
bilangan yang akan dijumlahkan dengan atau dikurangkan dari isi akumulator.
Register Keluaran
Dalam Contoh 8-1 telah dibahas cara kerja
register keluaran. Pada akhir operasi komputer, akumulator berisi jawaban dari
persoalan yang diselesaikan. Pada saat ini, kita perlu memindahkan jawaban yang
bersangkutan ke “dunia luar”. Untuk keperluan inilah register keluaran
dipergunakan. Apabila EA tinggi dan 0 rendah
tepi positif sinyal detak berikutnya akan memasukkan kata dari akumulator ke
dalam register keluaran.
Register
keluaran sering disebut bandar keluaran (output port) karena data yang telah
diproses dapat meninggalkan komputer melalui register ini. Dalam mikrokomputer,
bandar-bandar keluaran dihubungkan dengan rangkaian perantara (interface circuits)
yang menggerakkan alat-alat periferal seperti: printer, tabung sinar-katoda
(CRT), teletypewriter, dan sebagainya. (Rangkaian perantara menyiapkan data
untuk menggerakkan setiap alat).
Peraga Biner
Peraga biner adalah suatu barisan yang terdiri
dari 8 buah LED. Oleh karena setiap LED
dihubungkan dengan sebuah flip-flop dari bandar keluaran, maka peraga biner
akan menyajikan isi bandar keluaran, kita dapat melihat jawaban itu dalam
bentuk biner.
Rangkuman
Unit kendali SAP-1 mengandung pencacah program,
register instruksi, dan pengendali-pengurut yang menghasilkan kata kendali,
sinyal-sinyal CLEAR, dan sinyal detak. ALU SAP-1 terdiri dari sebuh akumulator,
sebuah penjumlah-pengurang, dan sebuah register B. Memori SAP-1 memiliki MAR
dan sebuah RAM 16 x 8. Unit I/O mengandung saklar pemrograman masukan, bandar
keluaran, dan peraga biner.
10-2 PERANGKAT INSTRUKSI
Komputer merupakan timbunan perangkat-keras
yang tak berguna sebelum diprogram operasinya. Ini berarti bahwa sebelum
operasi komputer dimulai, instruksi-instruksi harus dimasukkan langkah demi
langkah ke dalam memori. Sebelum dapat memprogram sebuah komputer, kita harus
mempelajari dahulu perangkat instruksi (instruction set) dari komputer yang
bersangkutan, yaitu operasi-operasi dasar yang dapat dilaksanakan. Perangkat
instruksi komputer SAP-1 adalah sebagai berikut.
LDA
Sebagaimana telah disebutkan dalam Bab 9,
kata-kata dalam memori dapat diberi lambang R0 R1, R2
dan setetusnya. Artinya,
R0 disimpan pada alamat 0H, R1 disimpan pada alamat 1H, R2
disimpan pada alamat 2H, dan seterusnya.
LDA merupakan singkatan
dari “load the accumulator” (artinya = isilah akumulator). Instruksi LDA yang
lengkap mengandung alamat heksadesimal dari data yang hendak diisikan. Sebagai
contoh: LDA 8H, artinya: isilah akukulator dengan isi dari lokasi memori 8H”.
Umpamanya
R8
= 0000 0010
Maka eksekusi instruksi LDA 8H menghasilkan;
A = 0000 0010
Begitu pula LDA AH
berarti: “isilah akumulator dengan isi dari lokasi memori AH”, LDA FH, berarti
“isilah akumulator dengan isi dari lokasi memori FH”, dan sebagainya.
ADD
Add adalah instruksi lain dari SAP-1. Instruksi ADD yang lengkap mengandung
alamat dari kata yang hendak ditambahkan. Misalnya, ADD 9H berarti “tambahkan
isi dari lokasi memori 9H pada isi akumolator.”, hasil penjumlahan ini akan
menggantikan isi akumulator semula.
Ikutilah contoh berikut
ini. Kita umpamakan dalam akumulator tersimpan bilangan desimal 2, dan bilangan
3 desimal menempati lokasi memori 9H. Maka:
A =
0000 0010
R9
= 0000 0011
Selama pelaksanaan instruksi ADD 9H akan
berlangsung operasi sebagai berikut. Pertama, R9 disisikan ke dalam
register B sehingga:
B
= 0000 0011
Dan pada waktu yang bersamaan, bagian
penjumlah-pengurangan melakukan penjumlahan dari A dan B, menghasilkan jumlah
SUM
= 0000 0101
Kedua, hasil jumlahan ini diisikan ke dalam
akumulator, sehingga
A
= 0000 0101
Urutan
langkah operasi diatas digunakan untuk semua instruksi ADD; kata Ram yang
dialamatkan akan masuk ke dalam register B dan keluaran dari penjumlah-pengurang
memasuki akumulator. Dengan demikian, eksekusi instruksi ADD 9H adalah operasi
menambahkan R9 pada isi akumulator, dan eksekusi instruksi ADD H
berupa operasi menambahkan RF pada isi akumulator, dan sebagainya.
SUB
Instruksi SAP-1 yang lain lagi adalah SUB.
Instruksi SUB yang lengkap disertai alamat dari kata yang hendak dikurangkan.
Sebagai contoh, SUB CH berarti “kurangkan isi lokasi memori CH dari isi
akumulator”, jawaban selisih yang diberikan oleh bagian penjumlah-pengurang
kemudian menggantikan isi akumulator semula.
Sebagai
contoh yang kongkret; misalkan isi akumulator adalah angka desimal 7 dan lokasi
memori CH berisi bilangan desimal 3. Maka
A = 0000 0111
Rc
= 0000 0011
Pelaksanaan instruksi SUB CH berlangsung
sebagai berikut; Pertama, Rc diisikan ke dalam register B untuk
memperoleh:
B
= 0000 0011
Pada waktu hampir bersamaan, bagian
penjumlah-pengurang dari A dan B menghasilkan selisih:
DIFF = 0000 0100
Kedua, hasil pengurangan ini disimpan dalam
akumulator, sehingga isinya menjadi
A = 0000 0100
Urutan
langkah operasi seperti di atas dipakai oleh semua instruksi SUB; kata RAM yang
dialamatkan akan masuk keregister B dan keluaran dari penjumlah-pengurang masuk
ke dalam akumulator. Jadi, eksekusi dari insrtuksi SUB CH adalah mengurangkan Rc
dari isi akumulator, eksekusi dari instruksi SUB EH adalah mengurangkan RE
dari isi akumulator, dan demikian seterusnya.
Out
Instruksi OUT memberitahu kepada komputer
SAP-1 untuk memindahkan isi akumulator ke bandar keluaran. Sesudah
instruksi OUT dilaksanakan, kita dapat
melihat jawaban dari persoalan yang sedang diselesaikannya.
Instruksi
OUT ini sudah dalam bentuk yang lengkap; kita tidak perlu menyebutkan alamat
tertentu dalam menggunakan OUT sebab instruksi ini tidak berhubungan dengan
data di dalam memori.
HLT
HLT adalah singkatan dari “halt” (berhenti),
Instruksi ini memberitahu kepada komputer untuk berhenti memproses data. HLT
menandai akhir suatu program, serupa dengan tanda titik di akhir sebuah
kalimat. Kita harus menggunakan instruksi HLT pada akhir setiap program SAP-1;
jika tidak, kita akan mendapatkan sampah komputer (jawaban yang tak memiliki
arti disebabkan proses yang lepas kendali).
Instruksi
HLT sudah merupakan bentuk instruksi yang lengkap; kita tidak perlu menyertakan
kata RAM bilamana menggunakan HLT, sebab instruksi tersebut tidak melibatkan
memori.
Instruksi Rujukan Memori
LDA, ADD, dan SUB disebut instruksi-instruksi
rujukan memori (memory-reference instructions) karena semua instruksi yang
bersangkutan menggunakan data yang tersimpan dalam memori OUT dan HLT, di pihak
lain, bukan instruksi-instruksi rujukan-memori karena mereka tidak melibatkan
data yang ada di dalam memori.
Mnemonik
LDA, ADD, SUB, OUT, dan HLT adalah perangkat
instruksi bagi SAP-1. instruksi-instruksi singkat seperti ini disebut mnemonik
(mnemonic, artinya pembantu ingatan). Mnemonik sangat popular dalam pekerjaan
komputer karena singkatan-singkatan tersebut. Meningkatkan kita kepada operasi
yang akan berlangsung pada waktu instruksi dilaksanakan. Tabel 10-1
merangkumkan perangkat instruksi SAP-1.
8080 dan 8085
8080 adalah mikroprosesor pertama yang dipakai
secara luas. Mikroprosesor ini memiliki 72 instruksi. Versi yang telah
dikembangkan dari 8080 adalah mikroprosesor 8085, dengan perangkat instruksi
yang pada dasarnya sama. Untuk membusat SAP menjadi komputer yang berguna
secara praktis, instruksi-instruksi SAP harus dibuat kompatibel ke atas dengan
perangkat instruksi 8080/ 8085. Dengan kata lain, instruksi SAP-1: LDA, ADD,
SUB, OUT dan HLT adalah instruksi-instruksi 8080/8085. Demikian pula,
instruksi-instruksi SAP-2 dan SAP-3 akan
merupakan bagian dari perangkat instruksi 8080/8085. Pemahaman instruksi SAP
akan membuat anda siap untuk mempelajari 8080 dan 8085, dua jenis mikroprosesor
yang sangat populer. Sekali anda memahami perangkat instruksi 8080/8085, anda
dapat beralih kepada mikroprosesor yang lain.
CONTOH 10-1
Berikut ini adalah sebuah program SAP-1 dalam
bentuk mnemonik.
Alamat Mnemonik
OH LDA
9H
1
H ADD AH
2
H ADD BH
3
H SUB CH
4
H OUT
5
H HLT
Data dalam memori dengan alamat selanjutnya
adalah
Alamat Data
6
H FFH
7
H FFH
8
H FFH
9
H 01H
AH 02H
BH 03H
CH 04H
DH FFH
EH FFH
FH FFH
Apa yang dilakukam oleh setiap instruksi ?
JAWABAN
____________________________________
Program tersebut terdapat dalam bagian memori
yang rendah , yaitu terletak pada lokasi dengan alamat 0H sampai 5H.
Pelaksanaan instruksi pertama adalah mengisi akumulator dengan isi dari lokasi
memori 9H, dengan ini isi
akumulator menjadi :
A = 01H
Instruksi kedua adalah menambahkan isi
lokasi memori AH pada isi akumulator untuk memperoleh isi akumulator yang baru
yaitu :
A = 01H +02H = 03H
Begitu pula pelaksanaan instruksi yang
ketiga akan menambahkan isi lokasi memori BH pada akumulator sehingga :
A = 03H + 03H = 06H
Instruksi SUB akan mengurangkan isi lokasi
memori CH untuk menghasilkan ;
A = 06H – 04H = 02H
Instruksi OUT memindahkan isi akumulator
kepada bandar keluaran, dengan demikian peraga biner menyajikan angka
0000 0010
Instruksi HLT menghentikan pemrosesan data.
_______________________________________
10 –3 PEMROGAMAN SAP – 1
Untuk
memasukkan instruksi dan kata-data kedalam
memori SAP-1 kita harus menggunakan kode tertentu yang dapat ditafsirkan
oleh komputer. Tabel 10–2 memperlihatkan kode yang dipakai dalam SAP-1.
Bilangan 0000 mewakiliki LDA, 0001 untuk ADD, 0010 untuk SUB, 1110 untuk OUT,
dan 1111 untuk HLT. Karena kode-kode ini
memberitahu kepada komputer tentang operasi yang harus dilaksanakan. Maka kode
yang bersangkutan disebut kode operasi
(operation code) ; disingkat opcode).
Seperti
telah dibahas sebelumnya, saklar-saklar alamat dan data dari gambar 9–7 memungkinkan pemrograman memori SAP-1.
Berdasarkan rancangan rangkaian, saklar-saklar tersebut menghasilkan logika 1
untuk posisi keatas (U) dan logika 0 untuk posisi Ke bawah (D). Dalam
peprograman saklar data dilaksanakan dengan satu instruksi, kode operasi yang
akan diberikan sebagai nibble bagian atas, dan operand (pelengkap instruksi
) sebagai nibble bagian bawah.
Sebagai
contoh, misalkan kita akan menyimpan instruksi sebagai Berikut : alamat dengan instruksi :
Alamat Instruksi
0H LDA FH
1H ADD EH
2H HLT
Pertama, ubahlah setiap instruksi kedalam
bentuk biner :
LDA FH = 0000 1111
ADD
EH = 0001 1110
HLT = 1111 XXXX
Dalam instruksi pertama, 0000 adalah kode operasi untuk LDA, dan 1111
adalah ekivalen biner dari FH. Dalam instruksi kedua, 0001 adalah kode operasi untuk ADD, dan 1110
adalah ekivalen biner dari EH. Dalam instruksi ketiga, 1111 adalah kode operasi
untuk HLT, dan XX adalah nibble yang tak
diperdulikan karena HLT bukan instruksi rujukan – memori.
Selanjutnya
, susunlah saklar-saklat alamat dan data sebagai berikut :
Alamat
Data
DDDD DDDD
UUUU
DDDU DDDU
UUUD
DDUD UUUU
XXXX
Setiap kali setelah selesai menyusun suatu
alamat dan kata- data, tekanlah tombol “tulis” (write). Karena D menyimpan
biner 0 dan U menyimpan biner 1, tiga
lokasi memori yang pertama sekarang mempunyai isi :
Alamat Data
0000 0000 1111
0001 0001 1110
0010 1111 XXXX
Suatu
hal lagi yang perlu diketahui dalam penyusunan program adalah bahwa bahasa
asembli (assembly language) menyangkut
tata cara penulisan program dan mnemonik, sedangkan bahasa mesin (macine
language) menyangkut tata cara penulisan dengan bilangan 0 dan 1, Contoh yang
berikut, akan memperjelas perbedaan antara kedua bahasa tersebut.
_________________________________
CONTOH 10-2
Terjemahkan program dari Contoh 10-1 ke dalam bahasa mesin SAP-1.
JAWABAN
_________________________________________________________
Program dari contoh 10-1 adalah
Alamat Instruksi
0H LDA 9H
1H ADD AH
2H ADD BH
3H SUB CH
4H OUT
5H HLT
Program diatas tertulis dalam Bahasa asembli.
Untuk memperoleh program dalam bahasa mesin,
kita harus memterjemahkannya kedalam bentuk deretan 0 dan 1 sebagai
berikut :
Alamat
Instruksi
0000 0000 1001
0001 0001
1010
0010 0001
1011
0011 0010 1100
0100 1110 XXXX
0101 1111 XXXX
Kini program tersebut sudah tertulis dalam
bentuk bahasa mesin.
Suatu
program seperti contoh diatas yang ditulis dalam bahasa mesin disebut program
obyek (obyect program). Program semula
yang dituliskan dengan mnemonik-mnemonik disebut program sumber (source program
). Dalam SAP-1, operator harus menterjemahkan program sumber kedalam program obyek pada waktu
pemrograman saklar-saklar alamat dan data.
Perhatikan
bahwa empat MSB dari sebuah instruksi bahasa mesin SAP-1
memberikan spesifikasi tentang operasinya, dan empat SLB dari instruksi itu memberikan alamat yang
bersangkutan. Kadang-kadang MSB itu disebut
sebagai medan instruksi (instruction field) dan LSB yang bersangkutan disebut sebagai medan alamat (address
field), secara simbolik.
Instruksi =
XXXX XXXX
Medan instruksi
Medan
Alamat
____________________________________________
CONTOH 10-3
Bagaimana cara memprogram SAP-1 untuk menyelesaikan
persoalan aritmetik ini ?
16
+ 20 + 24 – 32
Bilangan ini diberikan dalam bentuk desimal.
JAWABAN
_________________________________________________
Suatu cara penyelesaiannya adalah menggunakan program dari contoh
terdahulu, yaitu program menyimpan data (16,20,24,32) pada lokasi memori 9H
sampai CH. Dengan bantuan lampiran 1, kita dapat mengubah data desimal kedalam
data heksa-desimal untuk mendapatkan versi bahasa asembli :
Alamat Isi
0H LDA 9H
1H ADD
AH
2H ADD
BH
3H SUB
CH
4H OUT
5H HLT
6H XX
7H XX
8H XX
9H 10H
AH 14H
BH 18H
CH 20H
Dalam bahasa mesin data-data ini menjadi :
Alamat Isi
0000 0000
1001
0001 0001
1010
0010 0001
1011
0011 0010
1100
0100 1110
XXXX
0101 1111
XXXX
0110 XXXX
XXXX
1000
XXXX
XXXX
1001
0001
0000
1010 0001
0100
1011
0001
1000
1100
0010
0000
Perhatikan disini bahwa penyimpanan program
mendahulu penyimpanan kata-kata data. Program menempati lokasi memori yang
lebih rendah dan data menempati lokasi yang lebih tinggi. Hal ini penting dalam
SAP-1 karena pencacah program menunjuk ke alamat 0000 untuk instruksi pertama,
alamat 0001 untuk instruksi kedua, dan seterusnya.
CONTOH
10-4
Tuliskan program pada Contoh 10-3 dalam bentuk
ringkas heksadesimal.
Jawaban
Alamat Isi
0H 09H
1H 1AH
2H 1BH
3H 2CH
4H EXH
5H FXH
6H XXH
7H XXH
8H XXH
9H 10H
AH 14H
BH 18H
CH 20H
Program dan data dalam versi ini masih
dianggap sebagai bahasa mesin.
Dal
hal ini data negatif didisikan dalam bentuk komplemen-2. Misalnya, -03H
dimasukkan sebagai FDH
10-4 SIKLUS PENGAMBILAN (FETCH CYCLE)
Unit kendali adalah kunci dari pengoperasian
komputer secara otomatik. Unit kendali membangkitkan atau mengeluarkan
kata-kata kendali untuk mengambil dan melaksanakan setiap instruksi. Pada waktu
suatu instruksi diambil dan dilaksanakan, komputer akan melewati beberapa
keadaan pewaktuan (timing state: disingkat T state = keadaan T), yaitu
periode-periode waktu pada saat mana terjadi perubahan isi-isi register.
Berikut ini akan kita pelajari lebih lanjut arti keadaan T tersebut.
Pencacah Putar (Lingkar)
Kita telah membicarakan pencacah putar SAP-1
(lihat diagram skematik dalam gambar 8-16). Gambar 10-2a melukiskan simbol
pencacah lingkar dengan keluaran.
T = T6T5T4T3T2T1
Pada permulaan operasi komputer kata lingkar T
menunjukkan pulsa detak yang berturut-turut menghasilkan kata-kata lingkar:
T = 000010
T
= 000100
T
= 001000
T
= 010000
T
= 100000
Gambar 10-2
Pencacah Lingkar (a) simbol (b) Diagram
Pewaktuan
Kemudian pencacah lingkar direset menjadi
000001, dan siklus yang sama akan berulang. Setiap kata lingkar
merepresentasikan satu keadaan T
Gambar
10-2b memperlihatkan pulsa-pulsa pewaktuan yang dikeluarkan oleh pencacah
lingkar. Keadaan T1 berawal pada suatu tepi negatif pulsa detak dan
berakhir pada tepi negatif yang berikutnya. Selama keadaan T ini, bit keluarkan
T1 dari pencacah lingkar
merupakan tingkat logika tinggi.
Keadaan-keadaan
Y yang selanjutnya berturut-turut T2 tinggi, disusul T3 tinggi,
kemudian T4 tinggi, dan seterusnya. Sebagaimana dapat kita lihat, pencacah putar menghasilkan
enam keadaan T. Setiap instruksi diambil
dan dilaksanakan selama enam keadaan T ini.
Perhatikan
bahwa tepi CLK yang positif terjadi dipertengahan setiap keadaan T. Pentingnya
hal ini akan dibicarakan kemudian.
Keadaan
Alamat
Keadaan
T1 disebut keadaan alamat (address State) karena alamat
didalam pencacah program (PC ) dipindahkan
kepada register alamat memori (MAR) selama keadaan ini.
Gambar 10-3A
memperlihatkan bagian-bagian
komputer yang aktif selama keadaan T1 (bagian
aktif digambarkan terang, dan bagian tidak aktif gelap).
Gambar 10-3 Siklus Pengambilan (a)
Keadaan T1 (b) Keadaan T2 (c) Keadaan T3
Selama
keadaan alamat Ep dan Lm
merupakan bit-bit yang aktif ;
sedangkan semua bit kendali yang lain tidak aktif. Ini berarti selama keadaan bagian pengendali – pengurut (CON)
mengeluarkan kata kendali berbentuk
CON = Cp Ep M 1 1 A EA Su Eu B o
= 0
1 0 1
1 1 0
0 0 0
1 1
Selama keadaan
ini
Keadaan Penambahan
Gambar 10-3b memperlihatkan bagian-bagian aktif dari SAP-1 selama keadaan T2.
Keadaan ini disebut keadaan penambahan (increment state) karena hitungan pada
encacaph program ditingkatkan (ditambah) selama periode ini. Selama keadaan penambahan bagian pengendali-pengurut
menghasilkan sebuah kata-kendali berbentuk :
CON = Cp Ep M 1 1 A EA Su Eu B o
= 1
0 1 1
1 1 1
0 0 0
1 1
Terlihat disini
bahwa CP adalah bit yang aktif
Keadaan
Memori
Keadaan T3 disebut keadaan memori (memory state) karena instruksi pada RAM dengan alamat yang
ditunjuk dipindahkan dari memori keregister instruksi. Gambar 10 –3c melukiskan
bagian-bagian aktif dari SAP-1 selama keadaan memori ini. Selama keadaan ini bit-bit kendali yang aktif
hanyalah CE dan L1, dan kata
yang dikeluarkan oleh bagian pengendali- pengurut adalah
CON = Cp Ep M 1 1 A EA Su Eu B o
= 0
0 1 0
0 1 1
0 0 0
1 1
Siklus pengambilan
Keadaan-keadaan alamat, penambahan, dan memori disebut siklus pengambilan/
penjemputan (Fetch cycle) dari SAP-1. Selama keadaan alamat, EP dan M aktif ini berarti
pencacah program mengaktifkan MAR melalui bus W. Dalam gambar 10-2b, tepi
positif sinyal detak muncul pada pertengahan keadaan alamat; peristiwa ini
digunakan untuk mengisi MAR dengan isi PC.
CP adalah
satu-satunya bit kendali yang aktif selama keadaan penambahan. Pencacah program
diaktifkan guna mencacah tepi positif pulsa detak. Dipertengahan keadaan penambahan, tepi
positif sinyal detak diterima pencacah program dan ini meningkatkan cacahan
dengan 1 angka .
Dalam keadaan memori,
bit-bit dan 1 yang aktif.
Dengan ini, kata RAM dengan alamat yang
ditentukan mengaktifkan register instruksi bus W. Pada pertengahan keadaan
memori, sebuah tepi positif sinyal detak
akan mengisi register instruksi dengan kata RAM tadi.
10-5 SIKLUS
EKSEKUSI (PELAKSANAAN)
Tiga keadaan berikutnya (T4, T5, dan T6)
merupakan siklus eksekusi dari SAP-1. Transfer-transfer register yang terjadi selama
siklus eksekusi bergantung pada macam instruksi yang sedang dieksekusi.
Misalny, LDA 9H memerlukan operasi transfer register yang berbeda daripada ADD
BH. Apa yang diuraikan berikut ini adalah rutin kendali (control routine),
artinya rangkaian langkah kendali bagi instruksi-instruksi SAP-1 yang berbeda.
Rutin
LDA
Demi
kejelasan pembahasan, kita mengandaikan bahwa register intruksi (IR) telah diisi dengan instruksi LDA 9H:
IR
= 0000 1001
Selama keadan T4, medan instruksi
0000 dikirim ke dalam pengendali-pengurut yang melakukan pendekodean; sedangkan
medan alamat 1001 diisikan ke dalam MAR,
Gambar 10-4a memperlihatkan bagian-bagian yang aktif dari SAP-1 selama keadaan
T4. Perlu dicatat bahwa E1 dan LM1 adalah
bit-bit yang aktif; dan bit-bit kendali yang lain tidak aktif.
Gambar 10-4
Rutin LDA (a) Keadaan T4 (b)
Keadaan T5 (c) Keadaan T6
Selama keadaan T5 bit-bit dan LA
menjadi aktif. Ini berarti kata data yang telah dilamatkan dalam memori akan
diisi kedalam akumulator pada tepi positif pulsa detak yang berikutnya (lihat
gambar 10-4b).
T6 adalah
keadaan tanpa operasi (no-operation; disingkat
Nop). Selama keadaan eksekusi yang ketiga ini semua register dalam
kondisi tidak aktif (gambar 10-4c). Ini
berarti bahwa bagian pengendali-pengurut mengeluarkan kata dengan bit-bit yang
bersesuaian dengan keadaan tidak aktif. Keadaan T6 dari rutin LDA adalah
keadaan Nop.
Gambar 10-5 Diagram Pewaktuan Siklus
Pengambilan LDA
Gambar 10-5 memperlihatkan diagram
pewaktuan untuk rutin pengambilan dan rutin LDA. Selama keadaan T1,
Ep dan M
menjadi aktif : dan tepi positif detak
pada pertengahan keadaan ini akan memindahkan alamat didalam pencacah
program kedalam MAR. Selama keadaan T2,
CP yang aktif dan hitungan pada pencacah program dinaikkan Pada waktu tibanya tepi positif.
Selama keadaan T3, dan
1 yang
aktif; ketika muncul tepi positif dari
sinyal pewaktu, kata RAM yang ditunjuk alamatnya dipindahkan ke register
instruksi. Eksekusi LDA
dimulai dengan keadaan T4, dimana
M dan 1 yang aktif . Pada tepi positif detak, medan
alamat didalam register instruksi dipindahkan ke MAR. Selama keadaan T5,
dan
A menjadi aktif; ini berarti kata data RAM dengan alamat yang ditentukan itu ditransfer
kepada akumulator pada tepi positif detak. Sebagaimana diketahui keadaan T6
dari rutin LDA adalah keadaan nop.
Rutin
ADD
Umpamakan bahwa pada akhir siklus
pengambilan register instruksi berisi kata ADD
BH.
IR
= 0001 1011
Selama keadaan T4 medan instruksi
memasuki pengendali-pengurut dan medan
alamat berpindah ke MAR (lihat gambar 10-6a). Dalam keadaan ini 1 dan M yang
aktif .
Gambar 10-6
Rutin ADD dan SUB (a) Keadaan T4 (b) Keadaan T5 (c)
Keadaan T6
Bit-bit
kendali dan B menjadi
aktif selama keadaan T5. Ini memungkinkan kata RAM yang
telah ditunjuk alamatnya itu untuk mempersiapkan register B (gambar
10-6b). Seperti biasa, pengisian terjadi pada pertengahan keadaan ketika tepi
positif detak memasuki saluran-saluran
CLK dari register B.
Selama keadaan T6, Eu
dan A yang menjadi aktif.
Dengan ini, bagian
penjumlah-pengurang (Add/Sub) mempersiapkan akumulator (lihat gambar 10-6c).
Pada pertengah keadaan ini, tepi positif detak mengisikan hasil jumlahan kedalam akumulator.
Kebetulan waktu siap (set up time)
dan waktu tunda propagasi dalam rangkaian mempunyai harga yang tepat mencegah
terjadinya keadaan pacu pada akumulator selama keadaan eksekusi terakhir.
Bilamana tepi positif sinyal detak muncul dalam keadaan gambar 10-6c, maka isi akumulator akan berubah dan menyebabkan isi penjumlah-pengurang
mengalami perubahan pula. Isi yang baru
ini akan beredar kembali kemasukan akumulator, akan tetapi isi itu tidak akan
tiba disana sebelum berlalunya dua kali
waktu tunda propagasi sesudah munculnya
tepi positif dari pulsa detak (satu waktu tunda propagasi pada
akumulator dan satu lagi terjadi pada
penjumlah-pengurang). Saat tibanya isi baru itu sudah terlalu terlembat untuk
mempersiapkan akumulator. Akibatnya, akumulator terhindar dari keadaan pacu
(yaitu pengisian lebih dari sekali pada tepi pulsa detak yang sama).
Gambar 10-7 memperlihatkan diagram
pewaktuan untuk siklus pengambilan dan rutin ADD. Rutin pengambilan ini serupa
dengan yang telah dibahas sebelumnya; keadaan T1 mengisikan alamat PC kedalam MAR; keadaan T2
menaikkan hitungan pencacah program; keadaan T3 mengirimkan
instruksi dari lokasi menuju ke register instruksi.
Gambar 10-9 Diagram Pewaktuan untuk Rutin ADD
Selama
keadaan T4, c1 dan M menjadi
aktif. Pada tepi pulsa detak berikutnya,
medan alamat didalam register instruksi berpindah ke MAR. Selama keadaan T5
CE, dan B yang aktif. Oleh karena itu, kata RAM yang
dialamatkan itu, diisikan kedalam register B dipertengahan keadaan ini. Selama
keadaan T6 U dan A
menjadi aktif, dan pada waktu
tibanya tepi poositif, hasil jumlahan
dari penjumlah-pengurang didalam akumulator.
Rutin SUB
Rutin Sub serupa dengan rutin ADD. Gambar 10-6a dan b melukiskan
bagian-bagian yang aktif dari SAP-1 selama keadaan T4 dan T5.
Selamna keadaan T6 , SU yang tinggi disalurkan kepada
bagian penjumlah-pengurang dari gambar 10-6c. Diagram pewaktuan yang
bersangkutan hampir identik dengan
gambar 10-7. Bayangkan bahwa SU rendah selama keadaan T1
sampai T5 dan SU menjadi tinggi selama keadaan T6.
Rutin
Out
Andaikan
bahwa register instruksi berisi
instruksi OUT pada akhir sebuah siklus pengambilan. Maka medan
instruksi akan memasuki pengendali-pengurut guna pendekodeannya. Kemudian
pengendali-pengurut mengeluarkan kata-kendali yang diperlukan mengeluarkan isi akumulator ke
register keluaran.
Gambar 10-8 Keadaan T4
instruksi OUT
Gambar
10-8 memperlihatkan bagian-bagian aktif dari SAP=1 selama eksekusi dari
sebuah instruksi out. Sehubungan dengan
EA dan O yang
aktif, tepi positif berikutnya dari sinyal detak akan memindahkan isi akumlator
ke register keluaran selama keluaran T4. Pada keadaan T5
dan T6 tidak terjadi operasi
(nop).
Dalam
gambar 10-9 ditunjukkan diagram
pewaktuan untuk rutin pengambilan dan rutin OUT. Sekali lagi, siklus
pengambilannya sama : keadaan alamat, keadaan penambahan dan keadaan memori.
Selama keadaan T4, EA dan O aktif ;
dan kata akumulator dipindahkan keregister keluaran pada waktu tibanya tepi
positif dari pulsa detak.
Gambar 10-9 Diagram Pewaktuan untuk Rutin OUT
HLT
instruksi HLT tidak membutuhkan rutin
kendali karena tidak sebuahpun register terlihat dalam eksekusi dalam eksekusi
instruksi bersangkutan. Bilamana
IR berisi :
IR = 1111 XXXX
Medan instruksi 1111 akan memberi tahu
pengendali-pengurut untuk menghentikan pemrosesan data. Pengendali-pengurut
memberhentikan operasi komputer dengan menghentikan detak (rangkaiannya akan
dibahas kemudian.
Siklus
mesin dan siklus instruksi
SAP-1 memiliki enam keadaan T (tiga untuk
pengambilan dan tiga untuk eksekusi). Enam keadaan tersebut dinamakan satu
siklus mesin (lihat gambar 10-10a). Komputer membutuhkan satu siklus mesin
untuk mengambil dan melaksanakan setiap instruksi. Pendetak SAP-1 berprekuensi
KHz yang ekivalen dengan periode 1 ms. Dengan demikian, satu siklus mesin SAP-1 memerlukan waktu 6
ms. Mesin SAP-1
memerlukan waktu 6 ms.
Gambar
10-10. (a) Siklus Instruksi SAP-1 (b) Siklus Instruksi untuk Dua siklus Mesin
SAP-2
agak berbeda dari SAP-1 karena beberapa dari instruksinya memerlukan lebih dari
satu siklus mesin untuk pengambilan dan eksekusinya gambar 10-10b
memperlihatkan diagram pewaktuan bagi instruksi yang memerlukan dua siklus
mesin. Tiga keadaan T yang pertama adalah siklus pengambilan ; namun untuk
eksekusinya diperlukan sembilan keadaan
T berikutnya. Ini disebabkan oleh karena instruksi dua-siklus mesin lebih rumit
sehingga memerlukan keadaan T ekstra untuk menyelesaikan eksekusinya.
Jumlah
keadaan T yang diperlukan guna mengambil
dan melaksanakan sebuah instruksi dinamakan siklus instruksi
(instruktion cycle) . Dalam SAP-1, siklus instruksi sama dengan siklus mesin.
Dalam SAP-2 dan mikrokomputer yang lain, siklus instruksi bisa sama dengan dua
siklus mesin atau lebih, seperti ditunjukkan pada gambar 10-10b.
Siklus
instruksi untuk 8080 dan 8085 memerlukan satu sampai lima sikklus mesin (ini
akan dibahas lebih lanjut kemudian).
_________________________________________
CONTOH
10-5
Pedoman pemrograman 8080/8085 menyebutkan
bahwa komputer memerlukan tiga belas keadaan T guna mengambil dan melaksanakan
instruksi LDA. Jika detak sistem berfrekuensi 2,5 MHz, berapa lama siklus
instruksi itu ?
JAWABAN
_________________________________________
Periode detak sama dengan
|
Jadi, setiap keadaan T berlangsung selama 400
ns. Karena dibutuhkan tigabelas keadaan T untuk mengambil dan melaksanakan
intruksi LDA, maka siklus instruksi berlangsung selama
13 x 400 ns = 5.200 ns = 5,2 ms
_________________________________________
Contoh 10-6
Gambar 10-11 memperlihatkan enam keadaan T
dari SAP-1. Tepi positif dari pulsa detak muncul pada pertengahan setiap
keadaan T. Mengapa hal ini penting ?
JAWABAN
____________________________________
SAP-1
adalah sebuah komputer berorganisasi – bus (tipe yang umum dewasa ini ). Ini memungkinkan register-registernya
untuk berkomunikasi melalui bus-W. Akan
tetapi pengisian yang dapat diandalkan
dari sebuah register hanya terjadi bilamana waktu siap (set up time) dan waktu
tahan (hold time) memenuhi syarat tertentu. Menunggu setengah siklus sebelum
melakukan pengisian register sudah memenuhi syarat bagi waktu siap; dan
menunggu setengah siklus sesudah pengisian register memenuhi pula syarat bagi
waktu tahannyanya. Inilah sebabnya mengapa positif dari pulsa detak dirancang
supaya tiba tepat pada pertengahan set up siklus T (gambar 10-11)
Gambar 10-11. Tepi-tepi Positip Pulsa Detak
(Pertengahan Periode Detak)
Selain itu masih terdapat alasan
lain bagi penundaan selama setengah siklus sebelum pengisian suatu register.
Pada waktu masukan ENABLE dari suatu register yang mengirimkan data sedang
aktif, tiba-tiba isi register ini terdampar
di bus W. kapasitansi sesat (liar) dan induktansi mendahulu yang timbul akan
mencegah saluran bus dari tercapainya tingkat tegangan yang tepat secara
sesaat. Dalam perkataan lain, pada bus W terjadi keadaan transien dan harus
menunggu sampai berakhirnya proses transien ini untuk menjamin keabsahan data
pada waktu pengisian. Penundaan setengah siklus seblum me masukkan tepi positif
pulsa pendetakan memberi kesempatan
kepada data untuk mencapai keadaan mantap sebelum diisikan.
10-6 MIKRO PROGRAM SAP-1
Kita sebentar lagi akan melakukan analisis
dari diagram skematiks dari komputer SAP-1, akan tetapi sebelumnya eksekusi dari
instruksi-instruksi SAP-1 perlu dirangkumkan dalam sebuah tabel yang rapi yang
dinamakn mikro program.
Mikroinstruksi
Pengendali-pengurut mengirimkan kata-kata kendali
dengan laju satu kata dalam setiap keadaan T atau satu siklus detak. Kata-kata
ini merupakan pengarahan kepada komputer tentang operasi yang harus dilakukan
oleh bagian lain dari komputer. Karena masing-masing kata-kata kendali itu
menimbulkan satu langkah kecil dalam pemrosesan data, maka setiap kata kendali
disebut suatu mikroinstruksi. Bila kita
lihat kembali diagram blok SAP-1 (gambar
10-1), kita dapat membayangkan adanya
suatu arus lunak dari sederet mikro instruksi yang mengalir keluar dari pengendali-pengurut
menuju kerangkaian-rangkaian SAP-1 yang lain.
Makroinstruksi
Instruksi-instruksi
yang pernah kita pergunakan dalam pemrogaman (LDA. ADD. SUB,….) kadang-kadang
disebut makroinstruksi untuk membedakannya dari mikroinstruksi. Setiap makroinstruksi
SAP-1 tersusun dari mikroinstruksi. Setiap makroinstruksi SAP=1 tersusun dari
tiga mikroinstruksi. Misalnya
makroinstruksi LDA terdiri dari tiga macam mikroinstruksi seperti
tercantum dalam tabel 10-3. Guna
menyederhanakan bentuk mikroinstruksi
itu kita dapat menggunakan bentuk heksadesimal sebagaimana terlihat pada tabel
10-4
Tabel 10-3
Makro
|
Keadaan
|
Cp Ep M
|
1 1 A EA
|
SU EU
B O
|
Yang aktif
|
LDA
|
T4
|
0 0
0 1
|
1 0
1 0
|
0 0
1 1
|
M, 1
|
|
T5
|
0 0
1 0
|
1 1
0 0
|
0 0
1 1
|
, A
|
|
T6
|
0 0
1 1
|
1 1
1 0
|
0 0
1 1
|
Tidak ada
|
Tabel 10-4
Tabel 10-5 Mikroprogram SAP-1
Mikro program SAP-1 disajikan dalam tabel
10-5 yang merupakan daftar dari setiap makro instruksi dan
mikroinstruksi-mikroinstruksi yang diperlukan bagi pelaksanaannya. Tabel ini merangkum rutin-rutin
eksekusi untuk instruksi SAP-1. Tabel yang sama dapat pula dipakai bagi
perangkat instruksi tingkat lebih lanjut.
TABEL 10-6.
ROM KENDALI SAP-1
Alamat
|
Isi
|
Rutin
|
Bit
aktif
|
0H
|
5E3H
|
Fetch
|
Ep, M
|
1H
|
BE3H
|
|
Cp
|
2H
|
263H
|
|
, 1
|
3H
|
1A3H
|
LDA
|
M, 1
|
4H
|
2C3H
|
|
, A
|
5H
|
3E3H
|
|
Tidak ada
|
6H
|
1A3H
|
ADD
|
M, 1
|
7H
|
2E1H
|
|
, B
|
8H
|
3C7H
|
|
A, u
|
9H
|
1A3H
|
SUB
|
M, 1
|
AH
|
2E1H
|
|
, B
|
BH
|
3CFH
|
|
A, u, u
|
CH
|
3F2H
|
OUT
|
u, o
|
DH
|
3E3H
|
|
Tidak ada
|
EH
|
3E3H
|
|
Tidak ada
|
FH
|
X
|
X
|
Tidak dipakai
|
CON = Cp
Ep M 1 1 A EA Su Eu B o
10-7 DIAGRAM SKEMATIK SAP-1
Dalam pasal ini kita akan mengkaji diagram
skematik lengkap dari SAP-1. Gambar 10-12 sampai 10-15 memperlihatkan semua
serpih, semua rangkaian, dan sinyal-sinyal yang terjadi didalamnya. Anda harus
menggunakan gambar-gambar ini dalam mengikuti seluruh pembahasan selanjutnya.
Lampiran 3 memberikan penjelasan
tambahan untuk beberapa serpih yang lebih rumit.
Pencacah
Program
Serpih-serpih C1, C2 dan C3 dari gambar 10-12
adalah pencacah program. Serpih C1, yaitu IC 74LS5107, adalah flip-flop JK
majikan–budak berjumlah rangkap yang menghasilkan 2 - bit alamat bagian
atas. Serpih C2, yaitu IC 74LS107 yang lain,
menghasilkan 2 - bit alamat bagian bawah. Serpih C3 yaitu IC 74LS126, adalah
susunan empat saklar tiga – keadaan yang normalnya terbuka; saklar ini
berfungsi sebagai keluaran – keadaan dari pencacah program.
Pada awal operasi komputer, CLR
yang rendah mengosongkan (mereset) pencacah program menjadi 0000. Selama
keadaan T1 , EP yang tinggi akan menempatkan alamat pada
bus W. Selama keadaan T2 CP yang tinggi dikirimkan
kepencacah program untuk menambaha cacahannya ketika merima tepi negatif sinyal CLK (ekivalen dengan tepi
positif CLK) pada pertengahan keadaan T2 ini.
Pencacah
program berada pada kondisi tidak aktif selama keadaan T3 sampai T6.
MAR
Serpih C4, atau IC 74LS173, adalah sebuah
register bufer 4 bit yang berfungsi sebagai MAR. Keluaran tiga-keadaan diubah
menjadi menjadi keluaran dua-keadaan dengan mengetanahkan penyemat 1 dan 2.
Keluaran dari MAR tidak perlu mempunyai modus tiga-keadaan mengingat keluaran
MAR ini tidak disambungkan ke bus W.
Multiplekser
2-ke-1
Serpih C5 yang merupakan ID 74LS157 adalah
sebuah multiplekser nibble 2-ke-1. Nibble sebelah kiri (penyemat 14, 11, 5,2)
berasal dari register saklar alamat (S1). Nibble sebelah kanan
(penyemat 13, 10, 6, 3) berasal dari MAR. Saklar RUN-PROG (S2)
memilih nibble yang akan diteruskan kepada keluaran serpih C5. Apabila S2
pada posisi PROG maka pemilihan jatuh pada nibble yang berasal dari register
saklar alamat. Apabila S2 pada posisi RUN, nibble yang terpilih
adalah yang keluar dari MAR.
Gambar
10-12 . Pencacah Program, Memori dan Register Instruksi
Gambar 10-13. Register A dan
B, Penjumlah-Pengurang dan Rangkaian Keluaran
RAM 16 x 8
Serpih C6 dan C7 adalah IC 74189. Setiap serpih
merupakan sebuah RAM statik 16 x 4. Bersama-sama, kedua serpih menghasilkan
sebuah memori baca-tulis (read-write memory; RAM) 18 x 8. S3 adalah register
saklar data (8-bit), dan S4 merupakan saklar baca-tulis (saklar
tombol-tekan). Untuk memprogram memori, S2 dipasang pada posisi
PROG; yang akan membuat masukan CE rendah (penyemat 2). Saklar data dan alamat
kemudian diatur supaya memberikan kata-data dan kata alamat yang benar. Dengan
menekan sejenak tombol dari saklar
baca-tulis akan dihasilkan WE yang rendah (penyemat 3) dan pengisian memori.
Sesudah
program dan data berada di dalam memori, saklar RUN-PROG (S2)
dipindahkan ke posisi RUN untuk mempersiapkan operasi komputer.
Register Instruksi
Serpih C8 dan C9 adalah IC 74LS173. Setiap
serpih merupakan sebuah register bufer tiga-keadaan dengan 4-bit. Dua serpih
ini berfungsi sebagai register instruksi. Dengan menghubungkan ke tanah penyemat
1 dan 2 dari C8, keluaran tiga-keadaan akan diubah menjadi keluaran
dua-keadaan, I1 I6 I5 I4. Nibble
ini akan diteruskan kepada dekoder instruksi di dalam pengendali-pengurut.
Sinyal E1 mengendalikan keluaran C9, yaitu nibble bagian bawah dari
register instruksi. Bilamana 1 menjadi rendah,
nibble ini akan ditempatkan pada bus W.
Akumulator
Serpih C10 dan C11 yang merupakan IC74LS173, adalah akumulator (lihat
Gambar 10-3). Penyemat 1 dan 2 pada kedua serpih itu diketanahkan untuk
memperoleh keluaran dua-keadaan yang berhubungan dengan rangkaian
penjumlah-pengurang. Serpih C12 dan C13 adalah IC 74LS126; saklar tiga–keadaan
ini menempatkan isi akumulator pada bus
W apabila EA tinggi
Penjumlah-Pengurang
Serpih C14 dan C15 adalah 1C 74LS86. gerbang EXCLUSIVE – OR ini merupakan pembalik
(inverter) terkendali. Apabila SU menjadi rendah, isi dari register
B akan dikeluarkan. Bilamana SU tinggi yang dikeluarkan adalah
komplement – 1 dari isi register, dan
angka 1 ditambahkan pada LSB untuk memperoleh komplement - 2.
Serpih C16 dan C17 adalah
1C 74LS83, dan masing-masing merupakan sebuah penjumlah-penuh 4-bit yang
disusun menjadi rangkaian penjumlah atau pengurang 8-bit. Serpih C18 dan C19
yang merupakan 1C 74LS126, mengubah jawaban
8-bit ini menjadi keluaran tiga-keadaan untuk menjalankan bus W.
Register
B dan register Keluaran
Serpih-serpih C20 dan C21 yang merupakan 1C 74LS173, bersama-sama
membentuk register B. Register ini
mengandung data yang akan dijumlahkan atau dikurangkan dengan isi akumulator.
Penyemat 1 dan 2 pada kedua serpih diketanahkan untuk menghasilkan keluaran dua
– keadaan yang dihubungkan dengan rangkaian penjumlah data pengurang.
Serpih-serpih C22 dan C23
adalah 1C 74LS173 dan membentuk register keluaran, yang berfungsi mengeluarkan
peraga biner untuk menyajikan data yang
telah diproses.
Debounser
(Peredam Pelantingan) Clear – Start
Pada Gambar 10-14 debounser “clear-start” menghasilkan dua keluaran : CLR untuk
register instruksi dan CLR untuk pencacah program serta pencacah lingkar. CLR
juga disalurkan kepada C29, yaitu flip-flop yang mengaktifkan detak. S5
merupakan sebuah saklar tombol-tekan. Apabila ditekan, kedudukan saklar
berpindah keposisi CLEAR, dan membangkitkan sinyal CLR tinggi dan CLR rendah.
Bila S5 dilepaskan, kedudukan saklar kembali ke posisi START,
menghasilkan CLR rendah dan CLR tinggi.
Perhatikan bahwa separuh
dari isi serpih C24 digunakan dalam rangkaian debounser clear – start dan
separuh yang lain digunakan dalam rangkaian debounser langkah-tunggal (single –
step). Serpih C24 adalah 1C 7400, yaitu kemasan empat gerbang NAND 2- masukan.
Debounser
Langkah- Tunggal
SAP-1 dapat beroperasi dalam dua ragam
yaitu ragam manual dan ragam, otomatik. Dalam ragam manual, kita menekan
dan melepaskan tombol S6 guna
membangkitkan satu pulsa detak. Bilamana S6 ditekan, CLK
menjadi tinggi : dan ketika dilepaskan, CLK menjadi rendah. Dengan katalain
debounser langkah- tunggal dari Gambar
10-14 membangkitkan satu keadaan T pada
saat kita menekan dan melepaskan tombol. Ini memungkinkan kita untuk menelusuri
melalui keadaan-keadaan T yang berbeda selama melakukan trouble shooting mencari sumber kesulitan dan
mengatasinya atau debuging (mengidentifikasi kesalahan dalam program mengidentifikasikan
perangkat lunak/perangkat keras/trouble shoot..
Debounser
Manual – Auto
Saklar S7 adalah sebuah saklar single-pole double Throw
(disingkat SPDT) yang dapat bertahan pada posisi MANUAL atau pada posisi AUTO.
Dalam posisi MANUAL, tombol langkah-tunggal (single step) yang aktif. Bilamana
Gambar 10-14.
Rangkaian-Rangkaian Catu Daya, Detak dan Clear
saklar dalam Posisi AUTO komputer akan beroperasi Secara otomatik. Dua dari
gerbang NAND dalam serpih (C26 digunakan
untuk menghindari efek pelantingan (bouncing) pada saklar MANUAL – AUTO. Dua
gerbang NAND lainnya dari C26 merupakan bagian dari rangkaian NAND-NAND
yang mengemudikan detak langkah–tunggal
atau detak otomatik untuk memberikan keluaran CLK dan CLK.
Bufer
Detak
Keluaran pada penyemat 11 dari C26
menggerakkan bufer-detak (clock buffers). Seperti dapat dilihat daslam Gambar
10-14, dua buah imverter digunakan untuk menghasilkan keluaran CLK dan sebuah
inverter untuk keluaran CLK. Tidak seperti
kebanyakan Serpih-serpih yang lain, C27 adalah
1C standar TTL dan bukan piranti Schottky daya rendah (lihat daftar
komponen SAP-1, Lampiran 4). Penggunaan
standar TTL disebabkan oleh keperluan untuk menggerakkan 20 beban TTL
Schottky daya – rendah, sebagaimana
ditunjukkan dalam Tabel 4-5.
Jika
anda memeriksa lembaran data 74LS107 dan
74LS173 mengenai arus masukan, anda dapat menghitung jumlah beban TTL Schottky
daya- rendah (LS) pada sinyal detak dan
sinyal kosong (clear) sebagai berikut.
CLK = 19 beban LS
CLK
= 2 beban LS
CLR
= 1 beban LS
CLR = 20 beban LS
Ini berarti sinyal-sinyal keluar CLK dan CLK dari C24 (standar TTL) cukup memadai untuk
menggerakkan beban-beban TTL Schottky daya rendah . Demikian pula sinyal-sinyal
keluaran CLR dan CLR dari C24 (standar TTL) dapat menggerakkan beban-bebannya.
Rangkaian
Detak Dan Catu Daya
Serpih C28 adalah sebuah pewaktu (timer) 555. 1C ini mengeluarkan gelombang persegi
berprekuensi 2 kHz dengan siklus kerja (duty cycle) 75 persen. Sebagaimana
dibahas sebelumnya flip-flop yang menghdiupkan detak (start-the clock
flip-flop), C29, membagi frekuensi sinyal
tersebut menjadi 1 kHz dan menurunkan siklus kerjanya menjadi 50 persen.
Rangkaian catu daya (power
supply), terdiri dari sebuah penyearah jembatan gelombang penuh (full- wave
bridge rectifier) dengan sebuah penapis
(filter) kapasitor. Tegangan dc yang melalui kapasitor 1000 mF ini berharga sekitar 20 V. Serpih C30, sebuah 1C LM340T-5,adalah sebuah
regulator tegangan yang menghasilkan keluaran stabil + 5V.
Dekoder
Instruksi
Serpih C31 yang merupakan sebuah inverter
heks, menghasilkan sinyal komplemen dari bit-bit kode-operasi, I 7 I6 I5
I4 (lihat Gambar 10-15). Lalu, serpih C32, C33 dan C34
menterjemahkan kode – operasi menjadi lima sinyal keluaran : LDA, ADD, SUB, OUT
dan HLT. Pelu diingat bahwa hanya satu diantara sinyal-sinyal ini yang menjadi
aktif pada sesuatu saat. (HLT
aktif – rendah, dan yang lain aktif – tinggi).
Gambar
10-15. Dekoder Instruksi, Pencacah Lingkar dan Matriks Kendali
Pada
waktu instruksi HLT berada pada register instruksi, bit-bit I7I6
I5I4 berharga 1111 dari HLT rendah. Sinyal ini kembali
memasuki C25 (detak langkah – tunggal ) dan C29 (detak otomatik). Baik dalam ragam MANUAL maupun ragam AUTO,
detak akan berhenti sebagai akibatnya dan Operasi komputerpun akan berakhir.
Pencacah
Lingkar
Pencacah lingkar, kadang-kadang disebut Pula
pencacah keadaan (state counter) , tersusun dari tiga buah serpih, C36.C37 dan
C38, setiap serpih adalah 1C 74LS107, yang tak lain adalah sebuah flip-flop JK majikan – budak. Pencacah ini dapat direset
dengan menekan tombol kosong – mulai (S5). Flip-flop Q0
diberi pembalik sehingga keluaran Q (C38, penyemat 6) menggerakkan masukan J
dari flip-flop Q1 (C38,penyemat 1).
Sebagai akibatnya, keluaran I1
merupakan tingkat logika tinggi pada saat awalnya.
Sinyal
CLK menggerakkan Suatu masukan aktif-rendah. Ini berarti tepi negatif sinyal
CLK akan mengawali setiap keadaan T. Setengah siklus kemudian, tepi positif dari sinyal CLK akan menyebabkan
pengisian register sebagaimana telah dijelaskan sebelumnya.
Matriks
Kendali
Sinyal-sinyal LDA, ADD, SUB dan OUT yang
berasal dari dekoder instruksi menggerakkan matriks kendali (control matrix) yang terdiri dari C39 sampai C48. Pada waktu yang sama, sinyal-sinyal dari pencacah lingkar, yaitu T1
sampai T6, akan menggerakkan matriks
tersebut (rangkaian yang menerima
dua kelompok bit dari sumber yang berbeda) Matriks ini menghasil sinyal CON
yang berupa mikroinstruksi yang memberitahu komputer tentang apa yang harus
dikerjakan.
Dalam Gambar 10-15 pertama-tama T1
yang menjadi tinggi, kemudian T2, lalu T3, dan
seterusnya. Analisis matriks kendali ini dapat diikuti sebagai berikut. T1
yang tinggi menghasilkan Ep rendah dan M rendah (keadaan alamat); T2 yang
tinggi menghasilkan Cp tinggi (keadaan penambahan); dan T3
yang tinggi menghasilkan rendah dan 1
rendah (keadaan memori). Jadi tiga keadaan T yang pertama merupakan siklus
pengambilan di dalam SAP-1. Dalam rotasi ringkas, kata-kata CON
bagi siklus pengambilan adalah
___________________________________
Keadaan CON Bit-bit
aktif
___________________________________
T1 5E3H Ep, M
T2 BE3H CP
T3 263H ,
1
___________________________________
Selama
keadaan eksekusi, T4 dan T6 menjadi tinggi secara
berurutan. Pada waktu yang sama, hanya satu di antara sinyal-sinyal yang telah
didekode (LDA sampai OUT) itu berada dalam keadaan tinggi. Karena itu, matriks
kendali secara otomatik mengarahkan bit-bit aktif menuju ke saluran kendali
keluaran yang tepat.
Misalnya,
pada waktu LDA tinggi, gerbang-gerbang NAND 2-masukan yang aktif hanyalah
terdiri dari gerbang pertama, gerbang keempat, gerbang ketujuh, dan gerbang
kesepuluh. Bilamana T4 tinggi, gerbang NAND pertama dan ketujuh akan
diaktifkan, dan ini menghasilkan M rendah
dan 1 rendah
(mengisi MAR dengan medan
alamat). Pada waktu T5
tinggi, gerbang NAND keempat dan kesepuluh diaktifkan ini menghasilkan rendah dan A rendah
(mengisikan data RAM ke dalam akumulator). Misalnya, ketika T6
menjadi tinggi, tidak ada satupun
diantara bit-bit kendali yang aktif (nop).
Anda
harus menganalisis operasi matriks kendali selama keadaan eksekusi dari
kemungkinan-kemungkinan yang lain; yaitu ADD, SUB, dan OUT yang tinggi. Dengan
demikian, anda akan menyetujui bahwa matriks kendali dapat membangkitkan
mikroinstruksi ADD, SUB, dan OUT yang diperlihatkan pada Tabel 10-5
(mikroprogram SAP-1).
Operasi
Setiap kali sebelum komputer bekerja, operator
memasukkan program dan data ke dalam memori SAP-1. Program tersebut menempati
lokasi-lokasi memeori yang rendah (awal) dan data disimpan pada lokasi-lokasi
memori yang berikutnya (lebih tinggi). Selanjutnya, operator menekan dan
melepaskan kembali tombol- CLEAR. Sebagai akibatnya, sinyal CLK dan sinyal CLK
akan menggerakkan semua register dan pencacah. Mikroinstruksi yang dikeluarkan
oleh pengendali-pengendali akan menentukan langkah-langkah yang harus
dilaksanakan pada setiap tepi CLK yang positif.
Siklus
mesin dalam SAP-1 selalu dimulai dengan siklus pengambilan. Siklus pengambilan
meliputi keadaan-keadaan T1, T2, dan T3,
masing-masing merupakan keadaan alamat, keadaan penambahan dan keadaan memori.
Pada akhir siklus pengambilan, instruksi disimpan dalam register instruksi.
Sesudah medan instruksi didekode, matriks kendali secara otomatis membangkitkan
rutin eksekusi yang tepat. Di akhir siklus eksekusi, pencacah lingkar ( putar)
mengalami reset dan selanjutnya dimulai siklus mesin yang berikutnya.
Pemrosessan
data akan berakhir bilamana instruksi HLT diisikan ke dalam register instruksi.
10-8 PANGADAAN MIKROPROGRAM
Matriks kendali dari Gambar 10-15 merupakan
suatu cara membangkitkan mikroinstruksi yang dibutuhkan dalam setiap siklus
eksekusi. Dengan perangkat intruksi yang lebih besar, matriks kendali menjadi
sangat rumit dan memerlukan ratusan bahkan ribuan gerbang logika. Demikianlah,
mengapa pengendalian secara perangkat-keras (gerbang-gerbang matriks
disambungkan bersama) ini memaksa para perancang mencari alternatif lain untuk
menghasilkan kata-kata kendali yang menjalankan komputer.
Cara
yang dikenal dengan sebutan mikroprogramming merupakan alternatif tersebut.
Gagasan dasar dari cara ini adalah menyimpan mikroprogram dalam sebuah ROM, dan
bukan membangkitkankannya dengan sebuah matriks kendali. Pendekatan ini telah
menyederhanakan penyusunan rangkaian pengendali-pengurut.
Penyimpanan
Mikroprogram
Dengan memberi alamat dan menyertakan rutin
pengambilan. Kita dapat menyusun sebuah tabel lengkap dari mikroinstruksi SAP-1
(Tabel 10-6). Mikroinstruksi ini dapat disimpan di dalam sebuah ROM kendali
lengkap dengan rutin pengambilan pada alamat 0H sampai 5H, rutin ADD pada
alamat 6H sampai 8H, rutin SUB pada alamat 9H sampai BH, dan rutin OUT pada
alamat CH sampai EH.
Untuk
mengakses yang manapun, kita perlu memberikan alamat yang tepat. Misalnya,
untuk mendapatkan rutin ADD, kita harus memberikan alamat 6H, 7H, 8H. Untuk
mendapatkan rutin OUT, harus diberikan alamnat CH, DH, dan EH. Dengan ini,
dalam mengakses suatu rutin siperlukan tiga langkah sbb:
1. Mengetahui alamat awal dari rutin
yang dimaksud
2. Menelusuri dengan tepat semua
alamat dari rutin itu
3. Memberikan alamat kepada ROM
kendali.
ROM Alamat
Gambar 10-16 memperlihatkan bagaimana
melakukan mikroprogramming bagi komputer SAP-1. Dalam sistem ini terdapat
sebuah ROM alamat, sebuah pencacah yang dapat direset, dan sebuah ROM
kendali. ROM alamat mengandung alamat awal dari setiap rutin dalam Tabel 10-6.
Dengan kata lain, ROM alamar berisi semua data dalam Tabel 10-7. Sebagaimana
terlihat, alamat awal dari rutin LDA adalah 0011, alamat awal dari rutin ADD
adalah 0110, dan sebagainya.
Bilamana
bit-bit kode operasi I7 I6 I5 I4
menggerakkan ROM maka alamat awal dari rutin akan dibangkitkan sebagai contoh,
jika instruksi ADD sedang dilaksanakan, maka
I7 I6 I5 I4 menunjukkan kata 0001, Ini merupakan masukan
kepada ROM alamat, dan keluaran ROM ini adalah 0110.
Gambar
10-16. Kendali SAP-1 yang dibuat dengan “Micro Programming”
Pencacah yang dapat
dipreset
Apabila T3 tinggi, masukan LOAD dari pencacah Dapat dipreset
menjadi tinggi dan pencacah akan mengisikan alamat awal yang berasal dari
ROM alamat. Selama keadaan-keadaan T
yang lain pencacah melakukan pencacahan
.
Mula-mula
sinyal CLR tinggi yang berasal dari debounser
kosong-mulai (clear- start) dideferensiasi menjadi paku tegangan positif
yang tajam dan sinyal ini akan mereset pencacah. Pada waktu komputer mulai
bekerja keluaran pencacah menunjukkan :0000 selama keadaan T1 0001
selama keadaan T2 , dan 0010 selama keadaan T3, setiap
kali berlangsung siklus pengambilan, hal yang serupa akan terulang karena
selalu akan dikeluarkan kata-kata 0000,
0001, dan 0010 dari pencacah selama keadaan
T1, T2, T3.
Kode
operasi (op code) dalam register instruksi mengendalikan siklus eksekusi. Jika instruksi ADD telah diambil,
bit-bit I7 I6 I5
I4 = 0001. Bit-bit kode operasi ini menggerakkan ROM alamat, menghasilkan
keluaran 0110 (Tabel 10-7). Alamat awal ini merupakan masukan ke pencacah
pre-setabel ( yang dapat dipreset). Ketika T3 menjadi tinggi, tepi
pulsa datak negatif yang berikutnya akan mengisikan 0110 kedalam pencacah
presetabel tersebut. Pencacah kini dalam kondisi preset, dan pencacahan dapat
memulai lagi dari alamat rutin ADD. Keluaran pencacah menunjukkan angka 0110
selama keadaan T4, 0111 selama keadaan T5 dan 1000 selama
keadaan T6 .
Pada
waktu dimulainya keadaan T1, tepi awal dari sinyal T1
didiferensiasi menjadi paku tegangan positif tajam yang akan mereset pencacah
pada 0000 : yaitu alamat awal dari sikllus pengambilan. Selanjutnya siklus
mesin yang baru akan dimulai lagi.
ROM Kendali
ROM kendali menyimpan mikroinstruksi SAP-1.
Selama berlangsung siklus pengambilan.
ROM ini menerima alamat 0000,
0001 dan 0010. Karena itu, keluarannya
adalah
SE3H
BE3H
263H
Mikroinstruksi yang tertera dalam tabel 10-6
ini menghasilkan keadaan alamat, keadaan
penambahan dan keadaan memori.
Selama
sebuah instruksi ADD dilaksanakan ROM
kendali menerima alamat 0110, 0111 dan 1000 selama siklus eksekusi. Ini
menghasilkan keluaran :
1A3H
2E1H
3C7H
Mikroinstruksi diatas melaksanakan operasi penjumlahan
sebagaimana telah dibahas sebelumnya.
Sebagai contoh yang lain, kita
umpamakan instruksi OUT yang dilaksanakan. Maka kode operasi yang bersangkutan
adalah 1110 sedangkan alamat awalnya adalah 1110 (Tabel 10-7). Selama siklus eksekusi berlangsung, keluaran pencacah adalah 1100, 1101 dan 1110.
Sebagai akibatnya keluaran ROM kendali adalah 3F2H, 3E3H, dan 3E3H (Tabel
10-6). Rutin ini memindahkan isi akumulator kepintu keluaran.
Siklus Mesin Variabel
Mikro
instruksi 3E3H dalam Tabel 10-6
menyatakan nop, dan ini muncul satu kali dalam rutin LBA dan dua kali dalam
rutin OUT. Kadang nop ini dipakai
dalam SAP-1 untuk mendapatkan satu
siklus mesin yang tetap (fixed machine cycle) bagi semua instruksi . Dengan
kata lain setiap siklus mesin memerlukan tepat enam keadaan T untuk jenis instruksi apapun. Bagi beberapa
komputer adanya sebuah
siklus mesin yang tetap
mendatangkan keuntungan. Akan tetapi,
bilamana kecepatan yang diutamakan, adanya keadaan nop
akan memboroskan waktu, dan karena itu dapat dihilangkan.
Satu cara mempercepat operasi
komputer SAP-1 adalah dengan melompati (melewati ) setiap keadaan T yang
mengandung nop. Kita dapat menghapuskan
keadaan nop melalui perancangan ulang dari rangkaian Gambar 10-16 Ini akan
dapat mempersingkat siklus mesin dari
instruksi LDA menjadi lima keadaan (T1, T2, T4 dan
T5). Dan siklus instruksi OUT menjadi empat keadaan T (T1,
T2, T3, dan T4).
Gambar 10-17. Siklus Mesin Variabel
Gambar
10-17 memperlihatkan suatu cara menyusun siklus mesin variabel (Variabel
mashine cycle: siklusmesin yang dapat diubah-ubah/ diatur). Untuk intruksi LDA, operasi tetap
sama dari T1 sampai T5. Ketika keadaan T6
dimulai, ROM kendali menghasilkan keluaran 3E3H (mikroinstruksi nop). Gerbang
NAND dengan segera akan mendeteksi
keadaan nop ini dan menghasilkan sinyal keluaran NOP. Sinyal NOP ini
diumpanbalikkan ke pencacah lingkar melalui sebuah gerbang AND, seperti
ditunjukkan oleh gambar 10-18. Sinyal ini mereset pencacah lingkar kepada
keadaan T1, dan dengan demikian siklus mesin yang baru akan dimulai
kembali. Operasi di
atas telah mengurangi siklus mesin instruksi LDA dari enam keadaan menjadi lima keadaan.
Gambar
10-18.
Pada
instruksi OUT, nop yang pertama terjadi dalam keadaan T5. Dalam hal
ini, sesaat setelah keadaan T5 dimulai, ROM kendali menghasilkan
keluaran 3E3H, yang segera akan dideteksi oleh gerbang NAND. Sinyal NOP yang
rendah dari NAND tersebut. Kemudian mereset pencacah program kembali ke kedaan
T1. Dengan cara ini kita telah mengurangi siklus mesin instruksi OUT
dari enam keadaan menjadi empat keadaan.
Siklus mesin variabel biasa
dipakai dalam mikroprosesor. Dalam 8085,
sebagai contoh, siklus mesin mengambil dua sampai enam keadaan T karena semua
keadaan nop yang tidak diinginkan dapat
diabaikan.
Keuntungan
Satu
keuntungan dari mikroprogramming adalah penghapusan bagian dekoder instruksi
dan matriks kendali; kedua bagian ini menjadi sangat kompleks bagi perangkat
instruksi yang lebih luas. Dengan kata lain, jauh lebih mudah menyimpan
mikroinstruksi di dalam sebuah ROM daripada membuat rangkaian dekoder instruksi dan matriks kendali.
Lagi pula, sekali anda merangkaiakan
sebuah dekoder instruksi dengan matriks
kendali, hanya ada satu cara untuk mengubah perangkat instruksiitu yaitu
dengan mengubah sambungan-sambungan
rangkaian ini. Pekerjaan tersebut tidak diperlukan dengan kendali yang
dimikroprogramkan; apa yang harus dilakukan adalah mengubah ROM kendali dan ROM
alamat-awal. Ini merupakan keuntungan besar jika anda mencoba memperbaiki
peralatan yang telah dijual sebelumnya.
Rangkuman
Sebagai
kesimpulan dapat diutarakan bahwa kebanyakan komputer dewasa ini telah
dirancang dengan menggunakan kendali yang dimikroprogram sebagai pengganti
sistem kendali perangkat-keras Tabel
pemikroprograman dan rangkaian-rangkaian yang bersangkutan dari komputer dewasa
ini jauh lebih kompleks daripada yang berlaku untuk SAP-1, akan tetapi
gagasan pokoknya tetap sama.
Mikroinstruksi disimpan di dalam sebuah ROM kendali dan diakses dengan memberikan
alamat mikroinstruksi yang diinginkan.
DAFTAR ISTILAH
Akumulator Tempat
dimana jawaban-jawaban operasi aritmetik dan logika disimpan. Kadang-kadang
disebut register A.
Bahasa asembli Mnemonik
yang dipakai dalam penulisan sebuah program
Bahasa mesin Deretan
“kata” terdiri dari 0 dan 1 yang dipakai dalam sebuah program.
Keadaan alamat keadaan
T1. Selama keadaan ini, alamat didalam pencacah program dipindahkan
ke MAR.
Instruksi
acuan (rujukan ) memori. Sebuah instruksi yang memerlukan
operasi memori kedua untuk mengakses data.
Keadaan memori Keadaan T3. Selama keadaan ini, instruksi
didalam memori dipindahkan keregister
instruksi.
Keadaan
penambahan
Keadaan T2 selama keadaan ini, sehingga pencacah program
dinaikkan atau (ditambahkan).
Kode operasi
(opcode). Bagian
instruksi yang memberitahu komputer tentang operasi yang harus dilaksanakan
LDA.
Mnemonik dari
instruksi mengisi (load) akumulator.
Makroinstruksi
Salah satu instruksi didalam perangkat instruksi.
MAR Memory address register (register alamat
memori). Register ini menerima alamat data yang hendak
diakses didalam memori. MAR memberikan
alamat ini ke memori
Mikroinstruksi Kata
- kendali yang berasal dari pengendali – pengurut. Ini merupakan langkah
terkecil dam pemrosesan data.
Nop No
operation (tanpa operasi) . Suatu
keadaan tanpa kejadian apapun.
Pencacah program
Register yang mencacah dalam bilangan biner. Isinya merupakan alamat
instruksi berikutnya yang harus diambil dari memori.
Perangkat
instruksi
Kumpulan semua instruksi yang dimengerti yang ditanggapi oleh komputer.
Program obyek Program
yang yang dituliskan dalam bahasa mesin.
Program sumber Program yang ditulis dalam bentuk Mnemonik
RAM Random access memory nama yang lebih baik adalah
memori baca-tulis. RAM
menyimpan program
dan data yang dibutuhkan untuk operasi komputer register
B Register pembantu yang menyimpan data untuk
dijumlahkan pada atau dikurangkan isi akumulator.
Register
instruksi Register yang menerima instruksi dari memori.
Register keluaran
Register ini menerima data yang telah diproses dari akumulator dan
menggerakkan peraga keluaran dari SAP-1.
Disebut juga bandar keluaran.
Siklus instruksi seluruh keadaan yang diperlukan guna mengambil dan
mengeksekusi sebuah instruksi.
Siklus mesin
Semua keadaan yang
dibangkitkan oleh pencacah putar (lingkar)
Siklus
pengambilan
Bagian pertama dari siklus instruksi.
Selama siklus pengambilan, alamat dikirim ke memori dan angka pencacah program
ditingkatkan, dan instruksi dipindahkan dari memori ke register instruksi.
Gambar
10-20. Skematik Lengkap SAP-1 (a)
Gambar
10-21. Skematik Lengkap SAP-1 (b)
Gambar
10-22. Skematik Lengkap SAP-1 (c)
Gambar
10-23. Skematik Lengkap SAP-1 (d)
Tidak ada komentar:
Posting Komentar