Суперскалярные процессорыВ процессорах этого типа реализованы как параллельное выполнение команд, так и конвейерная обработка. Если на обычном конвейере параллельная обработка возможна в случае, когда команды находятся на разных стадиях обработки, то суперскалярные процессоры позволяют обрабатывать несколько команд в одном сегменте конвейера. В этом случае. несколько команд могут выполниться одновременно в течение одного такта. Такая работа стала возможна благодаря использованию нескольких, параллельно работающих конвейеров, а также устройств, позволяющих определить независимость команд. Устройства интерпретации команд (определяющие зависит ли команда от других) снабжены собственной логикой. Чаще всего в суперскалярных процессорах увеличивают количество целочисленных конвейеров. Это связано с тем, что 80% команд в коде прикладных программ – целочисленные, около 15% - команды условного перехода и очень малый процент – команды с плавающей запятой. Учитывая, что работают несколько конвейеров, мы получим те же конфликты, которые можно получить при работе с одним. Для их решение применяют алгоритмы внеочередной выборки и завершения команд, условного выполнения команд, прогнозирования переходов. В суперскалярных процессорах распараллеливание команд заложено на аппаратном уровне. Программы для такого типа процессоров должны быть совместимы на уровне исполняемых файлов. Параллельные программы можно разделить на статические, динамические и смешанные. По сложившемуся мнению, статические способы реализации программ являются предпочтительными. Это связано с тем, что при анализе кода на стадии компиляции удается выделить и спланировать параллелизм на более глубоком уровне. Однако, если необходимо учитывать текущее состояние программы и распределения ресурсов, то без динамической реализации обойтись нельзя. Особенности суперскалярных процессоров, кроме своих плюсов, имеют очевидные минусы: сложная реализация аппаратной части; ограниченность окна выполнения. Это заметно уменьшает возможности определения потенциально параллельных программ. Среди представителей суперскалярных процессоров выделяют Pentium, PowerPC, K6/K7, Alpha. В качестве особенностей одного из суперскалярных процессоров фирмы CRAY можно отметить то, что он имеет 136 (!) процессоров. Среди них четыре процессора Dec-Alpha EV5 (300 Mhz) с локальной памятью и чипом маршрутизации. Процессоры Alpha – суперскалярные процессоры, позволяющие обрабатывать два числа с плавающей запятой за цикл работы конвейера.
|