Чому у нас немає 128-бітних процесорів

Ми перейшли від 8-бітної до 16-бітної, до 32-бітної і закінчили на 64-бітній. Ось чому не існує 128-розрядних процесорів.

Серед слів комп’ютерної лексики біт, безумовно, є одним із найвідоміших. Цілі покоління ігрових консолей і їхні піксельні художні стилі визначаються бітами (наприклад, 8-бітними та 16-бітними), а багато програм пропонують як 32-бітні, так і 64-бітні версії.

Якщо ви подивитеся на цю історію, ви побачите, що наша здатність працювати з бітами з роками зросла. Однак, хоча 64-розрядні мікросхеми вперше були представлені в 90-х і стали основними в 2000-х, ми все ще не мають 128-розрядних процесорів. Хоча 128 може здатися природним кроком після 64 років, це що завгодно але.

Що таке навіть трохи?

Перш ніж говорити про те, чому не існує 128-розрядних процесорів, нам потрібно поговорити про те, що таке біт навіть. По суті, це стосується можливостей ЦП. Утворений зі слів двійковий і цифра, це найменша одиниця обчислювальної техніки та відправна точка всього програмування. Біт можна визначити лише як 1 або 0 (отже, двійковий), хоча ці числа можна інтерпретувати як істинні чи хибні, увімкнені чи вимкнені та навіть як знак плюс чи мінус.

Сам по собі один біт не дуже корисний, але використання більшої кількості бітів – це інша історія, тому що комбінацію одиниць і нулів можна визначити як щось, наприклад число, літеру чи інший символ. Для 128-бітних обчислень нас цікавлять лише цілі числа (числа, які не мають десяткової коми), і чим більше бітів, тим більше чисел може визначити процесор. Він використовує досить просту формулу 2^x, де x означає кількість бітів. У 4-бітних обчисленнях найбільше ціле число, до якого ви можете порахувати, дорівнює 15, що на одиницю менше, ніж 16, яке дає вам формула, але програмісти починають відлік від 0, а не від 1.

Якщо 4-бітний може зберігати лише 16 різних цілих чисел, тоді може здатися, що перехід на 8-, 32- або навіть 128-бітний не буде такою великою справою. Але тут ми маємо справу з експоненціальними числами, що означає, що все починається повільно, але потім дуже швидко розвивається. Щоб продемонструвати це, ось невелика таблиця, яка показує найбільші цілі числа, які ви можете обчислити у двійковому форматі від 1 до 128 біт.

біт

Максимальне ціле число

1-бітний

1

2-розрядний

3

4-бітний

15

8-бітний

255

16-бітний

65,535

32-розрядний

4,294,967,295

64-розрядний

18,446,744,073,709,551,615

128-біт

340,282,366,920,938,463,463,374,607,431,768,211,455

Отже, тепер ви, ймовірно, розумієте, чому подвоєння кількості бітів призводить до можливості обробки чисел, які не просто подвоюються, але й на порядки більші. Проте, незважаючи на те, що 128-розрядні обчислення дозволять нам працювати з набагато більшими числами, ніж 64-розрядні обчислення, ми все ще не використовуємо їх.

Як ми перейшли від 1-бітної до 64-бітної

Джерело: AMD

Досить зрозуміло, чому ЦП перейшли від 1-розрядних до більш розрядних: ми хотіли, щоб наші комп’ютери виконували більше речей. Немає багато чого, що можна зробити з одним, двома чи чотирма бітами, але на позначці 8 біт аркадні машини, ігрові консолі та домашні комп’ютери стали можливими. З часом процесори стали дешевшими у виробництві та фізично меншими, тому додавання апаратного забезпечення, необхідного для збільшення кількості бітів, які може обробляти ЦП, було цілком природним кроком.

Експоненціальний характер бітів стає очевидним дуже швидко, якщо порівнювати 16-бітні консолі, такі як SNES і Sega Genesis, з їхніми 8-бітними попередниками, головним чином NES. Super Mario Bros 3 була однією з найскладніших ігор NES з точки зору механіки та графіки, і вона була абсолютно незначною для Світ Супер Маріо, який був випущений лише через два роки (хоча вдосконалення технології графічного процесора також були тут ключовим фактором).

У нас досі немає 128-розрядних процесорів, хоча минуло майже три десятиліття з моменту появи на ринку перших 64-розрядних процесорів.

Однак це стосується не лише відеоігор; майже все покращилося з більшою кількістю бітів. Перехід від 256 чисел у 8-бітному режимі до 65 356 чисел у 16-бітному форматі означав більш точне відстеження часу, відображення більшої кількості кольорів на дисплеях і адресацію більших файлів. Незалежно від того, чи використовуєте ви персональний комп’ютер IBM із 8-розрядним процесором Intel 8088, чи створюєте сервер для компанії, яка готова працювати в Інтернеті, більше бітів просто краще.

Індустрія досить швидко перейшла від 16-розрядних до 32-розрядних і, нарешті, до 64-розрядних обчислень, які стали мейнстрімом наприкінці 90-х і на початку 2000-х років. Деякі з найважливіших ранніх 64-розрядних процесорів були знайдені в Nintendo 64 і комп’ютерах на базі Athlon 64 і Opteron від AMD. ЦП. Що стосується програмного забезпечення, 64-розрядні системи почали отримувати основну підтримку таких операційних систем, як Linux і Windows 2000-ті роки. Однак не всі спроби створити 64-розрядні обчислення були успішними; Серверні процесори Intel Itanium зазнали гучного збою і є одні з найгірших процесорів компанії.

Сьогодні 64-розрядні процесори є скрізь, від смартфонів до ПК і серверів. Мікросхеми з меншою кількістю бітів все ще виготовляються, і вони можуть бути бажаними для конкретних застосувань, які не обробляють великі числа, але вони досить нішеві. Тим не менш, у нас досі немає 128-розрядних процесорів, хоча минуло майже три десятиліття з моменту появи на ринку перших 64-розрядних чіпів.

128-бітне обчислення шукає проблему для вирішення

Ви можете подумати, що 128-розрядний нежиттєздатний, тому що це важко або навіть неможливо зробити, але насправді це не так. Багато частин у процесорах, центральних процесорах тощо є 128-розрядними або більшими, як-от шини пам’яті на графічних процесорах і SIMD на процесорах, які підтримують інструкції AVX. Ми конкретно говоримо про здатність обробляти 128-бітні цілі числа, і хоча 128-бітні прототипи ЦП були створені в дослідницьких лабораторіях, жодна компанія не випустила 128-бітний ЦП. Відповідь може бути неперевершеною: 128-розрядний процесор просто не дуже корисний.

64-розрядний ЦП може обробляти понад 18 квінтильйонів унікальних чисел від 0 до 18 446 744 073 709 551 615. Навпаки, 128-розрядний процесор міг би обробляти понад 340 чисел ундецильйонів, і я гарантую вам, що ви ніколи навіть не бачили "ундецильйонів" за все своє життя. Знайти застосування для обчислення чисел із такою кількістю нулів досить складно, навіть якщо ви використовуєте один із біти для підпису цілого числа, яке матиме діапазон від мінус 170 ундецильйонів до позитивних 170 undecillion.

Єдиними важливими варіантами використання 128-бітних цілих чисел є адреси IPv6, універсальні унікальні ідентифікатори (або UUID), які використовуються для створення унікальних ідентифікаторів для користувачів (Minecraft є гучним випадком використання UUID) і файлових систем, таких як ZFS. Справа в тому, що 128-розрядні процесори не потрібні для вирішення цих завдань, які цілком можуть існувати на 64-розрядному обладнанні. Зрештою, основна причина, чому у нас немає 128-розрядних процесорів, полягає в тому, що немає попиту на 128-розрядну програмно-апаратну екосистему. Індустрія, звичайно, могла б досягти цього, якби захотіла, але цього просто немає.

Для 128-біт двері трохи прочинені

Джерело: Siemens

Хоча 128-розрядні процесори сьогодні не є поширеними, і, здається, жодна компанія не випускатиме їх найближчим часом, я б не став так далеко, щоб сказати, що 128-розрядних процесорів ніколи не буде. Специфікація для RISC-V ISA залишає можливість майбутнього 128-бітного архітектура на столі, але не деталізує, що це буде насправді, мабуть, тому, що просто не було гострої потреби в його проектуванні.

Триста сорок ундецильйонів, найбільше число, яке можна створити за допомогою 128 біт, теж не так багато тому що у Всесвіті є атоми, які вважаються найбільшою кількістю в будь-якому реальному світі значення. Якщо ви коли-небудь хотіли змоделювати хороший шматок Всесвіту аж до атомного рівня, то, можливо, 128-розрядний процесор був би для цього справді корисним. Окрім цього, важко сказати, для чого буде використовуватися 128-розрядний процесор, але багато років тому ми також задавалися питанням, для чого вам потрібен терабайт оперативної пам’яті.