Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Процессоры CISC и RISC




В соответствии с составом системы команд различают:

· CPU с CISC -архитектурой (CISC - complex instruction set computer - компьютер с полным набором команд);

· CPU с RISC -архитектурой (RISC - reduced instruction set computer - компьютер с сокращенным набором команд).

 

CPU первого типа являются традиционными, а их система команд включает большое количество команд для выполнения арифметических и логических операций, команд управления, пересылки и ввода-вывода данных. При считывании из операнда кода операции процессор обращается в ПЗУ микрокоманд и получает набор микроинструкций, реализующий алгоритм выполнения данной команды.

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

Формально к этому классу относятся в большей или меньшей степени все нынешние Athlon, Pentium и прочие процессоры для IBM PC-совместимых компьютеров. В большей или меньшей потому, что те или иные заимствования идей и методов RISC имеются практически в каждом современном чипе.

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

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

Основные задачи распараллеливания вычислений (ILP - Instruction Level Parallelism):

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

· распределение инструкций между функциональными блоками процессора;

· определение момента начала выполнения инструкций.

 

На основе статистического анализа кода множества CISC-приложений определяются наиболее часто используемые команды; уменьшение же числа команд позволяет увеличить число внутренних регистров (пересылка между регистрами выполняется быстрее всего), сделать конвейер более эффективным и поднять частоту его работы (чем более простые команды в нем исполняются, тем выше частота). Несмотря на значительно увеличившийся объем программного кода, RISC-процессор будет работать в несколько раз быстрее CISC-процессора с одинаковой частотой: специализация всегда предпочтительнее универсальности в плане быстродействия.

Разницу между RISC- и CISC-программами можно пояснить на простом примере. Но для начала оговорим некоторые детали: память компьютера адресуется по номеру строки и столбца, из которого осуществляется выборка (или в который производится запись). Операции над значениями из памяти производятся в исполнительном блоке, который, однако, может работать лишь с данными, загруженными в процессорные регистры. Пусть нам нужно умножить два значения в памяти по некоторым адресам 2:2 (строка:столбец) и 5:4. CISC нацелен на исполнение задачи при минимуме команд: набор инструкций процессора строится таким образом, чтобы все более или менее сложные действия решались одной командой. Предположим, что в CISC- процессоре имеется команда MULT, которая выбирает указанные значения из ячеек памяти, записывает их в различные регистры и сохраняет результат в соответствующем регистре. Тогда задача умножения решится в одну строку кода:

MULT 2:2, 5:4

RISC-процессоры используют простые инструкции, которые исполняются за один такт. В этом случае вместо MULT потребуются команды LOAD/STORE, загружающие данные из памяти в регистр и записывающие их обратно, а также команда PROD, выполняющая умножение данных в двух некоторых регистрах. Эквивалентом MULT для RISC-процессора будет следующий код:

LOAD A, 2:2

LOAD B, 5:4

PROD A, B

STORE 2:3, A

Очевидно, код длиннее, но скорость выполнения операций на регистрах в 4 – 8 раз выше.

Таблица 1. Различия CISC и RISC

CISC RISC
Акцент на железо Акцент на софт
Включает многотактовые сложные инструкции Сокращенный набор однотактовых инструкций
Принцип «память-память» - работа с регистрами осуществляется автоматически Принцип «регистр-регистр» - отдельные инструкции для передачи данных «регистр <-> память»
Небольшой размер кода, много циклов в секунду Мало циклов в секунду, большой размер кода
Транзисторное пространство используется под размещение сложных инструкций Транзисторное пространство используется для увеличения количества регистров

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

В чем тогда причина непринятия RISC рынком IBM PC? Во-первых, наборы инструкций CISC и RISC несовместимы. CISC-кодов для PC-программ было написано очень много, а под RISC - на порядки меньше. Создавались эмуляторы, автоматически транслирующие CISC-инструкции в RISC (подобные приемы увеличения скорости обработки используются в современных CISC-процессорах), но работали они настолько медленно, что разница в производительности между настоящими и эмулированными CISC практически сводилась к нулю. Таким образом, эмулировать CISC на RISC-процессорах оказалось неэффективно, а главное - экономически нецелесообразно. Во-вторых, как следствие сыграла свою роль несовместимость программного обеспечения. Для х86 уже были написаны DOS и набирающая популярность Windows, а различные RISC- процессоры базировались на Unix, причем, как правило, на несовместимых между собой ее версиях. Да и программ для них было куда меньше, особенно пользовательских. В-третьих, несмотря на кажущуюся «упрощенность», RISC-процессоры были дороги - они выпускались сравнительно небольшими партиями для высокопроизводительных рабочих станций, и производители не считали нужным ни экономить на материалах, ни оптимизировать дизайн, ни упрощать чипсет и материнскую плату.

В некоторых сферах (научные ресурсоемкие вычисления), действительно, конкурировать с RISC системам на базе CISC-процессоров было сложно, зато во всех остальных недорогие и достаточно производительные x86-процессоры остались вне конкуренции. Для создания конкуренции Intel в 1991 году Apple, IBM и Motorola основали альянс AIM Alliance, который занялся созданием дешевого, быстрого и современного RISC-процессора. В 1993 году была представлена спецификация платформы PowerPC, а также первый чип - 32-разрядный PowerPC 601, работавший на частотах 50 и 66 МГц. Название PowerPC пошло от многочиповой RISC-архитектуры IBM POWER, на базе системы команд которой и был основан первый процессор. Чип рассеивал намного меньше тепла, чем его конкурент в лице Intel Pentium, и работал зачастую быстрее его. Вслед за 601 появились 603/604 модели, затем в 1997 - PowerPC 750 (G3) с L2-кэш и ускоренной системной шиной. В 1999 модельная линейка процессоров PowerPC пополнилась PowerPC 7400 (G4) - «конкурентом» Intel Pentium III, представившим поддержку набора команд для векторных вычислений AltiVec (также известного как VMX - Vector Multimedia eXtension - «мультимедийное расширение» PowerPC). Однако с появлением и совершенствованием архитектуры Intel NetBurst (в Pentium IV) процессоры компании закрыли единственное слабое место, которое позволяло PowerPC выглядеть более выигрышно: заметно ускорив операции с плавающей точкой, х86- процессоры оказались самыми быстрыми и дешевыми на рынке. PowerPC-чипы же остались основой Apple Macintosh и различных встраиваемых систем (благодаря низкой рассеиваемой мощности) - системы на их базе, даже с учетом более дешевого процессора, все равно получались заметно дороже IBM PC совместимых компьютеров. Кардинальным образом ситуацию не изменил и выход нового процессора от IBM - PowerPC 970 (G5). Он позволил лишь приблизиться к x86 фаворитам в некоторых приложениях.

В настоящее время RISC-CPU широко применяются в проблемно-ориентированных компьютерах повышенной вычислительной мощности; очень часто – в мультипроцессорных системах.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных