Чем отличаются процессоры RISC и CISC?
Если вы технический энтузиаст, возможно, вы слышали слова Компьютер с сокращенным набором команд (RISC) и Компьютер со сложным набором команд (CISC). И если вы знаете немного о компьютерах, вы также можете знать, что эти термины относятся к различным способам разработки процессора.
Например, процессор ARM в вашем телефоне имеет архитектуру RISC. Напротив, процессор x86 в вашем компьютере имеет дизайн CISC.
Но в чем разница между RISC и CISC? Давайте углубимся немного глубже и выясним.
Что такое набор инструкций?
Когда мы говорим о различных конструкциях центрального процессора (ЦП), мы должны говорить о наборе команд.
Набор команд ЦП – это набор операций, которые ЦП может выполнять изначально. Это операции, которые закодированы в ЦП на аппаратном уровне. Этот набор может содержать от нескольких до тысяч инструкций, в зависимости от конструкции процессора.
Другими словами, ЦП не может выполнять какие-либо операции, выходящие за рамки его набора команд, потому что у него нет для этого оборудования.
Давайте воспользуемся аналогией, чтобы лучше понять это. Возьмем, к примеру, лампочку. Производитель лампочки сконструировал лампу для преобразования электричества в свет. И лампочка может это сделать, потому что оборудование изначально поддерживает это.
По сути, лампочка может преобразовывать электричество только в свет и ничего больше.
Точно так же набор команд ЦП – это набор операций, которые позволяет аппаратное обеспечение ЦП. Например, почти все процессоры имеют команду «Перемещение» в своем наборе команд. Команда «Переместить» берет некоторые данные из исходного хранилища и перемещает их в целевое хранилище.
Всякий раз, когда процессору требуется переместить некоторые данные, он точно знает, как это сделать, потому что аппаратное обеспечение разработано для этого.
Короче говоря, набор инструкций содержит все те операции, которые ЦП поддерживает на аппаратном уровне.
Как работает процессор?
ЦП – это лабиринт электрических цепей. Эти электрические схемы спроектированы определенным образом, чтобы дать процессору его собственный набор команд. Таким образом, он знает только, как выполнять операции в наборе команд, поскольку у него есть схемы для этого.
Чтобы заставить ЦП выполнить определенную операцию, схема, соответствующая этой операции, запускается посредством электрического сигнала. И как только схема запускается, ЦП выполняет процедуру, связанную с этой схемой.
Чтобы заставить ЦП выполнять сложные операции, такие как отправка твита, программы каждую секунду генерируют миллионы электрических сигналов, каждый из которых нацелен на конкретную инструкцию из набора команд ЦП.
Вот тут-то и появляется концепция РИС и СНГ.
Что такое RISC?
Как следует из названия, ЦП на основе RISC имеет упрощенный набор операций. Эти упрощенные инструкции позволяют достичь простых целей и выполнить всего один цикл.
А поскольку RISC имеет простые инструкции, ЦП не нуждается в сложной схеме для выполнения этих инструкций. По этой же причине RISC-проекты дешевле реализовать с точки зрения аппаратного обеспечения.
Чтобы понять RISC CPU более подробно, давайте рассмотрим принципы проектирования процессоров на основе RISC.
Во-первых, процессоры RISC выполняют каждую инструкцию за один цикл.
Во-вторых, процессоры RISC выполняют операции только с данными, хранящимися в регистрах. Это связано с тем, что одним из основных узких мест в способности ЦП выполнять задачи является огромное несоответствие между скоростью ЦП и скоростью основной памяти. Основная память очень медленная по сравнению с процессором.
Таким образом, если ЦП должен использовать данные, хранящиеся в основной памяти, это станет узким местом для устройства, и процесс будет медленным. В дизайне RISC данные загружаются и сохраняются в регистрах ЦП, потому что регистры намного ближе к скорости ЦП, чем основная память.
В-третьих, инструкции RISC достаточно просты, поэтому отсутствует слой интерпретирующего микрокода для перевода инструкций в более простые формы.
И, наконец, проекты RISC поддерживают конвейерную обработку для одновременного выполнения частей нескольких инструкций. Поскольку ЦП с дизайном RISC имеют более высокие тактовые частоты, они исключительно быстрые. Конвейерная обработка – это способ использовать эту скорость и выполнять части нескольких инструкций для повышения эффективности.
Короче говоря, процессоры RISC имеют простые инструкции, более высокие тактовые частоты, эффективную конвейерную структуру, операцию загрузки-сохранения в регистры и могут выполнять инструкции за один цикл.
Что такое CISC?
CISC является противоположностью RISC почти во всех ключевых областях. Почти все настольные чипы имеют дизайн CISC.
Во-первых, инструкции по проектированию CISC сложны и, следовательно, требуют наличия уровня микрокода для преобразования в симплексные инструкции.
Во-вторых, для выполнения инструкций CISC может потребоваться несколько циклов ЦП.
В-третьих, конвейерная обработка в CISC не так эффективна, и ее еще труднее реализовать из-за сложной природы инструкций CISC.
Короче говоря, процессоры с архитектурой CISC могут выполнять множество операций за одну сложную инструкцию. Но для выполнения инструкции требуется несколько циклов, ее сложнее использовать при конвейерной обработке, и она требует большого количества схем на ЦП.
RISC и CISC: основные различия
Основное различие между RISC и CISC – это тип выполняемых инструкций.
Инструкции RISC просты, выполняют только одну операцию, а ЦП может выполнять их за один цикл.
С другой стороны, инструкции CISC содержат множество операций. Таким образом, ЦП не может выполнить их за один цикл.
Инструкции также являются причиной того, почему процессоры RISC поддерживают конвейерную обработку с самого начала, а процессорам CISC с этим труднее. В RISC инструкции достаточно просты, чтобы их можно было выполнять по частям. Это сложнее сделать с помощью CISC из-за сложной природы инструкций.
Далее, в отличие от RISC, инструкции CISC могут работать непосредственно из ОЗУ. Таким образом, нет необходимости выполнять отдельные операции загрузки / сохранения в дизайне CISC.
Наконец, требования к оборудованию для проекта CISC выше, чем для проекта RISC, поскольку CISC требует, чтобы сложные инструкции были встроены в аппаратное обеспечение ЦП. По сути, то, что CISC достигает с помощью оборудования, RISC стремится достичь с помощью программного обеспечения.
Вот почему программы, ориентированные на архитектуру CISC, имеют меньше строк кода, потому что сами инструкции обрабатывают множество операций.
У RISC и CISC есть преимущества и недостатки
Ни один современный процессор не основан полностью ни на RISC, ни на CISC. Современные процессоры объединяют в себе философию дизайна обеих архитектур для достижения лучшего из обоих миров. Например, архитектура x86, которую использует AMD, в основном является CISC, но имеет микрокод для преобразования сложных инструкций в простые сокращенные инструкции, подобные RISC.
Таким образом, в отличие от процессоров прошлого века, современные процессоры вышли за рамки простой классификации RISC или CISC.