Конвейерные системы.
Теоретические основы конвейерных систем достаточно подробно рассмотрены в монографии [5], в соответствии с которой изложен материал этого раздела.
Основой конвейерных систем является конвейер (магистраль) обработки. Такая магистраль представляет собой набор функциональных блоков обработки с фиксаторами (локальной памятью) между ними (фиксаторы ступеней) (рисунок 12.1).
Рисунок 12.1.
На вход конвейера поступает векторные операнды А и В. Каждый i блок обработки выполняет функцию φi(A,B) и результат фиксируется в локальной памяти ступени (фиксаторе). Фиксаторы необходимы для устранения влияния переходных процессов в блоках обработки. Магистраль – не жестко заданная система. Внутриконвейерное управление (рисунок 17) позволяет обходить некоторые блоки (то есть данные через такой блок проходят транзитом).
Таким образом, в любой ступени конвейера имеются две компоненты: логика, выполняющая требуемую функцию, и некоторый механизм, сохраняющий данные с выхода ступени как входные данные для следующей ступени. Хотя обычно эти компоненты являются раздельными блоками аппаратуры, характеристики одного из них сильно влияют на структуру другого.
В конвейерах существует следующие ограничения по синхронизации (рисунок 12.2).
Рисунок 12.2.
На рисунке 12.2 обозначены: Т – время вычисления функции логическими схемами; W- время приема результатов фиксатором, Р – период синхронизации.
За счет разного пути проходимого синхроимпульсами возможен перекос синхронизации. Это видно из рисунка 12.3:
Рисунок 12.3.
Одно из ограничений состоит в том ,чтобы время Tmax , необходимое для прохождения сигнала по наиболее длинному пути внутри логики было
Tmax ≤ T-S.
В другом случае (рисунок 12.4), приход синхроимпульса на ступень запаздывает по сравнению с приходом того же синхроимпульса на предыдущую ступень ( в идеальном случае все ступени конвейера получают один и тот же импульсы одновременно).
Рисунок 12.4.
Такая задержка приводит к тому, что изменения на выходе предшествующей ступени распространятся по минимальному логическому пути и повлияют на последующую ступень во время того же самого периода синхронизации.
Для избегания этого необходимо, чтобы Tmin ≥W+S.
§12.2. Иерархия памяти.
Важность базовой структуры с фиксаторами очевидна. Однако, в типичной конвейерной системе имеется ряд других структур памяти, которые важны для производительности всей системы. Сюда относятся основная память, локальная или кэш-память, а также регистровые файлы, используемые вместо некоторых фиксаторов ступеней. Как и в любой иерархии памяти, эти структуры упорядочиваются по убыванию объема и возрастанию быстродействия. Кроме того, все эти структуры выполняют различные функции. Основная память должна не только содержать все файлы данных, но должна также иметь достаточное быстродействие, согласующееся с общими требованиями конвейеров. Блоки локальной памяти согласуют быстродействие основной памяти и конвейера и временно хранят информацию, которая передается между ними. Регистровые файлы встраиваются в конвейеры и принимают участие в передаче данных между ступенями.
Основная память.
Основная память ЭВМ содержит большинство данных и команд. Двумя ее основными свойствами являются объем и скорость доступа. В основе памяти лежит модуль, который содержит фиксированное число слов, только к одному из которых может быть осуществлен доступ в данный момент времени.
В большинстве реальных систем имеющаяся скорость доступа к отдельному базовому модулю памяти редко оказывается достаточной для получения требуемого запросного отношения. Следовательно, для того чтобы получить большую скорость доступа необходимо осуществлять одновременный доступ ко многим модулям памяти. Для этого употребляется общая методика, называемая расслоением памяти. При расслоении модули обычно упорядочиваются так ,чтобы N последовательных адресов памяти i, i+1, i+2,.., i+N-1 приходились в N различных модулей. Имеются различные способы реализации таких расслоенных структур.
Рассмотрим 2 крайних случая расслоения. Первый случай показан на рисунке 12.5.
Рисунок 12.5.
Эта структура обеспечивает доступ к N словам параллельно при любом запросе.
При N=2k и М=2m m разрядов адреса посылаются всем модулям памяти, а младшие к разрядов используется для выбора слова, которое из N слов надо читать первым. Так, при любом обращении к памяти прочитываются N последовательность слов. Эти слова могут быть помещены в фиксатор и при следующем обращении выбраны по шине шириной в одно слово со скоростью в N раз большей, чем время доступа к отдельному модулю.
Эта простая структура является идеальной в тех случаях, когда обращение к памяти осуществляется последовательно, как при выборке вектора или при исполнении последовательных команд. Однако, производительность катастрофический падает всякий раз, когда нужен доступ к непоследовательно расположенным словам. Для того чтобы частично преодолеть это были спроектированы системы памяти, подобные показанной на рисунке 12.6.
Рисунок 12.6.
Здесь фиксаторы перемещены с выхода любого модуля на их адресные входы. Это позволяет использовать для каждого модуля свой относительный адрес, отличный от остальных. Здесь вводится контроллер памяти. На это устройство от конвейеров поступает поток запросов. Любой запрос требует доступа к одному слову, и эти запросы обрабатываются по одному. Для любого запроса контроллер определяет, занят ли в данный момент модуль, и если не занят, то, соответственно, относительный адрес помещается в фиксатор и операция начинается. Если модуль занят, то запрос задерживается.
Рассмотренная система будет отображать запросы в N раз быстрее. Кроме того, она будет с той же высокой скоростью обрабатывать любую серию запросов, в которой ни один модуль в N последовательных запросах не используется более одного раза.
Локальная память.
Для согласования скоростей работы ОП и конвейера между ними вводят малую сверхбыстродействующую память. Такую память часто называют кэш-памятью или локальной памятью. По своей структуре она может быть памятью небольшого объема с произвольным доступом или с дисциплиной FIFO или ассоциативной памятью. Независимо от того, как она устроена, всякая локальная память действует одинаково. Она организована так, что между нею и ОП возможен небольшой обмен одновременно с более произвольным обменом между нею и конвейером.
Одним из способов организации локальной памяти является ассоциативная память.
Следующая по сложности структура – это переключающийся или дуальный буфер (рисунок 12.7).
Рисунок 12.7.
В этом случае две или более памяти работают так, что пока один из них осуществляет обмен с ОП, другой остается подключенным к конвейеру. Когда ОП и конвейер завершают обмен, связи этих буферов взаимно переключаются и конвейер получает доступ к буферу, только что загруженному из ОП.
|
Рисунок 12.8.
В этом случае память имеет два комплекта логических схем декодирования адресов и выборки, обеспечивающих одновременный доступ к ее различным словам со стороны ОП и конвейера через 2 порта, соответственно.
Простейшей структурой локальной памяти является очередь с дисциплиной FIFO (рисунок 12.9).
Рисунок 12.9.
В такой структуре данные поступают в очередь с одной скоростью, а выходят из нее с другой. Порядок входа и выхода данных один и тот же.
Во всех структурах памяти обмен между ОП и локальной памятью выполняет контроллер памяти, расположенный между ОП и локальной памятью.
Регистровые файлы.
В конвейере вместо отдельных фиксаторов ступеней используется более сложная структура памяти, называемые регистровыми файлами. Это двухпортовая память с произвольным доступом (рисунок 12.10).
Рисунок 12.10.
В конвейерах один порт данных подключается к выходу логики предыдущей ступени, а другой порт к выходу следующей. Первый порт предназначен для записи в файл, а другой - для чтения.
Регистровые файлы выполняют не менее трех функции. Прежде всего, они позволяют многократно использовать один и тот же набор данных, не прибегая к его регенерации, например общий множитель.
Во-вторых, они позволяют осуществить локальную перегруппировку данных. Часть конвейера может сформировать промежуточные результаты в одном порядке, а для другой части они могут потребоваться в другом порядке. Отдельное управление адресными шинами позволяет осуществлять требуемое переупорядочивание.
Третье применение – осуществление переменной задержки. При этом холостая задержка на один такт эквивалентна замене одного фиксатора двумя, не имеющими никаких логических схем, кроме «холостой логики». Один регистровый файл может автоматически задавать задержку на любое число циклов к, где к не превышает числа ячеек файла, просто используя последовательность циклически наращиваемого адреса для порта записи и точно такого же адреса для порта чтения, но задержанного на к циклов.
Дата добавления: 2015-08-14; просмотров: 750;