Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Persentase komputer tinggi yang menjalankan Windows memiliki drive DVD, dan banyak permainan dikirim di DVD. Akibatnya, kami sarankan Anda memastikan bahwa game Anda menggunakan drive DVD untuk keuntungan penuh. Dengan memahami bagaimana data dibaca dari DVD dan bagaimana lokasi data memengaruhi waktu membacanya, Anda dapat mengurangi waktu pemuatan dan meningkatkan performa keseluruhan selama bermain game. Artikel ini membahas cara mengoptimalkan performa DVD untuk permainan Windows.
- Tata Letak Dasar DVD
- Membaca dari DVD
- Kesalahan Membaca
- Data Throughput
- Contoh Throughput Terbuang
- Membaca Secara Sinkron vs. Asinkron
- Membaca Secara Optimal
- Kompatibilitas DVD
- Ringkasan
Tata Letak Dasar DVD
Gambar ini menunjukkan tata letak dasar DVD.
Data pada DVD disimpan sebagai spiral berkelanjutan, seperti pada CD; namun, file dipecah menjadi blok dan sektor. File tersebar di blok kode koreksi kesalahan (ECC), dan setiap blok dibagi menjadi enam belas sektor 2-KB (yaitu, 32 KB data di setiap blok). File diselaraskan di sepanjang batas sektor, dan ruang yang tidak digunakan di sektor dibiarkan kosong. Jika file hanya memiliki 10 byte, maka sisa ruang di sektor 2 KB tersebut terbuang sia-sia; jadi jika memungkinkan, bundel file ke dalam kenaikan 2 KB untuk mendapatkan kepadatan data terbaik. Ketahuilah bahwa spesifikasi ini hanya untuk DVD, dan CD dan HD-DVD memiliki spesifikasi yang berbeda.
Membaca dari DVD
Berikut adalah urutan yang dijalankan drive DVD saat menerima permintaan untuk membaca dari DVD:
- Ubah lapisan, jika perlu
- Seek
- Memfokuskan kembali unit pengambilan optik (OPU) untuk membaca data
- Periksa posisi aktual
- Sesuaikan dan ulangi hingga data yang benar ditemukan
Operasi pembacaan drive diukur secara berbeda, tergantung pada apakah itu pembacaan drive logis atau pembacaan drive fisik. Pembacaan drive logis hanya dapat membaca jumlah bilangan bulat sektor DVD, sementara permintaan baca drive fisik hanya dapat membaca jumlah bilangan bulat blok ECC. Biasanya, drive fisik menerima permintaan baca; ia akan mencoba mengisi cache-nya. Ukuran cache drive DVD tergantung pada spesifikasi masing-masing drive.
Ketika drive DVD mendapatkan permintaan baca yang melebihi ukuran cache, permintaan dipecah menjadi permintaan berukuran cache. Drive mencari blok ECC yang berisi sektor pertama permintaan dan membaca seluruh blok ECC. Firmware drive mendekode blok ECC dan kemudian membaca blok ECC berikutnya. Proses ini diulang sampai cache drive terisi atau semua permintaan terpenuhi. Kernel kemudian membaca data yang didekodekan dari cache drive. Kemudian menghapus cache dan memulai operasi baca berikutnya, jika ada permintaan baca yang tetap ada.
Catatan
Setiap bacaan yang tidak di-cache akan membersihkan cache drive.
Kesalahan Membaca
DVD dan drive DVD tidak sempurna, dan kesalahan dapat terjadi selama membaca. Seperti CD, bagian DVD dapat menjadi tidak dapat dibaca dari debu atau goresan. Jika ada bagian dari blok yang tidak dapat dibaca, seluruh blok dianggap tidak dapat dibaca. Jika terjadi kesalahan baca, drive mencoba membaca ulang blok ECC. Jika blok masih tidak dapat dibaca, drive membatalkan operasi baca dan mengembalikan nilai ke kernel yang menunjukkan bahwa blok tidak dapat dibaca. Kernel kemudian memutuskan langkah apa yang akan diambil selanjutnya. Kernel dapat mengirimkan kembali permintaan, membatalkan pembacaan sama sekali, atau memutar drive ke bawah dan mengirimkan kembali permintaan.
Throughput Data
Throughput data drive DVD tergantung pada beberapa faktor: lokasi data yang diminta, seberapa bersih atau tergores disk, jumlah aliran yang dibaca dari disk, ukuran buffer yang terkait dengan aliran tersebut, dan spesifikasi drive individual. Throughput juga tergantung pada apakah drive memiliki kecepatan sudut konstan (CAV) atau kecepatan linier konstan (CLV). Jika drive berputar dengan CAV, disk berputar pada kecepatan yang sama terlepas dari di mana unit pengambilan optik (OPU) berada. Ini berarti bahwa trek data bergerak melewati OPU lebih cepat karena OPU semakin dekat ke tepi luar disk. Dengan CLV, disk berputar lebih lambat saat OPU bergerak ke luar, sehingga trek data bergerak melewati OPU dengan kecepatan konstan. Drive DVD di sebagian besar PC menggunakan CLV.
Saat drive mencari dan mengubah lapisan, data tidak dapat dibaca dari disk. Ini adalah praktik yang baik untuk meminimalkan operasi ini, terutama ketika membaca data untuk layar pemuatan awal.
Contoh Throughput Terbuang
Untuk memahami bagaimana throughput data dapat terbuang sia-sia, pertimbangkan drive hipotetis dan DVD. Mari kita asumsikan bahwa file di tengah disk perlu dibaca. Throughput dari area disk tersebut sekitar 8,25 MB/detik. Jika stroke pencarian adalah setengah atau sepertiga penuh, maka waktu pencarian rata-rata adalah 150 ms. Dalam contoh ini, 1,2 MB (150 ms × 8,25 MB/detik) dapat dibaca dalam waktu yang diperlukan hanya untuk mendapatkan OPU ke tempat yang dapat dibaca. Menambahkan perubahan lapisan meningkatkan throughput yang terbuang menjadi 1,8 MB (225 ms × 8,25 MB/detik).
Contoh lain yang menunjukkan throughput terbuang adalah memuat 20 file yang terletak buruk dari drive CAV tanpa perubahan lapisan. Jika waktu pencarian untuk setiap file, ditambah latensi sebelum data dapat dibaca, sekitar 200 md, maka 4 detik (20 file × 200 md) dihabiskan hanya untuk mencari data. Jika file terletak pada diameter luar dan dibaca pada kecepatan 11×, maka throughput rata-rata 15,2 MB/detik (kecepatan 11/12 × 16 MB/detik). Throughput yang terbuang dalam contoh ini sekitar 60,8 MB (15,2 MB/detik × 4 detik).
Membaca Secara Sinkron vs. Asinkron
Pembacaan asinkron lebih efisien daripada pembacaan sinkron. Saat membaca secara sinkron, satu atau beberapa blok data ECC dibaca ke dalam memori sistem sebelum disalin ke dalam memori aplikasi. Sebaliknya, salinan pembacaan asinkron yang didekodekan blok ECC langsung ke memori aplikasi, yang menghindari cache L2 dan membuat lebih sedikit overhead CPU. Untuk membaca secara asinkron, gunakan bendera FILE_FLAG_OVERLAPPED saat menggunakan fungsi CreateFile untuk membuka file. Fungsi ReadFile juga memerlukan struktur TUMPANG TINDIH yang valid yang diteruskan untuk melakukan I/O asinkron.
Informasi lebih lanjut tentang I/O asinkron dapat ditemukan di I/O Sinkron dan Asinkron.
Membaca Secara Optimal
Prinsip terbaik dalam membaca dari DVD adalah menghindari mencari dan membaca sejumlah kecil data. Ketika jumlah data yang dibaca kurang dari kapasitas blok ECC — kurang dari 32 KB — sisa blok terbuang sia-sia. Karena ukuran cache bervariasi dari drive ke drive, pengembang harus memutuskan jumlah minimum data untuk permintaan baca dan tidak membuat lebih kecil dari itu. Ukuran minimum harus berupa kelipatan bilangan bulat dari blok ECC untuk menghindari membuang-buang waktu untuk membaca dan mendekode data yang tidak akan digunakan. Penting juga untuk menghindari pencarian dengan segala biaya, karena setiap waktu yang dihabiskan untuk mencari adalah waktu yang dihabiskan untuk tidak membaca data.
Kompatibilitas DVD
Ada beberapa masalah kompatibilitas penting yang perlu diperhatikan saat merilis di DVD. Pertama, drive DVD di komputer berbasis Windows dapat bervariasi dalam performa, jadi jika DVD Anda memiliki persyaratan khusus untuk throughput, penting untuk memastikan bahwa perangkat keras pengguna Anda memenuhi persyaratan tersebut. Selain itu, DVD multilayer dapat menyebabkan masalah kompatibilitas pada beberapa drive DVD. Untuk menghindari masalah ini, disarankan untuk mengirimkan DVD lapisan tunggal atau untuk menguji DVD multi-lapisan secara menyeluruh pada sebagian besar drive sebelum rilis.
Ringkasan
Untuk meningkatkan performa DVD, beberapa aturan umum dapat diterapkan. Teknik berikut dapat membantu memaksimalkan throughput dan mengurangi data yang terbuang:
- Hindari bacaan yang lebih kecil dari 32 KB
- Menata letak data untuk mengurangi atau menghilangkan pencarian
- Menata letak data pada batas blok ECC
- Maksimalkan kapasitas dengan menggabungkan file kecil ke dalam blok 2 KB, dan mengurangi ruang padding di sektor DVD
- Baca secara asinkron untuk mengurangi beban CPU dan penggunaan memori yang berlebihan
- Hindari merilis DVD multilayer