Pages

Kamis, 28 Agustus 2014

Modul I/O

MODUL INPUT OUTPUT

A.Modul I/O

Adalah interface atau central switch untuk mengendalikan satu atau lebih peripheral atau perangkat input output.
Konektor mekanis berisi fungsi logik untuk komunikasi antara bus dan peripheral..
Tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus computer
Modul I/O adalah suatu komponen dalam sistem komputer yang Bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan juga,Bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU.termasuk Antarmuka internal dengan komputer (CPU dan memori utama) dan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan

B.Control & timing input data

CPU meminta modul memeriksa status perangkat.
Bila perangkat siap mengirim, CPU mengirim perintah pemindahan.
Modul menerima data dari perangkat.
Data dipindahkan dari modul ke CPU.

C.Buffering

Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi. Buffering dilakukan untuk tiga buah alasan. Alasan pertama adalah untuk men-cope dengan kesalahan yang terjadi karena perbedaan kecepatan antara produsen dengan konsumen dari sebuah stream data. Sebagai contoh, sebuah file sedang diterima melalui modem dan ditujukan ke media penyimpanan di hard disk. Kecepatan modem tersebut kira-kira hanyalah 1/1000 daripada hard disk. Jadi buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem. Ketika keseluruhan data di buffer sudah sampai, buffer tersebut dapat ditulis ke disk dengan operasi tunggal. Karena penulisan disk tidak terjadi dengan instan dan modem masih memerlukan tempat untuk menyimpan data yang berdatangan, maka dipakai 2 buah buffer. Setelah modem memenuhi buffer pertama, akan terjadi request untuk menulis di disk. Modem kemudian mulai memenuhi buffer kedua sementara buffer pertama dipakai untuk penulisan ke disk. Pada saat modem sudah memenuhi buffer kedua, penulisan ke disk dari buffer pertama seharusnya sudah selesai, jadi modem akan berganti kembali memenuhi buffer pertama dan buffer kedua dipakai untuk menulis. Metode double buffering ini membuat pasangan ganda antara produsen dan konsumen sekaligus mengurangi kebutuhan waktu di antara mereka.

Alasan kedua dari buffering adalah untuk menyesuaikan device-device yang mempunyai perbedaan dalam ukuran transfer data. Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer dipakai secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan yang diterima. Pada bagian pengirim, sebuah pesan yang besar akan dipecah ke paket-paket kecil. Paket-paket tersebut dikirim melalui jaringan, dan penerima akan meletakkan mereka di dalam buffer untuk disusun kembali.

Alasan ketiga untuk buffering adalah untuk mendukung copy semantics untuk aplikasi I/O. Sebuah contoh akan menjelaskan apa arti dari copy semantics. Jika ada sebuah aplikasi yang mempunyai buffer data yang ingin dituliskan ke disk
. Aplikasi tersebut akan memanggil sistem penulisan, menyediakan pointer ke buffer, dan sebuah integer untuk menunjukkan ukuran bytes yang ingin ditulis. Setelah pemanggilan tersebut, apakah yang akan terjadi jika aplikasi tersebut merubah isi dari buffer, dengan copy semantics, keutuhan data yang ingin ditulis sama dengan data waktu aplikasi ini memanggil sistem untuk menulis, tidak tergantung dengan perubahan yang terjadi pada buffer. Sebuah cara sederhana untuk sistem operasi untuk menjamin copy semantics adalah membiarkan sistem penulisan untuk mengkopi data aplikasi ke dalam buffer kernel sebelum mengembalikan kontrol kepada aplikasi. Jadi penulisan ke disk dilakukan pada buffer kernel, sehingga perubahan yang terjadi pada buffer aplikasi tidak akan membawa dampak apa-apa. Mengcopy data antara buffer kernel data aplikasi merupakan sesuatu yang umum pada sistem operasi, kecuali overhead yang terjadi karena operasi ini karena clean semantics. Kita dapat memperoleh efek yang sama yang lebih efisien dengan memanfaatkan virtual-memori mapping dan proteksi copy-on-wire dengan pintar.

D. I/O Reprogram

Data saling dipertukarkan antara CPU dan modul I/O.CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung melalui Pemindahan data,Pengiriman perintah baca maupun tulis dan Monitoring perangkat .


I/O reprogram
Kelemahan :
• CPU akan menunggu sampai operasi I/O selesai dilakukan oleh modul I/O sehingga akan membuang waktu, 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


E.Klasifikasi perintah I/O

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.



F. PENGERTIAN BUS

ada motherboard terdapat saluran-saluran penghubung yang menghubungkan satu komponen dengan komponen lainnya. Saluran penghubung ini berupa garis-garis yang tercetak pada PCB motherboard. Melalui saluran-saluran inilah data, informasi, dan instruksi-instruksi yang diberikan pada komputer ditransfer/melintas dari komponen satu ke komponen lainnya. Data dan instruksi tersebut diangkut dalam wujud sinyal-sinyal elektronis yang mempunyai makna tertentu. Sekelompok saluran yang mempunyai fungsi yang sama disebut jalur atau bus. Saluran-saluran penghubung tadi disebut pula dengan istikah konduktor.
Pada permukaan bagian bawah prosesor Intel Pentium 4 socket 478, terdapat kaki-kaki berupa pin. Jumlah pin keseluruhan sebanyak 478 buah, itulah sebabnya disebut soket 478. Pin-pin ini bertugas sebagai lintasan yang menyalurkan data atau instruksi dari motherboard ke processor atau sebaliknya. Dengan demikian, di dalam sebuah prosesor juga ada saluran-saluran tempat lalulintas data/informasi/instruksi-instruksi yang harus diolah/diproses dan dikirim kembali ke motherboard. Pin-pin pada prosesor adalah salah satu contoh nyata yang secara fisik terlihat sebagai saluran tempat lalu lintas data/informasi/instruksi. Sekelompok saluranjalur atau bus. Hal yang sama juga ada di video card atau periferal lainnya. Bus-bus atau jalur-jalur pada prosesor secara garis besar dapat dibagi menjadi data bus (jalur data), address bus (jalur adres), dan control bus (jalur kontrol). Control bus disebut juga dengan istilah signal bus. yang mempunyai fungsi yang sama juga disebut

Pengertian jalur tidak sama dengan saluran. Dalam hal ini, jalur adalah kata jamak dari saluran. Pahamilah penjelasan berikut ini:
Jalur data (data bus) terdiri dari beberapa (sejumlah) saluran data
Jalur adres (address bus) terdiri dari beberapa (sejumlah) saluran adres
Jalur kontrol (control bus) terdiri dari beberapa (sejumlah) saluran kontrol

Seperti telah dijelaskan sebelumnya, bahwa data/informasi/instruksi disalurkan dalam wujud sinyal-sinyal elektronis. Hal ini dapat dijelaskan sebagai berikut:
Setiap satu saluran (satu kawat) pada saat-saat tertentu hanya dapat berada dalam satu kondisi, yaitu ada tegangan atau tidak ada tegangan. Dikatakan ada tegangan jika tegangannya berkisar 2,5 Volt hingga 5,5 Volt. Dikatakan tidak ada tegangan jika tegangannya berkisar 0 Volt hingga 0,8 Volt. Keadaan ada tegangan disimbolkan dengan angka 1 dan disebut dengan istilah ‘high’, keadaan tidak ada tegangan disimbolkan dengan angka 0 dan disebut dengan istilah ‘low’.
Berdasar penjelasan ini, dapat dikatakan bahwa setiap saluran selalu berkeadaan biner (dua kemungkinan), yaitu dalam keadaan ‘0’ atau dalam keadaan ‘1’. Simbol angka yang hanya bernotasi ‘0’ dan ‘1’ ini disebut dengan istilah notasi digit biner, dalam bahasa Inggris disebut binary digit yang disingkat dengan istilah ’bit’.
Misalkan jalur data (data bus) sebuah prosesor terdiri dari 8 saluran, setiap saluran berada dalam kondisi ‘0’ atau ‘1’, maka akan terjadi banyak kemungkinan kombinasi bilangan biner yang menyimbulkan kondisi tegangan seperti berikut ini:
Total kombinasi bilangan biner yang mungkin terjadi adalah 28 = 256 macam kombinasi.
Mungkin pola tegangan : 0 0 0 0 0 0 0 1 akan membentuk huruf (karakter) A
sedangkan pola tegangan: 0 0 0 0 0 0 1 1 akan membentuk angka (karakter) 1
Demikian seterusnya hingga tercipta 256 karakter (notasi) yang berbeda.
Kumpulan dari 8 bilangan biner (bit) yang membentuk pola urutan (kombinasi) tertentu ini disebut byte. Sehingga dapat disebut 1 byte = 8 bit. 1 byte nilainya setara dengan 1 karakter.
Byte ini akhirnya dipakai sebagai satuan, misalnya untuk menyatakan kapasitas sebuah media simpan (harddisk, disket, flash disk, CD, dan lainnya), kapasitas memory dan lain-lainnya. Dikenal pula satuan kilo byte, mega byte, giga byte, dan terra byte dengan kesetaraan nilai sebagai berikut:

1 kilo bayte (KB) = 1024 byte
1 mega byte (MB) = 1024 x1024 byte
1 giga byte (GB) = 1024 x1024 x1024 byte
1 terra byte (TB) = 1024 x1024 x1024 x1024 byte

Sampai saat ini teknologi prosesor terus berkembang. Pada awalnya, Intel memproduksi prosesor 4 bit, kemudian prosesor 8 bit, 16 bit, 32 bit dan sekarang ini 64 bit. Sebuah prosesor dikatakan prosesor 4 bit jika bekerja menggunakan data 4 bit, artinya jalur datanya (data bus-nya) terdiri dari 4 saluran data. Dengan demikian, prosesor 64 bit menggunakan 64 saluran untuk jalur datanya (data bus-nya terdiri dari 64 saluran).



G.Memory-mapped I/O


Memory mapped I/O



Memory-mapped file I/O membolehkan file I/O diperlakukan sebagai rutin akses memori yang dipetakan sebagai blok disk ke dalam page memori
Suatu file diinisialisasikan menggunakan demand pagin. Suatu bagian page file dibaca dari file sistem ke page fisik. Subsequent membaca/menulis ke/dari file yang diperlakukan dalam urutan memori akses.
Secara sederhana file akses memperlakukan file I/O melalui memori melalui read() write() system calls.
Beberapa proses juga dapat dipetakan pada fiel yang sama pada memori yang di-share.

•Kelebihan
–Dapat diakses dari bahasa tingkat tinggi(C/C++)
–Proteksi dapat dilakukan dengan mengatur address space user process
–Lebih mudah memeriksa status sebuah device

Problems with memory-mapped I/O
•Problem dengancaching memory
•Mekanismeekstrauntukarsitekturkomputerdenganmulti-bus



Isolated I/O
• Dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O.
• Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output.
• Keuntungan Isolated I/O adalah sedikitnya instruksi I/O


H. ISOLATED I/O

MODULE
Isolated I/O Module merupakan sebuah modul I/O yang
berfungsi untuk melakukan isolasi terhadap tegangan input atau
output. Modul ini biasanya digunakan untuk aplikasi seperti
pengendali motor, pengaturan relay, dll.
Spesifikasi Teknis
1. Tegangan kerja +5 VDC (VCC).
2. Memiliki 8 channel I/O. Dimana tiap channel hanya bisa
dikonfigurasikan sebagai 1 fungsi saja (Input atau Output).
3. Jika dikonfigurasi sebagai output, maka konfigurasi pada
Isolated I/O Port adalah active low dimana logika 0 akan
mengaktifkan optoisolator.


5. Isolated I/O Port dapat dihubungkan dengan port mikrokontroler:
MCS-51, AVR, PIC, dll. Atau dapat juga dihubungkan dengan
rangkaian TTL/CMOS.
Lihat contoh aplikasi di bagian akhir sebagai acuan dalam
penggunaan Isolated I/O Module.

I.DMA
Definisi
DMA adalah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO).
Gambar 6-2. DMA Interface. Sumber: . . .

Transfer DMA
Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan/ destinasi transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke DMA controller, sehingga DMA controller dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamat-alamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU. Tiga langkah dalam transfer DMA:
1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari device, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang di transfer.
2. DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
3. DMA controller meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama adalah metode yang sangat baku dan simple disebut HALT, atau Burst Mode DMA, karena DMA controller memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih dalam progres, sistem mikroprosessor di-set idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikut-sertakan DMA controller untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan dibandingkan HALT DMA, karena DMA controller harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka.
Gambar 6-3. DMA Controller. Sumber: . . .

Handshaking
Proses handshaking antara DMA controller dan device controller dilakukan melalui sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Device controller mengirimkan sinyal melalui DMA-request ketika akan mentransfer data sebanyak satu word. Hal ini kemudian akan mengakibatkan DMA controller memasukkan alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA-acknowledge. Setelah sinyal melalui kabel DMA-acknowledge diterima, device controller mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request.
Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat DMA controller mengambil alih memori, CPU sementara tidak dapat mengakses memori (dihalangi), walau pun masih dapat mengaksees data pada cache primer dan sekunder. Hal ini disebut cycle stealing, yang walau pun memperlambat komputasi CPU, tidak menurunkan kinerja karena memindahkan pekerjaan data transfer ke DMA controller meningkatkan performa sistem secara keseluruhan.
Cara-cara Implementasi DMA
Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses DMA , sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui tahap "penerjemahan" dari alamat memori virtual menjadi alamat memori fisik, hal ini disebut direct virtual-memory address atau DVMA. Keuntungan dari DVMA adalah dapat mendukung transfer antara dua memory mapped device tanpa intervensi CPU.

Tidak ada komentar:

Posting Komentar