в чем заключаются основные отличия между архитектурами risc и cisc

В чем заключаются основные отличия между архитектурами risc и cisc

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

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

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

· CISC (Complicated Instruction Set Computer — использующий полный набор команд ). Традиционная архитектура с широкой системой команд МП.

· RISC (Reduced Instruction Set Computer). Архитектура с сокращенным набором команд.

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

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

В первую очередь это команды чтения/записи и команды переходов. Поэтому для ускорения работы МП необходимо оптимизировать в первую очередь эти команды.

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

Вследствие сокращенного набора команд (примерно 50-100), небольшого числа способов адресации (2-3 и в основном регистровая) упрощается управляющее устройство МП, которое в этом случае обходится без микропрограммного управления и его устройство управления может быть выполнено на “жесткой” логике. Упрощение структуры МП приводит к появлению свободного места на кристалле для реализации дополнительных схем.

1. Одинаковая длина команд (упрощает выборку инструкций из памяти);

3. 2-3 способа адресации, в основном регистровая.

4. Устройство управления на жесткой логике.

6. Простые способы адресации памяти (обеспечивает отсутствие сложных вычислений адреса);

7. Отсутствие совмещенной операции чтения/записи с обработкой данных;

8. Необходимость соответствующей компиляции программ для повышения эффективности;

9. Несовместимость с набором команд CISC МП (непереносимость exe. – файлов).

Например, POWER PC в настоящее время вынужден работать с программами, написанными для CISC – МП. Процессор самостоятельно транслирует сложные команды в ряд простых, что снижает его эффективность.

В настоящее время CISC и RISC сливаются, т.к. большинство CISC МП основаны на ядре RISC.

— высокая тактовая частота;

— высокая скорость выполнения команд;

— уменьшение площади кристалла:

— уменьшение мощности потребления:

МП POWER PC — 8,5 Вт,

— необходимость моделирования сложных команд;

Источник

Русские Блоги

Технические различия между ARM (RISC) и x86 (CISC)

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Появление наборов инструкций

Чтобы прояснить разницу между RISC и CISC, то есть популярными сегодня ARM и x86, нам нужно немного продвинуться вперед и наблюдать некоторые вещи в начале рождения компьютера, чтобы мы могли четко понять набор инструкций, простоту и сложность Отношения между.

Примеры машинного языка
Машинный языксмысл
0000,0000,000000010000Представляет НАГРУЗКУ A, 16
0000,0001,000000000001Представляет НАГРУЗКУ B, 1
0001,0001,000000010000Представляет МАГАЗИН B, 16
0001,0001,000000000001Представляет МАГАЗИН B, 1

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc
Старые компьютеры используют бумажную ленту для ввода и вывода, что крайне неэффективно.

Машинный язык и более поздний язык ассемблера были неудобными в использовании, плохой читабельностью и сложными в обслуживании. Кроме того, наиболее важным моментом является то, что эти языки относительно «тупые». Если вы хотите вычислить некоторые немного сложные операции, такие как умножение, деление, тригонометрические функции, исчисление, уравнения и т. Д., Вам необходимо переписать программу для каждого вычисления (в В эпоху пробивки бумажной ленты для ввода данных не было удобной функции «вставить + копировать»).

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

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

Сложный или обтекаемый?

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

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc
Чтобы быть совместимой с процессором 8086, Intel всегда должна использовать набор команд x86 CISC.

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

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc
Эффективность процессоров RISC очень высока. Вообще говоря, коэффициент энергопотребления очень хороший, но инструкции сложнее, особенно программа больше. На картинке показан интерфейс процессора IBM Power 7, классического высокопроизводительного RISC-процессора.

Преимущество RISC в том, что количество инструкций и методов адресации было улучшено, что значительно снижает сложность проектирования, компилятор более эффективен и степень параллельного выполнения инструкций выше. В то же время ЦП производства RISC меньше по размеру, меньше по энергопотреблению, а по производительности и энергопотреблению выше. Однако RISC не лишен недостатков. Например, RISC CPU более эффективен для 20% обычно используемых наборов инструкций, а для некоторых редко используемых или сложных инструкций он завершается в сочетании нескольких часто используемых инструкций, и эффективность вычислений очевидна. упадок. Для программного обеспечения объем программы RISC больше, чем CISC, а сложность немного выше. А из-за оптимизированного набора команд производительность первого процессора RISC явно не так хороша, как у CISC того же периода, хотя он меньше и потребляет меньше энергии.

Сегодняшний процессор: x86 и ARM

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

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

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc
Процессор Intel Nehalem можно охарактеризовать как x86, разработанный на основе идей RISC.

В качестве примера возьмем процессор Intel Nehalem или AMD K10. Прежде всего, эти процессоры x86 внутренне используют «микрокоманды». Так называемые микрокоманды представляют собой некоторые базовые инструкции. Большинство инструкций CISC можно разделить на несколько простых и фиксированных микрокоманд. Во-вторых, внутри ЦП создается «блок перевода», который обычно выполняется блоком декодирования. В процессе работы ЦП принимает инструкцию x86, а затем блок декодирования разбирает полученную более сложную инструкцию X86 на одну или несколько микрокоманд. Например, Nehalem разработал 3 простых блока декодирования и 1 комплексный блок декодирования, которые могут декодировать и «преобразовывать» инструкции x86 в от 1 до 4 микрокоманд.

В-третьих, ЦП произведет достаточную оптимизацию для этих микрокоманд, чтобы его эффективность и скорость выполнения достигли удовлетворительного уровня. Конечно, в процессе декодирования не все инструкции x86 будут обрабатываться одинаково. Наиболее часто используемые инструкции, такие как mov, push, call, cmp, add и т. Д., Будут сфокусированы, приоритизированы и ускорены.Нечасто используемые инструкции либо разделяются на общие инструкции, либо входят в обычный цикл для обработки. Хотя эффективность имеет значение, учитывая малую вероятность использования, такая конструкция вполне приемлема. В процессе декодирования и обработки микрокоманд: как выполнять команды x86 более эффективно и результативно; как выражать и запускать микрокоманды; взаимосвязь между микрокомандами и инструкциями x86 и какие микрокоманды являются наиболее часто используемыми и приоритетными инструкциями, Станьте основным контентом, который больше всего влияет на производительность процессора.

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

CISC позаимствовал идеи RISC и дал себе новую жизнь. Условно говоря, RISC также может учиться у CISC, но не слишком многому. Команда RISC проста и относительно фиксирована, а обработка выполняется быстро. В конструкции можно использовать более длинный конвейер для достижения высокой частоты и, в конечном итоге, повышения производительности. Но основная проблема RISC заключается в том, что набор инструкций прост. Поэтому при работе с некоторыми более сложными приложениями общее количество инструкций, которые необходимо прочитать памяти, занимает больше времени. В некоторых случаях низкая производительность также является недостатком RISC. Таким образом, при разработке RISC RISC постепенно внедряет идею CISC. Например, добавление некоторых новых наборов инструкций в соответствии со временем, дальнейшая оптимизация внутренней архитектуры и изменение рабочего цикла на нерегулярный цикл. С развитием RISC количество инструкций постепенно увеличивалось, а важные функции, такие как вычисления с плавающей запятой, становились все более мощными. Возьмем, к примеру, ARM. Он не только постепенно увеличивает производительность вычислений с плавающей запятой и добавляет специальные инструкции с плавающей запятой, но и планирует разработать высокопроизводительные процессоры ARM на существующей основе, чтобы в будущем улучшить реакцию на рыночные изменения, особенно для процессоров x86. Возможность соревноваться.

Будущие процессоры будут иметь более низкое энергопотребление и более высокую производительность.

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

Источник

Собственная платформа. Часть 0.1 Теория. Немного о процессорах

Здравствуй, мир! Сегодня у нас серия статьей для людей со средними знаниями о работе процессора в которой мы будем разбираться с процессорными архитектурами (у меня спелл чекер ругается на слово Архитектурами/Архитектур, надеюсь я пишу слово правильно), создавать собственную архитектуру процессора и многое другое.

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Принимаются любые замечания!

Немного про архитектуру процессора

Исторически сложилось, что существуют много процессоров и много архитектур. Но многие архитектуры имеют схожести. Специально для этого появились «Группы» архитектур типа RISC, CISC, MISC, OISC (URISC). Кроме того они могут иметь разные архитектуры адресации памяти (фон Неймана, Гарвард). У каждого процессора есть своя архитектура. Например большинство современных архитектур это RISC (ARM, MIPS, OpenRISC, RISC-V, AVR, PIC** и т.д.), но есть архитектуры которые выиграли просто за счет других факторов (Например удобство/цена/популярность/etc) Среди которых x86, x86-64 (Стоит отметить, что x86-64 и x86 в последних процессорах используют микрокод и внутри них стоит RISC ядро), M68K. В чем же их отличие?

Reduced Instruction Set Computer — Архитектура с уменьшенным временем выполнения инструкций (из расшифровка RISC можно подумать, что это уменьшенное количество инструкций, но это не так). Данное направления развилось в итоге после того, как оказалось, что большинство компиляторов того времени не использовали все инструкции и разработчики процессоров решили получить больше производительности использую Конвейеры. В целом RISC является золотой серединой между всеми архитектурами.

Яркие примеры данной архитектуры: ARM, MIPS, OpenRISC, RISC-V

Что такое TTA? ТТА это Архитектура на основе всего одной инструкции перемещения из одного адреса памяти в другую. Данный вариант усложняет работу компилятора зато дает большую производительность. У данной архитектуры есть единственный недостаток: Сильная зависимость от шины данных. Именно это и стало причиной ее меньшей популярности. Надо отметить что TTA является разновидностью OISC.

Яркие примеры: MOVE Project

OISC (URISC)?

One Instruction Set Computer — Архитектура с единственной инструкцией. Например SUBLEQ. Такие архитектуры часто имеют вид: Сделать действие и в зависимости от результата сделать прыжок или продолжить исполнение. Зачастую ее реализация достаточно простая, производительность маленькая, при этом снова ограничение шиной данных.

Яркие примеры: BitBitJump, ByteByteJump, SUBLEQ тысячи их!

CISC — Complex Instruction Set Computer — ее особенность в увеличенных количествах действий за инструкцию. Таким образом можно было теоретически увеличить производительность программ за счет увеличения сложности компилятора. Но по факту у CISC плохо были реализованы некоторые инструкции т.к. они редко использовались, и повышение производительности не было достигнуто. Особенностью этой группы является еще ОГРОМНАЯ Разница между архитектурами. И несмотря на названия были архитектуры с маленьким количеством инструкций.

Яркие примеры: x86, M68K

Адресация памяти

Архитектура фон Неймана

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

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

Архитектура гарварда

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

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

Особенности процессоров

Конвейеры

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

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc
На картинке более понятно, не правда?

IF — получение инструкции,
ID — расшифровка инструкции,
EX — выполнение,
MEM — доступ к памяти,
WB — запись в регистр.

Вроде все просто? А вот и нет! Проблема в том что например прыжок (jmp/branch/etc) заставляют конвейер начать исполнение (получение след. инструкции) заново таким образом вызывая задержку в 2-4 такта перед исполнение следующей инструкции.

Расширение существующих архитектур

Достаточно популярной техникой является добавление в уже существующую архитектуру больше инструкций через расширения. Ярким примером является SSE под x86. Этим же грешит ARM и MIPS и практически все. Почему? Потому что нельзя создать унивирсальную архитектуру.

Другим вариантом является использование других архитектур для уменьшения размера инструкций.
Яркий пример: ARM со своим Thumb, MIPS с MIPS16.

Техники применяемые в GPU

В видеокартах часто встречается много ядер и из-за этой особенности появилась потребность в дополнительных решениях. Если конвейеры можно встретить даже в микроконтроллерах то решения используемых в GPU встречаются редко. Например Masked Execution (Встречается в инструкциях ARM, но не в Thumb-I/II). Еще есть другие особенность: это уклон в сторону Floating Number (Числа с плавающей запятой), Уменьшение производительности в противовес большего количества ядер и т.д.

Masked Execution

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

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

Прочее

Здесь мы будем описывать несколько техник используемых в центральный процессорах и микроконтроллерах.

Прерывания

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Прерывания это техника при которой исполняемый в данный момент код приостанавливается для выполнения какой-то другой задачи при каких-то условиях. Например при доступе в несуществующий участок памяти вызывается HardFault или MemoryFault прерывания или исключения. Или например если таймер отсчитал до нуля. Это позволяет не бездействовать пока нужно ждать какое-то событие.

Какие недостатки? Вызов прерывания это несколько тактов простоя и несколько при возврате из прерывания. Так же несколько инструкций в начале кода будет занято инструкциями для Таблицы прерываний.

Exception (исключения)

Но кроме прерываний еще существуют исключений которые возникают например при деления на ноль. Зачастую его совмещают с прерываниями и системными вызовами, как например в MIPS. Исключения не всегда присутствуют в процессоре например как в AVR или младших PIC

Системные вызовы

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

Контроллеры доступа в память и прочие методы сдерживания программ

Здесь описываются методы запрета доступа приложений к аппаратуре напрямую.

Привилегированный режим

Это режим в котором стартует процессор. В таком режиме программа или ОС имеют полный доступ к памяти в обход MMU/MPU. Все программы запускаются в непривилегированном режиме во избежания прямого доступа к аппаратным подсистемам программ для этого не предназначенных. Например вредоносным программам. В Windows ее часто называют Ring-0, а в *nix — системным. Не стоит путать Привелигированный пользователь и Привилегированный режим ибо в руте вы все еще не можете иметь прямой доступ к аппаратуре (можно загрузить системный модуль который позволит это сделать, но об этом чуть позже 🙂

MPU и MMU

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

MPU и MMU используется в современных системах чтобы изолировать несколько приложений. НО если MMU позволяет «передвинуть» память то MPU позволяет только блокировать доступ к памяти/запуск кода в памяти.

PIC (PIE)

Что такое PIE? (PIC не использую для избежания путаницы с МК PIC). PIE это техника благодаря которой компилятор генерирует код который будет работать в любом месте в памяти. Эта техника в совмещении с MPU позволяет компилировать высокие языки программирования которые будут работать и с MPU.

Популярная техника SIMD используется для того, что бы за один такт выполнять несколько действий над несколькими регистрами. Иногда бывают в качестве дополнений к основной архитектуре, например, как в MIPS, ARM со своими NEON/VFP/etc, x86 со своим SSE2.

Reposition for Optimization

Это техника Используется для оптимизации кода, генерируемого компилятором, с помощью пересортировки инструкций, увеличивая производительность процессора. Это позволяет использовать конвейер на полную.

Status register

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

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

Используется в связке с Masked Execution. Некоторые разработчики специально исключают регистр статуса ибо он может являться узким местом как поступили в MIPS.

В MIPS нет отдельной инструкции загрузки константы в память, но есть инструкция addi и ori которая позволяет в связке с нулевым регистром ($0) эмулировать работу загрузки константы в регистр. В других архитектурах она присутствует. Я затронул эту тему, потому что она пригодиться нам в статьях с практикой.

Rd, Rs vs Rd, rs, rt

Идут множество споров насчет того сколько должно быть операндов в арифметических инструкциях. Например в MIPS используется вариант с 3-мя регистрами. 2 операнда, 1 регистр записи. С другой стороны, использование двух операндов позволяет сократить код за счет уменьшения размера инструкции. Пример совмещения является MIPS16 в MIPS и Thumb-I в ARM. В плане производительности они практически идентичны (Если исключать размер инструкции как фактор).

Endianness

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Порядок байт. Возможно вам знакомы Выражения Big-Endian и Little-Endian. Они описывают порядок байт в инструкциях/в регистрах/в памяти/etc. Здесь думаю все просто :). Есть процессоры которые совмещают режимы, как MIPS, или которые используют одну систему команд, но имеют разный порядок байт, например ARM.

Битность процессора

Итак, что такое битность процессора? Многие считают, что это битность шины данных, но это не так. Почему? В ранние переоды микроконтроллеров и микропроцессоров шина могла быть, например, 4-х битной, но передавала пакетами по 8 бит. Для программы казалось, что это 8-и битный режим, но это была иллюзия, как и сейчас. Например, в ARM SoC-ах часто применяют 128-и битную шину данных или инструкций.

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Сопроцессоры

Что такое сопроцессоры? Сопроцессоры являются элементами процессора или внешней микросхемой. Они позволяют исполнять инструкции, которые слишком громоздки для основной части процессора. Как яркий пример, сопроцессоры в MIPS для деления и умножения. Или например 387 для 80386, который добавлял поддержку чисел с плавающей запятой. А в MIPS сопроцессоров было много и они выполняли свои роли: контролировали прерывания, исключения и системные вызовы. Часто сопроцессоры имеют собственные инструкции и на системах, где этих инструкций нет, (пример ARM) эмулируют ее через Trap-ы (ловушки?). Несмотря на костыльность и маленькую производительность, они часто являются единственным выбором в микроконтроллерах.

Атомарность операций

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

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

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Вы, навярняка, слышали о L1, L2, L3 и регистрах. Если коротко, процессор анализирует часть кода, чтобы предугадать прыжки и доступ в память и зараннее просит кеш получить эти данные из памяти. Кеш зачастую бывает прозрачным для программы, но бывают и исключения из этого правила. Например, в программных ядрах в ПЛИС используется програмный кеш.

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

Shadow Registers

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

Stack

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Спросите тогда что такое куча (Heap)? Куча это память размером намного больше чем стек (Стек обычно

1MB). В хипе храниться все глобальное. Например все указатели полученные с помощю Malloc указывают на часть куча. А указатели хранятся в стеке или в регистрах. С помощью инструкций загрузки данных относительно регистра можно ускорить работу стека и других доступов к памяти по типу стека, поскольку не нужно постоянно использовать операции PUSH/POP, INC/DEC или ADDI, SUBI (добавить константу), чтобы получить данные глубже по стеку, а можно просто использовать доступ относительно стека с отрицательным смещением.

Регистры

в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть фото в чем заключаются основные отличия между архитектурами risc и cisc. Смотреть картинку в чем заключаются основные отличия между архитектурами risc и cisc. Картинка про в чем заключаются основные отличия между архитектурами risc и cisc. Фото в чем заключаются основные отличия между архитектурами risc и cisc

Не буду описывать регистры слишком подробно. Это мы затронем в практической статье.

В x86 регистров достаточно мало. В MIPS используется увеличенное количество регистров, а именно 31 ($0 имеет значение всегда равное нулю). В процессоре университета Беркли использовались регистровые окна, которые жестки ограничивали вложенность функций, при этом имея лучшую производительность. В других же, таких как AVR, ограничили использование регистров. Для примера: три 16-битных можно трактовать как шесть восьмибитных, где первые 16ть недоступны при некоторых операциях. Я считаю, что лучший метод был выбран MIPS-ом. Это мое сугубо личное мнение.

Выравнивание

Что такое выравнивание? Оставлю-ка я этот вопрос вам 🙂

Конец

Это конец первой главы нулевой части. Вся серия будет крутиться вокруг темы создания собственного процессора. Собственной операционной системы. Собственного ассемблера. Собственного компилятора и много чего другого.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *