::. MATA KULIAH MIKROPROSESSOR .:: [ :: SAP - 1 :: TEORI, IMPLEMENTASI & APLIKASI ] 1 ::. MATA KULIAH MIKROPROSESSOR .:: 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. 2 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 MAR CE RAM L I CLK CLR IR ADD SU EU 8 8 B 8 8 4 O LB CLK LO CLK 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 4 EI 8 8 4 CLK 4 4 LM ARSITEKTUR SAP-1 8 CLK CLR CLR 12 CON CLK CP EP LM CE LI EI LA E A SU EU LB LO D 0000 Instruksi pertama 0001 Instruksi kedua 0010 Instruksi ketiga dst 3 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 CE RAM LI CLK CLR 8 IR ADD 8 8 B 8 8 4 O 4 EI 4 8 CLK CLK CLR CLR 12 CON SU EU 8 4 CLK MAR 4 LM CP EP LM CE LI EI LA E A SU EU LB LO D LB ARSITEKTUR SAP-1 MAR < Memory Address Register > Register yang menyimpan sementara alamat memori untuk dikirimkan ke RAM CLK LO CLK •RAM < Memory > Random Access – TTL statik 16 x 8 untuk menyimpan program dan data. – Menerima alamat 4 bit dari MAR dan operasi membaca dilakukan. 4 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 MAR CE RAM L I CLK CLR IR ADD 8 8 B 8 8 4 O 4 EI 8 8 CLK CLK CLR CLR D LB CLK LO CLK 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 12 CON SU EU 8 4 CLK 4 4 LM ARSITEKTUR SAP-1 CP EP LM CE LI EI LA E A SU EU LB LO 5 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 MAR CE RAM L I CLK CLR IR ADD 8 8 B 8 8 4 O 4 EI 8 8 CLK CLK CLR CLR D LB CLK LO CLK 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 > 12 CON SU EU 8 4 CLK 4 4 LM ARSITEKTUR SAP-1 CP EP LM CE LI EI LA E A SU EU LB LO 6 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 MAR CE RAM L I CLK CLR IR ADD 8 8 B 8 8 4 O 4 EI 8 SU EU 8 4 CLK 4 4 LM LB CLK LO CLK ARSITEKTUR SAP-1 Accumulator Buffer yang menyimpan jawaban sementara selama beroperasi. Keluaran 2-state ke ADDER Keluaran 3-state ke Bus W Bila E tinggi, maka terus menerus menggerakkan ADDER A 8 CLK CLR CLR D 12 CON CLK CP EP LM CE LI EI LA E A SU EU LB LO 7 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 MAR CE RAM L I CLK CLR IR ADD 8 8 B 8 8 4 O 4 EI 8 8 CLK CLK CLR CLR D LB CLK LO CLK 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 E tinggi, maka keluaran penjumlah-pengurang muncul pada bus W. U 12 CON SU EU 8 4 CLK 4 4 LM ARSITEKTUR SAP-1 CP EP LM CE LI EI LA E A SU EU LB LO 8 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 MAR CE RAM L I CLK CLR IR ADD 8 8 B 8 8 4 O 4 EI 8 8 CLK CLK CLR CLR 12 CON SU EU 8 4 CLK 4 4 LM CP EP LM CE LI EI LA E A SU EU LB LO D LB CLK ARSITEKTUR SAP-1 Register B Buffer untuk operasi Aritmatik. Bila LB rendah, maka kata pada bus W diisikan ke register B pada tepipositif clock. Keluaran 2-state menjalankan penjumlah-pengurang. LO CLK Register Keluaran Memindahkan jawaban pada Acc ke keluaran Bila E A tinggi dan LO rendah, maka akan memasukkan isi A pada register keluaran9 pada tepi positif clock ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 MAR CE RAM L I CLK CLR IR ADD SU EU 8 8 B 8 8 4 O Peraga Biner Barisan 8 LED untuk menampilkan isi dari bandar keluaran. LB CLK LO CLK 4 EI 8 8 4 CLK 4 4 LM ARSITEKTUR SAP-1 8 CLK CLR CLR D 12 CON CLK CP EP LM CE LI EI LA E A SU EU LB LO 10 ::. MATA KULIAH MIKROPROSESSOR .:: 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 11 ::. MATA KULIAH MIKROPROSESSOR .:: 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 12 ::. MATA KULIAH MIKROPROSESSOR .:: 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 */ 13 ::. MATA KULIAH MIKROPROSESSOR .:: 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 14 ::. MATA KULIAH MIKROPROSESSOR .:: 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 15 ::. MATA KULIAH MIKROPROSESSOR .:: Contoh : Program SAP-1 dalam bentuk Mnemonic ALAMAT MNEMONIC 0H LDA 9 H 1H ADD AH 2H ADD BH 3H SUB CH 4H OUT 5H HLT 6H FFH 7H FFH 8H FFH 9H 01H AH 02H BH 03H CH 04H 16 ::. MATA KULIAH MIKROPROSESSOR .:: 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 0H LDA FH SUB 0010 1H ADD EH OUT 1110 2H OUT HLT 1111 3H HLT 17 ::. MATA KULIAH MIKROPROSESSOR .:: Pemrograman SAP-1 Contoh : Alamat Instruksi 0H LDA FH 1H ADD EH 2H OUT 3H HLT = 0000 1111 = 0001 1110 = 1110 XXXX = 1111 XXXX Medan Alamat Medan Instruksi 18 ::. MATA KULIAH MIKROPROSESSOR .:: 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 0H LDA 9H 0000 0000 1001 1H ADD AH 0001 0001 1010 2H OUT 0010 1110 XXXX 3H HLT 0011 1111 XXXX 19 Source Program Object Program ::. MATA KULIAH MIKROPROSESSOR .:: 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 20 ::. MATA KULIAH MIKROPROSESSOR .:: 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 Pencacah T = 001 000 Putar T = 010 000 T = 100 000 CLK CLR T6T5T4T3T2T1 21 ::. MATA KULIAH MIKROPROSESSOR .:: Siklus Pengambilan < Fetch Cycle > Diagram Pewaktuan CLK T1 T2 T3 T4 T5 T6 Tepi positif CLK terjadi pada pertengahan setiap keadaan T 22 ::. MATA KULIAH MIKROPROSESSOR .:: Siklus Pengambilan < Fetch Cycle > Keadaan alamat Keadaan T1 : keadaan alamat, krn alamat didalam PC dipindahkan ke MAR E dan L merupakan bit-bit aktif sedangkan semua bit kendali yang lain tidak aktif p M CON CP EP LM CE LI EI LA E A SU EU LB LO 0101 1110 0011 Keadaan Penambahan Keadaan T2 : keadaan penambahan < Increment karena hitungan pada PC ditingkatkan C merupakan bit aktif pada keadaan T2 State > p 23 ::. MATA KULIAH MIKROPROSESSOR .:: Siklus Pengambilan < Fetch Cycle > CON CP EP LM CE LI EI LA E A SU EU LB LO 1011 1110 0011 Keadaan Memori Keadaan T3 : Keadaan memori krn instruksi pada RAM dengan alamat yang ditunjuk dipindahkan dari memori ke register instruksi C dan L merupakan bit-bit aktif pada keadaan ini. E I CON CP EP LM CE LI EI LA E A SU EU LB LO 0010 0110 0011 24 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 CE RAM L I CLK CLR 8 IR ADD SU EU 8 8 B 8 8 4 O LB CLK LO CLK 4 EI 4 8 4 CLK MAR 4 LM Siklus Pengambilan < Fetch Cycle > Keadaan T1 8 CLK CLR CLR D 12 CON CLK CP EP LM CE LI EI LA E A SU EU LB LO 25 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 CE RAM L I CLK CLR 8 IR ADD SU EU 8 8 B 8 8 4 O LB CLK LO CLK 4 EI 4 8 4 CLK MAR 4 LM Siklus Pengambilan < Fetch Cycle > Keadaan T2 8 CLK CLR CLR D 12 CON CLK CP EP LM CE LI EI LA E A SU EU LB LO 26 ::. MATA KULIAH MIKROPROSESSOR .:: Bus W Cp CLK CLR Ep PC 8 4 8 L A A CLK EA 8 LM CLK MAR 4 8 ADD SU EU Siklus Pengambilan < Fetch Cycle > Keadaan T3 Ketika C dan L aktif, RAM siap mengirimkan data yang ditunjukkan oleh MAR ke bus W pada saat yang sama IR mengambilnya. CE 4 RAM L I CLK CLR 8 8 B 8 8 4 O 4 EI IR 8 4 E LB CLK LO CLK I 8 CLK CLR CLR D 12 CON CLK CP EP LM CE LI EI LA E A SU EU LB LO 27 ::. MATA KULIAH MIKROPROSESSOR .:: 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 28 E dan L adalah bit aktif pada T4 I M ::. MATA KULIAH MIKROPROSESSOR .:: Siklus Eksekusi < Execution Cycle > Selama T5 : data yang ditunjuk dalam memori akan dikirimkan ke dalam Akumulator. C dan L adalah bit aktif pada T5 T6 adalah keadaan tanpa operasi (No-Operation / NOP) Selama T6, semua register dalam keadaan tidak Aktif E A 29 ::. MATA KULIAH MIKROPROSESSOR .:: Diagram Pewaktuan untuk Rutin LDA T1 T2 T3 T4 T5 T6 CLK Ep LM Cp CE LI EI LA 30 ::. MATA KULIAH MIKROPROSESSOR .:: 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 E dan L adalah bit aktif pada T4 I M 31 ::. MATA KULIAH MIKROPROSESSOR .:: 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 C dan L adalah bit aktif pada T5 Selama T6 : bagian Penjumlah-pengurang menyiapkan Akumulator. Dan pengisian hasil jumlahan ke Akumulator terjadi pada tepi positif clock. E dan L adalah bit aktif pada T6 E U B A 32 ::. MATA KULIAH MIKROPROSESSOR .:: Diagram Pewaktuan untuk Rutin ADD T1 T2 T3 T4 T5 T6 CLK Ep LM Cp CE LI EI LB EU LA 33 ::. MATA KULIAH MIKROPROSESSOR .:: Diagram Pewaktuan untuk Rutin SUB T1 T2 T3 T4 T5 T6 CLK Ep LM Cp CE LI EI LB SU LA 34 ::. MATA KULIAH MIKROPROSESSOR .:: 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. E dan L adalah bit aktif pada T4 Pada keadaan T5 dan T6 tidak terjadi Operasi (NOP) A O 35 ::. MATA KULIAH MIKROPROSESSOR .:: 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. 36 ::. MATA KULIAH MIKROPROSESSOR .:: 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 37 C L AE ::. MATA KULIAH MIKROPROSESSOR .:: 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 L E T5 2C3H C L T6 3E3H Tidak Ada M I E A 38 C L AE ::. MATA KULIAH MIKROPROSESSOR .:: 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. 39 C L AE ::. MATA KULIAH MIKROPROSESSOR .:: ROM KENDALI Alamat Isi 0H 5E3H 1H BE3H 2H 263H 3H 1A3H 4H 2C3H 5H 3E3H 6H 1A3H 7H 2E1H 8H 3CFH Rutin Fetch Bit Aktif Ep LM Cp LDA CE LI LM EI CE LA Tidak Ada ADD LM EI CE LB LA EU 40 ::. MATA KULIAH MIKROPROSESSOR .:: ::. Terima Kasih .:: 41