64 біт вистачить для всього! Але якщо не вистачить, чи готові ми до 128 розрядів?

Ми не працюємо над 128-бітної архітектурою! Так - здивовано і навіть зі смішком - прокоментував віце-президент ARM Holdings промайнуло в азіатських ЗМІ звістка про те, що ARM, яка підкорила 64 розряду в мобільних процесорах, зайнялася тепер 128 бітами. Власне кажучи, з популярної преси багато не візьмеш; могли і збрехати, і додумати, та й аргументація ARM звучить переконливо (64 біта покриють всі потреби цифрової індустрії на багато років вперед), але ... Але що якщо не брати до уваги це маренням? Як багато сенсу (і чи є він взагалі) в розробці мікропроцесора загального призначення, здатного оперувати числами довжиною в сто двадцять і вісім біт?

Давайте начистоту: скільки-небудь відчутна потреба в такому процесорі на даний момент відсутня. Для рядового користувача розрядності як класу не існує давним-давно, з часів міграції на 32 біта (та й вони-то свого часу виявилися затребувані не самі по собі, а як безкоштовна опція до вміння нових процесорів захищати пам'ять). Масовий комп'ютерний світ все ще живе в тих же самих 32 розрядах, лише задивляючись на наступну сходинку і не кажучи про те, щоб стрибати через одну. Вибір розрядності за користувача роблять розробники операційних систем, а вони в масі своїй все ще вибирають 32-бітові конструкції (OS X з її "умолчательной" 64-розрядністю не береться до уваги).

У тій же ситуації і програмісти, які давно вже працюють з мовами високого рівня і вкрай рідко (интез звуку, аналіз Big Data, кодування-декодування мультимедійних потоків, криптографія, що ще?) Йдуть нижче, до асемблеру. Якщо обивателі не бачать розрядності, то програмісти її не відчувають, про них піклується компілятор. Чому і примусовий перехід до 64 бітам на мобільних пристроях - ініційований Apple і підхоплений Intel, що обіцяє такі чіпи вже в наступному році, - для більшості апп-девелоперів, швидше за все, пройде без проблем.

Чому і примусовий перехід до 64 бітам на мобільних пристроях - ініційований Apple і підхоплений Intel, що обіцяє такі чіпи вже в наступному році, - для більшості апп-девелоперів, швидше за все, пройде без проблем

Ось так і виходить, що навіть 64 розряду нам поки не особливо потрібні, а про 128 і заїкатися безглуздо. Але давайте підійдемо до теми з іншого боку. Спробуйте сформулювати, чому розмови про «мобільну 64-бітность» (а якихось п'ять-сім років тому і про 64 біта на робочому столі) виводять вас із себе, а згадка 128 біт здається порожнім дилетантським трёпом? Чим так вже завинили ці самі розряди, що не можна просто взяти і поставити в персоналку - уявіть на хвилинку, що він раптом з'явився - CPU з регістрами довжиною в шістнадцять байт? Крім зрозумілих тимчасових незручностей кшталт перекомпіляції існуючих програм, оптимізації коду для роботи з даними більшої довжини і пропорційного збільшення накладних витрат (розмір масивів даних і т. П.) - так от, не рахуючи цієї дрібниці, є два дратівливих моменту.

Момент перший - це той факт, що позначилася за останні роки необхідність в 64 розрядах знову сформований не стільки нестачею продуктивності, скільки побічним обмеженням, а саме браком оперативної пам'яті. Стараннями PC-вендорів кожен юзер знає тепер, що 32-бітові CPU не в змозі адресувати більше 4 Гбайт безпосередньо. Насправді цей ліміт порівняно легко обходиться, оскільки мова про обмеження пам'яті на один процес, що середньостатистичному користувачеві на середньостатистичному програмному забезпеченні в найближчому майбутньому не загрожує. Але тим сильніше роздратування: нам знову парять мозок, вигадуючи труднощі і нав'язуючи «технологію завтрашнього дня», замість того щоб оптимізувати існуюче залізо і зайнятися нарешті оптимізацією софта, розбазарює машинні ресурси.

Момент другий - порівняльне благоденство, яке ми зараз переживаємо. У виробників і сорок з гаком років після винаходи мікропроцесора є резерви і по тактовій частоті, і за кількістю ядер (див. « Терафлопс для PC: екстремальна багатоядерність в дії »), І по енергоспоживанню. Працюючи в цих напрямках, можливо отримати відчутний приріст продуктивності - без потреби щось змінювати власне в програмному забезпеченні. Так на біса навіть 64 біта?

Однак уже в найближчому майбутньому обидва вищезазначених фактора припинять діяти або значно ослабнуть. Зростання потреби в оперативній пам'яті зробить непрактичним 32-бітний режим, а наближення до фізичної межі можливостей напівпровідникової мікроелектроніки стане на заваді просуванню вперед колишніми темпами. І ось тоді-то ми поглянемо на збільшену розрядність по-іншому!

Тема 128 розрядів цікава практично повній своїй нерозробленістю. Можете сміятися, але стаття в Вікіпедії, присвячена 128 бітам, вміщується на 1 (однієї) сторінці. Рідкісні дослідники, що аналізують переваги високоточної цілочисельний арифметики (так називають 128-бітний режим), сходяться на велику користь для математики і фізики. Але і для рядового користувача, більш стурбованого часом старту програми, збереження документа, швидкістю вибірки з баз даних, нарешті, енергоефективністю (яка теоретично повинна тут вирости стрибком), можливість маніпулювати 16 байтами за машинний цикл позначить нову епоху.

Все говорить за те, що 128 біт стануть першим бар'єром розрядності мікропроцесорів після 8-бітного, який штурмуватимуть саме заради збільшеної продуктивності. Коли тактову частоту не можна буде підвищувати далі, коли багатоядерність і гетерогенність (Розподіл завдання між різнотипними обчислювальними пристроями, в найпростішому випадку CPU і GPU) перестануть давати значний приріст швидкості, тоді підвищення розрядності (читай: здатність обробити більше даних за один удар «електронного серця») з розумною оптимізацією софта стане єдиним реальним способом зрушити з мертвої точки - звичайно, не рахуючи «заміни рейок», по яких рухається комп'ютерний локомотив, тобто не залучаючи нанотрубок, квантових обчислювачів та іншого подібного. Суперкомп'ютери вже зіткнулися з цією проблемою (див. « Чіслогризи ткнулися в фізичний межа »), І збільшення розрядності їм виразно допомогло б.

Найцікавіше, що непомітно для себе ми вже користуємося 128-бітними режимами. Так, масових процесорів загального призначення, здатних давати раду 16 байтами, за раз не існує. Однак в обмеженій формі 128-розрядність присутній на широкому ринку мінімум півтора десятиліття (а експериментально-комерційні розробки були і ще раніше - зокрема модифікації DEC VAX). Початок поклали «мультимедійні» інструкції MMX / SSE в кінці 90-х, котрі маніпулюють 128 бітами (хоч і не як одним цілим, а розділяються на кілька чисел). В "нульові" прогриміла Transmeta (пам'ятаєте, де починав свою американську кар'єру Лінус Торвальдс?), Оригінальні чіпи якої використовували 128-бітность для прискорення трансляції та виконання емульованого машинного коду чужих процесорів. Сьогодні остання версія найпопулярнішої операційної системи - MS Windows - відмовиться працювати на комп'ютері, процесор і материнська плата якого не підтримують асемблерну інструкцію CMPXCHG16B, що оперує знову-таки 128-бітовим числом. Нарешті, багато допоміжні технології в масовому компьютинге використовують 16-байтную математику: пам'ять в графічних картах, адресація в IPv6, файлова система ZFS (сама назва якої вироблено від «zettabyte» - розмінною одиниці в 128-бітному світі). Всі вони виграють, якщо центральні мікропроцесори перейдуть на 128 біт.

Так де гарантії, що ARM або Intel не експериментують зі 128 бітами в своїх лабораторіях вже зараз? Природно, за щільно зачиненими дверима - і висміюючи саму ідею на людях: ніхто з цих солідних панів не бажає сам стати об'єктом глузувань, виглядати замріяним чудиком!

Але ризикувати залишитися без власних напрацювань в такій справі, погодьтеся, теж не може дозволити собі ніхто.

Але що якщо не брати до уваги це маренням?
?интез звуку, аналіз Big Data, кодування-декодування мультимедійних потоків, криптографія, що ще?
Чим так вже завинили ці самі розряди, що не можна просто взяти і поставити в персоналку - уявіть на хвилинку, що він раптом з'явився - CPU з регістрами довжиною в шістнадцять байт?
Так на біса навіть 64 біта?
Пам'ятаєте, де починав свою американську кар'єру Лінус Торвальдс?
Так де гарантії, що ARM або Intel не експериментують зі 128 бітами в своїх лабораторіях вже зараз?