Pertemuan 2b Dasar Sistem Komputer

(1)

SISTEM DASAR MIKROKOMPUTER

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

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

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


(3)

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

Mask ROM

Photolithography

Tidak

ROM

BIOS

Programmable

ROM (PROM)

PROM Writer

Tidak

ROM

BIOS

Erasable PROM

EPROM/PROM Writer

Ya, dengan menggunakan EPROM

Rewriter atau menyinarinya dengan sinar

ultraviolet tepat pada lubang kuarsa

bening.

ROM

BIOS

Electricly

EPROM

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

Flash ROM

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


(4)

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.


(5)

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.


(6)

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.


(7)

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


(8)

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.


(9)

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


(10)

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.


(11)

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


(12)

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.

6.

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: a. Mode Transmiter (pengiriman), yaitu UART akan mengambil data paralel dan

mengubahnya dalam aliran data seri yang berisi karakter star, stop dan karakter yang sama.

b. 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 :

a. Saat mode pengiriman UART menerima data paralel dari CPU & mengubahnya ke dalam data seri untuk piranti pheriperal.

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


(13)

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


(14)

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


(15)

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


(1)

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)

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


(3)

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.

6.

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: a. Mode Transmiter (pengiriman), yaitu UART akan mengambil data paralel dan

mengubahnya dalam aliran data seri yang berisi karakter star, stop dan karakter yang sama.

b. 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 :

a. Saat mode pengiriman UART menerima data paralel dari CPU & mengubahnya ke dalam data seri untuk piranti pheriperal.

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


(4)

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


(5)

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


(6)

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