Jumat, 04 Oktober 2013

Komputer SAP atau Simple-As Possible

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 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.
Text Box: TABEL 10-1. PERANGKAT INSTRUKSI    SAP-1
Mnemonik	Operasi
LDA	Isikan data RAM ke dalam akumulator
ADD	Tambahkan data RAM pada akumulator
SUB	Kurangkan data RAM dari akumulator
OUT	Isikan data akumulator ke dalam register keluaran
HLT	Hentikan pemrosesan

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).

Text Box: TABEL 10-2. KODE OPERASI    SAP-1

Mnemonik	Kode Operasi
LDA	0000
ADD	0001
SUB	0100
OUT	1110
HLT	1111
            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 L­1, 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, T­5, 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 T­4, 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
T =
1
=
1
=  400 ns
f
2,5 MHz

 
                                        



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
EpM
1H
BE3H

Cp
2H
263H

1
3H
1A3H
LDA
M1
4H
2C3H

*A
5H
3E3H

Tidak ada
6H
1A3H
ADD
M1
7H
2E1H

*B
8H
3C7H

*Au
9H
1A3H
SUB
M1
AH
2E1H

*B
BH
3CFH

*Auu
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                      

Text Box: Tabel 10-7.  ROM  ALAMAT

Alamat	Isi	Rutin
0000	0011	LDA
0001	0110	ADD
0010	1001	SUB
0011	XXXX	Tidak ada
0100	XXXX	Tidak ada
0101	XXXX	Tidak ada
0110	XXXX	Tidak ada
0111	XXXX	Tidak ada
1000	XXXX	Tidak ada
1001	XXXX	Tidak ada
1010	XXXX	Tidak ada
1011	XXXX	Tidak ada
1100	XXXX	Tidak ada
1101	XXXX	Tidak ada
1110	1100	OUT
1111	XXXX	Tidak ada
























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. S­5 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 I 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