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

Обновлено: 21.11.2024

Мозгом или двигателем ПК является процессор (иногда называемый микропроцессором) или центральный процессор (ЦП). ЦП выполняет системные вычисления и обработку. Процессор часто является самым дорогим отдельным компонентом в системе (хотя цены на графические карты в некоторых случаях превышают его); в системах более высокого класса он может стоить в четыре или более раз больше, чем материнская плата, к которой он подключается. Как правило, Intel приписывают создание первого микропроцессора в 1971 году с появлением чипа под названием 4004. Сегодня Intel по-прежнему контролирует рынок процессоров, по крайней мере, для ПК, хотя с годами AMD завоевала солидную долю рынка. Это означает, что все ПК-совместимые системы используют либо процессоры Intel, либо Intel-совместимые процессоры нескольких конкурентов (например, AMD или VIA/Cyrix).

Доминирование Intel на рынке процессоров не всегда было гарантировано. Хотя обычно Intel приписывают изобретение процессора и выпуск первого процессора на рынок, к концу 1970-х годов два самых популярных процессора для персональных компьютеров были не от Intel (хотя один из них был клоном процессора Intel). процессор). Персональные компьютеры того времени в основном использовали Z-80 от Zilog и 6502 от MOS Technologies. Z-80 был известен как улучшенный и менее дорогой клон процессора Intel 8080, подобно тому, как такие компании, как AMD, VIA/Cyrix, IDT и Rise Technologies, клонировали процессоры Intel Pentium. Однако в случае с Z-80 клон стал намного популярнее оригинала. Кто-то может возразить, что AMD добилась такого статуса за последний год или около того, но даже несмотря на то, что они добились значительных успехов, Intel по-прежнему контролирует рынок процессоров для ПК.

Тогда у меня была система, содержащая оба этих процессора, состоящая из 1 МГц (да, это 1, как в одном мегагерце!) Система Apple II на базе 6502 с Microsoft Softcard (Z -80) вставляется в один из слотов. Softcard содержала процессор Z-80 с тактовой частотой 2 МГц. Это позволило мне запускать программное обеспечение для обоих процессоров в одной системе. Z-80 использовался в системах конца 1970-х и начала 1980-х годов, которые работали под управлением операционной системы CP/M, тогда как 6502 был наиболее известен своим использованием в ранних компьютерах Apple I и II (до Mac).

Судьба как Intel, так и Microsoft резко изменилась в 1981 году, когда IBM представила IBM PC, основанный на процессоре Intel 8088 с частотой 4,77 МГц и работающем под управлением Microsoft Disk Operating System (MS-DOS) 1.0. С тех пор как было принято судьбоносное решение использовать процессор Intel в первом ПК, в последующих ПК-совместимых системах использовалась серия процессоров Intel или Intel-совместимых процессоров, причем каждый новый процессор был способен запускать программное обеспечение предыдущего процессора — начиная с 8088 до текущих Pentium D/4/Celeron и Athlon XP/Athlon 64. В следующих разделах рассматриваются различные типы процессорных микросхем, которые использовались в персональных компьютерах с момента появления первого ПК почти два десятилетия назад. В этих разделах содержится много технических подробностей об этих микросхемах и объясняется, почему один тип микросхемы ЦП может выполнять больше работы, чем другой, за определенный период времени.

Умножение двух чисел в памяти
Справа представлена ​​диаграмма, представляющая схему хранения для обычного компьютера. Основная память разделена на ячейки, пронумерованные от (строка) 1: (столбец) 1 до (строка) 6: (столбец) 4. Исполнительный блок отвечает за выполнение всех вычислений. Однако исполнительный блок может работать только с данными, загруженными в один из шести регистров (A, B, C, D, E или F). Предположим, мы хотим найти произведение двух чисел, одно из которых хранится в ячейке 2:3, а другое — в ячейке 5:2, а затем сохранить произведение обратно в ячейку 2:3.

Подход CISC
Основной целью архитектуры CISC является выполнение задачи за минимально возможное количество сборочных линий. Это достигается созданием аппаратного обеспечения процессора, способного понимать и выполнять ряд операций. Для этой конкретной задачи процессор CISC должен быть подготовлен со специальной инструкцией (мы назовем ее «MULT»). При выполнении эта инструкция загружает два значения в отдельные регистры, перемножает операнды в исполнительном блоке, а затем сохраняет произведение в соответствующем регистре. Таким образом, всю задачу умножения двух чисел можно выполнить одной инструкцией:

MULT — это так называемая «сложная инструкция». Он работает непосредственно с банками памяти компьютера и не требует от программиста явного вызова каких-либо функций загрузки или сохранения. Это очень похоже на команду на языке более высокого уровня. Например, если мы допустим, что "a" представляет значение 2:3, а "b" представляет значение 5:2, то эта команда идентична оператору C "a = a * b."

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

Подход RISC
Процессоры RISC используют только простые инструкции, которые могут быть выполнены за один такт. Таким образом, описанную выше команду «MULT» можно разделить на три отдельные команды: «LOAD», которая перемещает данные из банка памяти в регистр, «PROD», которая находит произведение двух операндов, расположенных в регистрах, и « STORE», который перемещает данные из регистра в банки памяти. Чтобы выполнить точную серию шагов, описанных в подходе CISC, программисту потребуется закодировать четыре строки ассемблера:

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

< TD>Низкое количество циклов в секунду,
большой размер кода
CISC RISC
Упор на оборудование Упор на программное обеспечение
Включает многотактовые
сложные инструкции
Однотактовые,
уменьшенные только инструкция
Память в память:
"LOAD" и "STORE"
включены в инструкции
Регистрация для регистрации :
«ЗАГРУЗИТЬ» и «СОХРАНИТЬ»
являются независимыми инструкциями
Небольшой размер кода,
большое количество циклов в секунду
Транзисторы, используемые для хранения
сложных инструкций
Затрачивает больше транзисторов
в регистрах памяти
Однако стратегия RISC также дает некоторые очень важные преимущества. Поскольку для выполнения каждой инструкции требуется только один тактовый цикл, вся программа будет выполняться примерно за то же время, что и многотактовая команда «MULT». Эти «сокращенные инструкции» RISC требуют меньше транзисторов аппаратного пространства, чем сложные инструкции, оставляя больше места для регистров общего назначения. Поскольку все инструкции выполняются за одинаковое время (т. е. за один такт), возможна конвейерная обработка.

Разделение инструкций "LOAD" и "STORE" фактически уменьшает объем работы, которую должен выполнять компьютер. После выполнения команды «MULT» в стиле CISC процессор автоматически стирает регистры. Если один из операндов необходимо использовать для другого вычисления, процессор должен повторно загрузить данные из банка памяти в регистр. В RISC операнд остается в регистре до тех пор, пока на его место не будет загружено другое значение.

Уравнение производительности
Следующее уравнение обычно используется для выражения производительности компьютера:

Подход CISC пытается свести к минимуму количество инструкций на программу, жертвуя количеством циклов на инструкцию. RISC делает наоборот, сокращая количество циклов на инструкцию за счет количества инструкций на программу.

Препятствия RISC
Несмотря на преимущества обработки на основе RISC, чипам RISC потребовалось более десяти лет, чтобы закрепиться в коммерческом мире. Во многом это было связано с отсутствием поддержки программного обеспечения.

Хотя в линейке Power Macintosh от Apple использовались микросхемы на основе RISC, а Windows NT была совместима с RISC, Windows 3.1 и Windows 95 разрабатывались с учетом процессоров CISC. Многие компании не хотели рисковать с появляющейся технологией RISC. Без коммерческого интереса разработчики процессоров не могли производить микросхемы RISC в достаточно больших объемах, чтобы сделать их цену конкурентоспособной.

Еще одной серьезной неудачей стало присутствие Intel. Хотя их CISC-чипы становились все более громоздкими и трудными в разработке, у Intel были ресурсы, необходимые для разработки и производства мощных процессоров. Хотя чипы RISC могли превзойти усилия Intel в определенных областях, различия были недостаточно велики, чтобы убедить покупателей изменить технологии.

Марк Хемпстед владеет акциями Intel Corp на пенсионном счете. Он получил федеральные и отраслевые средства на свои исследования в области управления питанием и компьютерной архитектуры.

Партнеры

Университет Тафтса предоставляет финансирование в качестве партнера-основателя The Conversation US.

Удивительные способности компьютеров развлекать людей, помогать им в работе и даже реагировать на голосовые команды — это, по сути, результат десятилетий технологического развития и инноваций в конструкции микропроцессоров. Стремясь добиться большей вычислительной производительности из более компактных и энергоэффективных компонентов, разработчики чипов изобрели головокружительное множество трюков и гаджетов, которые делают компьютеры быстрее.Но через 50 лет после основания Intel инженеры начали переосмысливать многие методы проектирования, применяемые в отрасли производства микросхем.

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

Осознание этого привело к тому, что лидеры индустрии микрочипов, в том числе знаменитые Джон Хеннесси и Дэвид Паттерсон, призвали полностью переосмыслить компьютерную архитектуру и поставить безопасность на первое место. Я был исследователем в области компьютерной архитектуры в течение 15 лет — в качестве аспиранта и профессора, с опытом работы в отраслевых исследовательских организациях — и провожу исследования в области управления питанием, микроархитектуры и безопасности. Это не первый раз, когда дизайнерам приходится переоценивать все, что они делают. Однако это пробуждение требует более быстрых и значительных изменений, чтобы восстановить доверие пользователей к аппаратной безопасности без ущерба для производительности устройств и времени автономной работы.

Не так безопасно

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

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

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

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

Инновации как решение

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

В то время проблема заключалась в том, что количество потребляемой микрочипами энергии быстро росло по мере того, как компоненты становились все меньше. Это сделало охлаждение невероятно трудным. На крупных профессиональных конференциях представлялись страшные диаграммы, сравнивающие проблему охлаждения микропроцессоров с проблемами предотвращения перегрева ядерных реакторов.

В ответ отрасль сосредоточила внимание на энергопотреблении. Это правда, что ранние разработки, которые были более энергоэффективными, выполняли вычисления медленнее, чем их прожорливые предшественники. Но это было только потому, что изначально основное внимание уделялось переделке основных функций для экономии энергии. Вскоре исследователи разработали различные способы и приемы обработки, которые повысили производительность до уровня, который раньше был невозможен.

Принципы безопасности

Я ожидаю аналогичный ответ на эту новую проблему безопасности: быстрый ответ, который временно снижает производительность, за которым следует возврат к нормальной скорости обработки. Однако улучшение безопасности может быть труднее выразить четко, чем, скажем, количество энергии, используемой системой.

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

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

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

Как процессор «узнает», что означают разные команды?

Я думаю о командах уровня сборки, таких как MOV, PUSH, CALL и т. д.

Это очень информативно, но я ищу, что позволяет процессору получать и отправлять команды?

Я не понимаю этот комментарий. Процессор «получает» инструкции из памяти, запрашивая их по адресу. Единственные команды, которые ЦП «отправляет» (по крайней мере, в упрощенном виде), — это команды в память для доставки данных и команды на шины ввода-вывода для управления устройствами ввода-вывода.

6 ответов 6

Когда компьютер интерпретирует инструкции уровня ассемблера, эти инструкции преобразуются в их двоичные эквиваленты для чтения процессором. Когда ЦП выполняет инструкции, он интерпретирует часть кода операции инструкции в отдельные «микропрограммы», содержащие их эквиваленты микрокода. Просто чтобы вы знали, полная ассемблерная инструкция состоит из кода операции и любых применимых данных, которые сопровождают его, если это необходимо (например, имена регистров, адреса памяти).

Инструкции микрокода очень низкоуровневые (больше, чем ассемблерные) и управляют фактическими цифровыми сигналами, управляющими потоком логики в микропроцессоре. Например, одна инструкция микрокода может обновить флаг регистра кода состояния новым значением или соединить регистр ЦП с одним из блоков АЛУ. Возможны и более сложные задачи, но это дает вам общее представление о том, для чего используется микрокод.

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

Все это делается с помощью жестко запрограммированного микрокода (физически встроенного в процессор в некое подобие ПЗУ, установленного во время производства), который направляет поток через настоящие низкоуровневые логические элементы. Это обеспечивает интерфейс между абстрактными инструкциями сборки и физической электрической логикой процессора.

Итак, инструкции процессора собираются и загружаются процессором. Затем процессор будет использовать эти инструкции для поиска микропрограммы (в виде микрокода), соответствующей этой конкретной инструкции, которая «фактически» выполняет инструкцию. После выполнения микрокода для конкретной инструкции (что может занять один или несколько тактовых циклов) процессор выполняет микрокод для получения следующей инструкции, и цикл повторяется.

Читайте также: