2.28k likes | 3.18k Views
Microprocessor. oleh Denda Dewatama. Pertemuan I Pengertian, Tujuan, Dasar Kerja Sistem Komputer, Dasar Kerja CPU, Sejarah Pertemuan II Review Sistem Analog Pertemuan III Digital Pertemuan IV Arsitektur CPU z80, Cara kerja CPU z80, Pin Pertemuan V Pewaktuan, Pensinyalan Pertemuan VI
E N D
Microprocessor oleh Denda Dewatama
Pertemuan I Pengertian, Tujuan, Dasar Kerja Sistem Komputer, Dasar Kerja CPU, Sejarah Pertemuan II Review Sistem Analog Pertemuan III Digital Pertemuan IV Arsitektur CPU z80, Cara kerja CPU z80, Pin Pertemuan V Pewaktuan, Pensinyalan Pertemuan VI Sistem Minimum z80 Pertemuan VII Set Instruksi z80 Pertemuan VIII Set Instruksi z80 Pertemuan IX Set Instruksi z80 Pertemuan X Pertemuan XI Interfacing dengan ROM, RAM dan Dekoder Alamat Pertemuan XII Pertemuan XIII Interfacing dengan Simple I/O, PPI, Dekoder Alamat Pertemuan XIV STACK Pertemuan XV Interupsi Pertemuan XVI Pokok Bahasan/Pertemuan3 Jam/Pertemuan
Pertemuan I • PengarahanKuliahMikroprosesor • SistemKomputer, SistemMikroprosesor • PengertianSistemKomputer, Kalkulator, Mikroprosesor, Prosesor, CPU, Mikroprosesor, Mikrokontroler • ArsitekturKomputer, CPU • Bagian-bagianKomputer, CPU • Pemrograman • Micro Stored Programming • Machine Language • RISC vs CISC • KecepatanOperasi, Kecepatan CPU (MIPS), Lebar Data, KapasitasMemori • SejarahSistemKomputer, CPU • Hubungan CPU denganbidangkeilmuanlain • Rangkaian Digital • Pemrograman Assembly
Pengantar Sistem Komputer • SistemKomputer • Istilah yang menunjukkan, suatuperangkat, entahdibuatdariapa yang dapatdigunakanuntukmelakukanpekerjaan/perhitungan/prosestertentu • Sistem (Micro) Processor • Biasanyadigunakan, jikasistemtersebutmasihmemperlihatkanadanyakomponen-komponendasarpembentuksistem yang utamanyaterdapatkomponenprosesormikro • Sistem Minimum • Mengacupadasistem, dimanadenganbeberapakomponen/bagiandasarpembentuksistem (biasanyaberupasistemMikroprosesor), sistemtersebutsudahdapatmelakukantugas/kegunaantertentu
Komponen Utama Komputer • CPU (Central Processing Unit) • Mengacupadasuatubagiandalamsuatusistem yang digunakansebagaipusatpengolah. Biasanyadapatterdiridariprosesorsajaatau/sampai sub-sistem yang cukupkompleks • Prosesor • Mengacupadanamasuatupiranti/komponen yang digunakanuntukpemrosesan • Prosesor Komponenutamauntukpemroses data • Mikroprosesor Prosesordengankapasitas/ukuran yang lebihkecil • ALU (Arithmetic Logic Unit) • BagiandalamdarisuatuProsesor, dimanadasar-dasaroperasiaritmatikadanlogikadilakukan
Bagian Perangkat/Sistem Komputer (PC atau lainnya) • Kotak komputer (kotak CPU), Sistem (Mikro) Prosesor • Kotak/Rangkaian pemroses • Media penyimpan • USB disk, HD Eksternal • I/O • Monitor, Printer • Inter-koneksi • Kabel USB, kabel Printer, kabel Monitor
Bagian Sistem (Mikro) Prosesor • CPU (apapun itu yang digunakan sebagai pusat pengolah), (Mikro) Prosesor • Z80, Pentium • Memori (segala sesuatu yang bersifat menyimpan) • CPU Cache • Primary Memory RAM/ROM • Secondary Internal HD, CD ROM • I/O (segala sesuatu untuk keperluan interaksi komputer dengan dunia luar) • Simple I/O PPI-8255, Z80-PIO • Analog ADC/DAC • Komunikasi UART, USART • Inter-koneksi (hubungan, bisa kabel atau lainnya, antara bagian dengan bagian lainnya) BUS
Storage Memory Register Kotak CPU Prosesor (CPU) ALU Inter koneksi BUS Internal BUS I/O I/O Pin Arsitektur Komputer Sistem Komputer Sistem (Mikro) Prosesor CPU/Prosesor
Pemrograman • Micro Stored Programming • Machine Language • RISC vs CISC • High Level Language • C Mid Level Language • BASIC, PASCAL, …
Micro Stored Programming • Pemrograman pada tingkat CPU/Prosesor • Masukan/data/program dalam bentuk kode mesin (1 data) yang masuk dalam CPU • Digunakan untuk menjalankan/mengendalikan internal CPU/Prosesor • Dalam bentuk sinyal-sinyal kendali • Implementasi pemrograman umumnya dalam bentuk H/W
Machine Language • Pemrograman pada tingkat sistem prosesor atau komputer • Program dalam bentuk rangkaian perintah-perintah dasar untuk CPU • Digunakan untuk menjalankan/mengendalikan sistem prosesor atau komputer • RISC vs CISC • Reduce vs Complex Instructions Set Computer
CISC • Orientasi pada kekayaan jumlah instruksi yang disediakan oleh CPU • Keuntungan • Memudahkan programmer (terutama program mesin/assembly) • Kekurangan • Besar, mahal, boros daya, panas
RISC • Orientasi pada kesederhanaan jumlah instruksi pada CPU • Keuntungan • Kecil, murah, hemat daya, tidak panas • Optimasi pada kecepatan eksekusi • 1 s/d 2 clock per instruksi • Kekurangan • Pemrograman kode mesin/assembly menjadi panjang
High Level Language • Orientasi pada kemudahan pemrograman • Disebut tingkat tinggi karena dekat dengan bahasa manusia • Mudah pemrograman • Tidak terlalu bergantung pada mesin/OS • Platform independent • Ada sekian banyak bentuk pemrograman dengan beragam kegunaan dan kemampuan
Mid Level Language • Orientasi pada kemudahan pemrograman tetapi masih menjaga sisi ukuran kode mesin dan kecepatan program • Optimasi penggunaan kode program • Optimasi kecepatan • Masih menggunakan beberapa pendekatan mesin • Register, Port, Memory langsung • Dirancang dalam bentuk pemrograman yang kompak
Ukuran Kinerja Sistem Komputer • Kecepatan Operasi • menentukan berapa banyak instruksi yang dapat diproses per satuan waktu (MIPS) • Clock ? • Kapasitas • Menentukan berapa banyak data yang dapat ditampung untuk dilakukan pengolahan • Lebar Data • Menentukan seberapa besar suatu data yang dapat diproses dengan sekali proses
Hubungan CPU dengan bidang lain • Teknik Digital • Rangkaian Elektronika • Assembly • Elektronika Industri • Elektronika Terapan
Review Sistem Digital • SistemBilangan • KodeBiner, Octal, Hexadecimal, Decimal • Complement 1’s complement, 2’s complement • Operasibilangan • Sinyal Digital • Mengapasistem Digital menggunakanKodeBiner • Transistor sebagai switching • Parameter sinyal digital • Aturanpensinyalandalamsistem Digital/Mikroprosesor • Komponen Digital • Bahan TTL, CMOS, DTL, DCL • Perbedaan, penggunaan • Output State Totem Pole, Open Collector, Tri State, Level tegangan • Input State Level tegangan, Pull-Up, Pull-Down • Rangkaiankombinasional, Register, Memori, dll
Review Sistem Digital • Sistem Digital dapat dibagi menjadi • Rangkaian Kombinasional • Rangkaian yang bekerja berdasarkan hubungan input/output (output merupakan fungsi input) • Sekuensial • Rangkaian yang bekerja berdasarkan urut-urutan kegiatan tertentu (termasuk juga sebagai fungsi dari input) • Rangkaian Sekuensial dapat dibagi lagi menjadi • Tak-Sinkron (bekerja tidak berbasis clock untuk semua bagian secara bersama-sama) • Sinkron (menggunakan clock untuk menyerempakkan jalan kerjanya)
Review Sistem Digital • Output State pada rangkaian digital • Totem Pole • Memiliki dua kondisi, H dan L • Banyak digunakan pada rangkaian digital pada umumnya • Open Collector • Memiliki dua kondisi, Open (Z) dan L • Banyak digunakan untuk driver, konversi tegangan H (interface antar komponen digital) • 3-State • Memiliki tiga kondisi, H, L, dan Open (Z) • Banyak digunakan untuk sistem yang menerapkan output parallel (banyak output dijadikan satu sekaligus), atau BUS (pada sistem prosesor)
Review Sistem Digital • Input State • Input state sangat dipengaruhi oleh bahan dari komponen digital • TTL • input TTL memiliki impedansi masukan yang rendah, karena input diambilkan dari kaki Emitor dari Transistor sehingga memerlukan arus yang cukup besar (sekitar 1mA) • CMOS • input CMOS memiliki impedansi yang sangat tinggi, sehingga hampir-hampir dianggap tidak memerlukan arus input • Floating-Input • Pada TTL, floating input berarti HIGH. Sedangkan pada CMOS dilarang terjadi floating input. • Meskipun sebenarnya, dari bahan apapun, floating input tetap dilarang • Pull-Up, Pull-Down • Untuk mencegah terjadinya floating input, diperlukan Pull-Up/Down
Review Sistem Digital • Level Tegangan • Input • TTL • L = 0 sampai 0.8 • H = 2 sampai 5 • CMOS • L = 0 sampai 40% VCC • H = 60% sampai 100% VCC • Output • TTL • L = 0.2 • H = 4.1 • CMOS • L = 0 • H = VCC
Sistem Bilangan • Kode bilangan adalah representasi dari suatu bilangan (angka) • Jenis Kode Bilangan • Binary • Octal • Decimal • Hexadecimal • Konversi Bilangan • Suatu cara untuk mengubah representasi bilangan (kode bilangan)
Pertemuan IIIArsitektur CPU Z80 • Pengertian CPU • Bagian-bagian CPU • Register • ALU • Control Unit • Johnson Counter • Rangkaian Kombinasional (Decoder Instruksi) • Register Instruksi • System Bus • Cara kerja CPU • Penjelasan Pin • Sinyal-sinyal Kontrol Bagian Fetch • Sinyal-sinyal Kontrol Bagian Execution • Micro stored programming • Contoh Eksekusi perintah penjumlahan (LD A,02H ADD 32H LD B,A) • System Bus • Pin • Pengertian Bus • Data Bus, Address Bus
Arsitektur CPU • Bagian-bagian CPU • ALU, Register, Accumulator, Control Unit, Timing, Decoder Instruksi, Register Instruksi • System/Internal BUS • Cara kerja CPU • Sinyal Kontrol Siklus Fetch • Sinyal Kontrol Siklus Eksekusi
Jenis-jenis Register • 8 bit • A, B, C, D, E, H, L, F, I, R • 16 bit (pasangan 8 bit) • AF, BC, DE, HL • 16 bit • PC, SP, IX, IY, AF’, BC’, DE’, HL’
Prinsip Dasar CPU VCC GND CPU Address Bus Control Bus Data Bus Clock Reset Bi-directional
Diagram Blok Arsitektur Z80 8-Bit Bus Kontrol Data Bus Interval Data Bus Instruction Registers ALU Instruction Decode & Kontrol CPU (Timing) Register- register CPU 13 buah Sinyal-sinyal Kontrol CPU dan Sistem (8 input & 5 output) Kontrol CPU (CPU Timing) Kontrol Alamat 16-Bit Bus Alamat +5V GND CLK
Contoh Ilustrasi Kerja CPU • Anggap, ada program yang tersimpan pada Memory Alamat Data 0000 3E 0001 8B 0002 D3 0003 83 0004 3E 0005 55 0006 D3 0007 80 0008 76 CPU Z80 Memory PPI 8255 Port A Port B Port C Data BUS Address BUS Control BUS RD – WR - CS RD – WR - CS VCC – CLOCK - RESET
Pertemuan IVDasar Pemrograman Assembly • Istilah dalam pemrograman Assembly • Mode Pengalamatan • Immediate, Register, Langsung, Tak Langsung, Indeks • Pembagian Instruksi • Transfer, Aritmatik dan Logic, Percabangan, Pemanggilan, Input-Output • Contoh-contoh
Istilah dalam pemrograman Assembly • Memory, I/O, port, alamat, data, register, instruksi, mnemonic, opcode, operand, komentar • Kode mesin, bahasa assembly • Assembler, Compiler • Style penulisan Program Assembly, Kode mesin, Listing program
Register • Berada dalam CPU (Mikroprosesor) • Digunakan untuk menyimpan data selama proses/program/sub program berjalan • Bersifat sementara • Umumnya selama dalam sub program • Cepat • Memerlukan kode instruksi yang pendek • Memiliki/menggunakan nama tertentu
Ilustrasi Beberapa Perintah • LD A,B 78 (M1, 4T) • LD A,20H 3E 20 (M1-M2, 7T) • LD A,(8000H) 3A 00 80 (M1-M2-M3-M4, 13T) • LD A,(HL) 7E (M1-M2, 7T)
Memory • Berada di luar CPU, harus ada • CPU hanya dapat memproses dari memory • Digunakan untuk menyimpan program dan data • Bersifat permanen atau sementara • Jumlah atau ukurannya besar/banyak, jauh lebih banyak dari register • Lebih lambat dari CPU atau register • Memerlukan kode instruksi yang lebih panjang • Memiliki/menggunakan data/alamat memory
I/O • Berada di luar CPU • Harus ada kalau ingin berhubungan antara sistem mikro dengan dunia luar • Tidak bersifat menyimpan data, hanya melewatkan data • Khusus untuk port output, terkadang dilengkapi dengan fungsi latch • Kapasitas terbatas (lebih kecil dari memory) • Lebih lambat dari CPU, register, memory • Menggunakan alamat port
Alamat • Register dinyatakan dengan nama, sedangkan memory dan port dinyatakan dengan alamat • Alamat menyatakan • Posisi dari data yang disimpan pada memory • Saluran dari port dimana data akan disalurkan • Untuk z80 • Alamat memory berkisar 0000H s/d FFFFH • Alamat port berkisar 00H s/d FFH
Data • Menyatakan sesuatu yang disimpan/diproses/disalurkan, baik berupa suatu nilai atau kode program • Dapat disimpan di register atau memory • Terkadang port output juga bisa menyimpan • Dalam z80, data yang diproses dalam bentuk satuan 8 bit (1 byte) dengan nilai 0 s/d 255 • Ada proses/penyimpanan yang melibatkan data 16 bit
Kode Mesin • Program yang umumnya ditulis dalam bentuk kode Hexa • Merupakan kode yang dimengerti oleh mesin (CPU) • Terdiri dari alamat dan kode instruksi (data-data berupa program yang tersimpan di memory) • Contoh : 0100 3E 20 0102 DD 21 8000 Alamat Kode Mesin
Opcode • Suatu kata atau tulisan atau simbol untuk menggantikan satu instruksi kode mesin • Digunakan dalam pemrograman assembly • Contoh : • LD Load (isi, transfer, simpan, ambil) • ADD Jumlahkan • SUB Kurangkan
Operand • Sesuatu yang dioperasikan • Dapat berupa register, data atau alamat memory atau I/O • Contoh : • A, B register dengan register • B, 20H register dengan data 8 bit • A, (2000H) register dengan alamat 16 bit
Catatan Operand • Ada empat jenis cara menuliskan operand • Data langsung (8 bit atau 16 bit atau label) • 80H, 2000H, CW, DataMotor • Register (8 bit atau 16 bit) • A, B, C, BC, DE, HL, IX • Alamat langsung (alamat 8 bit, 16 bit atau label) • (80H), (8000H), (2000H), (Buffer) • Alamat dari register (alamat tidak langsung) • (C), (HL), (IX)
Arah Operand • LD A,B ; A B, atau A = B • Salin data dari B ke A • ADD A,B ; A A + B, A = A + B • Jumlahkan A dengan B dan simpan di A
Mana yang Salah ? • LD A,C • LD A,HL • LD A,(DE) • LD BC,0 • LD DE,8000H • LD A,2000H • LD HL,(8000H) • LD A,(8000H)
Mnemonic • Menyatakan satu perintah tunggal, termasuk format data atau sesuatu yang dioperasikan oleh data tersebut • Terdiri dari opcode dan operand (data, register, memory atau port) • Contoh : • LD r, n • ADD A, r • LD r, r’
Singkatan pada Operand • r register 8 bit • n data 8 bit • nn data 16 bit • d displacement (pergeseran 8 bit)
Instruksi • Menyatakan satu perintah/program tunggal • Terdiri dari Opcode dan Operand • Contoh : • LD A,30H Masukkan 30H ke A • LD B,A Masukkan/salin A ke B • IN A,(81H) Baca port 81H ke A
Label • Suatu tulisan yang digunakan untuk menunjukkan posisi dari suatu instruksi • Digunakan untuk menggantikan alamat pada penulisan bahasa assembly • Terkadang label dapat digunakan sebagai data • Nilai sesungguhnya dari label tidak dapat diketahui sebelum semua program selesai dan diterjemahkan ke dalam kode mesin • Ditandai dengan titik dua setelah nama label
Contoh Label Start: LD B,20H LD HL,Tabel JP (HL) … Tabel: LD A,10H ADD A,B … JP Start
Komentar • Suatu tulisan selain instruksi yang digunakan untuk menjelaskan program • Seharusnya selalu ada, mengingat pemrograman assembly lebih sulit untuk dibaca • Sebagai dokumentasi • Harus diawali dengan titik koma (;) • Contoh : • LD A,32 ; Siapkan data SPASI ke Reg. A • CALL LCD ; Tampilkan ke LCD