Kapasitas penyimpanan terdengar sederhana sampai kita mulai melihat lebih jauh dari sekadar angka yang tercetak di sisi sebuah flash drive. Sebuah drive USB mungkin dijual sebagai 32GB, Windows melaporkan angka yang sedikit berbeda, sebuah alat produksi meminta kapasitas dalam MB, dan di tempat lain perangkat tersebut melaporkan jumlah LBA yang tampaknya sama sekali tidak berhubungan dengan angka-angka lainnya.
Sebenarnya, semuanya saling berhubungan.
Hubungan antara kapasitas, ukuran sektor, dan LBA sebenarnya cukup mudah dipahami setelah kita mengetahui apa yang diwakili oleh masing-masing angka tersebut. Informasi ini juga sangat berguna ketika bekerja dengan flash drive USB pada tingkat produksi atau duplikasi, di mana hanya menyebutkan “32GB” terkadang tidak cukup presisi.
Apa Itu LBA?
LBA adalah singkatan dari Logical Block Addressing. Alih-alih memikirkan lokasi fisik data di dalam memori flash NAND, komputer melihat perangkat penyimpanan sebagai sebuah rangkaian panjang blok logis yang diberi nomor.
LBA 0 adalah blok logis pertama, LBA 1 adalah blok berikutnya, kemudian LBA 2, dan seterusnya sampai perangkat mencapai LBA terakhir yang tersedia.
Bagian pentingnya adalah bahwa sebuah LBA, jika dilihat sendiri, tidak memberi tahu kita berapa besar kapasitas penyimpanan yang tersedia. Kita juga perlu mengetahui ukuran setiap sektor logis.
Hubungan dasarnya adalah:
Kapasitas dalam byte = jumlah LBA × ukuran sektor logis
Untuk sebagian besar flash drive USB, ukuran sektor logis adalah 512 byte.
Ini memberi kita cara perhitungan singkat yang sangat berguna.
Ada 1.048.576 byte dalam satu MiB. Jika setiap sektor logis berisi 512 byte:
1.048.576 ÷ 512 = 2.048
Jadi, dengan sektor logis 512 byte:
2.048 LBA = 1 MiB
Dan itu berarti:
Jumlah LBA ÷ 2.048 = kapasitas dalam MiB
Secara teknis, MiB adalah istilah yang benar di sini karena kita menggunakan 1.048.576 byte, bukan nilai desimal 1.000.000 byte yang digunakan untuk MB. Beberapa utilitas produksi dan MPTool masih memberi label nilai ini sebagai “MB”, jadi penting untuk memahami apa yang sebenarnya dimaksud oleh alat tertentu ketika menggunakan istilah MB.
Contoh LBA Nyata
Misalnya sebuah flash drive USB melaporkan jumlah LBA berikut:
60.125.184
Dengan asumsi perangkat menggunakan sektor logis 512 byte, kita dapat menghitung kapasitas yang dapat dialamatkan:
60.125.184 × 512 = 30.784.094.208 byte
Atau kita dapat menggunakan perhitungan singkat:
60.125.184 ÷ 2.048 = 29.358 MiB
Jadi perangkat tersebut memiliki tepat 29.358 MiB penyimpanan yang dapat dialamatkan, yaitu sekitar 28,67 GiB, atau 30,78 GB ketika kapasitas dinyatakan menggunakan gigabyte desimal.
Ini juga menjelaskan mengapa hanya menyebut sesuatu sebagai “flash drive 32GB” tidak memberi tahu kita geometri persis perangkat tersebut.
Dua drive USB yang sama-sama dijual sebagai produk 32GB belum tentu memiliki jumlah LBA tersedia yang benar-benar sama. Konfigurasi NAND, pengaturan controller, kapasitas yang dicadangkan, pengelolaan bad block, over-provisioning, dan cara perangkat dikonfigurasi selama proses produksi semuanya dapat memengaruhi kapasitas akhir yang dapat dialamatkan dan ditampilkan kepada komputer host.
Bagi sebagian besar pengguna, sedikit perbedaan tidak menjadi masalah.
Untuk duplikasi disk, perbedaan tersebut bisa sangat berarti.
Menghitung ke Arah Sebaliknya
Perhitungan ini juga dapat dibalik.
Jika kita mengetahui jumlah LBA persis yang diinginkan dan ukuran sektor logisnya adalah 512 byte, kita dapat mengubah jumlah LBA tersebut menjadi kapasitas lalu mengonfigurasi flash drive sesuai nilai tersebut menggunakan MPTool, dengan asumsi controller dan MPTool menyediakan kemampuan tersebut.
Rumusnya adalah:
Jumlah LBA ÷ 2.048 = MiB
Dengan demikian, kita dapat menghitung kapasitas yang diperlukan berdasarkan jumlah LBA yang diinginkan pelanggan dan mengatur kapasitas yang sesuai di dalam MPTool.
Jika MPTool menggunakan sektor logis 512 byte dan kolom kapasitasnya mewakili MiB biner, mengatur kapasitas tersebut seharusnya menghasilkan jumlah LBA yang diinginkan.
Hal ini bisa sangat berguna ketika memproduksi flash drive yang harus sesuai dengan perangkat master tertentu. Ini juga merupakan salah satu alasan mengapa hardware duplikasi USB bekerja secara berbeda dibandingkan sekadar menyalin file. Sebuah duplicator dapat bekerja dengan struktur sebenarnya dari perangkat penyimpanan, bukan hanya menyalin file yang terlihat dari satu sistem file ke sistem file lainnya.
Sebagai contoh, bayangkan seorang pelanggan membuat master image yang dapat di-boot menggunakan satu batch flash drive USB. Enam bulan kemudian datang batch lain dari drive 32GB yang secara nominal identik, tetapi NAND-nya telah berubah dan drive yang baru diproduksi menampilkan jumlah LBA yang sedikit lebih sedikit.
Labelnya masih mengatakan 32GB.
Sistem operasi masih mengenalinya sebagai perangkat dengan kapasitas sekitar 32GB.
Tetapi dari sudut pandang disk image yang disalin sektor demi sektor, keduanya tidak identik.
Jika master image mengharapkan lebih banyak LBA daripada yang disediakan perangkat tujuan, image tersebut mungkin tidak akan muat. Media berbasis GPT menambahkan komplikasi lain karena GPT menyimpan backup header di bagian akhir disk. Lokasi struktur tersebut terikat pada bagian akhir perangkat yang dapat dialamatkan.
Ini adalah salah satu alasan mengapa media bootable dan disk image membutuhkan perhatian sedikit lebih besar dibandingkan kumpulan file biasa. Kami juga telah membahas mengapa media USB bootable tidak selalu berperilaku sama di setiap lingkungan, dan benang merahnya adalah bahwa struktur disk bisa sama pentingnya dengan file yang berada di dalam drive.
Mengontrol kapasitas yang benar-benar dihasilkan selama proses produksi karena itu bisa jauh lebih berguna daripada sekadar menentukan kapasitas pemasaran seperti 32GB, 64GB, atau 128GB.
Ukuran Sektor Mengubah Perhitungannya
Ada satu hal penting yang perlu diperhatikan mengenai perhitungan singkat di atas:
Jumlah LBA ÷ 2.048 = MiB hanya berlaku untuk sektor logis 512 byte.
LBA adalah sebuah alamat. LBA tidak secara otomatis berarti 512 byte.
Jika sebuah perangkat penyimpanan justru menampilkan sektor logis 4.096 byte, setiap LBA mewakili data delapan kali lebih banyak.
Sebagai contoh, gunakan jumlah LBA yang sama seperti sebelumnya:
60.125.184
Dengan sektor logis 512 byte:
60.125.184 × 512 = 30.784.094.208 byte
Itu kira-kira 30,78 GB, atau sekitar 28,67 GiB.
Tetapi jika 60.125.184 LBA yang sama persis tersebut mewakili sektor logis 4.096 byte:
60.125.184 × 4.096 = 246.272.753.664 byte
Sekarang perangkat tersebut mewakili sekitar 246,27 GB, atau sekitar 229,36 GiB.
Jumlah LBA yang sama. Kapasitas yang benar-benar berbeda.
Inilah sebabnya ukuran sektor harus diketahui sebelum mengubah jumlah LBA menjadi sebuah kapasitas.
Mengapa Menggunakan Ukuran Selain 512 Byte?
Pada titik ini, pertanyaan yang paling jelas adalah mengapa perangkat penyimpanan tidak selalu menggunakan sektor 512 byte saja.
Secara historis, sektor 512 byte menjadi standar untuk hard drive dan akhirnya tertanam sangat dalam di sistem operasi, implementasi BIOS, boot loader, utilitas disk, dan berbagai software lainnya. Kompatibilitas merupakan salah satu alasan terbesar mengapa sektor logis 512 byte masih begitu umum digunakan, termasuk pada flash drive USB.
Tetapi perangkat penyimpanan modern jauh lebih rumit secara internal.
Memori flash NAND secara fisik tidak bekerja dalam potongan kecil 512 byte yang rapi. NAND menggunakan page dan erase block yang jauh lebih besar, sementara hard drive modern juga telah beralih ke sektor fisik yang lebih besar. Sebuah controller harus menerjemahkan bagaimana komputer menganggap perangkat penyimpanan tersebut tersusun menjadi struktur yang jauh lebih besar yang sebenarnya digunakan oleh media penyimpanan di dalamnya.
Di sinilah geometri sektor seperti 512e dan 4Kn mulai berperan.
Perangkat 512e menggunakan sektor fisik yang lebih besar, umumnya 4.096 byte, tetapi tetap menampilkan sektor logis 512 byte kepada host. Komputer mendapatkan kompatibilitas dari sektor tradisional 512 byte, sementara perangkat penyimpanan secara internal dapat beroperasi menggunakan geometri fisik yang lebih efisien.
Perangkat 4Kn melangkah lebih jauh dan menampilkan sektor logis 4.096 byte secara langsung kepada host.
Sektor yang lebih besar dapat mengurangi overhead pengalamatan, meningkatkan efisiensi informasi koreksi kesalahan, dan lebih sesuai dengan karakteristik fisik media penyimpanan modern. Pada perangkat penyimpanan berkapasitas sangat besar, sektor logis yang lebih besar juga berarti lebih sedikit blok logis individual yang diperlukan untuk menggambarkan kapasitas yang sama.
Namun, ada beberapa kompromi.
Sistem operasi lama, lingkungan boot, perangkat embedded, dan hardware khusus mungkin mengharapkan sektor logis 512 byte. Software yang membuat asumsi tertentu mengenai ukuran sektor juga dapat berperilaku berbeda ketika berhadapan dengan media 4Kn. Itulah salah satu alasan produsen perangkat penyimpanan dan vendor controller terkadang menawarkan geometri sektor sebagai opsi yang dapat dikonfigurasi, daripada memaksakan satu konfigurasi untuk setiap jenis aplikasi.
Untuk flash drive USB biasa yang digunakan untuk memindahkan dokumen Word dan foto dari satu komputer ke komputer lain, semua ini memang tidak terlalu menarik. Pengguna mencolokkan drive, melihat kapasitas yang kurang lebih sesuai dengan yang diharapkan, lalu melanjutkan aktivitasnya.
Namun, untuk duplicator, media USB bootable, sistem embedded, peralatan industri, dan lingkungan produksi yang terkontrol, geometri yang tepat dapat menjadi bagian dari spesifikasi produk.
“32GB” menggambarkan lingkungan tempat tinggalnya.
Ukuran sektor dan jumlah LBA memberi tahu kita alamat sebenarnya.
Catatan editorial: GetUSB.info telah membahas memori flash USB, sistem duplikasi, dan perilaku media penyimpanan removable sejak 2006. Artikel ini didasarkan pada pengalaman praktis dalam bekerja dengan geometri flash drive USB, konfigurasi controller, dan duplikasi pada tingkat sektor.