Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #55, ИЮНЬ 2005 г.

Кирпичи для PC

Сергей Мишко (msn@univ.kiev.ua)

Спецвыпуск: Хакер, номер #055, стр. 055-036-3


Очевидные недостатки CISC-архитектур породили альтернативное решение: в архитектуре RISC уменьшили число команд и упростили их сущность. Теперь требования к наличию доступных объемов памяти стали выше, написание ПО сложнее, зато внутренняя структура RICS-процессоров - богаче в плане инноваций, что благотворно повлияло на скорость обработки операций. Такими процессорами стали PowerPC, Alpha, SPARC. Первый нашел себе применение в компьютерах Apple Macintosh, два других - в одноименных рабочих станциях.

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

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

ILP-архитектуры

В обеих перечисленных выше архитектурах сейчас используется параллелизм на уровне инструкций - ILP (Instruction Level Parallelism), занятый решением трех задач:

1. Проверка зависимостей между инструкциями;

2. Распределение инструкций между блоками процессора;

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

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

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

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

Назад на стр. 055-036-2  Содержание  Вперед на стр. 055-036-4