Tiền tố nhị phân

Lịch sử

Những máy tính đầu tiên sử dụng một trong hai cách mô tả địa chỉ để nói về bộ nhớ hệ thống; hệ nhị phân (cơ số 2) hoặc hệ thập phân (cơ số 10). Máy IBM 701 (1952) sử dụng hệ nhị phân và có thể mô tả được 2048 "word", mỗi word có 36 bit. Máy IBM 702 (1953) sử dụng hệ thập phân và có thể mô tả 10.000 "word", mỗi word có 7 bit. Một trong những máy tính thành công nhất thời đó là IBM 1401, được giới thiệu vào năm 1959 và đến 1961 cứ 4 máy tính điện tử thì có 1 chiếc IBM 1401, sử dụng cách ghi địa chỉ theo hệ thập phân và có thể có 1400, 2000, 4000, 8000, 12.000 hoặc 16.000 ký tự (mỗi ký tự có 8 bit) trong bộ lưu trữ nhân. Khi nói đến "4k IBM 1401" có nghĩa là 4000 ký tự của bộ nhớ.
Đến giữa thập niên 1960 cách ghi địa chỉ theo hệ nhị phân đã là kiến trúc chuẩn trong thiết kế máy tính. Tài liệu hướng dẫn hệ thống máy tính thời đó xác định kích thước bộ nhớ với con số chính xác như 32.768, 65.536 hay 131.072 "word" lưu trữ. Có vài phương pháp được dùng để viết tắt các lượng số này. Một bài báo trong cuộc thảo luận nhỏ vào năm 1964 của Gene Amdahl nói về IBM System/360 đã dùng 1K với nghĩa là 1024. Kiểu cách này đã được dùng lại bởi những nhà buôn bán máy tính khác, Mô tả hệ thống của CDC 7600 (1968) dùng rất nhiều chữ K như 1024. Một kiểu dùng khác đó là cắt đi 3 số cuối và thêm chữ K vào. Giá trị chính xác 32.768, 65.536 và 131.072 trở thành 32K, 65K và 131K. Nếu 32.768 được làm tròn, nó sẽ thành 33K. Kiểu này đã được dùng trong khoảng từ năm 1965 đến 1975.
Việc sử dụng 1024 K thông dụng hơn kiểu K sau khi cắt cụt. Cả hai đều được dùng, có khi bởi cùng một công ty. Máy tính thời gian thực HP 21MX (1974) ký hiệu 196.608 là 196K và 1.048.576 là 1 M. Máy tính doanh nghiệp HP 3000 (1973) có thể có bộ nhớ 64K, 96K, hoặc 128K byte.
Thuật ngữ Kbit, Kbyte, Mbit và Mbyte bắt đầu được sử dụng như đơn vị nhị phân vào đầu thập niên 1970. Tờ quảng cáo cho máy tính IBM System/370 Model 158 (1972) đã có những dòng sau: "Dung lượng lưu trữ thực có bán từ 512K đến 2.048K byte tăng theo từng bậc 512K". Phần lớn dung lượng bộ nhớ được mô tả theo K. Megabyte được dùng để mô tả địa chỉ 22-bit của máy PDP-11/70 (1975) của hãng DEC và gigabyte để chỉ địa chỉ 30-bit của máy VAX11/780 (1977), cũng của DEC.
Vào giữa thập niên 1070 việc dùng K (hoặc Kbyte) để biểu diễn 1024 đã trở nên phổ biến và ít gặp hơn là M (hay MByte) được dùng như 1.048.576 word hay byte cho bộ nhớ (RAM). K và M cũng được dùng với nghĩa thập phân cho dung lượng đĩa. Việc sử dụng song song các tiền tố này cho cả hệ thập phân và nhị phân đã được định nghĩa trong những tiêu chuẩn và từ điển thời đó. ANSI/IEEE Std 1084-1986 vẫn còn dùng để tham khảo và đã định nghĩa kilo và mega. Thuật ngữ "dung lượng máy tính" có nghĩa là bộ nhớ hệ thống 
"kilo (K). (1) Một tiền tố để chỉ 1000. (2) Trong các câu văn liên quan đến kích thước dung lượng máy tính, là một tiền tố để chỉ 2¹⁰, hay 1024."
 "mega (M). (1) Một tiền tố để chỉ một triệu. (2) Trong các câu văn liên quan đến kích thước dung lượng máy tính, là một tiền tố chỉ 2²⁰, hay 1.048.576."
Vào thập niên 1980 các thuật ngữ kilobyte, megabyte và gigabyte trở nên phổ biến cùng với cách viết tắt KB, MB và GB và các thuật ngữ Kbyte, Mbyte và Gbyte. Tất cả đều được định nghĩa trong IEEE 100. Thuật ngữ Kbyte, Mbyte và Gbyte được tìm thấy trong các ấn bản thương mại và trong bài báo của IEEE (Kilobyte, Kbyte và KB là những đơn vị tương đương).
Ngành công nghiệp đã thích ứng với những định nghĩa kép này vì bộ nhớ hệ thống (RAM) luôn sử dụng nghĩa nhị phân trong khi dung lượng đĩa lại sử dụng nghĩa thập phân (tuy cũng có những ngoại lệ đặc biệt cho một số loại đĩa). Không có đơn vị SI cho dung lượng lưu trữ máy tính nhưng ý nghĩa thập phân của KB, MB và GB thường được chỉ bằng tiền tố SI.
Vào tháng 1 năm 1999, Ủy ban Kỹ thuật Điện Quốc tế giới thiệu các tiền tố kibi-, mebi-, gibi-, v.v., và các ký hiệu Ki, Mi, Gi, v.v., để chỉ các bội số nhị phân của số lượng và loại bỏ sự nhập nhằng này. Tên của tiêu chuẩn mới được lấy ra từ hai chữ cái đầu tiên của tiền tố SI gốc kèm theo là chữ bi, viết tắt cho "binary" (nhị phân). Chuẩn mới cũng làm rõ rằng, theo quan điểm của IEC, các tiền tố SI do đó sẽ chỉ được dùng với nghĩa cơ số 10 của nó và không bao giờ có nghĩa là cơ số 2.
Phiên bản thứ hai của tiêu chuẩn định nghĩa chúng chỉ đến exbi-, nhưng vào năm 2005, phiên bản thứ ba đã thêm vào các tiền tố zebi- và yobi-, do đó tất cả các tiền tố SI tiêu chuẩn đã có phần nhị phân tương ứng.
Vào 19 tháng 3 năm 2005 tiêu chuẩn IEEE IEEE 1541-2002 (Các Tiền tố cho Bội số Nhị phân) đã được nâng lên thành tiêu chuẩn sử dụng đầy đủ bởi Hiệp hội Tiêu chuẩn IEEE sau khoảng thời gian hai năm thử nghiệm.

Sự bối rối của người dùng

Vào thời kỳ đầu tiên của máy tính hầu như không có sự nhầm lẫn nào từ người dùng vì bản chất cẩn thận của người dùng nhưng lý do quan trọng hơn là các nhà sản xuất máy tính hồi đó xác định (trái với các quảng cáo) sản phẩm của họ bằng chữ số thập phân ở những chỗ thích hợp, ví dụ như vào năm 1968 IBM nói về System 360 "Model 91s có thể cung cấp lên đến 6.291.496 byte bộ nhớ chính." Những nhà sản xuất ổ cứng bắt đầu sử dụng MB, có nghĩa là 10⁶ byte, để mô tả đặc tính sản phẩm của họ từ năm 1974. Đến năm 1977, trong phiên bản đầu tiên, Disk/Trend, một nhà tư vấn tiếp thị cho ngành công nghiệp ổ cứng hàng đầu khi đó đã chia ngành công nghiệp dựa theo số MB (nghĩa thập phân) dung lượng. Việc một hệ điều hành sử dụng MB với nghĩa nhị phân để hiển thị dung lượng ổ cứng có lẽ xuất hiện đầu tiên ở Macintosh Finder sau 1984. Trước đó, trên những hệ thống có dùng ổ cứng, dung lượng được hiển thị bằng các con số thập phân và không dùng tiền tố nào (như lệnh CHKDSK của MS/PC DOS). Sau đó, một ví dụ là Microsoft Windows 3.11 đã báo cáo dung lượng thực của ổ cứng 41.959.424 byte là 40 MB.

Sự chấp nhận

Đến năm 2007, quy ước đặt tên của IEC vẫn chưa được sử dụng rộng rãi, nhưng nó đang được phổ biến dần dần.
Nó được hỗ trợ mạnh mẽ bởi nhiều cơ quan tiêu chuẩn hóa và tổ chức kỹ thuật, như IEEE, CIPM, NIST, và SAE. 
Những tiền tố nhị phân mới cũng đã được chấp nhận bởi tổ chức Tiêu chuẩn hóa Kỹ thuật Điện tử của Ủy ban châu Âu (CENELEC) như một tài liệu dung hòa HD 60027-2:2003-03. 
Tài liệu này sẽ được chấp nhận như một tiêu chuẩn châu Âu.
Những tiền tố đang bắt đầu được sử dụng trong những bài báo kỹ thuật và phần mềm khi việc tránh nhập nhằng là quan trọng. Các phần mềm hiện đang dùng tiền tố tiêu chuẩn IEC (chung với tiền tố tiêu chuẩn SI) bao gồm Linux kernel, GNU Core Utilities, Launchpad, GParted, ifconfig, Deluge (chương trình BitTorrent), và BitTornado. Những chương trình khác như fdisk và apt-get sử dụng tiền tố SI với ý nghĩa thập phân.

Việc sử dụng

Cụm từ "đơn vị thập phân" sẽ được dùng để chỉ "định danh SI được hiểu với nghĩa tiêu chuẩn, thập phân, lũy thừa của 1000" và "đơn vị nhị phân" sẽ có nghĩa "định danh SI được hiểu với nghĩa nhị phân, lũy thừa của 1024." B sẽ được dùng làm ký hiệu cho byte theo tiêu chuẩn công nghiệp máy tính (IEEE 1541 và IEC 60027; B cũng được dùng làm ký hiệu cho bel, một đơn vị không phải của SI phổ biến để đo số truyền).
Có những đơn vị luôn luôn được hiểu là số thập phân ngay cả khi nói đến máy tính. Ví dụ như, hertz (Hz), được dùng để đo tốc độ xung đồng hồ của những linh kiện điện tử, và bit/s, dùng để đo tốc độ truyền bit. Do đó bộ vi xử lý 1 GHz sẽ thực hiện 1.000.000.000 xung đồng hồ trong một giây, nhạc MP3 128 kbit/s tốn 128.000 bit (16 kB, 15.625 KiB) một giây, và kết nối Internet tốc độ 1 Mbit/s có thể truyền 1.000.000 bit (125 kB, tương đương 122 KiB) một giây, giả thiết 1 byte bằng 8 bit, và không có trễ.

Cách phát âm

Trong tiếng Anh và tương tự đối với tiếng Việt, cách phát âm được đề nghị là âm đầu của tiền tố nhị phân phát âm giống như âm đầu của tiền tố SI tương ứng, và âm sao phát âm như "bi". Ví dụ như: KiB, viết là Kibibyte, đọc là "ki bi bai (tờ)".

Ổ đĩa flash

Ổ đĩa Flash dùng USB và thẻ nhớ dựa trên Flash như CompactFlash và Secure Digital được xếp vào loại bội số "lũy thừa của hai" của megabyte thập phân; ví dụ, một thẻ "256 MB" sẽ chứa 256 triệu byte. Mặc dù các thiết bị ít ra thường có dung lượng byte mong đợi, mỗi nhà sản xuất cũng định vị những phần khác nhau của dung lượng cơ bản của thiết bị cho những thứ như wear levelling (một kỹ thuật để kéo dài tuổi thọ thẻ nhớ).

Đĩa mềm

Việc sử dụng một cách nhập nhằng các tiền tố thập phân có thể bắt đầu từ đĩa mềm khi nhà sản xuất truyền thông và ổ đĩa chỉ dung lượng chưa định dạng trong khi các hệ thống khác nhau đưa ra những dung lượng đã định dạng khác nhau như là kết quả của các thiết kế bộ điều khiển khác nhau. Dường như một vài nhà sản xuất hệ thống và phân phối hệ điều hành bắt đầu báo cáo theo cách mà hiện giờ chúng ta biết là Ki byte. Một hệ thống lai rất nhập nhằng đã được phát triển với đĩa mềm 3½" mật độ cao hai mặt, ở đó một "megabyte" có nghuax là 1000 lần của "kilobyte" 1024 byte. Do đó, vào năm 2005, những nhà sản xuất đã thống nhất sử dụng sử định dang "đĩa 1,44 MB" cho một sản phẩm không chứa 1,44×2²⁰ byte cũng không phải 1,44×10⁶ byte, mà là 1,44×1000×1024 byte (xấp xỉ với 1.406 MiB, hay 1.475 MB).

CD và DVD

Dung lượng đĩa CD luôn được cho dưới dạng đơn vị nhị phân. Một đĩa CD "700 MB" (hay "80 phút") có dung lượng danh nghĩa vào khoảng 700 MiB (xấp xỉ 730MB). Nhưng dung lượng của DVD lại được cho ở dạng thập phân. Một DVD "4.7 GB" có dung lượng danh nghĩa là khoảng 4,38 GiB.

Bus

Băng thông Bus được cho ở đơn vị thập phân. Điều này không phải do dung lượng ổ cứng sử dụng thập phân, cũng không phải do độ truyền bit, mà là do tốc độ xung đồng hồ. Ví dụ, bộ nhớ "PC3200" chạy trên bus ống kép 200 MHz, truyền 8 byte một chu kỳ, và do đó có băng thông 200.000.000×2×8 = 3.200.000.000 byte/s.

Tranh cãi pháp lý

Có hai vụ kiện nổi bật chống lại những nhà sản xuất thiết bị lưu trữ số. Một trường hợp liên quan đến bộ nhớ flash và trường hợp kia lien quan đến ổ đĩa cứng. Cả hai được hòa giải với các nhà sản xuất đồng ý làm rõ dung lượng lưu trữ các sản phẩm của họ trên bao bì người dùng. 
Vào 20 tháng 2 năm 2004, Willem Vroegh đã sắp đặt một vụ kiện chống lại Lexar Media, Dane–Elec Memory, Fuji Photo Film Hoa Kỳ, Eastman Kodak Company, Kingston Technology Company, Inc., Memorex Products, Inc.; PNY Technologies Inc., SanDisk Corporation, Verbatim Corporation, and Viking InterWorks cho rằng sự mô tả về dung lượng các thẻ nhớ flash của họ là sai và gây nhầm lẫn.
Vroegh chỉ ra rằng một Thiết bị Bộ nhớ Flash 256MB chỉ có 244MB bộ nhớ tiếp cận được. "Nguyên đơn cho rằng bị đơn đã tiếp thị dung lượng bộ nhớ của các sản phẩm của họ bằng cách giả sử rằng một megabyte bằng với một triệu byte và một gigabyte bằng với một tỷ byte." Nguyên đơn muốn sử dụng giá trị 2²⁰ cho một megabyte và 2³⁰ cho một gigabyte. Nguyên đơn biết rằng tiêu chuẩn IEC định nghĩa một MB là một triệu byte nhưng đã nói rằng ngành công nghiệp bỏ qua phần lớn các tiêu chuẩn của IEC. Third Amended Complaint.pdf
Những nhà sản xuất đồng ý làm rõ dung lượng thẻ nhớ flash trên bao bì và trên trang web. Người mua hàng có thể đăng ký "giảm giá mười phần trăm sản phẩm bán ra trực tuyến trong tương lai từ Cửa hàng Trực tuyến về Thiết bị Nhớ Flash của Bị đơn." Công ty luật Gutride Safier, LLP và Milberg Weiss nhận được 2,4 triệu đô la Mỹ.
Vào ngày 7 tháng 7 năm 2005, một sự kiện mang tên Orin Safier chống lại Western Digital Corporation, và các bạn hữu, đã được sắp đặt tại Tòa án Tối cao của Thành phố và hạt San Francisco, số vụ án CGC-05-442812. Vụ này sau đó chuỷen tới Quận Bắc của California, số vụ án 05-03353 BZ.
Mặc dù Western Digital khăng khăng rằng việc họ sử dụng đơn vị là đồng nhất với "tiêu chuẩn công nghiệp đúng đắn không thể phủ nhận trong đo lường và mô tả dung lượng lưu trữ", và rằng họ "không thể được kỳ vọng sẽ cải cách ngành công nghiệp phần mềm", họ đã đồng ý dàn xếp  vào tháng 3 năm 2006 với 14 tháng 6 năm 2006 là ngày chuẩn bị được phê chuẩn cuối cùng (Final Approval hearing date).
Western Digital đã đề nghị đền bù cho khách hàng được tải về miễn phí phần mềm phục hồi và sao lưu trị giá 30 đô la Mỹ. Họ cũng trả $500.000 lệ phí và chi phí cho các luật sư Adam Gutride và Seth Safier ở San Francisco, những người đã sắp xếp vụ kiện.
Western Digital đã ghi chú ở dưới bản hòa giải. "Rõ ràng, bị đơn tin rằng anh ta có thể kiện một công ty trứng vì gian lận khi ghi nhãn hộp 12 trứng là "một tá", vì vài thợ bán bánh sẽ xem một "tá" bao gồm đến 13 cái."
Những nhà sản xuất bộ nhớ flash và ổ cứng giờ đây đã có sự nhân nhượng về quyền lợi trong gói hàng và trang web của họ bằng việc làm rõ dung lượng được định dạng của bộ nhớ flash  hoặc định nghĩa 1MB là 1 triệu byte và 1GB là 1 tỷ byte.
Cũng vậy, Class Action Fairness Act năm 2005 yêu cầu nghiên cứu cẩn thận hơn nữa những sự hòa giải bằng phiếu giảm giá. Một trong những công ty luật bị đơn trong vụ Vroegh, Milberg Weiss & Bershad, đã bị buộc tội gian lận trong những vụ án lớn (class action) không liên quan.