Организация процессоров
В командах обращения к памяти требуется 1 дополнительное обращение к памяти.
Производительность этого процессора можно оценить следующим образом. Среднее время выполнения (в тактах) : Tк = 3t + 1,5tmem,
где t – длительность одного такта процессора, = tmem – длительность обращения к памяти. При тактовой частоте 100Мгц t=10нс. Пусть время обращения к памяти составляет даже 20нс. Получаем Тк = 3*10нс + 1,5*20нс = 60нс. Производительность = 1/Тк = 1/60нс = менее 20 МIPS. Показатели производительности многих современных процессоров (и RISC и CISC) даже на такой же частоте намного выше (Например, Celeron 400 Мгц имеет производительность около 1000 MIPS – на частоте 100 МГц он бы имел производительность 250MIPS, то есть в 10 раз больше, чем у рассмотренного процессора). Как достигается повышение производительности ? Во-первых, можно несколько улучшить показатель CPI, если перейти к жесткой логике управления, то есть вместо микроподпрограммы выполнения команды реализовать аппаратную схему, выполняющую алгоритм заданной команды. С другой стороны, можно использовать КЭШ-память для ускорения доступа к основной памяти. Однако, этих мер недостаточно для повышения производительности в 10 и более раз.
В современных процессорах для повышения производительности применяют, в том числе, 2 основных подхода: конвейеризацию команд и суперскалярное выполнение команд (многопотоковые конвейеры команд). Эти подходы мы и рассмотрим далее.
Рис. 3.8 3.5.3 Конвейер команд В общем случае приведенные ранее основные пять этапов выполнения команды процессора общего назначения требуют разного времени, но – сопоставимого. Если добиться (введением фиксаторов и синхронизацией), чтобы каждый этап занимал одинаковое время, можно организовать конвейер команд, в котором одновременно на разных этапах выполнения будут находиться несколько команд (Рис.3.6).
Даже при условии некоторого увеличения времени выполнения одной команды (небольшое снижение быстродействия) производительность при полном заполнении конвейера будет близка к величине 1/Tк, где Tк – такт конвейера, в данном случае – время выполнения одного этапа.
|