SISTEM DASAR MIKROKOMPUTER

|| || || 2 komentar


A. Arsitektur Dasar Komputer
Arsitektur komputer berhubungan dengan perancangan blok-blok dasar (memory, processor & input/output device) dan bagaimana interaksi antar blok tersebut.
Arsitek komputer memilih dan membangun interkoneksi antar blok dengan mempertimbangkan, antara lain : kecepatan, harga dan kehandalannya. Komputer berarsitektur Von Neuman terdiri dari 3 komponen utama yaitu : Central Processing Unit (CPU),  memory, dan I/O device (piranti masukan/keluaran).

Arsitektur von Neumann
Arsitektur Von Neumann

Arsitektur Von Neumann
Arsitektur von Neumann (atau Mesin Von Neumann) adalah arsitektur yang diciptakan oleh John von Neumann (1903-1957). Arsitektur ini digunakan oleh hampir semua komputer saat ini.
Konsep arsitektur von Neumann ini adalah pembagian komputer menjadi 2 bagian secara garis besar: memori dan prosesor, di mana data terletak di dalam memori, dan prosesor adalah yang memanipulasi data.






Gambar 1. Arsitektur  Dasar Komputer Van Neuman
Keterangan :
  1. CPU, adalah otak dari sistem komputer dan berfungsi mengorganisasikan semua operasi yang terjadi di dalam komputer. Operasi tersebut meliputi operasi perpindahan/transfer data, operasi aritmatika & logika, serta operasi pengendalian I/O device serta seluruh sumber daya (resources) yang dikendalikan oleh CPU.
  2. Memory, berfungsi sebagai penyimpan data maupun instruksi-instruksi program. Memori terdapat 2 jenis, yaitu:
a.    RAM, untuk menyimpan data dan instruksi-instruksi program yang sedang dijalankan oleh komputer dan bersifat sementara (temporary), yaitu data/instruksi akan hilang jika catu daya dimatikan.
b.    ROM, untuk menyimpan instruksi-instruksi initial boot up (yaitu instruksi-instruksi yang dijalankan ketika komputer baru dihidupkan). Instruksi-instruksi tersebut berfungsi untuk mempersiapkan komputer agar dapat digunakan sebagaimana mestinya. Instruksi-instruksi tersebut bersifat permanent.
BIOS
BIOS, singkatan dari Basic Input Output System, dalam sistem komputer IBM PC atau kompatibelnya (komputer yang berbasis keluarga prosesor Intel x86) merujuk kepada kumpulan rutin perangkat lunak yang mampu melakukan hal-hal berikut:
1.      Inisialisasi (penyalaan) serta pengujian terhadap perangkat keras (dalam proses yang disebut dengan Power On Self Test, POST)
2.      Memuat dan menjalankan sistem operasi
3.      Mengatur beberapa konfigurasi dasar dalam komputer (tanggal, waktu, konfigurasi media penyimpanan, konfigurasi proses booting, kinerja, serta kestabilan komputer)
4.      Membantu sistem operasi dan aplikasi dalam proses pengaturan perangkat keras dengan menggunakan BIOS Runtime Services.
BIOS menyediakan antarmuka komunikasi tingkat rendah, dan dapat mengendalikan banyak jenis perangkat keras (seperti keyboard). Karena kedekatannya dengan perangkat keras, BIOS umumnya dibuat dengan menggunakan bahasa rakitan (assembly) yang digunakan oleh mesin yang bersangkutan.
Istilah BIOS pertama kali muncul dalam sistem operasi CP/M, yang merupakan bagian dari CP/M yang dimuat pada saat proses booting dimulai yang berhadapan secara langsung dengan perangkat keras (beberapa mesin yang menjalankan CP/M memiliki boot loader sederhana dalam ROM). Kebanyakan versi DOS memiliki sebuah berkas yang disebut "IBMBIO.COM" (IBM PC-DOS) atau "IO.SYS" (MS-DOS) yang berfungsi sama seperti halnya CP/M disk BIOS.
Kata BIOS juga dapat diartikan sebagai "kehidupan" dalam tulisan Yunani (Βίος).
Komponen BIOS
Dalam BIOS, terdapat beberapa komponen dasar, yakni sebagai berikut:
Contoh dari CMOS Setup (Phoenix BIOS)

Contoh dari CMOS Setup (Phoenix BIOS)
*          Program BIOS Setup yang memungkinkan pengguna untuk mengubah konfigurasi komputer (tipe harddisk, disk drive, manajemen daya listrik, kinerja komputer, dll) sesuai keinginan. BIOS menyembunyikan detail-detail cara pengaksesan perangkat keras yang cukup rumit apabila dilakukan secara langsung.
Driver untuk perangkat-perangkat keras dasar, seperti video adapter, perangkat input, prosesor, dan beberapa perangkat lainnya untuk sistem operasi dasar 16-bit (dalam hal ini adalah keluarga DOS).
*          Program bootstraper utama yang memungkinkan komputer dapat melakukan proses booting ke dalam sistem operasi yang terpasang.
ROM dan NVRAM
BIOS juga sering disebut sebagai ROM BIOS karena pada awalnya BIOS disimpan dalam chip memori hanya baca (ROM) dalam motherboard. Mengapa disimpan di dalam ROM, adalah agar BIOS dapat dieksekusi pada waktu komputer dinyalakan, tanpa harus menunggu untuk menyalakan perangkat media penyipanan terlebih dahulu (yang memakan waktu lama). BIOS dalam komputer PC modern disimpan dalam chip ROM yang dapat ditulisi ulang secara elektrik atau Flash ROM. Karena itulah, sekarang sebutan Flash BIOS lebih populer dibandingkan dengan ROM BIOS. Berikut ini adalah beberapa chip ROM yang digunakan sebagai tempat penyimpanan BIOS.
Tipe ROM
Cara penulisan
Dapat dihapus
Jenis BIOS
Tidak
ROM BIOS
PROM Writer
Tidak
ROM BIOS
EPROM/PROM Writer
Ya, dengan menggunakan EPROM Rewriter atau menyinarinya dengan sinar ultraviolet tepat pada lubang kuarsa bening.
ROM BIOS
EEPROM/EPROM/PROM Writer
Ya, dengan menggunakan EEPROM Rewriter, atau secara langsung secara elektrik dari papan sirkuit dengan menggunakan perangkat lunak EEPROM Programmer.
ROM BIOS
EEPROM Writer atau software yang dapat menulisi Flash ROM
Ya, dengan menggunakan EEPROM Writer, atau langsung secara elektrik dari papan sirkuit dengan menggunakan perangkat lunak Flash BIOS Programmer.
Flash BIOS
Tampilan yang dikeluarkan oleh BIOS saat NVRAM mengalami kerusakan atau saat baterai litium CR-2032 habis dayanya atau dicabut dari slotnya

Tampilan yang dikeluarkan oleh BIOS saat NVRAM mengalami kerusakan atau saat baterai litium CR-2032 habis dayanya atau dicabut dari slotnya
Meskipun BIOS disimpan dalam memori hanya baca, konfigurasi BIOS tidak disimpan dalam ROM, (hal ini disebabkan oleh sifat ROM yang statis) melainkan sebuah chip terpisah yang disebut sebagai Real-time clock (RTC), yang berupa sebuah Non-Volatile Random Access Memory (NVRAM). NVRAM juga sering disebut sebagai Complimentary Metal-Oxide Random Access Memory (CMOS RAM), karena menggunakan metode pembuatan CMOS. Karena menggunakan metode pembuatan CMOS, NVRAM membutuhkan daya yang sangat kecil agar dapat bekerja. Meskipun disebut non-volatile, NVRAM sebenarnya merupakan sebuah chip yang volatile, sehingga data yang tersimpan di dalamnya dapat terhapus dengan mudah jika daya listrik yang menghidupinya terputus. Oleh karena itu, NVRAM "dihidupi" oleh sebuah baterai (mirip baterai kalkulator atau jam) dengan bahan Litium dengan seri CR-2032. Sebuah baterai Litium CR-2032 dapat menghidupi NVRAM selama tiga hingga lima tahun. Jika daya dalam baterai habis, atau daya yang disuplainya terputus (akibat dicabut dari slotnya), maka semua konfigurasi akan dikembalikan ke kondisi standar, sesuai ketika BIOS tersebut diprogram oleh pabrikan. BIOS umumnya memberikan laporan CMOS Checksum Error atau NVRAM Checksum Error.
Pembuat BIOS
Saat ini, ada beberapa perusahaan penyedia BIOS, yakni sebagai berikut:
*       Award Software, yang meluncurkan Award BIOS, Award Modular BIOS, dan Award Medallion BIOS
*       Phoenix Technologies, yang meluncurkan Phoenix BIOS, dan setelah melakukan merjer dengan Award Software, meluncurkan Phoenix-Award BIOS.
*       American Megatrends Incorporated (AMI) yang merilis AMI BIOS, dan AMI WinBIOS.
*       Microids Research
*       Para OEM (Original Equipment Manufacturer), seperti Hewlett-Packard/Compaq, IBM/Lenovo, Dell Computer, dan OEM-OEM lainnya.
Update BIOS
BIOS kadang-kadang juga disebut sebagai firmware karena merupakan sebuah perangkat lunak yang disimpan dalam media penyimpanan yang bersifat hanya-baca. Hal ini benar adanya, karena memang sebelum tahun 1995, BIOS selalu disimpan dalam media penyimpanan yang tidak dapat diubah. Seiring dengan semakin kompleksnya sebuah sistem komputer , maka BIOS pun kemudian disimpan dalam EEPROM atau Flash memory yang dapat diubah oleh pengguna, sehingga dapat di-upgrade (untuk mendukung prosesor yang baru muncul, adanya bug yang mengganggu kinerja atau alasan lainnya). Meskipun demikian, proses update BIOS yang tidak benar (akibat dieksekusi secara tidak benar atau ada hal yang mengganggu saat proses upgrade dilaksanakan) dapat mengakibatkan motherboard mati mendadak, sehingga komputer pun tidak dapat digunakan karena perangkat yang mampu melakukan proses booting (BIOS) sudah tidak ada atau mengalami kerusakan.
Oleh karena itu, untuk menghindari kerusakan (korupsi) terhadap BIOS, beberapa motherboard memiliki BIOS cadangan . Selain itu, kebanyakan BIOS juga memiliki sebuah region dalam EEPROM/Flash memory yang tidak dapat di-upgrade, yang disebut sebagai "Boot Block". Boot block selalu dieksekusi pertama kali pada saat komputer dinyalakan. Kode ini dapat melakukan verifikasi terhadap BIOS, bahwa kode BIOS keseluruhan masih berada dalam keadaan baik-baik saja (dengan menggunakan metode pengecekan kesalahan seperti checksum, CRC, hash dan lainnya) sebelum mengeksekusi BIOS. Jika boot block mendeteksi bahwa BIOS ternyata rusak, maka boot block akan meminta pengguna untuk melakukan pemrograman BIOS kembali dengan menggunakan floppy disk yang berisi program flash memory programmer dan image BIOS yang sama atau lebih baik. Pembuat motherboard sering merilis update BIOS untuk menambah kemampuan produk mereka atau menghilangkan beberapa bug yang mengganggu.
Masa depan BIOS
BIOS telah lama digunakan dalam industri PC, yakni semenjak IBM PC dirilis pada tanggal 21 Agustus 1981. Karena BIOS masih berjalan pada modus real (real-mode) yang lambat, maka para desainer PC bersepakat untuk mengganti BIOS dengan yang lebih baik dari BIOS yaitu EFI (Extensible Firmware Interface) yang diturunkan dari arsitektur IA-64 (Itanium). Rencananya, hal ini akan direalisasikan pada komputer baru pada tahun 2008.
3. Input-Output Devices, berfungsi sebagai piranti penghubung dengan dunia luar (piranti eksternal). Adapun piranti-piranti tersebut adalah:
Ø  Layar Monitor
Ø  Printer
Ø  Mouse
Ø  Keyboard
Ø  Scanner, dan lain-lain.
Ketiga komponen itu saling dihubungkan dengan 3 bus yang disebut struktur bus,  yaitu:
Ø  Data bus, untuk melewatkan data
Ø  Control bus, untuk melewatkan sinyal kendali
Ø  Addres bus, untuk melewatkan alamat data
Untuk lebih memperjelas mengenai CPU dapat dijabarkan sbb:
 













Gambar 2. Arsitektur Internal Mikroprosesor (CPU)
a.     ALU, berfungsi untuk menangani operasi-operasi aritmatika dan operasi logika.
b.     Control Unit, berfungsi mengatur semua proses internal (transfer data, interupsi, pengendalian jalannya program, control I/O device, serta semua resources pada mikro prosesor).
c.     Register, pada dasarnya register adalah memori yang dapat di akses dengan sangat cepat. Operasi-operasi aritmatika & logika yang komplek membutuhkan  tempat penyimpan sementara, untuk meyimpan hasil dari tahapan operasi tersebut. Proses transfer data dari memori ke media penyimpan perlu penampung sementara.





















SISTEM BERDASAR MIKROPROSESOR
A. Mikroprosesor
Mikroproseor adalah merupakan piranti  VLSI yang dapat diprogram untuk melaksanakan sejumlah fungsi dan instruksi. Dalam sebuah sistem mikroprosesor chip ini disebut unit pengolah pusat / CPU/MPU. CPU terdiri dari tiga bagian :
1.    Arithmatic and Logic  Unit (ALU)
2.   Control Unit (CU)
3.   Register
ALU berfungsi melakukan operasi–operasi yang sesuai dengan instruksi yang diberikan, sedang CU berfungsi dan bertangguang jawab untuk melakukan penyesuaian pada operasi sejumlah unit di dalam sistem, termasuk mikroprosesornya dan mengatur pewaktuan instruksi serta aliran data di dalam CPU, juga antara CPU dengan unit lainnya di dalam sistem.  Mikroperosesor ada yang dikemas dalam bentuk DIL (Dual In-Line) 40 pin. Kapasitas atau ukuran bit, dari suatu mikroprosesor chip ditentukan oleh jumlah  cacah bit data yang dapat ditanganinya. Chip 4 bit memiliki kapasitas data 4 bit sedang chip 8 bit memiliki kapasitas data 8 bit dan seterusnya. Jenis yang paling paling banyak digunakan adalah mikroprosesor 8 bit untuk PC yaitu prosesor Z-80 dari Zilog, 6502 dari Intel dan 6800 dari Motorola.
Mikroprosesor 16 bit seperti Z-80 dari Zilog, 8086 dari Intel dan 6800 dari Motorola, juga banyak digunakan dalam PC atau komputer pribadi serta piranti-piranti pengendali mini. Organisasi dasar sistem berdasar mikroprosesor 8 bit dapat pada Gambar 1 di bawah ini :







Gambar : system berdasar mikroprosesor 8-bit
Gambar 1. Organisasi dasar sistem berdasar mikroprosesor (8 bit)

Gambar 1. Menunjukan hubungan antar elemen yang satu dengan elemen yang lain, dalam sebuah sistem yang umum. Sistem tersebut terdiri dari :
  1. CPU (Central Processing Unit)
  2. Memory Chip (RAM & ROM)
  3. Address Decoder Chip
  4. Input-Output Interface Chip ( PIO & UART)
  5. Struktur Bus
Ø  CPU adalah chip tunggal yang berisi semua rangkaian yang diperlukan untuk mengartikan dan melaksanakan instruksi program dalam bentuk manipulasi data, operasi logika dan aritmatika, pewaktuan dan pengendalian sistem.
Ø  RAM & ROM adalah berisi sejumlah lokasi memori dimana data dalam bentuk bit tersimpan. Secara normal setiap lokasi memori akan menyimpan karakter sebanyak 8-bit (1 byte). Setiap lokasi memori mempunyai alamat unik 16-bit sehingga memiliki kawasan alamat antara  0000 sampai FFFF atau  216 = 65536 = 64K alamat. Dengan jumlah halaman memori 28 = 256, dan setiap halaman memori berisi  28 = 256 lokasi memori.
Ø  Input-Output Interface Chip, akan menghubungkan sistem ke piranti eksternal, dalam Gambar 1. diperlihatkan dua tipe piranti I/O yaitu PIO (Parallel Input-Output) atau sering disebut PIA (Parallel Interface adapter) yang berfungsi sebagai antar-muka I/O yang dapat diprogram dan bertindak sebagai antar-muka paralel. UART (Universal Asynchronous Receiver-Transmitter) yang menyediakan antar-muka seri. Unit I/O interface bersifat bi-directional, yang menyediakan sambungan dari dan ke sistem dengan piranti-piranti pheriperal seperti untuk keyboard, VDU (Visual Display Unit)  dan transducer atau unit penggerak motor stepper, LED dan relay.
Ø Address Decoder Chip, akan memilih chip yang sesuai untuk dialamati CPU.
Ø Struktur Bus, bus adalah sekelompok kawat penghubung yang digunakan sebagai jalur  informasi digital yang memiliki fungsi umum. Terdapat tiga jenis bus dalam sistem berdasar mikroprosesor :
a.        Bus Data (Data Bus) berfungsi untuk mentransfer data antara CPU dan elemen-elemen lain di dalam sistem. Oleh sebab itu, data harus dimasukkan dan dikeluarkan dari mikroprosesor maka bus data harus bersifat bi-directional.
b.        Bus Alamat (Address Bus) berfungsi untuk membawa data alamat dari lokasi memori, untuk mengambil data agar dapat dibaca, atau untuk menyimpan agar dapat ditulis ke lokasi memori. Bus alamat juga difungsikan untuk mengalamati elemen-elemen lain di dalam sistem seperti unit I/O interface. Bus alamat adalah uni-directional yaitu mampu membawa informasi digital 16 bit secara serentak .
c.       Bus Control (Control Bus), berfungsi membawa semua isyarat kontrol dari CPU. Jumlah jalur kontrol bergantung pada mikroprosesor yang digunakan dan juga rancangan sistemnya.
Bus kontrol melakukan 4 fungsi utama:
1.     Penyesuai memori
2.     Penyesuai I/O
3.     Penjadwalan CPU, misalnya : interupsi
4.     Tugas lain seperti untuk reset dan detak.

Interupsi
Pada piranti pheriperal seperti printer perlu didahulukan maka program utama dapat di interupsi secara sementara oleh isyarat kontrol interupsi. Setelah selesai melayani piranti pheriperal tersebut CPU akan kembali ke program semula yang dimulai dari titik setelah interupsi. Interupsi ada dua yaitu :
1.     Interupsi
IRQ (Interrupt Request) yaitu CPU akan menyelesaikan instruksi yang sedang dikerjakan sebelum menanggapi instruksi tersebut.
Halt, merupakan jenis lain dari isyarat yang terinterupsi yang akan menghentikan program utama untuk sementara sehingga sumber luar atau piranti lain dapat menjalankan program yang berbeda.
2.    Reset
Reset merupakan jenis interupsi yang menolak semua masukan dan menghentikan pelaksanaan program di dalam CPU serta mengawali kembali mikroprosesor. Gambar 2 menunjukkan rangkaian reset untuk sebuah mikroprosesor. Jika, tombol Reset ditekan, maka C1 akan dilucuti muatannya dan pin reset akan bernilai/berlogika 0, sehingga operasi baca dan tulis akan dihentikan. Jika tombol reset dilepas maka C1  akan terisi muatan lagi melalui R1 sehingga pin reset akan bernilai 1, dan mikroprosesor akan melakukan urutan awal sehingga CPU akan ke awal program.
Baca dan Tulis
CPU akan menentukan arah transfer data dari dan ke mikroprosesor. Fungsi ini dilakukan dengan cara membaca dan menulis ke jalur kontrol. Pada operasi baca yaitu pada saat CPU menerima data dari memori, jalur baca akan aktif sehingga memungkinkan data dapat ditransfer ke CPU. Pada operasi tulis yaitu pada saat CPU mengirim data ke memori, jalur tulis akan aktif sehingga data dapat dikirim dari CPU ke memori.






                                                     Gambar 2. Rangkaian reset CPU
Isyarat Pulsa Detak 
Crystal-controlled oscillator digunakan untuk pulsa detak pewaktuan dari sistem mikroprosesor. Isyarat kontrol detak menyesuaikan gerakan data dan menentukan kecepatan operasinya.

 






Gambar 3. Rangkaian Osilator Detak

Frekuensi detak bervariasi dari kecepatan yang relatif rendah (1 MHz pada mikroprosesor 6502) sampai yang lebih tinggi (12MHz untuk chip 16 bit 6800).
B. Arsitektur CPU



















Gambar 4. Arsitektur CPU Internal (dari mikroprosesor 8 bit disederhanakan)

Hubungan ke chip lain dalam sistem dilakukan lewat data bus, address bus & control bus. Mikroprosesor merupakan inti dari sistem, bekerja menurut daur umpan dan eksekusi (Fetch and Execute).
Selama fase umpan CPU menerima instruksi dari lokasi memori (tempat program disimpan). Umpan diterima mikroprosesor yang akan menempatkan alamat dari lokasi memori pada address bus, sehingga akan mengaktifkan jalur kontrol baca bekerja. Address decoder chip akan memilih memory chip yang sesuai untuk meletakkan isi alamat (yaitu instruksi dalam bentuk kata 8 bit tersandi) yang disebut Op-Code pada data bus. CPU menerima instruksi & menyimpannya  ke dalam  register internal yang disebut instruction register (IR).
Selama fase eksekusi, instruksi yang diterima CPU akan disandikan dan dieksekusi. Yang dilakukan dengan cara CPU membangkitkan isyarat pewaktuan & kontrol yang diperlukan untuk melaksanakan instruksi tersebut. Dalam fase eksekusi tersebut terdapat operasi aritmatika sederhana (seperti penjumlahan / pengurangan atau transfer data yang lebih rumit dari dan ke piranti pheriperal / memory).
Kedua fase fetch and execute, memerlukan waktu  >1 pulsa detak (lebih dari satu pulsa detak). Saat suatu instruksi selesai dilaksanakan alamat bus yang memulai kembali daur-umpan dan eksekusi (fetch and execute).
1)     Penyangga bus
Dalam sistem, bus berfungsi menghubungkan mikroprosesor ke semua piranti memori dan interface, tapi mikroprosesor dari MOS sering tidak memadai untuk sistem yang besar, sehingga digunakan penyangga bus, untuk mempertinggi kemampuan dari penyangga bus. Ada dua jenis penyangga / penggerak bus, yaitu pengirim (transmitter) untuk menggerakkan bus & penerima (receiver) untuk mendengarkan bus. Pada bus dua arah (seperti data bus, pengirim/penerima disebut penyangga dua arah/transreceiver) sering di gunakan juga.







                    Gambar 5. Penyangga data dan alamat
Penyannga tiga kondisi juga sering dipakai untuk memutuskan bus dari mikroprosesor. Cara ini dipakai jika piranti eksternal digunakan untuk mengendalikan sistem dari CPU on-board. Di dalam CPU hubungan antara elemen-elemen yang ada dilakukan melaluai data bus internal 8 bit & jalur kontrol dari blok pewaktuan & logika kontrol. Data bus internal dihubungkan dengan data bus sistem, lewat penyangga dua arah (transreceiver) logika kontrol dan pewaktuan dilakukan oleh isyarat kontrol untuk keseluruhan sistem. Satu-satunya isyarat kontrol diumpankan ke CPU adalah interupsi yang masuk ke dalam instruction decoder (ID) untuk menghentikan operasi mikroprosesor.


2)     Unit Aritmatika dan Logika
Berfungsi melakukan fungsi aritmatika dan fungsi logika (seperti operasi NAND atau OR) pada 2 bilangan, sehingga ALU harus memiliki dua input yaitu : Input A untuk bilangan 1, & Input B untuk bilangan 2. Kedua bilangan tersebut pertama kali disimpan dalam 2 register 8 bit, accumulator (ACC) untuk input A dan sebuah register sementara (Temp) untuk input B setelah operasi ALU selesai, hasilnya akan disimpan dalam ACC menggantikan isi yang lama.
3)     Instruction Register (IR)
IR merupakan register 8 bit yang digunakan untuk menyimpan instruksi tersandi, yaitu saat instruksi tersebut digunakan atau sampai instruksi berikutnya diumpankan dan disimpan, begitu seterusnya.
4)    Instruction Decoder (ID)
ID yaitu berupa instruksi tersandi adalah kata 8 bit yang dinamakan Operational Code (Op-Code). Setiap instruksi (seperti tambah atau simpan) memiliki sandi atau kode yang berbeda atau dengan kata lain setiap mikroprosesor memilki Op-Code yang berbeda yang disajikan dalam bentuk instruction set. Op-Code yang tersimpan akan diumpankan ke ID dari IR. Decoder akan merinci sandi / kode tersebut dan menginstruksikan “ TIMING AND CONTROL LOGIC” Untuk membangkitkan isyarat pewaktuan dan kontrol yang diperlukan   untuk melaksanakan instruksi tersebut.
5)    Program Counter (PC)
PC atau pencacah program digunakan untuk melacak program dan meyakinkan bahwa CPU menerima instruksi yang sesuai dengan urutan yang ditentukan oleh program.
Telah diketahui bahwa mikroprosesor akan melaksanakan tugas menurut urutan tertentu yang disebut program. Program adalah berisi sejumlah instruksi, dan setiap instruksi berisi Op-Code, sedang data yang akan diproses disebut Operand. Instruksi-instruksi disusun dalam urutan logika tertentu dan disimpan secara berurutan pada lokasi memori, yang disebut alamat program. Tabel bawah ini menggambarkan konstruksi dari program :






PC berupa register 16 bit yang berisi alamat lokasi program, berikut ini merupakan penjelasan dari tabel di atas :

Ø   Untuk memulai program, CPU menempatkan alamat awal (Starting Address) 0A20 (tempat operator 1 disimpan) dalam program, yang selanjutnya akan ditempatkan pada address bus untuk mengumpan instruksi pertama. Instruksi 1 akan diumpankan ke CPU lewat data bus & disimpan dalam IR. Pada kondisi ini pencacah program akan bertambah menjadi 0A20 + 1 = 0A21, operator 1 tidak memiliki data, sehingga segera dapat dilaksanakan. Setelah instruksi 1 selesai dilaksanakan maka CPU memberitahu pencacah program untuk mendapatkan isi (0A21) ke dalam bus alamat (address bus) untuk mengumpankan instruksi 2, dan menyimpannya dalam IR. Jika ini terjadi pencacah program akan bertambah menjadi 0A21 + 2 = 0A22, yang berisi data (operand 2). Operator 2 akan disampaikan, tapi tidak bisa diselesaikan  tanpa data yang sesuai yaitu berupa bilangan yang tersimpan dalam suatu lokasi atau ditambahkan ke bilangan lain yang sudah ada dalam ACC lalu operand 2 akan diumpankan dengan menempatkan isi pencacah program, 0A22 pada address bus. Operand 2 muncul pada data bus, saat pencacah program bertambah menjadi 0A23 (0A22 + 1). Saat instruksi 2 selesai dilaksanakan, pencacah program akan meletakkan isinya yang baru, 0A23 ke address bus untuk mengumpan instruksi 3, dan seterusnya.
Ø   Sebuah instruksi dapat berisi lebih dari 1 operand 8 bit sebagai contoh dua operand 8 bit diperlukan untuk mengakomodasi alamat 16 bit.
  1. General Purpose Register (Register Multi Guna)
Setiap mikroprosesor memiliki sejumlah register multi guna (biasa memiliki lebar 8 bit, tapi ada yang 16 bit) sebagai tempat penyimpan sementara data / alamat selama program berlangsung.
C. UART
UART (Universal Asynchronous Receiver-Transmiter) disebut juga ACIA (Asyncnronous Comunication interface Adapter) memiliki dua mode operasi, yaitu:
  1. Mode Transmiter (pengiriman), yaitu UART akan mengambil data paralel dan mengubahnya dalam aliran data seri yang berisi karakter star, stop dan karakter yang sama.
  2. Mode Receiver (penerimaan), yaitu UART akan mengambil aliran bit seri dan mengubahnya ke dalam data paralel.






Gambar 7. Sambungan CPU, UART & piranti periperal seperti printer

CPU akan menentukan mode operasi dari UART :
  1. Saat mode pengiriman UART menerima data paralel dari CPU & mengubahnya ke dalam data seri untuk piranti pheriperal.
  2. Saat mode penerimaan UART menerima data seri dari CPU dan mengubahnya ke dalam data paralel untuk piranti pheriperal.
Untuk meyakinkan bahwa pengiriman terjadi saat pheriperal siap menerima data, maka dalam rangkaian tersebut ditambahkan jalur handshaking. Sebelum CPU mulai mengirim informasi ke piranti pheriperal, maka dikirim dulu pesan Request to Send, dan pada saat piranti siap menerima data, piranti tersebut akan mengirim pesan Clear to Send. CPU akan mengosongkan data ke dalam register UART. Demikian juga sebaliknya saat piranti pheriperal akan mengirim data ke CPU pesan IRQ (Interrupt Request) dikirimkan ke UART & selanjutnya diteruskan ke CPU.
Berdasarkan diagram blok fungsional dasar di atas, UART terdiri dari 3 elemen yaitu pengirim, penerima & kontrol logika.
Ø  Pengirim, terdiri atas sebuah latch untuk menjaga data parallel sebelum diubah kealiran data seri & sebuah register geser (Shift Register) untuk melakukan pengubahan data paralel ke seri.













                       




Gambar 8. Diagram Blok UART

Ø  Penerima, terdiri atas shift register untuk mengubah data seri ke paralel & sebuah latch untuk menjaga data seri agar stabil sampai CPU memerlukannya.
Ø  UART dapat diprogram secara penuh khususnya untuk menentukan mode operasinya (mode pengiriman atau penerimaan). UART adalah piranti asinkron yang memerlukan bit awal & akhir untuk setiap kata digital yang dikirimkan dari dan ke CPU. Operasi sinkron dapat dilakukan jika bit awal & akhir tidak diperlukan. USART (Universal Synchronous / Asynchronous Receiver-Transmitter) menyediakan  fasilitas untuk sinkron.
D. PIO
Chip Parallel Input-Output menyediakan jalur paralel yang disebut port, sehingga memungkinkan CPU dapat berinteraksi dengan piranti periperal (yang memerlukan bit data paralel).









Gambar 9. Sambungan antara CPU, PIO & piranti periperal

Pada Gambar 9. tersebut ditunjukkan input/output port 8 bit (P0 s/d P7), meskipun biasanya terdapat dua atau tiga (input/output) port 8 bit. I/O port bersifat dua arah dimana setiap bit dapat diprogram sebagai bit keluaran atau bit masukan, jalur handshake line dimanfatkan seperti halnya pada UART.
Pemrograman PIO dapat dilaksanakan dengan menyusun port-port PIO agar menyerupai alamat memori, sehingga sebagian ruang memori dipakai secara eksklusif untuk operasi unit I/O. Teknik ini disebut sebagai memory mapped I/O, digunakan oleh mikroprosesor seperti 6502 & 6800.
Mikroprosesor lain seperti  Z-80 dan 8080 menggunakan instruksi I/O khusus untuk menginstruksikan PIO agar melakukan transfer data antara sistem mikroprosesor dan piranti periperal. Selain itu transfer data dapat dilakukan tanpa intervensi langsung dari CPU, teknik ini disebut sebagai Direct Memory Access (DMA), yang memanfaatkan chip pengendali DMA yang memberikan transfer data yang sangat cepat.



 











Gambar 10. Diagram Blok PIO
Gambar 10. di atas menunjukkan diagram blok internal dari chip PIO memory mapped, DDR adalah register 8 bit yang digunakan untuk menentukan arah tiap bit dari port PIO, apakah bertindak sebagai masukan / keluaran. Contoh di dalam sistem mikroprosesor 6502 logika 0 di dalam DDR menentukan bit tersebut sebagai  masukan, dan logika 1 sebagai keluaran.
Lebih lanjut, OF (hex) akan menentukan P0 – P3 sebagai masukan dan P4 – P7 sebagai keluaran. Output data register berfungsi untuk menjaga data parallel tetap stabil untuk dibaca piranti periperal, input data register berfungsi untuk menjaga agar data paralel  yang datang tetap stabil sampai CPU siap membacanya.
Himpunan instruksi(Instruction Set), instruksi-instruksi tersebut diumpankan ke mikroprosesor chip dalam bentuk bilangan biner 8 bit disebut Operational Code (Op-Code) berikut datanya yang disebut operand. Menulis program dengan sandi mesin merupakan pekerjaan panjang & menjemukan biasanya program ditulis dengan menggunakan alphabet, lalu diterjemahkan ke serangkaian Op-Code & operand. Bentuk paling sederhana dari terjemahannya adalah assembler, yang memanfaatkan bahasa pemrograman rakitan (Assembly Programing Language).
Dalam bahasa assembler, tiap Op-Code memiliki sandi mnemonic, seperti :
a.      LDA untuk load accumulator
b.      ADC untuk Add With Carry
c.      JMP untuk Jump, dan seterusnya.
Instruction set dapat dikelompokkan menjadi tiga kelompok (sub himpunan)
1.      Pengiriman data yang memuat pergerakan data antara CPU dan lokasi memori, contoh
a.     Memuat accumulator dengan isi memory (LDA).
b.    Menyimpan isi accumulator ke dalam memory (STA).
c.     Memuat register X dengan isi memori (LDX).
2.   Aritmatika & logika berisi instruksi-instruksi untuk melakukan operasi aritmatika & logika, Contoh:
a.    Menjumlahkan dua bilangan dengan carry (ADC).
b.    Mengurangi dua bilangan dengan carry (SBC).
c.    Mengoprasikan AND pada dua bilangan (AND).
d.    Mengoprasikan EXOR pada dua bilangan (XOR).
e.    Menggeser kanan secara logika (LSR).
f.    Menggeser kiri secara aritmatika (ASL).
3.  Tes & cabang menyediakan fasilitas bagi mikroprosesor untuk melakukan  serangkaian operasi dengan cara melompat atau mencabang ke bagian lain dari program, contoh
a.  Melompat ke subrutin (JSR).
b.  Mencabang jika hasilnya negatif (BMI).
c.  Mencabang jika sama (BEQ).
/[ 2 komentar Untuk Artikel SISTEM DASAR MIKROKOMPUTER]\
Rohmat aj mengatakan...

terima kasih...tapi sayang gambarnya hilang.

Unknown mengatakan...

pict?? kosong?

Posting Komentar