Anda di halaman 1dari 22

BAB VI

INPUT/OUTPUT

Di samping CPU dan sejumlah modul memori, elemen penting ketiga sistem
komputer adalah sejumlah modul I/O. Modul tersebut merupakan interface bagi
bus sistem atau switch sentral dan mengontrol satu atau lebih perangkat
peripheral. Modul I/O bukan hanya merupakan konektor mekanis sederhana yang
menghubungkan suatu perangkat dengan bus sistem. Akan tetapi modul I/O berisi
sesuatu yang ”cerdas” yaitu berisi logik unutk melakukan fungsi komunikasi
antara peripheral dengan bus.
Mungkin pembaca ingin mengetahui alasan tidak dihubungkannya
peripheral denagn bus sistem secara langsung. Alasannya adalah:
 Terdapat beraneka ragam peripheral yang memiliki bermacam-macam metode
operasi. Maka akan tidak sangat praktis untuk menghubungkan logic tertentu
kedalam CPU dengan maksud untuk mengontrol sejumlah perangkat.
 Laju transfer data peripheral sering kali jauh lebih lambat dibandingkan
dengan laju transfer data memori atau CPU. Jadi, tidaklah praktis menggunakn
bus sistem berkecepatan tinggi untuk melakukan komunikasi langsung dengan
peripheral.
 Peripheral sering kali menggunakan format data dan panjang word yang
berlainan dibandingkan dengan computer yang disambungkan dengannya.

Jadi diperlukan modul I/O. Modul ini memiliki dua fungsi utama (gambar 7.1) :
 Sebagai interface ke CPU dan memori via bus sistem atau switch central.
 Sebagai interface ke sebuah perangkat peripheral atau lebih dengan
menggunakan link data tertentu.

Kita mengawali bab ini dengan sebuah bahasan singkat tentang perangkat
eksternal, yang dilanjutkan dengan tinjauan singkat tentang struktur dan fungsi
modul I/O ssetelah itu, kita akan meninjau bermacam-macam cara dimana fungsi
I/O dapat dilakukan dengan cara bekerja sama dengan CPU dan memori interface

176
177

internal. Terakhir akan dibahas interface I/O eksternal antara module I/O dengan
dunia luar.

Setelah mempelajari bab ini, kompetensi yang didapatkan mahasiswa adalah


1. Mampu menjelaskan fungsi bagi modul I/O
2. Mampu menjelaskan dan mengklasifikasikan perangkat luar dengan
komputer
3. Mampu menjelaskan modul DMA
4. Mampu menjelaskan hubungan modul I/O dengan perangkat luar

6.1 Perangkat Eksternal


Sistem computer tidak akan berguna tanpa adanya peralatan input dan output.
Operasi-operasi I/O diperoleh melalui sejumlah perangkat eksternal yang
menyediakan alat untuk.

Gambar 6.1. Model Generik dari suatu modul I/O

Pertukaran data di antara lingkungan luar dengan komputer. Perangkat eksternal


dihubungkan dengan komputer oleh suatu link dengan modul I/O (Gambar 6.1).
Link digunkan untuk pertukaran kontrol, status, dan data antara modul I/O dengan
perangkat eksternal yang dihubungkan modul I/O sering kali disebut sebagai
perangkat peripheral, atau untuk mudahnya disebut peripheral.
178

Kita akan mengklasifikasikan secara luas perangkat eksternal menjadi tiga


kategori :
 Human-Readable : Cocok untuk berkomunikasi dengan pengguan
komputer.
 Machine-Readable : Cocok untuk berkomunikasi dengan peralatan.
 Communication : Cocok untuk berkomunikasi denagn perangkat jarak
jauh.

Keyboard/Monitor
Alat interaksi komputer/pengguna yang umum digunakan adalah
keyboard/monitor. Penggunamemberikan input melalui keyboard. Kemudian akan
dikirimkan ke komputer dan dapat juga di tampilkan pada monitor. Selain itu,
monitor dapat menampilkan data yang diberikan oleh komputer.
Unit dasar pertukaran datanya adalah karakter. Setiap karakter
berkaitan dengan suatu kode, yang umumnya mempunyai panjang 7 atau 8 bit.
Kode yang paling umum digumakan adalah kode 7-bit yang dikenal sebagai
ASCII (American Standard Code for Information Interchange) di Amerika Serikat
dan CCITT Alphabet Number 5 secara internasional. Setiap karakter dalam kode
ini diwakili oleh kode biner 7 bit yang unik, sehingga akan terdapat 128 karakter
yang berbeda. Tabel 6.1 memberikan daftar seluruh nilai kode tersebut. Pada tabel
tersebut, bit-bit karakter diberi label dari b7, yang merupakan bit y6ang paling
berarti, hingga b1, yaitu bit yang kurang berarti. Karater-karakter yang dapat di
cetak dan karakter kontrol. Karakter yanng dapat di cetak merupakan karakter-
karater alfabetis, numerik, dan karakter khusus yang dapat dicetak pada kertas
atau dapat ditampilkan di layar. Misalnya, representasi bit karakter “K” adalah
1001011. Beberapa karakter kontrol berkaitan dengan pengontrolan pencetakan
atau penampilan karakter –karakter sebagai contoh misalnya carriage return.
Sedangkan karakter-karakter kontrol lainnya berkaitan dengan prosedur
komunikasi.
Bagi input keyboard, ketiak sebuah tombol ditekan oleh pengguna, maka
hal ini akan menghasilkan signal listrik yang diinterpretasikan oleh transducer
179

pada keyboard dan diterjemahkan ke dalam pola bit kode ASCII teetentu. Pola bit
ini kemudian di tansmisikan ke modul I/O pada komputer. Di dalam komputer,
teks akan disimpan dalam kode ASCII yang sama. Pada output, karakter-karakter
kode ASCII akan ditransmisikan dari modul I/O ke perangkat eksternal.
Transducer pada perangakat eksternal. Transducer pada perangkat akan
menginterpretasikan kode ini dan mengirimkan signal elektonik yang diperlukan
ke perangkat output untuk menampilkan karakter tersebut atau untuk membentuk
fungsi kontrol yang diminta.
Karakter ASCCI hamper selalu disortir dan ditransmiskan dengan
menggunakn 8 bit perkarakter (sebuah blok 8 bit dikenal sebagai octet atau byte).
Bit kedelpannya merupakan parity bit yang digunakan untuk deteksi error. Parity
bit berada dalam posisi bit yang paling berarti dan karena itu diberi label b8.

6.2 Modul-Modul I/O


Fungsi Modul
Modul I/O merupakan suatu entity di dalam komputer yanng bertanggung jawab
atas pengontrol sebuah perangkat eksternal atau lebih dan untuk pertukaran data
antara perangkat-perangkat tersebut dengan memori utama dan/atau register-
register CPU. Jadi modul I/O harus memiliki interface internal dengan komputer
(CPU dan main memori) dan interface eksternal dengan komputer (perngkat
eksternal)
Fungsi atau persyaratan utama bagi modul I/O dapat dibagi menjadi
beberapa kategori seperti di bawah ini :
1. Control dan timing
2. Komunikasi CPU
3. Komunikasi perangkat
4. Data Buffering
5. Deteksi error

Dalam periode waktu tertentu, CPU dapat berkomunikasi dengan satu buah
atau lebih perangkat dengan pola yang tidak menentu, tegantung pada kebutuhan
180

program I/O. Sumber daya internal, sepeti memori utama dan sistem bus, harus
dipakai bersama-sama oleh sejumlah aktivitas termasuk diantaranya I/O data.
Dengan demikian, untuk mengkoordinasikan arus lalu lintas antara sumber daya
internal dan perngakat eksternal, fungsi I/O meliputi langkah-langkah berikut ini :
1. CPU meminta modul I/O untuk memeriksa status perangkat yang terhubung.
2. Modul I/O memberikan jawabannya tentang status perangkat.
3. Bila perangkat sedang beroperasi dan berada dalam keaadaan siap untuk
mengirimkan, maka CPU meminta pemindahan data, dengan menggunakan
perintah tertentu ke modul I/O.
4. Modul I/O akan memperoleh unit data (misalnya, 8 atau 16 bit) dari perangkat
eksternal.
5. Data akan dipindahkan dari modul I/O ke CPU.

Apabila sistem menggunakan bus, maka setiap interaksi antara CPU dengan
modul I/O akan melibatkan sebuah atau lebih arbitrasi bus.
Skenario yang telah di sederhanakan seperti, tersebut diatas menjelaskan juga
bahwa modul I/O harus memiliki kemampuan untuk melaksanakan komunikasi
dengan CPU dan perangkat eksternal. Komunikasi CPU meliputi :

 Command decoding : Modul I/O menerima perintah-perintah dari CPU.


Umumnya perintah-perintah ini dikirimkan sebagai signal pada
buskontrol. Misalnya, sebuah modul I/O untuk disk dapat menerima
perintah-perintah berikut : READ SECTOR, WRITE SECTOR, SEEK
nomor track dan SCAN record ID. Kedua perintah terakhir meliputi
parameter yang dikirimkan pada bus data.
 Data : Data dipertukarkan antara CPU dengan modul I/O melalui bus data.
 Status Reporting : Karena peripheral sangat lambat, maka status modul I/O
perlu diketahui. Misalnya, bila sebuah modul I/O diminta untuk
mengirimkan data ke CPU (read), maka mungkin modul tersebut berada
dalam keadaan belum siap karena sedang melaksanakan perintah I/O lain.
Kenyataan seperti ini perlu dilaporkan dengan mengggunakan signal
181

status. Signal status yang umum adalah BUSY dan READY. Terdapat pula
signal-signal status untuk melaporkan bermacam-macam kondisi error.
 Address Recognition : Seperti halnya word memori memiliki alamat,
demikian pula dengan perangkat I/O. Dengan demikian, modul I/O harus
mengetahui address unik seluruh peripheral yang dikontrolnya.

Di sisi lain, modul I/O harus mampu membentuk komunikasi perangkat


(device communication). Komunikasi ini meliputi perintah, informasi status, dan
data (Gambar 6.2)
Tugas utama modul I/O adalah data buffering. Kebutuhan akan fungsi ini
dapat dilihat pada Tabel 6.2. Sementara kelajuan transfer data ke main memori
dan dari main memori atau CPU cukup tinggi, kelajuan untuk perangkat perpheral
lambat. Data yang berasal dari main memori dikirimkan ke modul I/O dengan
burst yang sangat cepat. Data di buffer kan dan kemudian dikirimkan ke perangkat
peripheral dengan kelajuan datanya. Pada arah kebalikannya, pem-buffer-an data
tidak secepat sebelumnya. Dengan demikian, modul I/O harus mampu beroperasi
dengan kecepatan perangkat dan memori.
Terakhir, modul I/O sering kali harus bertanggung jawab atas error detection
dan pelaporan tentang terjadinya error terhadap CPU. Sebuah kelas error meliputi
kesalahan mekanis dan elektris yang dilaporkan oleh perangkat (misalnya, kertas
menggulung, track disk yang buruk). Kelas error lainnya terdiri dari perubahan
pola bit yang tiba-tiba pada saat dikirimkan dari perangkat ke modul I/O.
Beberapa kode error-detecting sering digunakan untuk mendeteksi error transmisi.
Contohnya yang umum adalah pengguanaan parity bit karakter data. Misalnya,
kode karakter ASCII memakai 7 bit dari suatu byte. Bit kedelapan disetel
sehingga jumlah total “bilangan satu”-nya dalam byte selalu genap (even parity)
atau ganjil (odd parity). Ketika byte diterima, maka modul I/O memeriksa parity
untuk menentukan apakah suatu error telah terjadi atau tidak.
182

Stuktur Modul I/O

Modul I/O sangat berbeda dalam hal kompleksitas dan jumlah perangkat
eksternal yang dikontrolnya. Disini kita hanya akan membahas masalah umumnya
saja. (Sebuah perangkat tertentu , Intel 8255A, akan dibahas di Bagian 6.4)
Gambar 6.3 adalah diagram blok secara umum sebuah modul I/O. Modul
dihubungkan dengan bagian-bagian komputer lainnya melalui saluran signal
(misalnya, saluran bus sistem). Data yang dipindahkan ke modul dan dari modul
di-buffer-kan dalam sebuah register data atau lebih. Mungkin juga terdapat sebuah
register status atau lebih yang memberikan informasi status saat itu. Register
status dapat juga berfungsi sebagai register kontrol, untuk menerima informasi
secara detail dari CPU. Logik pada modul berinteraksi dengan CPU untuk
memberikan perintah ke modul I/O. Beberapa saluran-saluran ini digunakan oleh
CPU untuk memberikan perintah ke modul I/O. Beberapa saluran kontrol dapat di
gunakan oleh modul I/O (misalnya untuk signal arbitrasi atau signal status).
Modul juga dapat mengetahui dan menghasilkan alamat-alamat yang berkaitan
dengan perangkat yang dikontrolnya. Setiap modul I/O memiliki alamat yang
unik, atau, apabila modul I/O mengontrol lebih dari sebuah perangkat eksternal,
maka terdapat sekumpulan alamat yang unik.

Gambar 6.3 Diagram blok dari suatu modul I/O


183

Terakhir, modul I/O terdiri dari logik yang bersifat khusus bagi interface dengan
setiap perangkat yang dikotrolnya.
Modul I/O bersifat untuk memungkinkan CPU dapat mengetahui
perangkat yang jumlahnya banyak dengan cara yang sederhana. Terdapat
spektrum kemampuan yang dapat terjadi. Modul I/O dapat menyembunyikan
detail pewaktuan, format, dan elektromekanis perangakat eksternal sehingga CPU
daapt memberiakan perintah pembacaan dan penulisan dengan mudah, dan juga
memungkinkan perintah-perintah membuka dan menutup file. Pada bentuk yang
paling sederhananya, modul I/O masih dapat ,memberikan tugas pengontrolan
perangkat dalam jumlah besar (misalnya, mengulung pita) yang dapat diketahui
oleh CPU.
Modul I/O yang sering kali mendapatkan beban pengolahan yang detail,
yang memberikan interface tingkat tinggi kepada CPU, dikenal sebagai I/O chanel
atau I/O processor . Modul I/O yang agak primitif dan membutuhkan kontrol
detail sering kali disebut I/O controller atau device controller. Secara umum I/O
controller dapat dilihat pada mikro komputer, sedangkan I/O chanel digunakan
pada mainframe, sedangkan mini komputer menggunakan campuran keduanya.
Sejauh ini, kita akan menggunakan istilah generik modul I/O bila tidak
terdapat hasil yang rancu dan akan menggunakan istilah yang lebih spesifik bila
memang diperlukan.

6.3 I/O Terprogram


Terdapat tiga buah teknik yang dapat digunakan dalam operasi I/O. Pada
I/O terprogram, data saling dipertukarkan antar CPU dengan modul I/O. CPU
mengeksekusi program yang emberikan operasi I/O kepada CPU secara langsung,
termasuk status perangkat pengindera, pengiriman perintah pembacaan atau
penulisan, dan pemindahan data. Ketika CPU mengeluarkan perintah ke modul
I/O, maka CPU harus menunggu sampai operasi I/O selesai. Apabila CPU lebih
cepat dibandingkan modul I/O, maka hal ini akan membuang-buang waktu CPU.
Dengan menggunakan interrupt driven I/O, CPU mengeluarkan perintah I/O
dilanjutkan dengan mengeksekusi instruksi-instruksi lainnya, dan diinterupsi oleh
184

modul I/O apabila instruksi-instruksi tersebut telah selesai dilaksanakan. Dengan


menggunakan I/O terprogram dan I/O interrupt, maka CPU bertanggung jawab
atas pengeluaran data dari memori utama untuk keperluan output dan
penyimpanan data didalam memori utama untuk keperluan input. Alternatifnya
dikenal sebagai direct emori acces (DMA). Dalam mode ini, modul I/O dan main
memori saling bertukar data secara langsung, tanpa melibatkan CPU.
Tabel 6.3 menjelaskan hubungan ketiga teknik diatas. Dalam bagian ini,
kita akan mempelajari I/O terprogram. I/O interupt dan DMA akan dibahas pada
dua bagian berikutnya.
Tabel 6.3. Teknik-teknik I/O
No Intrrupts Use of Interrupts

I/O-to-memori transfer through CPU Programmed I/O Interrupts-driven I/O


Direct I/O-to-memori transfer Direct memory access (DMA)

Tinjauan Singkat
Ketika CPU sedang mengeksekusi progra dan menemukan instruksi yang
berkaitan dengan I/O, maka CPU akan mengeksekusi instruksi itu dengan
mengeluarkan perintah ke modul I/O yang berhubungan. Dengan menggunakan
I/O terprogram, modul I/O akan membentuk tindakan yang diminta dan kemudian
akan menyetel bit-bit terkait dalam register status I/O (Gambar 6.3). Modul I/O
tidak akan mengambil tindakan lebih lanjut untuk memeperingati CPU. Dalam
keadaan tertentu, modul I/O tidak menginterupsi CPU. Jadi, pemeriksaan secara
periodik status modul I/O hingga CPU menemukan operasi yang lengkap
merupakan tanggung jawab CPU.
Untuk menjelaskan teknik I/O terprogram, pertama-tama kita akan
meninjaunya dari sudut pandang perintah-perintah I/O yang dikeluarkan ke modul
I/O, dan kemudian dari sudut pandang instruksi I/O yang dieksekusi oleh CPU.

Perintah-perintah I/O
Untuk mengeksekusi instruksi yang berkaiatan dengan I/O, CPU
menerbitkan sebuah alamat yang menspesifikasikan modul I/O dan perangkat
eksternal tertentu, dan sebuah perintah I/O. Terdapat empat jenis perintah I/O
185

yang akan diterima modul I/O ketika modul tersebut dialamati oleh CPU.
Perintah-perintah tersebut dapat diklasifiaksikan sebagai control, test, read, dan
write.
Perintah control digunakan untuk mengaktivasi peripheral dan
memberitahunya tentang tugas yang harus dilaksanakannya. Misalnya, unit pita
magnetik dapat di instruksikan untuk menggulung ulang atau memajukan sebuah
record. Perintah-perintah ini disesuaikan dengan jenis perangkat peripheralnya.
Perintah test digunakan untuk menguji bermacam-macam kondisi status
yang berkaitan dengan modul I/O dan perangkat peripheralnya. CPU perlu
mengetahui bahwa peripheral yang dimaksud berada dalam keadaan aktif dan
dapat digunakan. CPU juga perlu mengetahui apakah operasi I/O yang terkini
telah selesai dan terjadinya error.
Perintah read mengakibatkan modul I/O akan mendapatkan sebuah butir
data dari peripheral dan menaruhnya didalam buffer internal (digambarkan
sebagai register data pada Gambar 6.4). Kemudian CPU akan memperoleh butir
data dengan memintanya yang ditaruh modul I/O pada bus data. Sebaliknya,
perintah write menyebabkan mentransmisikan butir data itu ke peripheral.
Gambar 6.5a memberikan sebuah contoh penggunaan I/O terprogram
untuk membaca sebuah blok data dari perangkat peripheral (misalnya, record dari
pita magnetik) ke dalam memori. Data dibaca sebagai sebuah word (misalnya, 16
bit). Bagi setiap word yang dibaca, CPU harus tetap berada dalam siklus status-
checking sampai CPU dapat menentukan bahwa word dapat diperoleh didalam
register data modul I/O. Diagram alir ini menjelaskan kerugian penting teknik ini :
teknik ini merupakan proses yang banyak memakan waktu yang selalu membuat
CPU selalu berada dalam keadaan sibuk.

Instruksi-instruksi I/O

Dengan menggunakan I/O terprogram, terdapat hubungan yang erat antara


instruksi I/O yang diambil CPU dari memori dengan perintah I/O yang
dikeluarkan CPU ke modul I/O untuk mengeksekusi instruksi. Dengan kata lain,
instruksi-instruksi dapat dengan mudah dipetakan ke dalam perintah-perintah I/O,
186

dan sering kali terdapat korespondensi satu-satu yang sederhana. Bentuk instruksi
bergantung pada cara pengalaman perangkat eksternal.
Umumnya, akan banyak terdapat perangkat I/O yang terhubung melalui
modul I/O ke sistem. Setiap perangkat diberi pengenal (identifier) atau alamat
yang unik. Pada saat CPU mengeluarkan perintah I/O, perintah akan berisi alamat
perangkat yang diinginkan. Jadi, setiap modul I/O harus menginterpretasikan
saluran alamat untuk menentukan apakah perintah itu ditujukan untuk dirinya atau
bukan.
Ketika CPU, memori utama, dan I/O menggunakan bus umum bersama-
sama, maka akan dimungkinkan penggunaan dua mode pengalamatan : memori
yang dipetakan (memori-mapped I/O) dan memori terisolasi (isolated memori).
Dengan menggunakan memori-mapped I/O, tedapat ruang alamat tunggal untuk
lokasi memori dan perangkat I/O. CPU memberlakukan register status dan
register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin
yang sama untuk mengakses baik memori maupun perangkat I/O. Karena itu,
misalnya, dengan 10 saluran alamat, akan di peroleh sejumlah 1024 alamat lokasi
memori dan I/O, dengan memakai sembarang kombinasi.

7 6 5 4 3 2 1 0
516 Keyboard Input Data Register

7 6 5 4 3 2 1 0
517 Keyboard Input Status &
C Control Register

1- ready Set to 1
0- busy to start read

Gambar 6.4 register data

ADDRESS INSTRUCTION OPERAND COMMENT

200 Load AC “1”


Stroke AC 517 Intiate keyboard
read
202 Load AC 517 Get Status byte
Branch if Sign = 0 202 Loop until ready
Load AC 516 Load data byte
187

(a) Memori-Mapped I/O

ADDRESS INSTRUCTION OPERAND COMMENT

200 Start I/O 5 Intiate keyboard read


201 Test I/O 5 Check for completion
Branch Not Ready 201 Loop until complete
In 5 Load data byte

(b) Isolated I/O

Gambar 6.5.a penggunaan I/O, b. I/O terisolasi


Dengan menggunakan memori-mapped I/O di perlukan saluran baca
tunggal dan saluran tulis tunggal pada data bus. Alternatifnya, bus dapat
dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran
perintah output. Sekarang saluran perintah akan menspesifikasikan apakah alamat
berkaitan dengan lokasi memori atau perangkat I/O. Range alamat dalam jumlah
besar dapat digunakan bagi keduanya. Selain itu, dengan menggunakan 10 saluran
alamat, sekarang sistem dapat mendukung baik 1024 lokasi memori maupun 1024
alamat I/O. Karena ruang alamat bagi I/O diisolasi dari ruang alamat bagi memori,
maka teknik ini dikenal sebagai I/O terisolasi.
Gambar 6.5. membedakan kedua teknik I/O terprogram ini. Gambar 7.5a
menjelaskan tentang interface untuk perangkat input yang sederhana seperti
misalnya, bagi seorang pemogram, keyboard terminal dapat terjadi dengan
menggunakan memori-mapped I/O. Asumsikan alamat 10-bit, dengan 512 bit
memori (lokasi 0-511) dan sampai 512 alamat I/O (lokasi 512-1023). Dua alamat
diberikan untuk input keyboard dari terminal tertentu. Alamat 516 berkaitan
dengan register data dan alamat 517 berkaitan dengan register status, yang juga
berfungsi sebagai register kontrol untuk menerima perintah-perintah CPU.
Program tersebut akan membacakan 1 byte data dari keyboard ke register
akumulator pada CPU. Perlu dicatat bahwa CPU akan berulang-ulang selama byte
data masih ada.
188

Pada I/O terisolasi (Gambar 6.6b), port-port I/O hanya dapat diakses
dengan perintah-perintah I/O khusus, yang akan mengaktivasi saluran perintah I/O
pada bus.
Bagi sebagian besar jenis CPU, terdapat sejumlah perintah yang berbeda
untuk keperluan pembuatan referensi memori. Bila I/O terisolasi digunakan, maka
hanya akan terdapat sedikit instruksi I/O. Jadi, keuntungan memori-mapped I/O
adalah bahwa suatu koleksi besar instruksi ini dapat di gunakan, yang mana
memungkinkan lebih efisiennya pemrograman. Kerugiannya adalah ruanng
memmori alamat yang berharga akan habis terpakai. Baik memori-mapped I/O
maupun I/O terisolasi digunakan secara luas.

6.4 Direct Memory Access

Kekurangan I/O Terprogram dan Interrupt-Driven I/O


Walaupun lebih efisiens dibandingkan dengan I/Oterprogram yang
sederhana, interrupt driven I/O masih memerlukan campur tanngan CPU secara
aktif untuk melakukan transfer data antara memori dengan modul I/O, dan data
harus melalui lintasan via CPU. Jadi, kedua bentuk I/O mengalami dua hal yang
menggangu :
1. Kelajuan transfer I/O dibatasi oleh kecepatan yang pada kecepatan itu
CPU dapat menguji dan melayani perangkat.
2. CPU ditentukan oleh pengaturan transfer I/O; sejumlah instruksi harus
dieksekusi bagi setiap trasnfer I/O-nya (misalnya, Gambar 6.4).

Terdapat semacam trade-off antara kedua masalah ini. Misalkan suatu


transfer blok data. Dengan menggunakan I/O terprogram yang sederhana, CPU
didedikasikan untuk tugas I/Odadan dapat memidahkan data dengan kelajuan
yang agak lebih tinggi, dengan resiko tidak dapat mengerjakan tugas lainnya. I/O
interrupt membesarkan CPU dengan mengorbankan kelajuan transfer I/O.
Wapaupun begitu, kedua metode tersebut memiliki dampak yang buruk terhadap
aktivitas CPU dan laju transfer I/O.
189

Ketika daya yang bervolume besar akan di pindahkan, diperlukan teknik


yang lebih efisien : Direct memori access (DMA).

Fungsi DMA
DMA meliputi modul – modul tambahan pada bus system. Modul DMA (Gambar
6.6) mampu menirukan CPU, bahkan mengambil alih control system dari CPU.
Teknik ini berkerja sebagai berikut. Pada saat CPU ingin membaca atau menulis
blok data, CPU mengeluarkan perintah ke modul DMA, dengan mengirimkan ke
modul DMA informasi berikut ini:
Read atau write yang diminta
- Alamat perangkat I/O yang dilibatkan
- Lokasi awal dalam memori untuk membaca atau menulis
- Jumlah word yang akan dibaca atau ditulis.

Kemudian CPU melanjutkan perkerjaan lainnya.CPU telah


mendelegasikan operasi I/O ini kepada modul DMA,dan modul itu akan
menjalankan tugasnya. Modul DMA memindahkan seluruh blok data, word per
word, secara langsung ke memori atau dari memori, tanpa harus melalui CPU.
Ketika pemindahan ini telah selesai, modul DMA akan mengirimkan signal
interrupt ke CPU.Sehingga CPUhanya akan dilibatkan pada awal dan akhir
pemindahan saja (gambar 6.4c).

Gambar 6.6 Diagram blok DMA


190

Modul DMA perlu mengambil kontrol bus agar dapat memindahkan data
ke memori dan dari memori. Untuk itu, modul DMA harus hanya menggunakan
bus bila CPU tidak memerlukannya, atau DMA harus memaksa CPUagar
menghentikan dulu operasi secara sementara. Teknik yang terakhir lebih umum
digunakan dan sering disebut sebagai cycle-stealing karena modul DMA
mengambil alih siklus bus.
Gambar 6.6 menjelaskan letak sirkus instruksi yang dapat menghentikan
CPU. Pada umumnya,CPU dihentikan sesaat sebelum CPU itu menggunakan
bus.Kemudian modul DMA memindahkan sebuah word dan mengembalikan
kontrol ke CPU. Perlu dicatat bahwa hal ini bukan merupakan sebuah interrupt;
CPU tidak menyimpan context dan tidak tidak mengerjakan hal lainnya,
melainkan CPU berhenti sementara selama satau siklus bus. Akibat
keseluruhannya adalah menyebabkan CPU mengeksekusi lebih lambat. Akan
tetapi bagi pemindahan I/O yang wordnya berjumlah banyak, DMA akan jauh
lebih efisien dibandigkan dengan interrupt-driven I/O atau I/O terprogram.

6.5 Saluran I/O Dan Prosesor


Evolusi Fungsi
Dengan berkembagnya sistem komputer, terdapat kecenderungan meningkatnya
kompleksitas dan kecanggihan komponen – komponen. Tidak ada yang lebih
nyata selain perkembangan dalam fungsi I/O. Kita telah mengetahui bagian
evoluasi tersebut. Langkah – langkah evoluasi ini dapat di ikhtisarkan sebagai
berikut:
1. CPU mengontrol peripheral secara langsung. Hal ini terlihat dari perangkat
yang dikontrol oleh mikroprosesor yang sederhana.
2. Ditambahkannya sebuah pengontrol atau modul I/O. CPU menggunakan I/O
terprogram tanpa menggunakan interrupt. Pada langkah ini, CPU menjadi
suatu yang terpisah dari detail tertentu interface perangkat eksternal.
3. konfigurasinya sama seperti pada langkah 2, namun sekarang interrupt
digunakan. CPU tidak memerlukan waktu untuk menunggu terbentuknyab
operasi I/O, yang berarti hal ini akan meningkatkan efisien.
191

4. Modul I/O diberi akses langsung kememori melalui DMA. Sekarang modul
I/O dapat memindahkan blok data ke memori atau dari memori tanpa
melibatkan Cpu, kecuali pada awal dan akhir pemindahan.
5. Modul I/O ditingkatkan kemampuannya menjadi sebuah prosesor yang
memiliki tugasnya sendiri, yang menggunakan intruksi tertentu. Cpu
mengarahkan prosesor I/O untuk mengeksekusi suatu program I/O di alam
memori. Prosesor I/O mengambil dan mengeksekusi intruksi – intruksi ini
tanpa adanya campur tangan CPU. Hal ini memungkinkan CPU untuk
menentukan rangkaian aktivitas I/O dan hanya akan diinterupsi bila seluruh
rangkaian aktivitas telah terbentuk.
6. Modul I/O memiliki memori lokalnya sendiri dan merupakan sebuah
komputer yang memiliki tugasnya sendiri. Dengan arsitektur seperti ini.
Perangkat I/O dalam jumlah yang banyak dapat dikontrol, dengan keterlibatan
CPU yang minimal. Penggunaan arsitektur seperti itu adalah untuk
mengontrol komunikasi dengan terminal yang terinteraktif. Prosesor I/O dapat
menjalankan sebagian bear tugasnya yang melibatkan pengontrolan CPU.

Dengan perekambangan seluruh evolusi ini semakin banyak fungsi I/O


yang terbentuk CPU sangat tertentu dari tugas – tugas yang melibatkan I/O, yang
akhirnya akan meningkatkan kinerja keseluruhan. Pada dua langkah terakhir (5-6),
terjadi perubahan besar dengan berhasil dibuatnya modul I/O yang mampu
mengeksekusi program. Pada langkah 5, modul I/O sering kali disebut sebagai
saluran I/O (I/O channel) pada langkah 6, sering digunakan istilah prosesor I/O.
Namun kedua istila h itu sering kali digunakan untuk hal yang sama. Untuk
selanjutnya, kita akan menggunakan istilah saluran I/O.

Karekteristik Saluran I/O

Saluran I/O merepresentasikan pengembangan konsep DMA. Saluran I/O


memiliki kemapuan untuk mengeksekusi intruski I/O, yang memberikan kontrol
sepenuhnya terhadap
192

Operasi-operasi I/O. Intruksi – intruski itu dapat disimpan. Didalam


memori utama untuk selanjutnya dapat dieksekusi oelh prosesor yang terdapat
dilalam saluran I/O itu sendiri. Jadi, CPU akan memulai pemindahan I/O dengan
mengintruksikan saluran I/O untuk mengesekusi program didalam memori.
Program akan menentukan perangkat daerah memori untuk menyimpan, prioritas
dan aksi yang akan diambil bagi status error tertentu. Saluran I/O akan mengikuti
intruksi – intruksi dan kontrol – kontrol data ini.

Gambar 6.7 Selektor dan Mulitplekstor


193

Terdapat dua jenis saluran I/O yang umum di pakai, seprti ditunjukan pada
Gambar 6.7 selector channel mengontrol sejumlah perangkat berkecepatan tinggi
dan selalu didedikasikan bagi transfer data dengan salah satu perangkat tersebut.
Jadi, saluran I/O memilih sebuah perangkat dan akan mempengaruhi pemindahan
data. Setiap perangkat, aau perangkat dalam jumlah sedikit, akan ditangani oleh
sebuah controller, atau modul I/O, yang mana lebih menyerupai modul I/O yang
telah kita bahas sebelumnya. Sehingga, saluran I/O mengantikan fungsi CPU
dalam hal mengontrol controller – controller I/O. Multiplexor channel menerima
atau mentransmisikan secepat mungkin ke beberapa perangkat. Misalnya,
jumlahan aliran karekter dari tiga perangkat yang memiliki kelajuan yang berbeda
dan memiliki aliran A1A2A3A4...., B1B2B3B4..., C1C2C3C4 dapat menjadi
A1B1C1A2C2A3B2C3A4, dan seterusnya. Untuk perangkat yang berkecepatan
tinggi, block multiplexor akan menyebarkan blok data yang beasal dari beberapa
perangkat.

6.6 Interface Eksternal


Jenis Interface
Interface ke peripheral dari sebuah modul I/O harus disesuaikan dengan sifat dan
operasional peripheral. Salah satu karateristik utama interface adalah serial atau
pararel (Gambar 6,8) pada interface pararel, terdapat sejumlah saluran yang
terhubung kemodul I/O dan peripheral. Dan sejumlah bit dipindahkan secara
simulat, seperti halnya seluruh bit dari word di pindahkan secara simulat melalui
bus data. Sedangkan pada interface serial, hanya terdapat saluran yang
disesuaikan untuk mentranmisikan data, dan bit – bit harus ditranmisikan satu
persatu – satu, interface pararel umunya digunakan untuk peripheral berkecepatan
Tinggi, seperti pita dan disk. Iterface serial umum digunakan untyk printer dan
terminal.
Pada kedua jenis interface di atas, modul I/O harus membentuk dialog
dengan peripheral. Secara umum, dialog untuk operasi penulisan adalah sebagai
berikut:
194

1. Modul I/O mengirim signal kontrol yang meminta izin untuk mengirim
data.
2. Peripharel memberitahukan permintaan data
3. Modul I/O memindahkan data (satu word atau blok tergantng peripharel)
4. Peripharel memberitahukan penerimaan data.
Operasi read pun memiliki dialog yang sama seperti diatas.
Kundi operasi modul I/O adalah buffer internal yang dapat menyimpan
data yang dilewatkan di antara peripharel dan komponen – komponen sistem
lainnya. Buffer ini memungkinkan modul I/O untuk mengkompensasi perbedaan
kecepatan antara bus sistem dengan saluran internalnya.

Gambar 6.7 I/O Paralel dan Serial

Konfigurasi Point-to-Point dan Multipoint


Koneksi antara modul I/O di dalam sebuah system komputer dan perangkat
eksternal dapat berbentuk poit-to-point memiliki saluran dedicated antara modul
I/O dan perangkat eksternal. Pada sistem yang kecil (PC dan workstatuion).
Umunya linkpoint-to-point meliputi link dengan keyboard, printer, dan modern
eksternal. Contoh interface seperti itu adalah spesifikasi E1A-232 (lihat (STAL($)
untuk keteranganya).
Yang berkembang menjadi semakin penting adalah intergace eksternal
multipoint, yang digunakan untuk mendukung perangkat penyimpan yang
berukuran besar (drive) dan perangkat multimedia (CD-ROM, video dan audio).
195

Interface multipoint berada dibawah kendali bus – bus eksternal dan menunjukan
jenis logik yang sama seperti bus – bus yang telah dibahas pada bab 3. pada
bagian ini, kita akan menijau dua buah contoh penting. SCSI dan PI394.

Small Computer System Interface (SCSI)


Sebuah contoh interface yang baik untuk perangkat periprahel eksternal adalah
SCSI. Mulanya dipopulerkan oleh Macintosh pada 1984, saat itu SCSI digunakan
secara luas baik pada Macitosh maupun system yang kampatibel dengan IBM PC
dan juga workstation SCSI merupakan interface standar untuk drive CD-ROM,
peralatan audio dan perangkat penyimpanan eksternal berukuran besar SCSI
menggunakan interface pararel, dengan 8, 16 atau 32 saluran data.
Konfigurasi Scsi umumnya berkaitan dengan bus, walaupun pada
kenyataannya perangkat – perangkat tersebut dihubungkan berupa daisy-chain.
Perangkat SCSI memiliki dua buah koneltor: konektor untuk input dan konektor
untuk output. Seluruh perangkat dihubungkan, dan salah satu ujungnya
dihubungkan dengan computer host.seluruh perangkat berfungsi secara
independent dan dapat bertukar data satu sama lainnya dan dengan system host.
Misalnya, sebuah hard disk dapat membuat back-up-nya sendiri ke tape tanpa
melibatkan host processor. Data di pindahkan dalam bentuk paket – paket pesan,
seprti akan dijelaskan di bawah ini:

6.7 Rangkuman

Fungsi atau persyaratan utama bagi modul I/O dapat dibagi menjadi beberapa
kategori seperti control dan timing, komunikasi CPU, komunikasi perangkat, data
Buffering, deteksi error.
Kita akan mengklasifikasikan secara luas perangkat eksternal menjadi tiga
kategori :
 Human-Readable : Cocok untuk berkomunikasi dengan pengguan
komputer.
 Machine-Readable : Cocok untuk berkomunikasi dengan peralatan.
196

 Communication : Cocok untuk berkomunikasi denagn perangkat jarak


jauh.

Soal-soal Essay

1. Jelaskan fungsi bagi modul I/O ?


2. Klasifikasikan perangkat luar dengan komputer ?
3. Apa saja yang meliputi komunikasi CPU ?
4. Jelaskan DMA dan fungsinya ?
5. Bagaimana hubungan modul I/O dengan perangkat eksternal ?
6. Jelaskan yang dimaksud dengan Small Computer System Interface (SCSI) ?
197

Daftar Pustaka

Andrew S. Tanembaum, 2000, Structured Computer Organization, McGraw-Hill,


New York.

Advanced Computer architecture, Parallelism scalability Programability, Kai


Hwang, 1993, McGraw-Hill, New York.

Carl Hamacher, Zvonko Vrannesic, safwat zaky, 2002, Computer Organization,


5th edition, McGraw-Hill, New York.

David A. Patterson and John L. Hennessy, Morgan Kaufmann, 2007, Computer


Organization and Design: The Hardware/Software Interface" (3rd ed.).

John P. Hayes, 2002, Computer Architecture and Organization, McGraw-Hill,


New York.

John L. Hennessy and David A. Patterson, Morgan Kaufmann, 2007, Computer


Architecture: A Quantitative Approach" (4th ed.).

M. Morris Mano, 2003, Computer System Architecture, Prentice Hall.

W. Stalling, 2003, Computer Architecture and Organization by, 6th edition,


McGraw-Hill, New York.

Anda mungkin juga menyukai