8086.ru2. Организация памяти ЭВМ2.2. Архитектура памяти с повышенным быстродействием → 2.2.2 Конвейерный доступ

2.2.2 Конвейерный доступ

При конвейерном доступе ОП также строится по модульному принципу, каждый модуль имеет свой регистр адреса, а в составе УУП либо счетчик адресов для модификации адреса, либо буфер запросов (адресов) на основе FIFO для формирования очереди (потока) адресов при обращении к модулям. Каждый модуль должен иметь свой буфер регистра данных. Конвейерный доступ не требует ожидания окончания предыдущего цикла обращения к текущему модулю, а сразу инициирует цикл обращения к другому модулю, если тот свободен (рисунок 2.2).

Каждый модуль должен иметь свой блок УУ для управления доступом к модулям памяти и контроля конфликтных ситуаций по доступу. Наличие MS/DMS, как и в предыдущем случае, является необязательным.

Для задач общего назначения конвейеризация доступа дает выигрыш в производительности только при формирования очереди команд, замещении строк кэш-памяти, выборке строковых переменных и данных для сопроцессора, а также при обработке массивов данных за счет организации специальных пакетных циклов шины при доступе к последовательным адресам (например, пакетные кэшируемые и некэшируемые циклы шины ЦП). При этом в составе УУП не требуется FIFO очереди запросов, так как данные должны быть выровнены по ширине выборки, а каждый последующий адрес памяти данных отличается от предыдущего на единицу (т.е. на слово, передаваемое по МД).

Кроме того, при конвейерном доступе к памяти можно организовать параллельный процесс регенерации модулей ОЗУ, незанятых в данный момент времени (непакетируемые циклы шины).

Наибольший эффект данный метод дает при применении в специализированных процессорах, например, при доступе к векторным операндам в векторном процессоре при обращении к адресам i, i+S, i+2S и т.д., отстоящим друг от друга на интервал S. Если данные размещаются в разных модулях памяти, то общая производительность увеличивается в m/f(m,s) раз, где m - число модулей памяти, при этом при обращении используется очередь доступов к модулям памяти на основе FIFO.

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