
2.3. Технологии повышения производительности процессоров
Конвейерная обработка команд (pipelining). Суперскаляризация
Рассмотрим процесс выполнения процессором команды для коротких (с фиксированной запятой или логические) операций. Как об этом говорилось выше, обработка команды, или цикл процессора, может быть разделена на несколько основных этапов, которые можно назвать микрокомандами, которых известно пять основных типов.
Каждая операция требует для своего выполнения времени, равного такту генератора процессора (tick of the internal clock). Отметим, что к длинным операциям (плавающая точка) это не имеет отношения — там другая арифметика. Очевидно, что при тактовой частоте в 100 МГц быстродействие составит 20 миллионов операций в секунду.
Все этапы команды задействуются только один раз и всегда в одном и том же порядке: одна за другой. Это, в частности, означает, что если первая микрокоманда выполнила свою работу и передала результаты второй, то для выполнения текущей команды она больше не понадобится, и, следовательно, может приступить к выполнению следующей команды.
Конвейеризация осуществляет многопоточную параллельную обработку команд, так что в каждый момент одна из команд считывается, другая декодируется и т. д., и всего в обработке одновременно находится пять команд. Таким образом, на выходе конвейера на каждом такте процессора появляется результат обработки одной команды (одна команда в один такт). Первая инструкция может считаться выполненной, когда завершат работу все пять микрокоманд.
Такая технология обработки команд носит название конвейерной (pipeline) обработки. Каждая часть устройства называется ступенью конвейера, а общее число ступеней — длиной линии конвейера.
С ростом числа линий конвейера и увеличением числа ступеней на линии (табл. 1) увеличивается пропускная способность процессора при неизменной тактовой частоте. Процессоры с несколькими линиями конвейера получили название суперскалярных. Pentium — первый суперскалярный процессор Intel. Здесь две линии, что позволяет ему при одинаковых частотах быть вдвое производительней i80486, выполняя сразу две инструкции за такт.
Во многих вычислительных системах, наряду с конвейером команд, используются конвейеры данных.
Таблица 1. Характеристики конвейеров процессоров Intel
Процессор |
i80486 |
Pentium |
Pentium Pro |
Pentium MMX |
Pentium II |
Pentium III |
Pentium IV |
Число линий |
1 |
2 |
3 |
2 |
3 |
3 |
3 |
Длина линии |
5 |
5 |
14 |
6 |
14 |
20 |
31 (HyperPipeline) |
Сочетание этих двух конвейеров дает возможность достичь очень высокой производительности на определенных классах задач, особенно если используется несколько различных конвейерных процессоров, способных работать одновременно и независимо друг от друга.
Одной из наиболее высокопроизводительных вычислительных конвейерных систем считается CRAY. В этой системе конвейерный принцип обработки используется в максимальной степени. Имеется как конвейер команд, так и конвейер арифметических и логических операций. В системе широко применяется совмещенная обработка информации несколькими устройствами.