Heh ... akhirnya nulis tentang IT lagi, padahal kemarin bilangnya mau ngurangin tulisan tentang IT. Emang gitu sih resikonya kalo sehari-hari 'bergaul' dengan PC. Kalo nemu sesuatu yg baru (apalagi yg jarang diketahui orang) bawaannya pingin ditulis di blog mulu. Tulisan kali ini bermula dari pengalaman beberapa jam yg lalu, waktu saya lg ngebakar (burn) DVD buat backup file-file penting. Kita share aja lah ya ... semoga berguna kalo anda kebetulan juga mengalami masalah yg sama dengan yg saya alami saat itu .
Anda mungkin sudah tau DVD, salah satu media penyimpanan data yg populer saat ini. Sebuah DVD single-layer konon bisa menyimpan data hingga 4.7 GB atau sebanding dengan (lebih dari) 6 CD ukuran 700 MB. Dengan kapasitas sebesar itu, tidak aneh bila DVD sering digunakan untuk menyimpan data berukuran 'jumbo' misalnya video, installer program, musik dan lain-lain. Saya juga termasuk orang yg suka membuat cadangan data-data dalam bentuk DVD untuk berjaga-jaga kalo suatu saat PC saya ngadat.
Nah, cerita ini bermula tadi pagi, selepas subuh ketika saya lg kepingin mem-backup beberapa game saya (ehm .. maklumlah, namanya jg gamer). Setelah DVD-R dimasukkan ke DVDRW drive, mulailah saya memilah-milah game apa yg akan dibakar ke DVD (saya pake Nero 6). Setelah ukuran file yg mau dibakar sudah mendekati 4.7 GB, proses burn pun dimulai. Awalnya nggak ada yg aneh, sampai saya sadar kalo proses burning-nya berjalan lambat ... sangat lambat. Walaupun curiga, saya tetap 'setia' menunggu sampai proses pembakaran DVD selesai.
Penjaja sarapan udah pada pulang, berganti penjaja sayuran, teman-teman sekost pun udah pada pergi kerja dan ibu-ibu udah mulai berisik dengan gosipnya di belakang kamar gw, tp proses burning belum juga tuntas. Apa gerangan yg terjadi dengan DVD writer-ku ? Perasaan kemarin-kemarin nggak begini lambatnya. Saat itu saya langsung ingat kalo kemarin saya sempat menyalin film dokumenter dari DVD ke harddisk, juga dalam waktu yg sangat lama, kurang lebih setengah jam baru rampung. Hmmm ... pasti ada sesuatu dengan DVD drivenya. Tapi apanya yg bikin lambat ? Optik kotor ? Laser bermasalah ? Motor DVD writer aus ? Power supply lemah ? Belum selesai saya berpikir dengan berbagai kemungkinan yg ada, proses burn akhirnya selesai. Buset ! Sampe satu setengah jam baru beres !
Proses investigasi pun dimulai. Awalnya saya cek software pembakarnya, Nero. Nggak ada yg aneh. Saya memang selalu membakar data di DVD/CD dengan setengah kecepatan maksimum (misal DVD punya kecepatan rekam maks 16X, saya cuma akan pakai kecepatan 8X) untuk mencegah error yg mungkin terjadi pada saat burning. Kali ini saya cuman pake kecepatan rekam 4X. Kalo dihitung, berarti kecepatannya 4 x 1.35 MBps = 5.4 MBps. Kalo kapasitas DVD yg mau dibakar 4.7 GB, berarti setidaknya waktu yg dihabiskan untuk merekam seluruh data adalah 4700/5.4 MBps = 870.4 s = 14.5 menit ! Lah, terus ngebakar sampe 1.5 jam itu gara-gara apa ?
Tadinya saya pikir masalah ada di perangkat keras, dalam hal ini DVD writernya. Tp nggak ada salahnya toh kalo kita cari kemungkinan lain. Saya pun mencoba membaca data DVD dalam lingkungan sistem operasi lain. Anehnya, kalo dipake buat menyalin data DVD dari Linux (saya pake Ubuntu), kecepatannya normal-normal aja, nggak lambat. Kecurigaan pun beralih ke Windows XP. Setelah beberapa menit mengutak-atik device manager, arkhirnya ketemu juga biang keladinya. PIO mode di IDE ATA/ATAPI Controller. Setelah mode controller-nya diubah ke DMA, akhirnya masalah terselesaikan. Proses baca tulis DVD pun jadi jauh lebih cepat.
Apa itu PIO dan DMA mode ?
PIO (Programmed Input/Output) adalah metode transfer data antara CPU (Central Processing Unit a.k.a processor) dan perangkat lain, misalnya kartu jaringan atau media penyimpanan ATA (Advanced Technology Attachment) seperti harddisk atau DVD/CD drive. Pada saat transfer data dengan metode PIO, CPU akan digunakan sepenuhnya, misalnya pada saat proses baca tulis harddisk, CD atau DVD. Penggunaan resource CPU secara berlebihan ini akan mengakibatkan program/data lain menjadi sukar atau tidak dapat dijalankan sampai proses transfer data selesai. Selain itu, karena CPU harus 'ikut campur' mengatur lalu lintas tiap data antar media, proses transfer data akan berjalan sangat lambat. Metode ini umumnya dipakai pada PC-PC lawas, saat sistem operasi multitasking seperti Windows atau Linux belum sebeken sekarang.
Pada PC modern, metode transfer DMA (Direct Memory Access) mulai diperkenalkan. DMA memungkinkan tiap perangkat PC untuk melakukan transfer data tanpa harus membebani kinerja CPU. Jadi misal ada data mau disalin dari DVD ke harddisk, CPU hanya akan menyediakan 'jalannya' saja, tanpa harus ikut campur melakukan transfer data antar media. Urusan transfer data, biarlah harddisk dan DVD drive yg mengurusinya, sehingga CPU bisa digunakan untuk melakukan tugas (task) lain, misal membaca file musik, memutar video dll. Umumnya, media penyimpan data yg sudah mendukung DMA, seperti harddisk atau DVD/CD drive, akan dilengkapi dengan memori lokal, yg disebut buffer. Buffer inilah yg akan berinteraksi dengan memori utama/RAM (Random Access Memory) dan buffer pada perangkat lain. Karena kecepatan transfer antar memori jauh lebih cepat dibandingkan transfer pada media I/O biasa, maka bisa ditebak, kecepatan transfer data antar media dengan metode DMA akan jauh lebih cepat dibandingkan dengan PIO.
Cara Mengetahui/Mengubah Setting IDE ATA/ATAPI Controllers
Klik kanan ikon My Computer di desktop, lalu pilih Properties. Pilih tab Hardware di jendela System Properties, lalu klik Device Manager. Anda juga bisa mengakses Device Manager melalui Start Menu --> Control Panel --> System --> Hardware --> Device Manager. Setelah jendela Device Manager terbuka, expand (klik tanda '+') di depan IDE ATA/ATAPI Controllers. Selanjutnya pilihlah salah satu Channel yg ada, Primary atau Secondary IDE. Ini tergantung pada posisi kabel ATA tempat anda memasang harddisk atau CD/DVD drive. Kalo misal anda pasang DVD drive di primary master (keliatan pada waktu booting atau lewat BIOS), berarti pilih Primary IDE channnel. Tapi ini nggak perlu dipermasalahkan, pokoknya klik aja dulu salah satu channel, mau primary atau secondary nggak masalah.
Begitu jendela primary/secondary IDE channel terbuka, klik tab Advanced Settings. Biasanya akan ada dua device di sana, Device 0 (Master) dan Device 1 (Slave). Kalo nggak mau bingung, perhatikan aja bagian Current Transfer Mode (CTM ~ bukan obat tidur loh ya ^^). Kalo CTM punya keterangan 'Not Applicable', berarti memang nggak ada media (harddisk/dvd/cd drive) yg dipasang di sana. Cari aja CTM yg keterangannya DMA atau Ultra DMA atau PIO. Kalo di Primary IDE channel nggak ada, coba cari di Secondary IDE channel.
Kalo anda ngeliat ada CTM yg keterangannya PIO, pilihlah Transfer Mode di atas CTM dari 'PIO Only' menjadi 'DMA if Available'. Setelah itu restart PC anda, dan transfer mode kini akan berubah PIO ke DMA.
Gimana kalo CTM punya keterangan 'PIO' padahal Transfer Mode-nya sudah 'DMA if available' ? Ubah dulu transfer mode ke 'PIO Only', terus klik OK (tanpa restart). Habis itu ulangi lagi, ubah transfer mode dari 'PIO Only' ke 'DMA if available', lalu restart.
Metode Transfer PIO Nggak Mau Berubah ke DMA setelah Restart ?
Di sini serunya. Anda udah berkali-kali mengubah transfer mode ke DMA, tapi kok habis restart, transfer mode-nya balik lagi ke PIO ? Umumnya ini terjadi pada IDE channel yg dipasangi CD/DVD drive. Nanti akan saya jelaskan sebabnya. Sekarang, buka lagi jendela Device Manager, kembali ke bagian IDE ATA/ATAPI controllers, lalu pilih IDE channel yg nggak mau diubah ke DMA tadi. Habis itu klik kanan si IDE channel tadi, dan pilih Uninstall, lalu restart PC seperti tadi.
Nggak usah takut, sistem Plug and Play Windows akan mendeteksi ulang IDE channel yg diuninstall tadi secara otomatis setelah restart, dan Windows akan menginstall sendiri driver untuk IDE channel tersebut. Setelah proses re-install, coba cek lagi transfer mode di IDE channel tadi. InsyaAllah, transfer mode-nya sudah pindah ke DMA atau Ultra DMA.
Kenapa PIO Nggak Bisa Berubah ke DMA atau DMA Berubah Sendiri ke PIO ?
Ini pertanyaan yg sempat bikin saya penasaran (walaupun saya sudah berhasil mengubah PIO ke DMA). Setelah Googling sebentar, akhirnya saya tau alasannya.
Di situs resminya, Microsoft menjelaskan bahwa sebenarnya Windows akan mengaktifkan DMA secara default pada kebanyakan perangkat ATA/ATAPI (IDE). Hanya saja ada tapinya. Windows akan mengubah mode transfer dari DMA ke PIO secara otomatis demi kestabilan sistem, apabila :
1. Ada penggunaan perangkat ATAPI selain CD-R/RW atau DVD-R/RW.
2. Fasilitas DMA dari perangkat ATA/ATAPI mengalami masalah.
3. Terdapat chipset perangkat IDE yg menyebabkan korupsi data (data corruption).
4. Terjadi kesalahan (error) yg berulang-ulang pada transfer DMA.
Penyebab yg terakhir (no.4) mungkin yg paling menarik untuk diulas. Menurut Microsoft, Windows XP akan mengubah mode DMA ke PIO apabila terjadi kesalahan dalam jumlah tertentu pada saat transfer data. Untuk mode DMA, bila terjadi lebih dari 6 kali kesalahan pada saat transfer data, mode transfer akan langsung berubah ke PIO.
Kalo kebetulan perangkat mendukung mode Ultra DMA (UDMA), maka setiap lebih dari 6 kali kesalahan CRC (Cyclic Redundancy Check-error yg umum terjadi ketika CD/DVD drive gagal membaca data pada kepingan CD/DVD) mode UDMA akan diturunkan 1 tingkat. Jadi misal tadinya Ultra DMA mode 5, setelah 7 kali CRC error, modenya akan 'turun kelas' jadi UDMA mode 4. Begitu seterusnya, sampe UDMA 0. Kalo sudah UDMA 0 masih terjadi CRC error sampai lebih dari 6 kali, modenya turun lagi ke PIO.
Dan-demi kestabilan sistem tadi-kalo modenya sudah berubah jadi PIO, pengguna sudah nggak bisa mengubahnya ke DMA atau UDMA. Kecuali, pengguna meng-uninstall dan me-reinstall perangkat tersebut, seperti yg sudah saya tuliskan di atas.
Jadi terjawab sudah, kenapa mode DMA/UDMA bisa berubah sendiri ke PIO. Penyebabnya karena CRC error tadi. Makanya jangan suka masukin CD/DVD sembarangan ke CD/DVD drive. Misalnya anda menyalin data dari DVD/CD ke harddisk dan kebetulan CD/DVD-nya jelek, tergores, kena minyak atau apalah yg bikin proses copy gagal, saat itulah CRC error terjadi. Error ini juga biasa terjadi bila CD/DVD drive mencoba membaca CD/DVD bajakan atau CD/DVD kualitas rendahan. Makin banyak CRC error, mode transfer data akan terus turun dan kecepatan baca tulisnya juga merosot drastis. Mungkin itu sebabnya sering ada klaim kalo CD/DVD bajakan bisa bikin CD/DVD drive lambat, motornya aus atau rusak, padahal sebenarnya transfer mode-nya aja yg berubah dari DMA ke PIO.
Jadi kalo anda merasa ada penurunan kinerja atau kecepatan baca-tulis CD/DVD, sebaiknya coba cek dulu transfer mode-nya. Kalo memang udah pake DMA/UDMA tapi kecepatan masih lemot, banting aja ... eh ... ganti aja CD/DVD drive anda dengan yg baru (atau cek lagi lensa, laser dan motor drive-nya).
Semoga bermanfaat.
-------------
Referensi :
http://en.wikipedia.org/wiki/Programmed_input/output
http://en.wikipedia.org/wiki/Direct_memory_access
http://en.wikipedia.org/wiki/Cyclic_redundancy_check
http://www.microsoft.com/whdc/device/storage/IDE-DMA.mspx