BAB3. Organisasi I/O
Tiga
komponen penting dalam Sistem Komputer, yaitu:
¡ CPU
¡ Memori
(primer dan sekunder), dan
¡ Peralatan
masukan/keluaran (I/O devices) seperti printer, monitor, keyboard, mouse, dan modem.
Fungsi : Memindahkan informasi
antara CPU atau memori utama dengan dunia luar
I/O terdiri :
-
Piranti I/O (peripheral)
-
Pengendali I/O (device controller)
-
Perangkat lunak
Perangkat Eksternal
Salah satu fitur dasar komputer adalah kemampuannya untuk
mempertukarkan data dengan perangkat
lain. Kemampuan komunikasi ini memungkinkan operator manusia, misalnya,
untuk menggunakan keyboard dan layer display untuk mengolah teks dan grafik.
Mesin komputer akan memiliki nilai apabila bisa berinteraksi
dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi apabila tidak
dapat berinteraksi dengan dunia luar.
Ambil contoh saja, bagaimana kita bisa menginstruksikan CPU
untuk melakukan suatu operasi apabila tidak ada keyboard.
Bagaimana kita melihat hasil kerja sistem komputer bila
tidak ada monitor. Keyboard dan monitor tergolong dalam perangkat eksternal
komputer. Perangkat eksternal atau lebih umum disebut peripheral tersambung
dalam sistem CPU melalui perangat pengendalinya, yaitu modul I/O.
Perangkat eksternal diklasifikasikan menjadi 3
kategori:
• Human Readable, yaitu perangkat yang berhubungan
dengan manusia sebagai pengguna komputer.
Contohnya: monitor, keyboard, mouse, printer, joystick,
disk drive.
• Machine readable, yaitu perangkat yang
berhubungan dengan peralatan. Biasanya berupa modul sensor dan tranduser untuk
monitoring dan kontrol suatu peralatan atau sistem.
• Communication, yatu perangkat yang berhubungan
dengan komunikasi jarak jauh. Misalnya: NIC dan modem.
Modul I/O merupakan
peralatan antarmuka (interface) bagi sistem bus atau switch sentral dan
mengontrol satu atau lebih perangkat peripheral.
Modul I/O tidak
hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam
melakukan fungsi komunikasi antara peripheral dan bus komputer.
Sistem Masukan & Keluaran Komputer
Bagaimana modul I/O dapat menjalankan
tugasnya, yaitu menjembatani CPU dan memori dengan dunia luar merupakan hal
yang terpenting untuk kita ketahui.
Inti
mempelajari sistem I/O suatu komputer adalah mengetahui fungsi dan struktur
modul I/O.
Modul I/O adalah suatu komponen dalam sistem komputer
yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan
bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut
dengan memori utama ataupun dengan register – register CPU.
Dalam mewujudkan hal ini, diperlukan antar muka internal
dengan komputer (CPU dan memori utama) dan antarmuka dengan perangkat
eksternalnya untuk menjalankan fungsi – fungsi pengontrolan.
Fungsi dalam menjalankan tugas bagi modul I/O dapat
dibagi menjadi beberapa katagori, yaitu:
- Kontrol dan pewaktuan.
- Komunikasi CPU.
- Komunikasi perangkat eksternal.
- Pem-buffer-an data.
- Deteksi kesalahan.
1. Kontrol dan pewaktuan:
Fungsi kontrol dan
pewaktuan (control & timing) merupakan hal yang penting untuk
mensinkronkan kerja masing – masing komponen penyusun komputer. Dalam sekali
waktu CPU berkomunikasi dengan satu atau lebih perangkat dengan pola tidak
menentu dan kecepatan transfer komunikasi data yang beragam, baik dengan
perangkat internal seperti register – register, memori utama, memori sekunder,
perangkat peripheral. Proses tersebut bisa berjalan apabila ada fungsi kontrol
dan pewaktuan yang mengatur sistem secara keseluruhan.
Contoh control pemindahan data dari peripheral ke CPU
melalui sebuah modul I/O dapat meliputi langkah – langkah berikut ini :
Permintaan
dan pemeriksaan status perangkat dari CPU ke modul I/O.
Modul
I/O memberi jawaban atas permintaan CPU.
Apabila
perangkat eksternal telah siap untuk transfer data, maka CPU akan mengirimkan
perintah ke modul I/O.
Modul
I/O akan menerima paket data dengan panjang tertentu dari peripheral.
Selanjutnya
data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan kecepatan
transfer oleh modul I/O sehingga paket – paket data dapat diterima CPU dengan
baik.
Transfer
data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul
I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih.
2. Komunikasi CPU
Adapun fungsi
komunikasi antara CPU dan modul I/O meliputi proses – proses berikut :
• Command
Decoding, yaitu modul I/O menerima perintah – perintah dari CPU yang
dikirimkan sebagai sinyal bagi bus kontrol.
Misalnya, sebuah modul I/O untuk
disk dapat menerima perintah: Read sector, Scan record ID, Format disk.
• Data, pertukaran
data antara CPU dan modul I/O melalui bus data.
• Status
Reporting, yaitu pelaporan kondisi status modul I/O maupun perangkat
peripheral, umumnya berupa status kondisi Busy atau Ready. Juga
status bermacam – macam kondisi kesalahan (error).
• Address Recognition, bahwa peralatan atau komponen
penyusun komputer dapat dihubungi atau dipanggil maka harus memiliki alamat
yang unik, begitu pula pada perangkat peripheral, sehingga setiap modul I/O
harus mengetahui alamat peripheral yang dikontrolnya.
Pada sisi modul I/O ke perangkat peripheral juga terdapat komunikasi yang
meliputi komunikasi data, kontrol maupun status.
3. Komunikasi Perangkat Peripheral
Proses transfer informasi antara CPU dengan sebuah
peripheral :
-
Memilih I/O dan mengujinya.
-
Menginisialisasi transfer dan mengkoordinasikan pengaturan waktu operasi I/O.
-
Mentransfer informasi.
-
Menghentikan proses transfer.
4. Buffering & Deteksi Kesalahan
Tujuan utama buffering
adalah mendapatkan penyesuaian data sehubungan perbedaan laju transfer data
dari perangkat peripheral dengan kecepatan pengolahan pada CPU.
Umumnya laju
transfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun
media penyimpan.
Fungsi terakhir adalah deteksi kesalahan.
Apabila pada perangkat peripheral terdapat masalah sehingga proses tidak dapat
dijalankan, maka modul I/O akan melaporkan kesalahan tersebut. Misal informasi
kesalahan pada peripheral printer seperti: kertas tergulung, pinta habis,
kertas habis, dan lain – lain. Teknik yang umum untuk deteksi kesalahan adalah
penggunaan bit paritas.
Struktur Modul I/O:
Antarmuka modul I/O ke CPU melalui bus sistem komputer
terdapat tiga saluran, yaitu :
• saluran data,
• saluran alamat dan saluran kontrol.
• Bagian terpenting adalah blok logika I/O yang
berhubungan dengan semua peralatan antarmuka peripheral, terdapat fungsi
pengaturan dan switching pada blok ini.
Teknik
Masukan/Keluaran:
Terdapat tiga buah teknik dalam operasi I/O, yaitu: 1. I/O
terprogram.
Data saling dipertukarkan antara CPU dan modul I/O. CPU
mengeksekusi program yang memberikan operasi I/O kepada CPU
secara langsung, seperti
pemindahan data, pengiriman perintah baca maupun tulis, dan
monitoring perangkat.
Kelemahan teknik ini adalah CPU akan menunggu sampai operasi
I/O selesai dilakukan
modul I/O sehingga akan membuang waktu, apalagi CPU lebih
cepat proses operasinya. Dalam
teknik ini, modul I/O tidak dapat melakukan interupsi kepada
CPU terhadap proses – proses yang
diinteruksikan padanya. Seluruh proses merupakan tanggung
jawab CPU sampai operasi lengkap dilaksanakan.
Untuk
melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat
bagi modul I/O dan perangkat peripheralnya sehingga
terspesifikasi secara khusus dan sebuah
perintah I/O yang akan dilakukan.
Terdapat empat
klasifikasi perintah I/O, yaitu:
1. Perintah control.
Perintah ini
digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang
diperintahkan padanya.
2. Perintah test.
Perintah ini digunakan CPU untuk menguji berbagai kondisi
status modul I/O dan
peripheralnya. CPU perlu mengetahui perangkat peripheralnya
dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi
I/O yang dijalankan serta mendeteksi kesalahannya.
3. Perintah read.
Perintah pada modul I/O untuk mengambil suatu paket data
kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim
melalui bus data setelah terjadi sinkronisasi data maupun kecepatan
transfernya.
4. Perintah write.
Perintah ini kebalikan dari read. CPU memerintahkan modul
I/O untuk mengambil data dari bus data untuk diberikan pada perangkat
peripheral tujuan data tersebut.
2. interrupt –
driven I/O
Teknik interrupt – driven I/O memungkinkan proses tidak
membuang – buang waktu.
Prosesnya adalah CPU mengeluarkan perintah I/O pada modul
I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan melakukan
eksekusi perintah – perintah lainnya.
Apabila modul I/O
telah selesai menjalankan instruksi yang diberikan padanya akan melakukan
interupsi pada CPU bahwa tugasnya telah selesai.
Dalam teknik ini
kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari memori maupun pelaksanaan
isi perintah tersebut.
Terdapat
selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking
beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU.
Cara kerja
teknik interupsi di sisi modul
I/O adalah modul I/O menerima perintah, misal read.
Kemudian modul I/O melaksanakan perintah pembacaan dari
peripheral dan meletakkan paket data ke register data modul I/O,
selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol.
Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul
meletakkan data pada bus data dan modul siap menerima perintah selanjutnya.
Pengolahan interupsi saat perangkat I/O telah menyelesaikan
sebuah operasi I/O adalah sebagai berikut :
1. Perangkat I/O
akan mengirimkan sinyal interupsi ke CPU.
2. CPU
menyelesaikan operasi yang sedang dijalankannya kemudian merespon
interupsi.
3. CPU memeriksa
interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal
acknowledgment ke perangkat I/O untuk menghentikan interupsinya.
3. DMA (Direct
Memory Access).
Ketiganya memiliki keunggulan maupun kelemahan, yang
penggunaannya disesuaikan sesuai unjuk kerja masing – masing teknik.
Operasi I/O
terbagi menjadi 3 metode :
I/O
terprogram
I/O
interupsi
Direct
Memory Access (DMA)
I/O terprogram
Metode di mana CPU mengendalikan operasi
I/O secara keseluruhan dengan menjalankan serangkaian instruksi I/O
dengan sebuah program.
Karakteristik I/O terprogram:
Program tersebut digunakan untuk
memulai,
mengarahkan dan menghentikan
operasi-operasi I/O.
Membutuhkan sejumlah perangkat keras (register) yaitu:
• Register status, berisi status
piranti I/O dan data yang akan dikirimkan.
• Register buffer, menyimpan data sementara sampai CPU siap menerimanya
• Pointer buffer, menunjuk ke
lokasi memori di mana sebuah karakter harus ditulis atau dan mana
karakter tersebut harus dibaca.
• Counter data, tempat
penyimpanan jumlah karakter dan akan
berkurang nilainya jika karakter ditransfer.
- Membutuhan waktu proses yang lama
dan tidak efesien dalarn pemanfaatan CPU.
I/O interupsi
Metode
di mana CPU akan bereaksi ketika suatu piranti mengeluarkan permintaan untuk
pelayanan.
Karakteristik I/O Interupsi:
Lebih efisien dalam pemanfaatan
CPU, karena tidak harus menguji status dari piranti.
Interupsi dapat berasal dari piranti I/O, interupsi perangkat keras
misalnya : timer, memori, power supply, dan Interupsi perangkat lunak misalnya
: overflow, opcode/data yang ilegal, pembagian dengan nol.
Direct Memory Access (DMA)
Metode transfer data secara langsung
antara memori dengan piranti tanpa pengawasan dan pengendalian CPU.
• Skema transfer blok DMA dual port
CPU dan DMA
controller mengakses memori utama
melalui MAR
dan MBR dengan menggunakan
sebuah memori
utama dual port (2 port).
Port I
----> melayani CPU
Port II
----> melayani DMA controller
•
Skema transfer blok DMA cycle stealing (pencurian siklus)
Hanya memerlukan sebuah memori port tunggal
di mana CPU dan piranti I/O beradu cepat pada basis asinkron, prioritas utama akan diberikan pada
piranti I/O.
Interfacing
Adalah peralatan yang digunakan untuk
menghubungkan suatu piranti dengan CPU melalui bus
Mengakses
Perangkat I/O
Pengaturan sederhana untuk menghubungkan perangkat I/O ke
suatu komputer adalah dengan menggunakan pengaturan bus tunggal, sebagaimana
yang ditampilkan pada gambar 12.1. Bus tersebut mengenable semua perangkat yang
dihubungkan padanya untuk mempertukarkan informasi. Biasanya, pengaturan
tersebut terdiri dari tiga set jalur yang digunakan untuk membawa alamat, data,
dan sinyal kontrol.
Tiap perangkat I/O ditetapkan dengan suatu set alamat yang
unik.
Pada saat prosessor meletakkan suatu alamat pada jalur alamat, perangkat yang mengenali alamat
ini merespon perintah yang dinyatakan pada jalur kendali. Prosessor
meminta operasi baca atau tulis, dan data yang direquest ditransfer melalui jalur data. Pada saat perangkat I/O dan memori berbagi ruang
alamat yang sama, pengaturan tersebut disebut memory mapped I/O.
Dengan memory mapped I/O, tiap instruksi mesin yang dapat
mengakses memori dapat digunakan untuk mentransfer data ke atau dari perangkat
I/O.
Misalnya, jika DATAIN
adalah alamat input buffer yang terhubung dengan keyboard, maka Instruksi
Move DATAIN, R0
Membaca data dari DATAIN dan menyimpannya dalam register
prosessor R0.
Serupa dengan instruksi
Move R0, DATAOUT
Mengirim isi register R0 ke lokasi DATAOUT, yang mungkin
berupa buffer
data output dari unit display atau printer.
Sinyal khusus pada bus tersebut mengindikasikan bahwa
transfer baca atau tulis yang diminta adalah operasi I/O. Pada saat sinyal ini
dinyatakan, unit memori mengabaikan transfer yang Direquest. Perangkat I/O
menganalisa bit loworder bus alamat untuk menentukan apakah sebaiknya memberi
respon.
This comment has been removed by the author.
ReplyDelete