Должен ли Spectre, Meltdown быть Death Knell для стандарта x86?

Должен ли Spectre, Meltdown быть Death Knell для стандарта x86?

Spectre и Meltdown - два из самых серьезных недостатков безопасности, которые мы видели в течение многих лет. Хотя неясно, как часто мы увидим, как они эксплуатируются в дикой природе, они опасны, потому что они нацелены на фундаментальную функцию самих затронутых чипов, а не полагаются на недостатки программного обеспечения. Meltdown может быть исправлен патчем, а методы атаки Spectre все еще анализируются. Создание процессоров, которые не подвержены этим атакам ни при каких обстоятельствах, может быть невозможным, и для смягчения некоторых векторов угроз могут потребоваться принципиально новые подходы к разработке.

В ZDNet Джейсон Перлоу утверждает, что эти последние неудачи являются доказательством того, что сам стандарт x86 необходимо уничтожить, корень и ветвь. Он сравнивает недостатки в x86 с генетическим расстройством и пишет:

По сути, единственное лекарство - по крайней мере сегодня - для того, чтобы организм умер, а другой - занять его место. Родина должна полностью вымирать.

В этом случае организм с генетическим заболеванием представляет собой чип-архитектуру Intel x86, которая является преобладающей архитектурой системы на персональных компьютерах, серверах центров обработки данных и встроенных системах.

Perlow продолжает обсуждать, как компании-разработчики программного обеспечения, такие как Microsoft, поворачиваются в сторону облака (что не требует совместимости с x86 для бэкэнд-сервисов) и в конечном итоге призывает к появлению новой аппаратной разработки на основе стандартных аппаратных стандартов с открытым исходным кодом, таких как RISC-V, которые является полностью открытым исходным кодом. Обсудив, как OpenSPARC пообещал, но затонул на лозе после приобретения Sun Oracle, он заявляет: «Нам нужно разработать современный эквивалент OpenSPARC, который может использовать любой литейный цех без лицензирования IP, чтобы снизить затраты на создание микропроцессоров в огромных масштабах для облака, для мобильных и IoT ».

Это интересный аргумент, но, я бы сказал, не точный.

x86 не идет никуда

Хотя это правда, рост ARM расширил общую экосистему потребительского процессора, до сих пор две семейства ЦП живут в разных мирах. Рынок серверов ARM на данный момент практически отсутствует. И хотя теоретически возможно, чтобы x86 была вытеснена превосходной архитектурой процессора, есть некоторые существенные барьеры для этого на самом деле.

Среди них: Эмулированная производительность x86 на устройстве, таком как Windows 10 Snapdragon 835, никогда не будет соответствовать собственному коду, поддержка эмуляции не распространяется на весь унаследованный стек приложений Win32, на рынке существует огромное количество устаревшего кода x86, а также мало интересоваться ни у кого в перерыве с прошлым, особенно когда нет никаких доказательств, что такой перерыв привел бы к значительным улучшениям в обеспечении безопасности ЦП (подробнее об этом позже).

Intel предприняла четыре попытки разработать архитектуры без архитектуры x86, которые были либо явно предназначены для ее замены, либо, по крайней мере, могли бы заменить ее, если x86 закончил работу, и эти другие процессоры выполнили свои проектные цели: iAPX 432 (1981), i960 (1984), i860 (1989) и Itanium (2001). Itanium особенно обсуждался как долгосрочная замена для x86 в начале своего собственного запуска. В то время, до того, как AMD создала x86-64, Intel решила, что 32-битный конец линии для чипов x86, а Itanium займет все 64-разрядные рабочие нагрузки в будущем. Случилось так не так, но это не было из-за отсутствия попытки сыграть роль Санта-Клары.

Производительность процессора определяется проектными решениями гораздо больше, чем ISA.
Производительность процессора определяется проектными решениями гораздо больше, чем ISA.

Кроме того, сравнение ISA, проведенное несколько лет назад, показало, насколько эффективность касается, архитектурные решения CPU оказывают гораздо большее влияние, чем ISA. Вот почему Cortex-A15 использует гораздо большую мощность, чем старый Cortex-A9 на графике выше, и поэтому потребление энергии Core i7 намного выше, чем Atom (микроархитектура Bonnell) или AMD Bobcat. Если вы избавитесь от x86, все равно стоит того, чтобы семейства процессоров x86 были особенно или уникально сломаны, но это не так, что приводит нас к следующему пункту:

Никто не избавляется от исполнения вне очереди

Недостатки, которые делают процессоры Intel особенно восприимчивыми к Meltdown, связаны с тем, как Intel реализует спекулятивные обращения к памяти. Недостатки, которые позволяют Spectre функционировать, не характерны для Intel или даже для x86 вообще. Они влияют на процессоры от ARM, AMD и Intel, в том числе настраиваемые ядра процессора Apple, которые основаны на ARM, но предлагают гораздо более высокую производительность на уровне ядра, чем любой другой ARM SoC, доступный на потребительском рынке.

Не вдаваясь в подробности, эти методы атаки работают, используя определенные внутренние свойства процессора, которые тесно связаны со многими методами повышения производительности, которые разработчики ЦП использовали в течение десятилетий. Причина, по которой мы полагаемся на них, заключается в том, что альтернативные решения также не работают. Это не означает, что архитекторы чипов не найдут лучших решений, но безопасность ЦП всегда будет развивающейся игрой. Аспекты атаки, используемые в Spectre и Meltdown, не обсуждались, когда разрабатывались и уточнялись методы OoOE. И никто не собирается создавать чипы, которые перестают использовать их, когда различные методы OoOE в основном отвечают за уровень производительности процессора, который мы в настоящее время наслаждаемся, и текущие исправления (пока), похоже, не влияют на производительность настольных компьютеров.

Лицензии IP не являются основным драйвером затрат

Анализ затрат на полупроводниковые приборы в 2014 году от Adapteva обнаружил, что плата за лицензирование IP и роялти не являются большим драйвером общей стоимости чипа или производственных затрат. Ставки роялти могут быть абсолютно разными, но они имеют тенденцию делать это в зависимости от сложности и производительности чипа, который вы пытаетесь построить.

Кредит: Адаптева
Кредит: Адаптева

Диапазон $ 0- $ 10M за гонорары за лицензию невелик, но он затмевается за счет платы за разработку аппаратного и программного обеспечения, которая может набирать сотни миллионов долларов. Это не означает, что создание ядер дешевле не поможет некоторым потенциальным разработчикам, но это не волшебная плата, чтобы разблокировать значительно лучшие структуры затрат. Fabs, такие как TSMC, GlobalFoundries и UMC, все зарабатывают на старых узлах процесса для чипов, которым не нужны новейшие и самые лучшие технологии, при относительно низких затратах на лицензирование.

Процессор с открытым исходным кодом не решает эти проблемы

Spectre и Meltdown - примеры того, что происходит, когда исследователи берут на себя идею - атакуют определенные области памяти, чтобы извлечь данные, которые они хранят, и применяют их новыми и интересными способами. Насколько нам известно, разница в экспозиции Meltdown между AMD, Apple, ARM и Intel не имеет никакого отношения к каким-либо конкретным усилиям по созданию более безопасных процессоров. Каждый подвергается воздействию Spectre независимо.

Создание открытого исходного кода чипа не делает ничего, что помешало бы будущим исследователям находить методы атаки, которые работают против процессоров, которые не были предназначены для их устранения, поскольку методы атаки еще не существовали. Он автоматически не обеспечивает средства для защиты будущих процессоров или даже делает более вероятным обнаружение сценария для закрытия уязвимости без ущерба для производительности. Количество людей в мире, которые имеют право вносить разумный код в проект с открытым исходным кодом, намного выше, чем число людей, которые имеют право работать в качестве продвинутых разработчиков процессоров в партнерстве с передовыми литейными цехами.

Вывод

Идея x86 представляет собой своего рода жернов вокруг Intel, а коллективная шея AMD опирается на внутреннее предположение о том, что x86 является старым, а старый - плохим. Но давайте будем честными здесь: в то время как современный Core i7 или Ryzen 7 1800X все еще может выполнять устаревший 32-разрядный код, который работает на 80386, в вашем настольном процессоре пока нет аппаратного оборудования 80386. Даже в сценариях, где процессор работает с одним и тем же кодом, он не запускает этот код через одни и те же схемы. Современные процессоры не производятся с теми же материалами или процессами, которые мы использовали 30 лет назад, они не построены по тем же спецификациям, они не полагаются на одни и те же методы, чтобы максимизировать производительность, и, ссылаясь на возраст x86, способ плохо рисовать архитектуру для риторических целей, а не точный способ захвата преимуществ и недостатков различных конструкций ЦП.

Возможно, наступит день, когда мы заменим x86 чем-то лучшим. Но это произойдет не потому, что на чипах x86, например на чипах, отличных от x86, влияют дизайнерские решения, общие для высокопроизводительных процессоров от каждого поставщика. Оборудование с открытым исходным кодом - отличная идея, и я приветствую появление RISC-V, но нет никаких доказательств того, что чип OSS был бы менее восприимчив к такому типу атаки. x86, ARM и модель CPU с закрытым исходным кодом никуда не денутся, и эти нарушения безопасности не дают никаких веских причин, почему они должны.