TEORI, IMPLEMENTASI & APLIKASI [ ] :: SAP - 1 :: TEORI, IMPLEMENTASI & APLIKASI
Komputer SAP < Simple As Possible > Perancangan komputer SAP bertujuan untuk memperkenalkan semua ide penting dibalik operasi komputer tanpa harus tenggelam dalam kerumitan yang tidak perlu. Meski sederhana, SAP sudah mengandung banyak konsep yang lanjut. SAP-1 merupakan tahap pertama dari evolusi ke arah prngembangan komputer modern.
ARSITEKTUR SAP-1 PC MAR RAM IR CON A ADD B O D 4 8 Cp CLK CLR Ep 12 Bus W ARSITEKTUR SAP-1 PC < Program Counter > Bagian unit kendali yang mencacah dari 0000 – 1111 Mengirimkan ke memori alamat, instruksi berikutnya yang akan diambil dan dilaksanakan. Direset ke 0000 sebelum program dijalankan 0000 Instruksi pertama 0001 Instruksi kedua 0010 Instruksi ketiga dst
ARSITEKTUR SAP-1 PC MAR RAM IR CON A ADD B O D 4 8 Cp CLK CLR Ep 12 Bus W ARSITEKTUR SAP-1 MAR < Memory Address Register > Register yang menyimpan sementara alamat memori untuk dikirimkan ke RAM RAM < Random Access Memory > TTL statik 16 x 8 untuk menyimpan program dan data. Menerima alamat 4 bit dari MAR dan operasi membaca dilakukan.
ARSITEKTUR SAP-1 PC MAR RAM IR CON A ADD B O D 4 8 Cp CLK CLR Ep 12 Bus W ARSITEKTUR SAP-1 IR < Instruction Register > Bagian unit kendali untuk mengambil sebuah instruksi dari memori. Isi lokasi memori yang ditunjuk ditempatkan pada bus W dan pada tepi positif, IR mulai pengisian Isi IR dibagi 2 Nibble : Nibble Atas : ke pengendali / Pengurut Nibble Bawah : dikirim ke bus W
ARSITEKTUR SAP-1 PC MAR RAM IR CON A ADD B O D Pengendali / Pengurut 4 8 Cp CLK CLR Ep 12 Bus W ARSITEKTUR SAP-1 Pengendali / Pengurut Sebelum komputer bekerja, CLR dikirim ke PC < direset ke 0000 > dan CLR ke IR (Instruksi terakhir dihapus) CLK dikirim ke semua register buffer untuk sinkronisasi operasi komp. CLK ke PC untuk menjamin PC telah menyiapkan alamat berikutnya. Mengeluarkan 12 bit sinyal kendali < control bus >
ARSITEKTUR SAP-1 PC A MAR ADD RAM B IR O CON D Accumulator Bus W Cp 8 ARSITEKTUR SAP-1 Accumulator Buffer yang menyimpan jawaban sementara selama beroperasi. Keluaran 2-state ke ADDER Keluaran 3-state ke Bus W Bila tinggi, maka terus menerus menggerakkan ADDER PC A CLK 4 CLK CLR 8 Ep 8 MAR ADD 4 8 CLK 4 4 8 RAM B 8 8 CLK 8 IR CLK O CLR 4 8 CLK 4 8 CLK CON CLK D CLR CLR 12
ARSITEKTUR SAP-1 PC A MAR ADD RAM B IR O CON D Penjumlah - Pengurang Bus W Cp 8 ARSITEKTUR SAP-1 Penjumlah - Pengurang SAP-1 mempunyai sebuah Penjumlah – Pengurang komplemen 2. Su rendah, keluaran: S=A+B Su tinggi, keluaran : S=A-B Rangkaian Penjumlah – Pengurang bersifat Asinkron < tidak diatur oleh clock > Bila tinggi, maka keluaran penjumlah-pengurang muncul pada bus W. PC A CLK 4 CLK CLR 8 Ep 8 MAR ADD 4 8 CLK 4 4 8 RAM B 8 8 CLK 8 IR CLK O CLR 4 8 CLK 4 8 CLK CON CLK D CLR CLR 12
ARSITEKTUR SAP-1 PC A MAR ADD RAM B IR O CON D Register B Bus W Cp 8 ARSITEKTUR SAP-1 Register B Buffer untuk operasi Aritmatik. Bila rendah, maka kata pada bus W diisikan ke register B pada tepipositif clock. Keluaran 2-state menjalankan penjumlah-pengurang. Register Keluaran Memindahkan jawaban pada Acc ke keluaran Bila tinggi dan rendah, maka akan memasukkan isi A pada register keluaran pada tepi positif clock PC A CLK 4 CLK CLR 8 Ep 8 MAR ADD 4 8 CLK 4 4 8 RAM B 8 8 CLK 8 IR CLK O CLR 4 8 CLK 4 8 CLK CON CLK D CLR CLR 12
ARSITEKTUR SAP-1 PC A MAR ADD RAM B IR O CON D Peraga Biner Bus W Cp 8 ARSITEKTUR SAP-1 Peraga Biner Barisan 8 LED untuk menampilkan isi dari bandar keluaran. PC A CLK 4 CLK CLR 8 Ep 8 MAR ADD 4 8 CLK 4 4 8 RAM B 8 8 CLK 8 IR CLK O CLR 4 8 CLK 4 8 CLK CON CLK D CLR CLR 12
Perangkat Instruksi < Instruction Set > Operasi dasar yang dapat dilakukan dengan perintah / program. LDA < Load Data Accumulator > Isi Akumulator dengan isi dari lokasi memori Kata didalam memori dapat diberikan simbol R0, R1, R2 Artinya : R0 untuk alamat 0H R1 untuk alamat 1H dst Contoh : LDA 8H ; /* Isikan Akumulator dengan isi alamat 8H */ Misal: R8=1111 0000, maka eksekusi perintah ini menghasilkan A =1111 0000
Perangkat Instruksi < Instruction Set > ADD Tambahkan isi lokasi memori pada Accumulator Contoh : ADD 9H ; /* Tambahkan Akumulator dengan isi alamat 9H */ Jika : A =0000 0010 ; /* Isi Akumulator */ R9 =0000 0011 ; /* isi memori 9H */ maka eksekusi perintah ini, membuat isi memori 9H < R9 > diisikan ke Register B B =0000 0011 Saat yang sama, penjumlah-pengurang menjumlahkan A dan B SUM=0000 0101
Perangkat Instruksi < Instruction Set > SUB Kurangkan isi lokasi memori dari Accumulator Contoh : SUB CH ; /* Kurangkan Akumulator dengan isi alamat CH */ Jika : A =0000 0101 ; /* Isi Akumulator */ Rc =0000 0100 ; /* isi memori CH */ maka eksekusi perintah ini, membuat isi memori CH < Rc > diisikan ke Register B B =0000 0100 Saat yang sama, penjumlah-pengurang mengurangkan A - B DIFF=0000 0001 ; /* Hasilnya disimpan dalam Akumulator */
Perangkat Instruksi < Instruction Set > OUT Memberitahu komputer SAP-1 untuk memindahkan isi Akumulator ke bandar keluaran Instruksi OUT tidak memerlukan alamat tertentu Instruksi OUT tidak berhubungan dengan data dalam memori HLT Memberitahu Komputer untuk menghentikan proses Akhir dari Program
Instruksi Rujukan Memori < Memory Reference Instruction > Instruksi yang memerlukan lokasi memori tertentu LDA, ADD dan SUB MNEMONIC Instruksi singkat (in English) untuk membantu ingatan Mudah diingat dan sesuai dengan operasi yang dilakukan
Program SAP-1 dalam bentuk Mnemonic Contoh : Program SAP-1 dalam bentuk Mnemonic ALAMAT MNEMONIC 0 H LDA 9 H 1 H ADD AH 2 H ADD BH 3 H SUB CH 4 H OUT 5 H HLT 6 H FFH 7 H FFH 8 H FFH 9 H 01H A H 02H B H 03H C H 04H
Pemrograman SAP-1 Untuk memasukkan instruksi dan data ke dalam memori SAP-1 harus mmenggunakan kode tertentu yang dimengerti komputer. Kode ini memberitahu operasi yang harus dilakukan Operation Code < Op-Code> Mnemonic Op-Code Contoh : LDA 0000 Alamat Instruksi ADD 0001 0 H LDA FH SUB 0010 1 H ADD EH OUT 1110 2 H OUT HLT 1111 3 H HLT
Pemrograman SAP-1 Contoh : Alamat Instruksi 0 H LDA FH = 0000 1111 1 H ADD EH = 0001 1110 2 H OUT = 1110 XXXX 3 H HLT = 1111 XXXX Medan Alamat Medan Instruksi
Pemrograman SAP-1 Assembly Language : tatacara penulisan program dalam mnemonic < Source Program > Machine Language : tatacara penulisan program dalam binary < Object Program > Contoh : Alamat Instruksi Alamat Instruksi 0 H LDA 9H 0000 0000 1001 1 H ADD AH 0001 0001 1010 2 H OUT 0010 1110 XXXX 3 H HLT 0011 1111 XXXX Source Program Object Program
Siklus Pengambilan < Fetch Cycle > Unit kendali membangkitkan kata kendali untuk mengambil dan melaksanakan setiap instruksi. Setiap instruksi melewati beberapa keadaan pewaktuan < timing-state> Tstate = Keadaan T = periode-periode waktu pada saat mana terjadi perubahan isi register Tstate menggunakan pencacah putar T = T6T5T4T3T2T1
Siklus Pengambilan < Fetch Cycle > Tstate menggunakan pencacah putar T = T6T5T4T3T2T1 Awal operasi kata T menunjukkan : T = 000 001 Pada pulsa detak berikutnya menghasilkan T = 000 010 T = 000 100 T = 001 000 T = 010 000 T = 100 000 Pencacah Putar CLK CLR T6T5T4T3T2T1
Siklus Pengambilan < Fetch Cycle > Diagram Pewaktuan Tepi positif CLK terjadi pada pertengahan setiap keadaan T CLK T1 T2 T3 T4 T5 T6
Siklus Pengambilan < Fetch Cycle > Keadaan alamat Keadaan T1 : keadaan alamat, krn alamat didalam PC dipindahkan ke MAR dan merupakan bit-bit aktif sedangkan semua bit kendali yang lain tidak aktif Keadaan Penambahan Keadaan T2 : keadaan penambahan < Increment State > karena hitungan pada PC ditingkatkan merupakan bit aktif pada keadaan T2 0 1 0 1 1 1 1 0 0 0 1 1
Siklus Pengambilan < Fetch Cycle > Keadaan Memori Keadaan T3 : Keadaan memori krn instruksi pada RAM dengan alamat yang ditunjuk dipindahkan dari memori ke register instruksi dan merupakan bit-bit aktif pada keadaan ini. 1 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 1
Siklus Pengambilan < Fetch Cycle > Keadaan T1 PC A Bus W Cp 8 Siklus Pengambilan < Fetch Cycle > Keadaan T1 PC A CLK 4 CLK CLR 8 Ep 8 MAR ADD 4 8 CLK 4 4 8 RAM B 8 8 CLK 8 IR CLK O CLR 4 8 CLK 4 8 CLK CON CLK D CLR CLR 12
Siklus Pengambilan < Fetch Cycle > Keadaan T2 PC A Bus W Cp 8 Siklus Pengambilan < Fetch Cycle > Keadaan T2 PC A CLK 4 CLK CLR 8 Ep 8 MAR ADD 4 8 CLK 4 4 8 RAM B 8 8 CLK 8 IR CLK O CLR 4 8 CLK 4 8 CLK CON CLK D CLR CLR 12
Siklus Pengambilan < Fetch Cycle > Keadaan T3 Bus W Cp 8 Siklus Pengambilan < Fetch Cycle > Keadaan T3 Ketika dan aktif, RAM siap mengirimkan data yang ditunjukkan oleh MAR ke bus W pada saat yang sama IR mengambilnya. PC A CLK 4 CLK CLR 8 Ep 8 MAR ADD 4 8 CLK 4 4 8 RAM B 8 8 CLK 8 IR CLK O CLR 4 8 CLK 4 8 CLK CON CLK D CLR CLR 12
Siklus Eksekusi < Execution Cycle > Siklus pelaksanaan terjadi pada T4, T5 dan T6 Transfer-transfer register yang terjadi bergantung pada Instruksi yang dieksekusi. Rutin LDA Jika IR telah diisi dengan LDA 9H, maka : IR = 0000 1001 Selama T4 : medan instruksi dikirim ke pengendali yang melakukan pendekodean dan medan alamat diisikan ke dalam MAR dan adalah bit aktif pada T4
Siklus Eksekusi < Execution Cycle > Selama T5 : data yang ditunjuk dalam memori akan dikirimkan ke dalam Akumulator. dan adalah bit aktif pada T5 T6 adalah keadaan tanpa operasi (No-Operation / NOP) Selama T6, semua register dalam keadaan tidak Aktif
Diagram Pewaktuan untuk Rutin LDA CLK
Siklus Eksekusi < Execution Cycle > Rutin ADD Jika akhir siklus Fetch IR berisi kata ADD AH, maka : IR = 0001 1010 Selama T4 : medan instruksi dikirim ke pengendali yang melakukan pendekodean dan medan alamat diisikan ke dalam MAR dan adalah bit aktif pada T4
Siklus Eksekusi < Execution Cycle > Selama T5 : data yang ditunjuk dalam RAM disiapkan untuk dikirimkan ke dalam Register B. Dan pengisian Register B terjadi pada tepi positif clock dan adalah bit aktif pada T5 Selama T6 : bagian Penjumlah-pengurang menyiapkan Akumulator. Dan pengisian hasil jumlahan ke Akumulator terjadi pada tepi positif clock. dan adalah bit aktif pada T6
Diagram Pewaktuan untuk Rutin ADD CLK
Diagram Pewaktuan untuk Rutin SUB CLK
Siklus Eksekusi < Execution Cycle > Rutin OUT Jika akhir siklus Fetch IR berisi kata OUT, maka : IR = 1110 XXXX Selama T4 : medan instruksi dikirim ke pengendali yang melakukan pendekodean dan Pengendali mengeluarkan kata kendali untuk memindahkan isi Akumulator ke register Keluaran. dan adalah bit aktif pada T4 Pada keadaan T5 dan T6 tidak terjadi Operasi (NOP)
Siklus Eksekusi < Execution Cycle > Rutin HLT Jika akhir siklus Fetch IR berisi kata HLT, maka : IR = 1111 XXXX Medan instruksi dikirim ke pengendali yang melakukan pendekodean dan Pengendali mengeluarkan kata kendali untuk menghentikan operasi komputer dengan menghentikan clock. Tidak membutuhkan rutin kendali.
Siklus Mesin dan Siklus Instruksi SAP-1 mempunyai Enam keadaan T (3 untuk Fetch dan 3 untuk Execute) Siklus Mesin < Mc > SAP-1 memerlukan 1 Siklus Mesin untuk mengambil dan melaksanakan setiap instruksi. SAP-1 dengan clock frekuensi KHz ekivalen dengan periode 1 ms, maka 1 Siklus Mesin memerlukan waktu 6 ms. Jumlah keadaan T yang diperlukan untuk mengambil dan melaksanakan sebuah instruksi disebut Siklus Instruksi (Instruction Cycle=Ic) SAP-1 Ic = Mc
MIKROPROGRAM SAP-1 Pengendali-pengurut mengeluarkan kata kendali yang masing-masing menimbulkan satu langkah kecil disebut MikroInstruksi MakroInstruksi adalah Instruksi-instruksi yang digunakan dalam pemrograman Assembly (LDA, ADD, SUB, dll) Makro Keadaan CON yang Aktif LDA T4 1A3H T5 2C3H T6 3E3H Tidak Ada
ROM KENDALI Matrik kendali menjadi sangat rumit untuk perangkat Instruksi yang lebih besar/banyak, sehingga memerlukan ratusan/ribuan gerbang logika Pengendali Secara H/W Kata kendali yang disimpan dalam format mikroprogram ke dalam ROM Pengendali Secara S/W Menyederhanakan rangkaian Pengendali-Pengurut.
ROM KENDALI Alamat Isi Rutin Bit Aktif 0H 5E3H Fetch 1H BE3H 2H 263H 3H 1A3H LDA 4H 2C3H 5H 3E3H Tidak Ada 6H 1A3H ADD 7H 2E1H 8H 3CFH
::. Terima Kasih .::