Основы вычислительных конвейеров, страница 8

Наряду с приведенным описанием модели архитектуры ОКОД, необходима несколько произвольная (но реалистическая) модель производительности. Эта модель задает в общих условных единицах время исполнения каждой из ступеней основных типов разбиений, показанных на рис. 6.1 и 6.2. Оно приближенно равняется времени, затрачиваемому на исполнение этих функций процессором традиционной структуры при полном отсутствии конвейеризации или перекрытия. В последующих разделах эти времена будут нужным образом модифицированы.

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

Предполагается, что ступени IFETCH (выборка команды), OPFETCH 1 (выборка операнда 1) и STORE (запоминание) требуют обращения к памяти, которое обычно занимает больше времени, чем та или иная операция центрального процессора. Предполагается, что при генерировании исполнительного адреса EAGEN вычисления сводятся в среднем примерно к сложению смещения, находящегося в самой команде, с копией содержимого некоторого регистра центрального процессора. Аналогично, фаза исполнения для команд, подобных сложению ADD,  является примерно средним между сравнительно быстрыми операциями, такими, как сложение, загрузка или логические операции, и более длинными, такими, как умножение, деление и сдвиг. Итоговые значения в таблице 6.1 определяют средние времена исполнения команд каждого класса и являются суммами времен для каждой ступени.

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

Значения времен исполнения команд еще не достаточны для построения модели, которая позволяла бы обоснованно судить о потенциальной производительности вычислительной структуры. Всякая реальная программа, которую должна исполнять ЭВМ, является комбинацией, или смесью команд каждого класса. Хотя смесь зависит от структуры программы, ряд авторов разработали общие статистические распределения, на которые можно ориентироваться.

В табл. 6.2 приведена одна из таких смесей, соответствующих классам команд, определенных ранее. Большинство команд в этой таблице относится к классу команд, показанных на рисунке 6.1; за ними следуют переходы различных типов. Из табл. 6.1 и 6.2 можно найти, что на исполняемую команду в конвейерной машине при реализации рассматриваемой архитектуры ОКОД приходится в среднем 17,11 единиц времени.

Если в статистике учитывать команды с коротким форматом, то времена в модели следует уменьшить на 30 %.

4.2.2 Межкомандные зависимости и помехи.

В неконвейерной машинной структуре все операции, связанные с исполнением отдельной команды (см. рис. 6.1 и 6.2), завершаются до запуска следующей команды. Таким образом, фактическая очередность исполнения соответствует логической очевидности, заложенной программистом при написании программы. При конвейеризации это уже не всегда имеет места. Исполнения команд перекрываются, так что некоторые операции, нужные для команд i+1. i+2, …, могут зависеть от результатов i-й команды, которая еще не была завершена. Существование этих зависимостей вызывает помехи, которые должны быть обнаружены реальной вычислительной системой и разрешены ею так, чтобы фактические результаты, вырабатываемые программой, совпадали с ожидаемыми программистом. Аппаратный метод, который реализует обнаружение и разрешение помех, называется блокировкой.