Apa yang dilakukan oleh kekuatan historis di tempat kerja, pengorbanan, dalam memutuskan untuk menggunakan kelompok delapan bit sebagai unit dasar?
Ada mesin, sekali waktu, menggunakan ukuran kata lain, tetapi hari ini untuk non-delapan-bit Anda harus melihat potongan museum, chip khusus untuk aplikasi tertanam, dan DSP. Bagaimana byte berkembang dari kekacauan dan kreativitas masa awal desain komputer?
Saya dapat membayangkan bahwa lebih sedikit bit tidak akan efektif untuk menangani data yang cukup untuk membuat komputasi layak, sementara terlalu banyak akan menyebabkan perangkat keras yang mahal. Apakah ada pengaruh lain dalam permainan? Mengapa kekuatan-kekuatan ini menyeimbangkan menjadi delapan bit?
(BTW, jika saya dapat melakukan perjalanan waktu, saya akan kembali ke ketika "byte" dinyatakan 8 bit, dan meyakinkan semua orang untuk membuatnya 12 bit, menyuap mereka dengan beberapa pernak-pernik awal abad ke-21.)
Jawaban:
Banyak pekerjaan yang sangat awal dilakukan dengan kode baudot 5-bit, tetapi dengan cepat menjadi sangat terbatas (hanya 32 karakter yang mungkin, jadi pada dasarnya hanya huruf besar, dan beberapa tanda baca, tetapi tidak cukup "ruang" untuk angka) .
Dari sana, beberapa mesin beralih ke karakter 6-bit. Ini masih cukup tidak memadai - jika Anda menginginkan huruf dan angka (huruf besar dan kecil), yang hanya menyisakan dua karakter untuk tanda baca, jadi sebagian besar masih hanya memiliki satu huruf dalam satu set karakter.
ASCII mendefinisikan set karakter 7-bit. Itu "cukup baik" untuk banyak kegunaan untuk waktu yang lama, dan telah membentuk dasar dari set karakter paling baru juga (ISO 646, ISO 8859, Unicode, ISO 10646, dll.)
Komputer biner memotivasi desainer untuk membuat kekuatan ukuran dua. Karena set karakter "standar" membutuhkan 7 bit, itu tidak terlalu sulit untuk menambahkan satu bit lagi untuk mendapatkan kekuatan 2 (dan pada saat itu, penyimpanan menjadi cukup lebih murah sehingga "membuang" sedikit untuk sebagian besar karakter lebih dapat diterima juga).
Sejak itu, set karakter telah pindah ke 16 dan 32 bit, tetapi sebagian besar komputer arus utama sebagian besar didasarkan pada PC IBM asli. Kemudian lagi, cukup pasar cukup puas dengan karakter 8-bit yang bahkan jika PC tidak sampai pada tingkat dominasi saat ini, saya tidak yakin semua orang akan melakukan semuanya dengan karakter yang lebih besar.
Saya juga harus menambahkan bahwa pasar telah berubah sedikit. Di pasar saat ini, ukuran karakter didefinisikan kurang oleh perangkat keras daripada perangkat lunak. Windows, Java, dll., Pindah ke karakter 16-bit dulu.
Sekarang, hambatan dalam mendukung karakter 16 atau 32-bit hanya sedikit dari kesulitan yang melekat pada karakter 16 atau 32-bit itu sendiri, dan sebagian besar dari kesulitan mendukung i18n secara umum. Dalam ASCII (misalnya) mendeteksi apakah sebuah huruf adalah huruf besar atau kecil, atau mengkonversi antara keduanya, sangat sepele. Dalam Unicode / ISO 10646 penuh, ini pada dasarnya tak terlukiskan kompleks (sampai-sampai standar bahkan tidak mencoba - mereka memberikan tabel, bukan deskripsi). Kemudian Anda menambahkan fakta bahwa untuk beberapa set bahasa / karakter, bahkan ide dasar huruf besar / kecil tidak berlaku. Kemudian Anda menambahkan fakta bahwa bahkan menampilkan karakter di beberapa dari mereka masih jauh lebih kompleks.
Itu semua cukup kompleks sehingga sebagian besar perangkat lunak bahkan tidak mencoba. Situasi perlahan membaik, tetapi perlahan adalah kata operatif.
sumber
Tujuh bit untuk informasi ASCII, dan satu untuk paritas pendeteksian kesalahan.
sumber
Lihatlah halaman Wikipedia pada arsitektur 8-bit . Meskipun set karakter bisa 5-, 6-, lalu 7-bit, arsitektur CPU / memory bus yang mendasari selalu menggunakan kekuatan 2. Mikroprosesor pertama (sekitar tahun 1970-an) memiliki bus 4-bit, yang berarti satu instruksi dapat bergerak 4- bit data antara memori eksternal dan CPU.
Kemudian dengan merilis prosesor 8080, arsitektur 8-bit menjadi populer dan itulah yang memberi permulaan set instruksi perakitan x86 yang digunakan bahkan hingga saat ini. Jika saya harus menebak, byte berasal dari prosesor awal ini di mana masyarakat umum mulai menerima dan bermain dengan PC dan 8-bit dianggap sebagai ukuran standar dari satu unit data.
Sejak itu ukuran bus menjadi dua kali lipat tetapi selalu tetap kekuatan 2 (yaitu 16-, 32- dan sekarang 64-bit) Sebenarnya, saya yakin internal bus hari ini jauh lebih rumit daripada hanya 64 kabel paralel, tetapi Arsitektur CPU arus utama adalah 64-bit.
Saya akan berasumsi bahwa dengan selalu menggandakan (bukannya tumbuh 50%) lebih mudah untuk membuat perangkat keras baru yang hidup berdampingan dengan aplikasi yang ada dan komponen warisan lainnya. Jadi misalnya ketika mereka beralih dari 8-bit ke 16, setiap instruksi sekarang dapat memindahkan 2 byte, bukan 1, jadi Anda menghemat satu siklus clock tetapi hasil akhirnya sama. Namun, jika Anda beralih dari arsitektur 8 ke 12-bit, Anda akhirnya akan memecah data asli menjadi setengah dan mengelola yang bisa menjadi menjengkelkan. Ini hanya tebakan, saya bukan ahli perangkat keras.
sumber
Satu byte telah beragam (setidaknya) 1, 4, 6, 7, 8, 9, 12, 18, 20 dan mungkin 36 bit, tergantung pada komputer apa yang Anda lihat. Saya menggunakan "byte" di sini untuk berarti "unit memori terkecil yang dapat dialamatkan", daripada menggunakan segala jenis interpretasi teks-sentris. (Misalnya, Saturn CPU, CPU 64-bit yang digunakan dalam garis kalkulator HP48SX / GX yang populer membahas memori dalam camilan - 4-bit.)
20-bit byte sangat umum di "mesin IAS", di tahun 50-an. 6, 12, 18 (dan mungkin 36) cukup populer di berbagai arsitektur di tahun 60-an, 70-an, dan pada tingkat tertentu, 80-an.
Pada akhirnya, memiliki korespondensi yang bagus antara "kekuatan 2" dan "bit dalam unit addressable" tampaknya telah menang.
sumber
Pertama sedikit klarifikasi: Oktet (unit 8-bit) sebenarnya bukan unit dasar dalam arsitektur komputer modern. Setidaknya tidak ada yang lebih mendasar daripada kekuatan dua - 2, 4, 16, 32, 64, 128 dll. Oktet adalah unit dasar untuk prosesor 8-bit (karena itu namanya!), Tetapi arsitektur modern biasanya bekerja dengan bit yang lebih besar -set secara internal. Misalnya x86_64 memiliki register integer 64 bit dan register floating point 80 bit. RAM dibaca dan ditulis dalam potongan 64-bit, dan prosesor hanya menggunakan sedikit sihir untuk membuatnya terlihat seperti Anda dapat mengatasi masing-masing byte 8-bit.
Untuk arsitektur yang lebih tua, "byte" menunjukkan ukuran bus data, dan seperti yang dinyatakan pertanyaan awal, ada banyak ukuran bus yang berbeda (4, 5, 6, 8, 12 dll.). Tetapi sejak tahun 1993 sebuah byte telah didefinisikan sebagai 8 bit, untuk memiliki unit SI standar untuk ukuran data. Oleh karena itu makna "byte" telah berubah dari unit yang bergantung pada arsitektur menjadi unit standar yang independen terhadap arsitektur.
Jadi hari-hari ini, byte adalah unit standar untuk menangani dan mengukur data, tetapi sebenarnya tidak terlalu mendasar.
Unit oktet menjadi standar de-facto untuk penyimpanan terutama karena kekhawatiran tentang menyimpan teks. Untuk menyimpan teks Anda idealnya ingin satu byte untuk menyimpan satu karakter. Dua faktor penting:
Tentu saja 8-bit tidak cukup untuk mendukung semua skrip - sesuatu seperti Jepang membutuhkan setidaknya 16 bit (dan untuk apa nilainya, Unicode adalah 21 bit), tetapi pada saat itu bit waktu mahal dan sebagian besar teks digital berada dalam kisaran ASCII.
Hari-hari ini, teks biasanya disimpan dalam pengkodean lebar variabel seperti UTF-8, dan dengan hal-hal seperti Unicode menggabungkan karakter, "satu byte sama dengan satu karakter" telah lama menjadi bagian dari masa lalu. Byte Hari ini sebenarnya hanya standar karena alasan historis.
sumber
Menurut informasi saya, kata byte itu sendiri berasal dari frase oleh-delapan yang merupakan delapan (8) bit kata-kata. kenyamanan yang kami temukan dalam 8 bit kata adalah konversi ke nilai heksadesimal karena nilai 00000000 = 00 & 11111111 = FF (255 Des untuk unsigned dan -127 untuk ditandatangani) mudah untuk melakukan semua operasi aritmatika pada struktur tersebut termasuk bit-wise operasi.
Saya melihat byte (8 bit kata) sebagai evolusi alami ukuran kata dari 3 bit serempak kecil hingga 60 bit kata yang sangat besar
sumber
Byte tidak harus 8 bit , tetapi tampaknya C dan C ++ mendefinisikan byte sebagai setidaknya 8 bit (meskipun bisa lebih dari itu). Ini pertanyaan pada Stack Overflow menyebutkan beberapa sistem di mana 1 byte tidak 8 bit.
sumber
CHAR_BITS
makro)