12.3.11

Materi Arsitek Komputer II

Perangkat Eksternal

- Sistem komputer tidak akan berguna tanpa adanya peralatan input dan output. Operasi-operasi I/O diperoleh melalui sejumlah perangkat eksternal yang menyediakan alat untuk pertukaran data di antara lingkungan luar dan komputer.Human-Readable : cocok untuk berkomunikasi dengan pengguna komputer.
- Machine-Readable : cocok untuk berkomunikasi dengan peralatan.
- Communication : cocok untuk berkomunikasi dengan perangkat jarak jauh.
Interface ke modul I/O adalah dalam bentuk signal-signal control, status dan data. Data berbentuk sekumpulan bit untuk dikirimkan ke modul I/O atau diterima dari modul I/O. Control Signal menentukan fungsi-fungsi yang akan dilakukan perangkat, seperti mengirimkan data ke modul I/O (INPUT atau READ), menerima data dari modul I/O (OUTPUT atau WRITE), report status, atau membentuk fungsi kontrol tertentu ke perangkat. Signal status menandai status perangkat. Misalnya READY/NOT READY untuk menunjukan kesiapan perangkat untuk mengirimkan data.
Control logic berkaitan dengan perangkat yang mengontrol operasi perangkat dalam memberikan respons yang berasal dari modul I/O. Transducer mengubah data dari energi listrik menjadi energi lain selama berlangsungnya output dan dari bentuk energi tertentu menjadi energi listrik selama berlangsungnya input. Umumnya, suatu buffer dikaitkan dengan transducer untuk menampung sementara data yang ditransfer di antara modul I/O dan dunia luar. Ukuran buffer yang umum adalah 8 hingga 16 bit.

Keyboard/Monitor
Disk Drive

Sebuah disk drive terdiri dari perangkat elektronik untuk pertukaran signal-signal data, control dan status dengan modul I/O dan perangkat elektronik untuk mengontrol mekanisme pembacaan/penulisan disk. Pada fixed-head disk, transduser mampu melakukan konversi dari pola-pola magnetic pada permukaan disk yang bergerak menjadi bit-bit pada buffer perangkat. Disk yang head-nya bergerak juga harus dapat memindahkan lengan disk secara radial menjauhi dan mendekati permukaan disk.

I/O Terprogram

Terdapat tiga buah teknik yang dapat digunakan dalam operasi I/O. Pada I/O terprogram, data saling dipertukarkan antara CPU dengan modul I/O. CPU mengeksekusi program yang memberikan 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 CPU dilanjutkan dengan mengeksekusi instruksi-instruksi lainnya dan diinterupsi oleh modul I/O apabila instruksi-instruksi tersebut telah selesai dilaksanakan. Dengan menggunakan I/O terprogram dan I/O interrupt maka CPU bertanggungjawab atas pengeluaran data dari memori utama untuk keperluan output dan penyimpanan data di dalam memori utama untuk keperluan input. Alternatifnya dikenal sebagai direct memory access (DMA). Dalam mode ini, modul I/O dan main memori saling bertukar data secara langsung tanpa melibatkan CPU.

Perintah-perintah I/O

Untuk mengeksekusi instruksi yang berkaitan 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 yang akan diterima modul I/O ketika modul tersebut dialamati oleh CPU. Perintah-perintah tersebut dapat diklasifikasikan sebagai control, test, read dan write.
1. Perintah control digunakan untuk mengaktivasi peripheral dan memberitahunya tentang tugas yang harus dilaksanakannya.
2. 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.
3. Perintah read mengakibatkan modul I/O akan mendapatkan sebuah butir data dari peripheral dan menaruhnya didalam buffer internal (register). Kemudian CPU akan memperoleh butir data dengan memintanya yang ditaruh modul I/O pada bus data.
4. Perintah write menyebabkan modul I/O mengambil data (byte atau word) dari bus data dan kemudian mentransmisikan butir data itu ke peripheral.

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. Bentuk instruksi bergantung pada cara pengalamatan perangkat eksternal.
Umumnya, akan banyak terdapat perangkat I/O yang terhubung melalui modul I/O ke system. 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 secara bersama-sama maka akan dimungkinkan penggunaan dua mode pengalamatan :
1. memori yang dipetakan (memori-mapped I/O)
2. memori yang terisolasi (isolated memori)
Dengan menggunakan memori-mapped I/O, terdapat ruang alamat tunggal untuk lokasi memori dan perangkat I/O. Dengan menggunakan memori-mapped I/O, diperlukan saluran baca tunggal dan saluran tulis tunggal pada bus. Alternatifnya, bus dapat dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Karena ruang alamat bagi I/O diisolasi dari ruang alamat bagi memori maka teknik ini dikenal sebagai I/O terisolasi.
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 digunakan, yang mana memungkinkan lebih efisiennya pemrograman. Kerugiannya adalah ruang memori alamat yang berharga akan habis terpakai. Baik memori-mapped I/O maupun I/O terisolasi digunakan secara luas.

Interrupt-driven I/O
Masalah yang dijumpai dalam I/O terprogram adalah bahwa CPU harus menunggu modul I/O yang diinginkan agar siap baik untuk menerima maupun untuk mengirimkan data dalam waktu yang relative lama. Pada saat menunggu, CPU harus berulang-ulang menanyakan status modul I/O. Akibatnya, tingkat kinerja system keseluruhan mengalami penurunan yang tajam.
Alternatifnya adalah CPU mengeluarkan perintah I/O ke modul dan kemudian mengerjakan pekerjaan lainnya. Kemudian modul I/O akan menginterupsi CPU untuk meminta layanan modul telah siap untuk saling bertukar data dengan CPU. Setelah itu CPU akan mengeksekusi pengiriman data, seperti sebelumnya, dan dilanjutkan menyelesaikan proses sebelumnya.
Mari kita perhatikan cara kerja tersebut, pertama-tama dari sudut pandang modul I/O. Pada input, modul I/O menerima perintah READ dari CPU. Kemudian modul I/O memproses pembacaan data dari peripheral tertentu. Sekali data telah berada dalam register data modul, modul mengeluarkan signal interrupt ke CPU melalui saluran control. Kemudian modul akan menunggu hingga datanya diminta oleh CPU. Pada saat permintaan itu terjadi, modul menaruh datanya pada bus data dan modul akan siap melakukan pekerjaan lainnya.
Dari sudut pandang CPU, kegiatan input adalah sebagai berikut. CPU mengeluarkan perintah READ. Kemudian CPU berhenti mengeluarkan perintah dan melanjutkan pekerjaan lainnya. Pada akhir setiap siklus instruksi, CPU memeriksa interrupt. Ketika interrupt dari modul I/O terjadi, CPU menyimpan context (misalnya penghitung program dan register CPU) program yang sedang berlangsung dan memproses interrupt. Dalam hal ini, CPU membaca word data dari modul I/O dan menyimpannya didalam memori. Kemudian CPU menyimpan context program yang sedang dikerjakannya dan melanjutkan eksekusi.



Pengolahan Interrupt
Adanya interrupt memicu sejumlah kejadian, baik pada hardware prosesor maupun pada software. Pada saat perangkat I/O telah menyelesaikan sebuah operasi I/O, maka urutan kejadian hardware dibawah ini akan terjadi :
1. Perangkat akan mengeluarkan signal interrupt ke CPU.
2. Prosesor menyelesaikan eksekusi instruksi yang sedang dilakukan sebelum memberikan responsnya terhadap interrupt.
3. Prosesor memeriksa interrupt, apakah ada atau tidak.
4. Sekarang prosesor perlu mempersiapkan pengontrolan transfer ke routine interrupt. Prosesor perlu menyimpan informasi. Informasi minimum yang diperlukan adalah (a) status prosesor, yang berisi register yang dipanggil program status word (PSW), dan (b) lokasi instruksi berikutnya yang akan dieksekusi, yang terdapat pada penghitung program. Informasi-informasi ini dapat ditaruh ke dalam stack pengontrol system.
5. Setelah itu prosesor dapat memuat penghitung program dengan lokasi entri dan program penanganan interrupt yang akan memberikan respon ke interrupt ini.
6. Penghitung program dan PSW yang berkaitan dengan program yang di interrupsi telah disimpan didalam stack system.
7. Setelah itu interrupt handler dapat menjalankan proses interrupt.
8. Apabila pengolahan interrupt telah selesai, nilai-nilai register yang tersimpan diambil kembali dari stack dan selanjutnya disimpan ke register.
9. Menyimpan kembali PSW dan nilai penghitung program dari stack.

Direct Memory Access
Kekurangan I/O Terprogram dan Interrupt-Driven I/O
Walaupun lebih efisien dibandingkan dengan I/O Terprogram yang sederhanan, interrupt-driven I/O masih memerlukan campur tangan CPU secara aktif untuk melakukan transfer data antara memori dengan modul I/O dan transfer data harus melalui lintasan via CPU. Jadi kedua bentuk I/O mengalami dua hal yang mengganggu :
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 transfer I/O nya.
Terdapat semacam trade-off antara kedua masalah ini. Misalkan suatu transfer blok data. Dengan menggunakan I/O terprogram sederhana, CPU didedikasikan untuk tugas I/O dan dapat memindahkan data dengan kelajuan yang agak lebih tinggi, dengan resiko tidak dapat mengerjakan tugas lainnya. I/O interrupt membebaskan CPU dengan mengobarkan kelajuan transfer I/O. walaupun begitu, kedua metode tersebut memiliki dampak yang buruk terhadap aktivitas CPU dan laju transfer I/O.
Ketika data yang bervolume besar akan dipindahkan, diperlukan teknik yang lebih efisien: direct memory access (DMA)

Fungsi DMA

DMA meliputi modul-modul tambahan pada bus system. Modul DMA mampu menirukan CPU, bahkan mengambil alih control system dari CPU. Teknik ini bekerja 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 pekerjaan 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 CPU hanya akan dilibatkan pada awal dan akhir pemindahan saja.
Jumlah siklus yang dibutuhkan dapat banyak dikurangi dengan mengintegrasikan antara modul DMA dengan fungsi-fungsi I/O. Terdapat sebuah lintasan antara modul DMA dan sebuah atau lebih modul I/O yang tidak melibatkan bus system. Sebenarnya logic DMA dapat merupakan bagian dari modul I/O atau merupakan bagian yang terpisah yang dapat mengontrol sebuah atau lebih modul I/O. Konsep ini dapat dilanjutkan dengan menghubungkan modul-modul I/O ke modul DMA dengan menggunakan sebuah bus I/O. Hal ini akan mengurangi jumlah interface I/O didalam modul DMA menjadi satu buaah dan akan memberikan kemudahan untuk pengembangan konfigurasi. Dalam keseluruhan kasus ini, bus system yang digunakan bersama oleh modul DMA dengan CPU dan memori dapat digunakan oleh modul DMA dengan CPU dan memori dapat digunakan oleh modul DMA hanya untuk pertukaran data dengan memori. Pertukaran data antara modul DMA dengan modul I/O akan terjadi di luar system bus.
Saluran I/O dan Prosesor
Evolusi Fungsi I/O
Dengan berkembangnya system computer, terdapat kecenderungan meningkatnya kompleksitas dan kecanggihan komponen-komponen. Tidak aada yang lebih nyata selain perkembangan dalam fungsi I/O. kita telah mengetahui bagian evolusi tersebut. Langkah-langkah evolusi ini dapat diikhtisarkan 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 sesuatu yang terpisah dari detail tertentu interface-interface perangkat eksternal.
3. Konfigurasinya sama seperti pada langkah 2, namun sekarang interrupt digunakan. CPU tidak memerlukan waktu untuk menunggu terbentuknya operasi I/O, yang berarti hal ini akan meningkatkan efisiensi.
4. Modul I/O diberi akses langsung ke memori 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 kemampuan sendiri, yang menggunakan instruksi tertentu untuk I/O tertentu. CPU mengarahkan prosesor I/O untuk mengeksekusi suatu program I/O di dalam memori. Prosesor I/O mengambil dan mengeksekusi instruksi-instruksi ini tanpa adanya campur tangan CPU. Hal ini memungkinkan CPU untuk menentukan rangkaian aktivitas I/O dan hanya akan diinterrupsi bila seluruh rankaian aktivitas telah terbentuk.
6. Modul I/O memiliki memori lokalnya sendiri dan merupakan sebuah computer 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 interaktif. Prosesor I/O dapat menjalankan sebagian besar tugasnya yang melibatkan pengontrolan CPU.
Karakteristik Saluran I/O
Saluran I/O merepresentasikan pengembangan konsep DMA. Saluran I/O memiliki kemampuan untuk mengeksekusi instruksi I/O, yang memberikan control sepenuhnya terhadap operasi-operasi I/O. Instruksi-instruksi itu dapat disimpan di dalam memori utama untuk selanjutnya dapat dieksekusi oleh prosesor yang terdapat di dalam saluran I/O itu sendiri. Jadi, CPU akan memulai pemindahan I/O dengan menginstruksikan saluran I/O untuk mengeksekusi program di dalam memori. Program akan menentukan perangkat, daerah memori untuk menyimpan, prioritas dan aksi yang akan diambil bagi status error tertentu. Saluran I/O akan mengikuti instruksi-instruksi dan control-kontrol transfer data ini.
Terdapat dua jenis saluran I/O yang umum dipakai :
1. Selector Channel mengontrol sejumlah perangkat berkecepatan tinggi dan selalu di dedikasikan bagi transfer data dengan salah satu perangkat tersebut. Jadi, saluran I/O memilih sebuah perangkat dan akan mempengaruhi pemindahan data. Setiap perangkat atau perangkat dalam jumlah sedikit akan ditangani oleh sebuah controller, atau modul I/O yang mana lebih menyerupai modul I/O. Sehingga, saluran I/O menggantikan fungsi CPU dalam hal mengontrol controller-controller tersebut.
2. Multiplexor Channel menerima atau mentransmisikan secepat mungkin ke beberapa perangkat. Untuk perangkat yang berkecapatan tinggi, block multiplexor akan menyebarkan blok data yang berasal dari beberapa perangkat.



Interface Eksternal
Jenis Interface

Interface ke peripheral dari sebuah modul I/O harus disesuaikan dengan sifat dan operasi peripheral. Salah satu karakteristik utama interface adalah serial atau parallel. Pada interface parallel, terdapat sejumlah saluran yang terhubung ke modul I/O dan peripheral, dan sejumlah bit dipindahkan secara simultan, seperti halnya seluruh bit dari word dipindahkan secara simultan melalui bus data. Sedangkan pada interface serial, hanya terdapat saluran yang digunakan untuk mentransmisikan data dan bit-bit harus ditransmisikan satu per satu. Interface parallel umumnya digunakan untuk berkecepatan tinggi seperti pita dan disk. Interface serial umum digunakan untuk printer dan terminal.
Pada kedua jenis interface diatas, modul I/O harus membentuk dialog dengan peripheral. Secara umum, dialog untuk operasi penulisan adalah sebagai berikut :
1. Modul I/O mengirim signal control yang meminta izin untuk mengirim data.
2. Peripheral memberitahukan permintaan itu.
3. Modul I/O memindahkan data (satu word atau blok tergantung peripheral)
4. Peripheral memberitahukan penerimaan data.
Kunci operasi modul I/O adalah buffer internal yang dapat menyimpan data yang dilewatkan di antara peripheral dan komponen-komponen system lainnya. Buffer ini memungkinkan modul I/O untuk mengkompensasi perbedaan kecepatan antara bus system dengan saluran internalnya.

Konfigurasi Point-to-Point dan Multipoint

Koneksi antara modul I/O di dalam sebuah system computer dan perangkat eksternal dapat berbentuk point-to-point atau multipoint. Interface point-to-point memiliki saluran dedicated antara modul I/O dan perangkat eksternal. Pada system yang kecil (PC dan Workstation), umumnya link point-to-point meliputi link dengan keyboard, printer dan modem eksternal.
Yang berkembang menjadi semakin penting adalah interface eksternal multipoint, yang digunakan untuk mendukung perangkat penyimpan berukuran besar (drive disk dan pita) dan perangkat multimedia (CD-ROM, video, audio). Interface multipoint berada di bawah kendali bus-bus eksternal dan menunjukan jenis logic yang sama seperti bus-bus.

Small Computer System Interface (SCSI)

Sebuah contoh interface yang baik untuk perangkat peripheral eksternal adalah SCSI. Konfigurasi SCSI umumnya berkaitan dengan bus, walaupun pada kenyataannya perangkat-perangkat tersebut dihubungkan berupa daisy-chain. Perangkat SCSI memiliki dua buah konektor, 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 sam lainnya dan dengan system host. Misalnya sebuah hard disk dapat membuat back-up-nya sendiri ke tape drive tanpa melibatkan host prosesor. Data dipindahkan dalam bentuk paket-paket pesan.
Versi-versi SCSI

Spesifikasi SCSI yang orisinal, yang sekarang disebut SCSI-1 dibuat pada awal 1980-an. SCSI-1 memiliki 8 saluran data dan beroperasi pada kecepatan 5 MHz, atau laju data 5 MByte/detik. Sekarang SCSI-1 memungkinkan sampai tujuh perangkat untuk dihubungkan secara daisy-chain dan disambungkan ke system host.
Pada 1992, diperkenalkan peningkatan spesifikasi yang dikenal sebagai SCSI-2. Perubahan yang sangat penting adalah ekspansi saluran data optional menjadi 16 atau 32 dan peningkatan kecepatan menjadi 10 MHz. Hal ini menyebabkan laju data maksimum 20 atau 40 MByte/detik.
Penelitian yang sedang dilakukan saat ini adalah pembuatan spesifikasi SCSI-3 yang akan mendukung kecepatan yang jauh lebih tinggi.

Signal dan Fase

Seluruh pertukaran signal pada bus SCSI terjadi antara inisiator dan target. Umumnya system host merupakan inisiator dan peripheral controller sebagai target, namun beberapa perangkat dapat dianggap sebagai salah satu dari keduanya. Pada sembarang kasus, seluruh aktivitas pada bus terjadi dalam rangkaian fase. Fase-fase tersebut adalah :
- Bus Free : mengindikasikan bahwa tidak terdapat perangkat yang menggunakan bus dan bahwa bus siap digunakan.
- Arbitration : mengizinkan sebuah perangkat untuk mendapatkan control bus sehingga perangkat tersebut dapat mengawali atau melanjutkan proses I/O.
- Selection : mengizinkan sebuah inisiator memilih target untuk membentuk suatu fungsi seperti perintah write atau read.
- Reselection : mengizinkan target tersambung lagi dengan inisiator untuk melanjutkan operasi yang sebelumnya dimulai oleh inisiator namun dihentikan oleh target.
- Command : mengizinkan target meminta transfer data dari inisiator dari target (Data In) atau dari inisiator ke target (Data Out).
- Status : mengizinkan target meminta informasi status dikirimkan dari target ke inisiator.
- Message : mengizinkan target meminta transfer satu atau lebih pesan ke inisiator dari target (Message In) atu dari inisiator ke target (Message Out).
Sebuah feature penting SCSI adalah kemampuan reselection (pemilihan ulang). Bila sebuah perintah dikeluarkan yang membuttuhkan beberapa saat untuk selesai, maka target dapat melepaskan bus dan menghubungkan kembali dengan inisiator beberapa saat kemudian. Misalnya, sebuah host dapat mengeluarkan suatu perintah tanpa tergantung pada bus.

Tidak ada komentar:

Posting Komentar

Total Tayangan Halaman

Photobucket

Popular Posts

Followers

Artikel

Cari Blog Ini

Featured