Kamis, 13 Agustus 2009

MIKROPROSESOR INPUT OUTPUT UNIT

Unit Input dan Output
Input Output (I/O) merupakan komponen pokok dari sistem mikroprosesor. Informasi di luar CPU harus dikumpulkan dan diproses. Begitu diproses informasi harus disajikan dan dikirim untuk mengendalikan berbagai alat Input Output. Perkembangan mikroelektronika telah mendukung perkembangan I/O dari unprogrammable ke programmable sistem. Beberapa komponen I/O terprogram yang sangat populer dalam dunia sistem mikroprosesor adalah Z-80 PIO dan PPI 8255 .


I/O PARALEL
Z-80 PIO (Programmable Input Output)
IC Z-80 PIO adalah IC I/O paralel terprogram yang prilakunya dapat disetel menggunakan program. Z-80 PIO adalah salah satu chip yang diproduksi untuk pasilitas antar muka dengan Z-80 CPU. Z-80 PIO memiliki kelengkapan :
•Dua periperal port antar muka paralel 8 bit independent dengan kendali jabat tangan.
•Penggerak I/O terinterupsi.
•Empat mode operasi
1.Mode 0 : Byte Output dengan jabat tangan
2.Mode 1 : Byte Input dengan jabat tangan
3.Mode 2 : Byte Bidirectional dengan jabat tangan (hanya untuk Port A)
4.Mode 3 : untuk Bit Control
•Logika interupsi dengan prioritas daisy chain.
•Semua input dan output kompatibel dengan TTL.

Z-80 PIO terdiri dari dua port yaitu Port A dan Port B. Masing-masing port dilengkapi dengan pena-pena jabat tangan. Dengan 40 pin dalam dua lajur fungsi masing-masing pin dapat dikelompokkan dalam empat kelompok :
1.Kelompok Bus Data
a.D0 – D7 adalah bus data 8 bit dua arah digunakan sebagai saluran data dan kata perintah.
b.A0 - A7 adalah saluran dua arah untuk transfer data atau status dan sinyal kontrol antara peralatan I/O dan Port A.
c.B0 – B7 merupakan saluran dua arah untuk transfer data atau status dan sinyal kontrol antara I/O dan Port B.

2.Kelompok Kontrol
a.B/A* sel adalah pin saluran sinyal pemilih port. Pada kondisi rendah (0) yang aktif adalah Port A, dan Port B aktif jika pin ini berkondisi tinggi (1).
b.C/D* sel adalah pin saluran sinyal pemilih register kontrol atau register data. Jika C/D* = 0 register yang aktif adalah register data dan C/D* = 1 register yang aktif adalah register perintah.
c.CE* adalah sinyal aktif rendah yang berfungsi sebagai pin pengaktif chip Z-80 PIO.
d.M1* adalah sinyal aktif rendah bekerja mensinkronkan kerja interrupt logic. Pada saat M1* dan RD* aktif, Z-80 CPU melakukan fetching sebuah instruksi ke memori. Sebaliknya pada saat M1* dan IORQ* aktif, CPU melakukan pengenalan interupsi. Dan jika M1* aktif tanpa IORQ* atau RD*, Z-80 PIO ada dalam keadaan reset.
e.IORQ* adalah sinyal Input Output Request aktif rendah bekerja pada saat CPU mentransfer perintah atau data ke Z-80 CPU.
f.READ* adalah sinyal aktif rendah yang menunjukkan CPU membaca data dari I/O.

3.Kelompok Interrupt
a.INT* adalah sinyal interrupt aktif rendah yang digunakan oleh PIO untuk memintan layanan interupsi.
b.IEI adalah sinyal Interrupt Enable Input aktif tinggi yang menunjukkan PIO siap menerima layanan interupsi.
c.IEO adalah sinyal Interrupt Enable Output aktif tinggi yang menunjukkan PIO telah melayani interupsi.
4.Kelompok Status Kontrol Port
a.ASTB* adalah sinyal strobe Port A, aktif rendah yang operasinya tergantung pada mode operasi yang dipilih.
•Mode 0 : menunjukkan keadaan peralatan I/O telah menerima data yang dikirim oleh PIO.
•Mode 1 : menunjukkan keadaan data telah dikirim ke register Port A oleh peralatan I/O.
•Mode 2 : menunjukkan keadaan data dari register Port A telah diletakkan pada bus data dan kemudian data telah diterima oleh peralatan I/O.
•Mode 3 : pulsa ini secara internal ditahan oleh PIO (tidak dimanfaatkan).
b.A RDY adalah sinyal ready aktif tinggi untuk Port A bekerja tergantung mode operasi sebagai berikut :
•Mode 0 : menunjukkan register Port A berisi data byte dan
•telah disiapkan pada saluran bus data untuk ditransfer ke peralatan I/O.
•Mode 1 : menunjukkan keadaan register data Port A kosong dan siap menerima data word berikutnya.
•Mode 2 : menunjukkan keadaan register data Port A telah siap untuk diambil oleh peralatan I/O. Data akan dikeluarkan jika ada sinyal STB*.
•Mode 3 : tidak dimanfaatkan

c.B STB* adalah sinyal masukan strobe untuk Port B aktif rendah dimana operasinya sama dengan sinyal A STB*
d.B RDY adalah sinyak keluaran ready aktif tinggi untuk Port B dengan operasi kerja sama dengan A RDY.0
Masing-masing Port dilengkapi dengan dua register, yaitu register data dan register perintah. Selengkapnya register pada Z-80 PIO terdapat empat buah register yaitu:
•Register Data A
•Register Data B
•Register Perintah A
•Register Perintah B
Register data digunakan untuk memegang data dan register perintah digunakan untuk mengatur mode kerja dan perilaku masing-masing port. Pemilihan register-register pada Z-80 CPU dikerjakan melalui pena port B/A dan pena Control/Data.




PPI 8255
8255 adalah chip Programmable Peripheral Interface, berfungsi untuk antar muka paralel dengan perilaku dapat diatur dengan program. PPI 8255 terdiri dari tiga port I/O 8 bit yaitu : Port A, Port B, dan Port C. Masing-masing port dapat dibuat menjadi port masukan maupun port keluaran. Gambar 8. menunjukkan diagram blok bagian dalam dari PPI 8255.


PPI 8255 memiliki buffer bus data dua arah, yang berarti dapat berfungsi baik sebagai port input maupun port output. Arah aliran data dapat dijelaskan menggunakan pengaturan logika Read/Write. Secara mudah dapat diuraikan dengan tabel berikut :


PPI 8255 bekerja dalam tiga mode, yaitu :
1. Mode 0 : Port A, Port B, dan Port C bekerja sebagai port I/O sederhana tanpa jabat tangan. Pada mode ini CPU sama sekali tidak memperhatikan status 8255. CPU mentransfer data tanpa mempersoalkan apa yang terjadi pada 8255. Port A dan Port B bekerja sebagai port 8 bit sedangkan Port C dapat dibuat bekerja dalam 8 bit atau berdiri sendiri dalam 4 bit lower dan 4 bit upper secara terpisah.



2. Mode 1 : Port A, Port B bekerja sebagai port I/O dengan jabat tangan menggunakan sebagian dari pena Port C. Saluran PC0, PC1, dan PC2 berfungsi sebagai saluran jabat tangan untuk Port B sedangkan Port A menggunakan saluran PC3, PC4, dan PC5 sebagai sinyal jabat tangan. PC6 dan PC7 dapat digunakan untuk saluran I/O

3. Modus 2 : Hanya Port A dapat dibuat sebagai port I/O dua arah dengan jabat tangan. Port A dapat digunakan sebagai port untuk transfer data dua arah dengan jabat tangan. Ini artinya data dapat masuk atau keluar dari saluran yang sama. Mode ini mengembangkan sistem saluran (bus) ke mikroprosesor atau mentransfer byte data ke dan dari floppy disk controller. Pada mode 2 saluran PC3 sampai PC7 digunakan sebagai saluran jabat tangan untuk Port A.


I/O SERIAL
I/O serial adalah unit masukan keluaran yang bekerja atas dasar prinsip urut/seri. Dalam hal ini diperlukan proses konversi dari data paralel ke bentuk serial. Ada dua teknik konversi yang ditawarkan yaitu :
•Teknik perangkat lunak
•Teknik perangkat keras.

I/O Serial Perangkat Lunak
Serialisasi dan deserialisasi suatu data diselenggarakan oleh suatu perangkat program. Pada masukan program menunggu sampai menerima suatu bit start, kemudian membaca bit data. Pada keluaran program mengirim suatu urutan bit demi bit.

Prinsip utama serialisasi adalah merakit data 8 bit (atau lebih) di akumulator dan menggeser keluar bit demi bit pada frekuensi tertentu. Cara yang sederhana adalah mengeluarkan isi akumulator ke salah satu saluran dari port I/O (Port 0). Akumulator kemudian digeser ke kanan satu bit, diimplemen suatu tunda dan bit selanjutnya dikeluarkan sampai semua bit data paralel dikeluarkan.
Sebaliknya deserialisasi dilakukan dengan membaca bit 0 dan merekamnya ke akumulator. Akumulator di geser kekiri satu posisi dengan tunda tertentu. Kemudian bit 0 dibaca lagi dan dilakukan proses pencatatan dan penggeseran akumulator sampai data byte terselesaikan.
Keuntungan I/O terprogram terletak pada ketersederhanaannya dan tidak perlu harus menyiapkan perangkan keras. Kelemahannya terletak pada masalah waktu yaitu lambatnya proses.

I/O Serial Perangkat Keras
Salah satu komponen LSI standar adalah Universal Asynchronous Receiver-Transmitter (UART). UART bekerja mengubah data serial ke paralel dan data paralel ke serial. UART paling sering digunakan untuk ope rasi kecepatan rendah ke sedang. Sedangkan untuk transmisi kecepatan tinggi digunakan jenis Universal Synchronous Receiver Transmitter (USRT).
Fungsi UART adalah pada pengubahan serial – paralel.
Dua fungsi pokok UART adalah :
•Mengambil data paralel dan mengubah menjadi arus bit serial dengan diawali bit start, bit data, bit paritas, dan karakter penghenti.
•Mengambil arus bit serial dan mengubahnya menjadi bit paralel.
Sebuah UART standar mempunyai tiga seksi yaitu : sebuah penerima, sebuah pengirim, dan sebuah seksi pengendali.

UART memerlukan baik port masukan maupun port keluaran untuk perantaraan dengan sistem mikroprosesor. Dua diantara piranti UART adalah :
•MC 8650 Asynchronous Comunication Interface Adaptor (ACIA) dari Motorolla.
•8251 Universal Synchronous and Asynchronous Receiver Transmitter (USART) dari Intel.

Motorolla 6850 ACIA
6850 tersusun dari sejumlah register serial paralel masukan keluaran dan rangkaian pengendali standar EIA RS 232.
Penghantaran 6850 pada saluran/bus dari sistem dapat digambarkan seperti Gambar 17. Data serial yang masuk dan keluar adalah sinyal kompatibel TTL dan harus di bufer untuk memberikan tingkatan yang diperlukan untuk menggerakkan alat-alat serial.

Intel 8251 USART
8251 dirancang oleh Intel yang memiliki pasilitas sebagai UART dan juga USRT. Dengan kata lain 8251 dapat dipakai baik sebagai alat tak serempak maupun alat serempak. Sehingga 8251 diberi nama USART. 8251 menyediakan pasilitas pengiriman dan penerimaan data sinkron dan tak sinkron.

METODE PENGENDALIAN I/O
Pengaturan alih data dari alat luar dengan sistem komputer/sistem mikroprosesor menerapkan suatu strategi penjadwalan. Pada pengendalian alat I/O dikenal adanya tiga metode yaitu :
•Metode Polling
•Metode Interupsi
•Metode Akses Memori Langsung (AML)

Metode Polling
Metode polling merupakan metode pengendalian I/O melalui program. Semua pengalihan data dari dan ke alat I/O diselengarakan oleh program. Prosesor mengirim dan meminta data sepenuhnya dibawah kendali program. Pengalihan data dapat dilaksanakan baik melalui mekanisme jabat tangan maupun tanpa jabat tangan. Dalam mekanisme jabat tangan isyarat diperiksa secara terus menerus. Program terus menerus berputar lewat sejumlah pengetesan untuk menentukan apakah masukan atau keluaran dapat diselenggarakan pelayanannya atau tidak. Bila ditemukan alat yang memerlukan pelayanan, rutin pelayanan diaktifkan dan pemilihan saluran diproses. Gambar 19. menunjukkan diagram alir pengendalian I/O dengan metode polling. Metode polling adalah metode pengendalian I/O yang paling sederhana dan paling umum digunakan. Metode ini tidak memerlukan perangkat keras khusus dan semua pengalihan I/O dikendalikan oleh program. Pengalihan semacam ini disebut pengalihan serempak dengan program.


Metode Interupsi

Pengendalian I/O dengan metode polling mempunyai dua kelemahan :
•Pemborosan waktu prosesor karena status semua periferal diperiksa terus menerus secara berurutan.
•Karena harus memeriksa status semua alat I/O maka waktu kerjanya menjadi lambat. Ini merupakan kelemahan dalam sistem waktu nyata (Real Time), dimana satu periferal mengharap layanan dalam satu waktu tertentu.

Kelemahan ini diatasi dengan menggunakan layanan waktu tak sinkron menggunakan interupsi. Tiap alat I/O atau pengendalinya dihubungkan ke sebuah saluran interupsi. Saluran interupsi menggerbangkan sebuah permintaan interupsi ke mikroprosesor. Bilamana sebuah alat I/O memerlukan layanan , alat akan membangkitkan pulsa interupsi atau status suatu tingkatan saluran untuk menarik perhatian mikroprosesor. Mikroprosesor akan memberikan layanan pada alat I/O jika ada interupsi dan jika tidak ada interupsi mikroprosesor melakukan instruksi selanjutnya.

Begitu permintaan interupsi diterima dan disetujui oleh mikroprosesor, alat I/O harus dilayani. Untuk melayani alat I/O, maka mikroprosesor melaksanakan suatu routin pelayanan khusus. Ada dua masalah yang muncul pada saat melakukan layanan interupsi :
•Bagaimana status program yang dilaksanakan pada mikroprosesor pada saat interupsi harus diperilahara dalam stack.
•Bagaimana mikroprosesor dapat mengenali secara tepat alat I/O mana yang membangkitkan interupsi. Identifikasi ini dapat dilakukan dengan perangkat keras, perangkat lunak, atau kombinasi perangkat keras dan perangkat lunak. Pencabangan ke alamat alat I/O disebut Pemvektoran Interupsi. Rutin perangkat lunak menetapkan identitas alat yang meminta layanan interupsi. Rutin identifikasi interupsi akan memilih saluran setiap alat yang dihubungkan dengan sistem. Setelah dikenal alat mana yang mencetuskan interupsi maka ia kemudian bercabang ke alamat rutin penanganan interupsi yang sesuai. Metode ke dua yang digerakkan oleh perangkat lunak, tetapi dengan pertolongan beberapa perangkat keras tambahan. Metode ini menggunakan rantai beranting (daisy chain) untuk mengenal alat yang mencetuskan interupsi. Metode tercepat adalah interupsi yang divektorkan. Adalah menjadi tanggung jawab pengendali alat I/O untuk memberikan baik interupsi maupun pengenal alat yang menyebabkan interupsi atau lebih baik lagi alamat pencabangan bagi rutin penanganan interupsi. Bila pengendali hanya memberikan pengenal alat, adalah tugas perangkat lunak mencari tabel alamat pencabangan bagi tiap alat. Ini sederhana bagi perangkat keras tapi tak mencapai performansi tertinggi.
•Prioritas
Beberapa interupsi dapat dibangkitkan serentak. Mikroprosesor diberi tugas untuk memutuskan bagaimana urutan pelayanannya. Setiap alat diberikan suatu prioritas. Mikroprosesor melayani setiap alat sesuai prioritasnya. Dalam dunia komputer prioritas 0, menurut konvensi memiliki prioritas. tertinggi, prioritas 1 yang kedua demikian seterusnya. Prioritas dapat diset baik pada perangkat keras maupun perangkat lunak. Pengaturan prioritas dengan perangkat keras dikerjakan oleh suatu piranti yang disebut Programmable Interrupt Controller (PIC)

Akses Memori Langsung
Interupsi menjamin tanggapan yang paling cepat dari proses pengendalian data pada I/O. Akan tetapi pelayanan pada alat masih diselenggarakan oleh perangkat lunak. Kecepatan transfer paralel sebuah mikroprosesor dibatasi oleh overhead perangkat lunak yang terlibat dalam pengiriman kata-kata berurutan. Ini mungkin masih tidak cukup cepat bagi pengolahan yang melibatkan alih memori cepat. Kembali disini menggantikan perangkat lunak dengan perangkat keras. Rutin perangkat lunak yang menyelenggarakan alih data antara memori dengan alat I/O
digantikan oleh prosesor perangkat keras khusus yang disebut dengan Direct Memory Access Controller (DMAC). Sebuah DMAC adalah prosesor khusus yang dirancang untuk menyelenggarakan alih data berkecepatan tinggi antara memori dengan alat luar. Dalam akses memori langsung digunakan dua teknik untuk berhubungan dengan memori :
•Prosesor dihentikan atau ditangguhkan oleh DMAC. DMAC memegang pengendalian bus dan membiarkan alat I/O berhubungan langsung dengan memori.
•DMAC mencuri satu siklus memori dari mikroprosesor, memberinya kepada pengiriman data antara memori dan alat I/O.
DMAC adalah prosesor khusus yang memutuskan hubungan atau mengisolasi MPU dari bus-bus dan mengatur pengiriman yang diperlukan antara memori dan alat I/O. Gambar 22. menunjukkan diagram blok kerja DMAC.
Pada saat sistem bekerja, saklar pada posisi atas sehingga saluran terhubung dari mikroprosesor ke sistem memori dan peripheral. Untuk membaca file ke disk diperlukan sejumlah perintah ke disk controller, memerintahkan untuk mencari dan membaca blok data yang dari disk. Jika disk controller telah menemukan byte pertama dari blok data, disk controller mengirim sinyal DMA request (DREQ) ke DMAC. Jika DMAC tidak dalam terhalang maka DMAC mengirim sinyal hold request (HRQ) ke mikroprosesor melalui pin HOLD. Mikroprosesor menanggapi masukan ini dengan mengambangkan saluran/bus dan mengirim sinyal hold acknowledge (HLDA) ke DMAC. Jika DMAC menerima sinyal HLDA, akan mengirim sinyal untuk menghubungkan bus/saluran ke posisi DMAC.
Pada saat DMAC mengontrol saluran, ia mengirim alamat memori dimana byte pertama dari disk controller di tulis. Selanjutnya DMAC mengirim sinyal DMA acknowledge (DACK) ke disk controller untuk memberitahukan kesiapan mengeluarkan byte. Akhirnya DMAC mengaktifkan saluran MEMW* dan IOR* pada saluran kontrol.

Read More »