Другое

Cisc и Risc процессоры: архитектура, иерархия, разновидности

Lorem ipsum dolor

Перед тем как разобрать, что такое архитектура RISC и CISC, неплохо было бы разобраться с несколькими основными терминами, например:

  • процессор — это своего рода «мозг» компьютера, именно он считывает разнообразные инструкции, которые определяют, что нужно сделать компьютеру;

  • инструкции — по сути, это просто числа, которые интерпретируются специализированным образом;

  • архитектура процессора — это количественная комбинация инструкций, которые понимает процессор.

Если объяснить проще, то архитектура — это совместимость набора инструкций отдельных программ с процессором. Получается, что если программа написана под какую-то конкретную архитектуру процессора, то на процессоре с другой архитектурой она работать не будет. Например, если программный продукт собран под архитектуру х86, то на ARM-процессоре она работать не будет.

 

Архитектура RISC и CISC

Справедливости ради стоит отметить, что эти две архитектуры определяют разновидности двух основных видов процессоров, при этом существуют еще менее распространенные архитектуры, например:

  • архитектура MISC — эта архитектура свойственна нетребовательным процессорам устройств с минимальным набором команд, например: роутеры, миникомпьютеры, IoT и др.;

  • архитектура VLIW — данная архитектура рассчитана для «очень длинных машинных команд», что по факту дает процессору возможность выполнять инструкции с несколькими параллельными операциями;

  • виртуальная архитектура — это своеобразный вид архитектуры, который эмулируется на реальных компьютерах; под такой архитектурой работает Java-виртуальная машина (JVM) и .NET CIL;

  • прочие специфические архитектуры, которые очень узко специализированы, иногда даже под конкретное устройство.

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

 

Архитектура CISC

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

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

Архитектура CISC предполагает:

  • минимальное количество регистров общего характера;

  • максимальный объем простых машинных инструкций;

  • присутствие сложных инструкций, которые функционально напоминают операторы высокоуровневых языков программирования;

  • различные варианты адресации инструкций;

  • принятие различных форматов инструкций;

  • присутствие возможности обрабатывать команды «регистр-память».

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

Архитектура CISC с технической стороны выглядит намного сложнее, чем архитектура RISC, отсюда и вытекают ее плюсы и минусы, например:

  • она является более «мощной», так как позволяет заменять несколько похожих простых инструкций на одну аналогичную, но сложную, при этом не дает возможность ускорять производительные процессы за счет внедрения новых технологий обработки инструкций;

  • процессоры с архитектурой CISC будут немного дороже, чем процессоры с архитектурой RISC с аналогичными параметрами.

Наиболее яркими процессорами с такой архитектурой являются:

  • х86 (IA-32);

  • x86_64 (AMD64).

 

Архитектура RISC

Архитектура RISC появилась уже после CISC, так как технологии шагнули вперед: открывались новые возможности, поэтому пришла необходимость что-то менять и в процессорах.

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

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

Конвейеризация процессора позволяет выполнять несколько инструкций одновременно, но в разных тактах. Объясним, как это работает, на примере работы кассы в супермаркете.

Допустим, чтобы покупатель совершил покупку на кассе, ему нужно выполнить 3 такта:

  1. Выложить товар на ленту.

  2. Оплатить товар через терминал.

  3. Сложить товар в свой пакет.

Без внедрения конвейеризации процесс будет происходить следующим образом: пока один покупатель не пройдет все три такта на кассе — следующий будет ждать. То есть, пока один покупатель не сложит свой оплаченный товар в пакет, другой не начнет выкладывать свой товар на ленту. Но если внедрить конвейеризацию, то все будет происходить по-другому.

Первый покупатель выкладывает товар на ленту и переходит ко второму такту — оплате через терминал. Пока он оплачивает, второй покупатель начинает выкладывать товар на ленту. Первый покупатель оплачивает товар и начинает складывать его в пакет. Пока он это делает, второй покупатель начинает оплачивать свой товар через терминал, а третий уже начинает выкладывать свой товар на ленту.

Точно так же происходит и с инструкциями в процессорах с архитектурой RISC. За счет конвейеризации архитектура RISC работает намного быстрее, чем архитектура CISC. Это заметно, даже если архитектура RISC должна выполнить 5-6 инструкций вместо одной в CISC. 

Архитектуру RISC применяют ARM-процессоры. Кстати, в 2020-м году с большим отрывом по производительности среди всех суперкомпьютеров мира победил суперкомпьютер, который использовал в качестве своей «начинки» ARM-процессоры с архитектурой RISC.

Может возникнуть резонный вопрос: «Если архитектура RISC настолько хороша и работает быстрее, то почему ее не применяют во всех современных компьютерах?». Объясняется все очень просто: исторически так сложилось. То есть до какого-то времени в компьютерах применяли только архитектуру CISC, а это значит, что все старые и многие новые программы были написаны именно для этой архитектуры и они не будут работать в RISC. Огромное количество такого ПО является проприетарными программами, а это значит, что, для того чтобы они заработали в RISC — этого должны захотеть их создатели и, соответственно, их переделать.

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

 

Заключение

Мы где-то в начале статьи написали, что архитектуры RISC и CISC очень похожи и грань между ними слегка размыта. Да, у обеих архитектур диаметрально противоположный подход к использованию процессора, но конкуренция тоже делает свое дело. Поэтому CISC и RISC стали «перенимать» друг у друга лучшие решения. К примеру, конвейеризация раньше никогда не была доступной в CISC, но именно этот процесс был способен «уничтожить» эту архитектуру на корню, поэтому создателям CISC нужно было срочно предпринять и сэмулировать конвейеризацию в своих процессорах. Что они и сделали: они «разбили» сложные инструкции CISC на более простые и назвали этот процесс «микрооперации». Это не конвейеризация и ничего общего с RISC-инструкциями не имеет, но работает по такому же принципу, что также ускоряет работу CISC-процессоров.

Конвейер в RISC практически постоянно заполнен инструкциями, а микрооперации в CISC не могут организовать постоянное заполнение конвейера, поэтому возникало очень много «пустот». Из-за этого разработчики CISC пошли на дополнительный трюк, так называемый гипертрединг. Гипертрединг позволил CISC-процессору выполнять сразу несколько потоков инструкций. В этом случае если один поток не способен «наполнить» конвейер, то для этого берутся инструкции из других потоков.

Разработчики RISC заметили, что гипертрединг — это хорошо. А в их архитектуре редко, но иногда проскакивает «пустота» в конвейере, поэтому они внедрили гипертрединг и в своих процессорах.

Такое «копирование функционала» сделало свое дело: архитектура RISC и архитектура CISC стали очень похожи. Но при этом многие специалисты пророчат светлое будущее именно архитектуре RISC.

Схожие статьи

Big Data — что это такое? Простыми словами рассказываем о главном
Другое

Big Data — что это такое? Простыми словами рассказываем о главном

Как обучиться на программиста самостоятельно и без посещения курсов
Другое

Как обучиться на программиста самостоятельно и без посещения курсов

Сколько зарабатывают программисты Java и какая средняя зарплата?
Другое

Сколько зарабатывают программисты Java и какая средняя зарплата?

Рейтинг популярности языков программирования: ТОП-10 самых востребованных
Другое

Рейтинг популярности языков программирования: ТОП-10 самых востребованных

×