Saya menemukan beberapa sumber mengklaim bahwa kekuatan dua bit dalam kata biner (seperti 8-bit per byte) adalah "hal yang baik" atau "nyaman". Saya menemukan tidak ada sumber yang menunjukkan mengapa.
Dari Apa sejarah mengapa byte delapan bit? kami membaca dalam jawaban yang disetujui:
Komputer biner memotivasi desainer untuk membuat kekuatan ukuran dua.
Ok, tapi kenapa? Dalam pertanyaan yang sama tetapi di bidang komentar untuk pertanyaan saya menemukan:
Apakah kalimat terakhir bercanda? Byte 12-bit akan merepotkan karena itu bukan kekuatan 2. - robjb
Sekali lagi, batal demi alasan ...
perhitungan alamat adalah hal yang jauh lebih sederhana dengan kekuatan 2, dan itu diperhitungkan ketika Anda membuat logika dari transistor mentah dalam kaleng kecil - Mike
Karena byte adalah unit terkecil yang dapat dialamatkan, ini tidak masuk akal. Tapi banyak komentar yang tidak menyenangkan. Mungkin saya melewatkan sesuatu.
Dari Wikipedia :
Standar de facto delapan bit adalah kekuatan yang nyaman dari dua yang memungkinkan nilai 0 hingga 255 untuk satu byte
Dan ini akan nyaman karena ...?
Untuk klarifikasi, ini tentang jumlah bit per byte (misalnya 8 atau 6, dll), bukan jumlah nilai per byte (misalnya 2 8 atau 2 6 , dll). Karena kebingungan saya juga menunjukkan ini bukan tentang ukuran Word.
Saya tidak terlalu tertarik pada alasan sejarah. Itu telah dijelaskan dengan baik di tempat lain (lihat tautan).
Pertanyaan terkait tentang SO: /programming/1606827/why-is-number-of-bits-always-a-power-of-two
Jawaban:
Saya tidak berpikir byte 8-bit telah berhasil karena mereka memiliki lebar yang merupakan kekuatan dua. Jika Anda tidak ingin menangani bit satu per satu - dan itu adalah fitur yang umum baik sekarang maupun di masa lalu - memiliki kekuatan dua tidak penting secara praktis (hanya saja - sekarang jauh lebih banyak daripada di masa lalu ketika menghemat beberapa komponen diskrit penting - sebuah refleks untuk insinyur perangkat keras dan perangkat lunak dan tinggal di tanah yang akrab adalah penting untuk tujuan lain), dan saya tidak ingat pernah melihat yang disebutkan dalam sejarah pembacaan komputer saya (1). Satu membutuhkan huruf kecil, itu berarti sesuatu yang lebih dari set karakter 6-bit yang dominan. ASCII adalah 7-bit, tetapi ASCII kemudian murni untuk pertukaran antar (dan dengan demikian diterjemahkan ke kode internal untuk penanganan), dan dengan demikian
dan untuk perangkat keras 8-bit byte dimenangkan karena diperbolehkan untuk mengemas 2 angka desimal dalam satu byte pada saat 75% dari data numerik dan diwakili dalam BCD (3).
(1) misalnya Blaauw dan Brooks, Arsitektur Komputer ; MacKenzie, Set Karakter Kode, Sejarah dan Pengembangan memiliki kedua diskusi tentang subjek itu.
(3) Dokumen X3.2 - Subkomite yang bertanggung jawab atas ASCII - dikutip oleh MacKenzie.
(3) MacKenzie, lagi.
sumber
Selain kecelakaan historis, tidak ada alasan khusus mengapa kita harus menggunakan 8/16/32/64 bit. Saya kira 12/24/48/96 bit akan sangat berguna.
Untuk menangani teks, Unicode menggunakan UTF-24 hipotetis akan lebih murah daripada UTF32; hipotetis UTF-12 akan menyimpan semua karakter UTF-8 byte tunggal dan ganda dalam 12 bit, dan semua karakter UTF-8 triple dan quad byte dalam 24 bit (kisaran akan sedikit dikurangi menjadi 2 ^ 20 karakter, tapi itu masih empat kali lebih dari yang digunakan dengan murah hati); kode akan lebih sederhana karena hanya ada dua varian.
Untuk floating point, 48 bit biasanya cukup. 96 bit jauh lebih baik daripada 80 bit diperpanjang. 24 bit berguna untuk grafik; jauh lebih bermanfaat daripada 16 bit yang didukung oleh beberapa kartu grafis. Pointer 48 bit dapat menangani 256 terabyte.
Satu-satunya kelemahan adalah bit array, di mana divisi dengan 12 perlu menghitung posisi byte. Jika itu dianggap penting, saya yakin divisi dengan 12 dapat diimplementasikan dengan cukup efisien dalam perangkat keras.
sumber
Ini nyaman karena arsitektur perangkat keras umum menggunakan kelipatan 8, misalnya arsitektur 32-bit dan 64-bit. Ini berarti efisiensi yang lebih besar ketika menggunakan penyimpanan dan transmisi data 8-bit.
"Namun, pertimbangan ekonomi dalam desain sangat mendorong untuk satu ukuran, atau sangat sedikit ukuran yang terkait dengan kelipatan atau pecahan (submultiples) ke ukuran primer. Ukuran yang disukai menjadi ukuran kata dari arsitektur."
Word (arsitektur komputer)
Lihat juga: Apa sejarah mengapa byte delapan bit?
sumber
2⁸-1
.Menurut artikel Wikipedia untuk kata , ini membuat perhitungan yang terkait dengan pengalamatan memori secara signifikan lebih mudah:
sumber
Ini terkait erat dengan ruang alamat. Dengan menambahkan satu bit lagi ke bus alamat Anda, Anda dapat alamat dua kali lebih banyak lokasi memori. Jadi, ketika Anda menambahkan baris tambahan itu, Anda mungkin menggunakannya secara maksimal.
Ini mengarah pada perkembangan alami 1, 2, 4, 8, 16, 32 dan lain-lain.
Pada tingkat teknis produksi, juga mudah untuk mengulangi pola litograf yang sama. Yaitu, untuk menggandakannya. Jika Anda memulai dengan satu kait dan kemudian menggandakan polanya, Anda akan melewati 8, bukan 6, 10 atau 12.
sumber
Tidak selalu lebar kata kekuatan dua. Saya baru-baru ini melakukan beberapa pengkodean dalam DSP SHArC yang memiliki lebar kata 32-bit untuk angka tetapi tidak untuk opcodes (yang lebar 48-bit).
Mungkin alasan mengapa lebar kata adalah kekuatan dua adalah karena beberapa instruksi yang menguji (atau mengatur atau menghapus atau beralih) satu bit atau menggeser (atau memutar) kiri atau kanan dengan jumlah bit tertentu. Ada bidang bit dalam opcode untuk menentukan lokasi bit tunggal atau jumlah bit yang digeser. Jika lebar kata adalah kekuatan dua, bidang bit ini membutuhkan bit log 2 (word_width) untuk mencakup keseluruhan kata. Artinya, kata yang lebar 32 bit membutuhkan bidang 5-bit dalam opcode untuk operasi ini. Jika kata itu lebar 33 bit, itu akan membutuhkan 6 jika tidak maka tidak bisa mencakup seluruh kata, tetapi itu juga akan menjadi kasus jika kata itu 64 bit lebar.
Bit dalam opcode sangat berharga, jadi mereka biasanya tidak ingin menyia-nyiakannya. Maka masuk akal untuk membuat kata kekuatan 2 lebar.
Alasan byte lebar 8 bit adalah bahwa itu adalah kekuatan terkecil dari dua yang dapat menampung karakter ASCII (yaitu 7 bit).
sumber