Почему мы застряли на 64-битных чипах: взгляд в будущее вычислительных технологий
Почему, несмотря на стремительное развитие технологий, мы по-прежнему используем 64-битные процессоры? Этот вопрос наверняка посещал умы многих, кто хоть немного интересуется компьютерным железом. В этой статье постараюсь проанализировать причины, почему переход на более продвинутую архитектуру, например, 128-битную, не стал реальностью. Мы рассмотрим исторические предпосылки, технические ограничения, экономические факторы и, конечно, заглянем в будущее вычислительных технологий.
От 32 бит к 64: краткий экскурс в историю
В эпоху расцвета персональных компьютеров, 32-битные процессоры были стандартом. Эти чипы, такие как Intel 80386 и его последователи, определяли возможности вычислительной техники того времени. Однако 32-битная архитектура имела свои ограничения. Главным из них было ограничение оперативной памяти — всего 4 ГБ. Это ограничение было обусловлено тем, что 32-битный процессор мог адресовать только 232 ячеек памяти. Для простых задач того времени этого было достаточно, но с ростом сложности программ и объемов обрабатываемых данных, 4 ГБ стали узким местом. 32-битные системы играли ключевую роль в развитии вычислительной техники, они стали основой для первых графических интерфейсов, игр и других приложений. Примерами таких систем являются старые ПК на базе Windows 95/98 и первые поколения смартфонов.
Переход на 64-битную архитектуру был обусловлен необходимостью преодолеть ограничения 32-битных систем. 64-битные процессоры, такие как AMD Athlon 64 и Intel Core 2 Duo, открыли доступ к огромному адресному пространству — 264, что позволило использовать гораздо больше оперативной памяти. Это стало критически важным для работы с большими объемами данных, сложными вычислениями и современными приложениями. Преимущества 64-битной архитектуры не ограничивались только увеличением объема ОЗУ. Она также обеспечила улучшенную производительность за счет расширения регистров процессора и поддержки более сложных вычислений. Хронология перехода была постепенной: сначала 64-битные процессоры появились в серверах и рабочих станциях, а затем стали стандартом для персональных компьютеров и ноутбуков. Операционные системы, такие как Windows XP Professional x64 Edition и Linux, первыми получили поддержку 64-битных вычислений, а затем и все современные ОС.
Почему переход на 128 бит не стал реальностью?
Итак, мы перешли от 32-бит к 64-битам, но почему же мы не видим массового распространения 128-битных процессоров? На это есть несколько веских причин.
Разработка и производство 128-битных процессоров — это крайне сложная инженерная задача. Увеличение разрядности приводит к увеличению размера транзисторов, что, в свою очередь, ведет к увеличению энергопотребления и тепловыделения. Это создает серьезные проблемы с охлаждением и надежностью чипов. Более того, разработка программного обеспечения для 128-битной архитектуры — это огромный вызов, требующий переосмысления многих фундаментальных концепций.
Проблема совместимости. Одной из главных причин, сдерживающих переход на 128-бит, является проблема совместимости. Переход на новую архитектуру требует переписывания практически всего программного обеспечения — от операционных систем до прикладных программ. Это колоссальные затраты на разработку и тестирование, а также огромные проблемы с обратной совместимостью. Никто не хочет, чтобы его любимые программы и игры перестали работать на новом железе.
Экономические факторы. Разработка и производство 128-битных процессоров — это чрезвычайно дорогостоящее мероприятие. В настоящее время нет явной экономической выгоды от перехода на 128-бита, так как большинство задач прекрасно выполняются на 64-битных системах. Стоимость производства, разработки и внедрения 128-битной архитектуры будет непомерно высока, а спрос на такие системы, скорее всего, будет очень низким.
Отсутствие явных преимуществ. Для большинства пользователей необходимость в большем адресном пространстве, которое обеспечивают 128-битные процессоры, не является критической. 64-битная архитектура с ее возможностью адресовать до 16 эксабайт оперативной памяти, покрывает потребности большинства современных задач. Потенциальные преимущества в производительности, которые могут быть достигнуты с помощью 128-бит, не оправдывают затрат на переход, по крайней мере, в настоящее время.
Инновации в других направлениях. Вместо того чтобы концентрироваться на увеличении разрядности, производители процессоров активно развивают другие направления. Увеличение количества ядер и потоков, повышение тактовой частоты и кэш-памяти, а также развитие GPU (графических процессоров) для параллельных вычислений — все это обеспечивает значительный прирост производительности без необходимости переходить на 128-бит. Кроме того, оптимизация программного обеспечения также играет важную роль в повышении эффективности вычислений.
Взгляд в будущее
Подводя итог, можно сказать, что «застревание» на 64-битной архитектуре обусловлено не только техническими, но и экономическими и практическими причинами. Переход на 128-бит требует огромных затрат, а явных преимуществ от этого перехода для большинства пользователей нет.
Нам просто не нужны 128-битные компьютеры, ни для адресации памяти, ни для обработки данных. Сейчас важнее скорость. Но мы уже почти достигли предела тактовой частоты. На уровне нескольких гигагерц скорость света (даже внутри крошечного чипа) начинает играть роль. Поэтому тактовая частота вряд ли сильно увеличится.
Другой путь — усложнение компьютера. Можно добавлять более сложные и специализированные инструкции. Например, вместо простых операций сложения, вычитания, умножения и деления, можно добавить инструкцию для вычисления теоремы Пифагора. Но и здесь есть проблема: такие сложные операции используются редко, поэтому заметного увеличения скорости не будет.
Поэтому, часто производители, увеличивая плотность размещения транзисторов на чипе, просто добавляют больше «ядер». Это простой и относительно безопасный способ повысить производительность, используя больше кремния и уменьшая размеры транзисторов.
Но и здесь есть свои проблемы. Программистам сложно разбить задачу на достаточное количество параллельных потоков, чтобы задействовать все ядра. И, например, программа, написанная для 2-ядерного процессора, не получит большого прироста производительности на 4-ядерном процессоре.
Куда двигаться дальше?
Несмотря на то, что мы «застряли» на 64-битах, технологический прогресс не стоит на месте. В будущем нас ждут новые, более эффективные и мощные вычислительные решения.
Сейчас есть два интересных направления:
Развитие RISC-V архитектуры, как альтернативы x86 и ARM. RISC-V: открытая архитектура, которая позволяет более гибко и эффективно проектировать процессоры, адаптируя их под конкретные задачи.
Квантовые вычисления: квантовые компьютеры — это революционная технология, которая может кардинально изменить вычислительную парадигму. Квантовые компьютеры способны решать сложные задачи, которые недоступны для классических компьютеров, например, в области моделирования материалов, оптимизации и криптографии. Однако, квантовые вычисления все еще находятся на ранней стадии развития, и до их массового применения еще далеко.
Нейроморфные вычисления: нейроморфные процессоры — это еще одно перспективное направление, основанное на принципах работы нейронных сетей. Эти процессоры отличаются высокой энергоэффективностью и потенциалом для решения задач, связанных с искусственным интеллектом.
Производители процессоров продолжают совершенствовать существующие архитектуры, увеличивая количество ядер и потоков, развивая технологии кэширования и оптимизируя энергопотребление. Эти улучшения позволяют повысить производительность и эффективность вычислений без необходимости переходить на 128-бит.
Источник: ya.ru





71 комментарий
Добавить комментарий
Дженерик приложения от этого не выиграют, поэтому вычисления перенесены в avx, там и больше 128 бит есть и еще во всех форматах и точностях.
Вот это поворот!!!
опять статью ИИ писал?
Ток кто пишет познавательно в каментах не в курсе что тут компиляция бреда и даже не чистой копипасты а компиляция аля с потолка ...
Про программирование вообще не в курсе и про ядра бред написал, достаточно в компиляторе аргумент изменить и будет работать на всех ядрах, просто компиляция будет значительно дольше и больше будет объёма команд.
иначе огромное кол-во кеш памяти попросту будет пустышкой всегда, просто потому что нет такого адресного пространства в реальности.
Ради прикола отправил запрос в Алису ЖПТ и она реально написала лучше: никаких переосмыслений в разработке ПО и увеличивающихся транзисторов, зато есть пункт про увеличение потребления ОП приложениями
Кроме ширины шины памяти есть ещё и «глубина» адресации (количество адресных линий).
Просто почитайте как организуется озу, что такое шина данных (те самые 128/256 и т.д. бит) и шина адреса.
Ну что за идиотизм! Это же CISC-процессоры, у них линия адресов не совпадает с линией данных! Это физически разные выводы процессора. 32 бита — разрядность шины данных, а не шины адресов! Процессор через схемы прямого доступа к памяти (ПДП) может подгружать в оперативную память данные из накопителей любого оьъёма.
Вспомните старый добрый 8-битный i8086, у него же только шина данных Ш-разрядная, а шина адресов — нееет, она 16-разрядная, он адресует 65536 адресов, а не 256!
С другой стороны, Windows 7 x86 Стартер работала с 2 ГБ, а остальные с 4 ГБ на одном и том же процессоре! А W7 x64 в зависимости от редакции от 8 до 192 ГБ!
Так что дело не в разрядности процессора дело, это ограничение на память заложено программистами из Microsoft!
Ещё раз повторюсь: в CISC-процессорах разрядность процессора определяется разрядностью его шины данных, а не шины адресов.
Смешались в кучу кони, люди...
1. i8086/8088 — 16-битные процессоры с 20-битной шиной адреса. Соответственно, адресное пространство — 1 МБ;
2. Ограничения со стороны операционной системы не имеют никакого отношения к процессору. Та же MS-DOS проедоставляла пользователю 640 КБ из 1 МБ адресного пространства, остальное было занято самой ОС.
3. CISC-процессоры закончились на i486, далее процессоры Intel обзавелись RISC-подобным ядром с декодером x86 команд.
Адресовать больше 4 ГБ можно по другой причине — из-за специального костыля (PAE), но это костыль, ограничение «4 ГБ на процесс» сохраняется.
Проблема совместимости тоже сильно преувеличена. Ну для каждого языка придется написать компилятор/интерпретатор под новую архитектуру.
Соответственно и разрядность у инструкций и данных может быть разная. Не обязательно вся архитектура должна быть 16/32/64 или ещё сколько то бит. Регистрам AVX-512 ничто не мешает быть и 2x256 бит и 1x512 бит и даже вообще экзотическими AVX10 для энергоэффективных ядер Intel:
https://3dnews.ru/1090519/
Чтобы читатели не писали что статью написал ИИ, желательно не писать статьи на ИИ. И глубже погружаться в темы. Компьютеры сейчас очень сложно устроены, чтобы писать статью о них с помощью ИИ. Тут куча терминологии которую ИИ никогда не возьмёт в расчет. Читать не перечитать. Вот несколько интересных и по прежнему актуальных:
Про NVMe 2.0:
https://habr.com/ru/companies/seagate/articles/645243/
Here may be dragons (про правильное понимание оперативной памяти):
https://habr.com/ru/articles/107605/
https://habr.com/ru/articles/107607/
https://habr.com/ru/articles/107637/
Зомби которые съедают вашу память
https://habr.com/ru/companies/infopulse/articles/349924/
Регистры AVX-512 — это всё-таки 512-битные zmm'ы, но наборы AVX-512 — это не только расширение до 512 бит, но и новые инструкции, которые имело смысл расширить на 128-битные и 256-битные регистры (за это отвечает набор AVX-512VL). То есть AVX-512 (почти) может существовать без 512 бит.
А AVX10 — это по сути актуальные наборы из AVX-512 (уменьшение фрагментации) + утверждение, что «AVX-512 в процессоре может быть урезан до 256 бит» + новый способ определения, что там ядро поддерживает (feature enumeration; регистры 512 бит или только 256 бит, например). Хотя какое это уменьшение фрагментации, когда AMD просто берёт и поддерживает в потребительских процессорах AVX-512 с 512-битными регистрами? Ну, она и с гетерогенными ядрами почти не связывается, и SMT не выкидывает, и чиплеты унифицирует. А Intel вот так.
Спецификация на AVX10 — это такой длинный документ с перечислением типа: такая-то инструкция доступна, если ядро поддерживает CPUID Feature Flags AVX512-FP16 и AVX512VL либо флаг AVX10.1* (* а AVX10.1/256 у вас или AVX10.1/512 — проверяется таким-то образом).
21 век наступает
Да, и во второй четверти 21 века, возможно, наступит :) Вспомнилось сочинение Пелевина «Поколение П»
К транзисторам для 1024-бит компьютеров нужно будет приделывать ручку для переноски.
Наши микросхемы — самые большие микросхемы в мире
Добавить комментарий