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

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

Основная память КВС содержит большинство данных и команд и наиболее «видима» программисту. В основе основной памяти (ОП) в КВС лежит модуль, который содержит фиксированное число слов, и только к одному из них может быть осуществлен доступ в данный момент времени. Объем памяти и скорость доступа можно увеличить, комбинируя модули.

Объем определяется решаемой задачей и особых проблем не ставит перед разработчиком.

А вот скорость доступа должна соответствовать быстродействию конвейера, иначе КВС теряет смысл.

Запросное отношение – отношение скорости доступа к скорости синхронизации конвейера – имеет минимальное значение 2:1 и растет в зависимости от длины и типа конвейера. В большинстве реальных систем существующая скорость доступа к отдельному базовому модулю памяти редко является достаточной для получения требуемого запросного отношения. Выход – осуществить одновременный доступ к нескольким модулям памяти, а это нам известно – расслоение памяти. *

*на рис. 2.20 показывает последовательность действий для чтения слов из последовательных ячеек. Как и в случае, иллюстрируемом рис. 2.19, диаграмма для записи выглядит аналогично.

Рассмотренная здесь система со сложным расслоением, как и система с более простым расслоением, будет обрабатывать запросы на последовательные слова в N раз быстрее, чем отдельный модуль. Кроме того, она будет с той же высокой скоростью обрабатывать любую серию запросов, в которой ни один модуль в N последовательных запросах не используется более одного раза. Например, 8-кратно расслоенная память типа показанной на рисунке 2.20, будет работать в 8 раз быстрее отдельного модуля, если последовательность адресов распределена равномерно не только с промежутком 1, но и с промежутками 3, 5, 7, 9, 11, … . Для промежутка 3 последовательность адресов имеет вид 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, … , а последовательность используемых модулей 1, 4, 7, 2, 5, 0, 3, 6, 1, 4, 7, … При некоторых других значениях промежутка работа будет происходить не с этой максимальной скоростью, но все же быстрее, чем при работе одного модуля. Временная диаграмма равномерного распределения адресов с промежутком 2 показана на рис. 2.21. *

Это гибкие структуры, и они требуют введения контроллера памяти, реализующего алгоритм бесконфликтной обработки потока запросов.

На рисунках показаны два вида расслоения. Главное преимущество второго устройства (сложного) заключается в том, что она способна с той же скоростью обрабатывать любую серию запросов, в которой ни один модуль в N последовательных запросах не используется более одного раза.

Локальная память.

ОП хороша в КВС при обращении и даже длительным наборам последовательно расположенных слов, но обычно порядок доступа к данным, обеспечивающим такую скорость, не совпадает с тем порядком, в котором нуждается конвейер. Выход – промежуточная локальная память, практически всегда организуется как кэш-память или очень похоже.

На рисунке: а) классическая кэш-память, помещаемая между конвейерным процессором и основной памятью.

Сложнее и чуть эффективнее структура дуального буфера (см. на рисунке. (б)). Вся сложность заключается в управлении переключением. Используется в векторных процессах, в частности в легендарной машине CRAY-1.

Схема, показанная на рисунке под индексом (в) предполагает, что имеется память небольшого объема, допускающая одновременный доступ к ее различным словам через две схемы декодирования. Стоит дорого и применяется только при малых объемах буферизации.