Интерфейсы с расщепленными транзакциями
Особенностью локального интерфейса МП Pentium Pro и более поздних моделей является их ориентация на возможность многопроцессорной обработки данных. На его основе можно строить симметричные многопроцессорные (до четырех процессоров) системы. Процессор Pentium Pro имеет независимую двойную интерфейсную шину. Одна из этих шин предназначена для связи процессора с оперативной памятью, другая – с кэш-памятью второго уровня.
В результате этого доля обращений к оперативной памяти снизилась до 10%, что послужило основой для построения многопроцессорных систем с общей памятью.
В процессорных системах IA-архитектуры интерфейс процессора – это печатный монтаж проводов на материнской плате, а локальный интерфейс процессор-память – не более дюйма. Главными источниками задержки здесь являются не длительность передачи, а латентность памяти, т.е. задержки в адресных цепях процессора.
Адресные шины содержат множество адресных проводов. Первые процессоры IA-архитектуры состояли из 10 проводов. По этим проводам по очереди передавали значения старших и младших разрядов 20-разрядного адреса на два дешифратора (колонки и строки матрицы). Каждый дешифратор выбирает один провод из 1024 проводов. На невыбранных проводах ток отсутствует, он утекает на землю, через открытые диоды дешифратора. На выбранной шине он составляет 1/1024 от тока на входе дешифратора. Таким образом, ток заряда паразитной емкости выходной шины дешифратора составляет одну тысячную от входного. Соответственно с этим, время нарастания напряжения на выбранной шине уменьшается в тысячу раз. Это главная причина задержек ответа (время латентности) при обращении к памяти.
С ростом быстродействия процессора доля потерь времени в адресных цепях непрерывно возрастает.
При отдельных операциях записи контроллер памяти принимает команду процессора в буфер памяти и освобождает интерфейс. При выполнении операций чтения ситуация более сложная. Чтение – это, в общем случае, передача пакета (строчки кэш-памяти). Чтобы передать пакет данных, кроме задержки на латентность памяти, нужно учесть время выбора исполнителя чтения (основной памяти или локальной кэш-памяти другого процессора, в которой может быть копия затребованных данных). Передача "кэш - кэш" намного быстрее передачи "оперативная память - кэш". Кроме этого, данные в основной памяти могут быть устаревшими по сравнению с кэш-памятью других процессоров. Одним из решений этой проблемы явились протоколы с расщепленной транзакцией. (split transaction).
Шина с расщепленной транзакцией при наличии нескольких главных устройств шины (процессоров или устройств ПДП) обеспечивает значительно большую пропускную способность за счет разделения транзакции на две основных части: передача запроса, проверка отказа и получение ответа.
Здесь речь идет о команде "прочитать". При выполнении команды "записать" процессор передает в одной фазе и адрес записи, и данные. Контроллер памяти помещает данные в буфер записи и на этом транзакция интерфейса заканчивается.
При передаче команды "прочитать" каждая часть транзакции начинается арбитражем запросов на занятие определенной группы шин и оканчивается отключением от этих шин. В промежутках между указанными соединениями интерфейсная шина может использоваться для реализации следующих транзакций этого же процессора или других процессоров, или устройств ПДП. По сути – это вариант пакетной передачи с конвейеризацией передачи адреса, но с использованием времени латентности памяти.
В этом протоколе разные группы шин адреса и данных используются в разных фазах транзакции и практически независимы. Любая фаза начинается выставлением запроса арбитражу на доступ к шинам интерфейса. Одновременно может быть множество запросов на доступ к интерфейсу. Доступ получает запрос, выигравший арбитраж.
Временная диаграмма интерфейса с расщепленными транзакциями представлена на рис. 7.15.
В интерфейсе с расщепленными транзакциями используются несколько арбитражей:
· запроса шин адреса и команды,
· запроса шин данных,
· запроса передачи сигнала ошибки (на рис.7.4 не показаны).
Для реализации транзакции процессор должен выиграть запрос к арбитражу шин адреса и команды. Для этого процессор или устройства ПДП подают на устройство арбитража запрос – идентификатор процессора и идентификатор арбитража.
В ответ арбитраж посылает сигнал разрешения занятия следующего цикла процессора и присвоенный транзакции тег.
При отрицательном ответе процессор сохраняет запрос.
Первой фазой первого этапа транзакции (рис. 7.15) является запрос к арбитражу для занятия шин адреса и получение разрешения, второй фазой первого этапа является передача запроса (код операции, адрес, размер, разрешенные секции шин данных и идентификатор источника – трехразрядный тег).
Тег присваивается запросу арбитражем. Здесь возможны случаи, когда арбитраж выигрывает одно и то же устройство ПДП. Поэтому тег присваивается не ПДП, а транзакции, по ее очереди в конвейере.
Одновременно на этом конвейере могут находиться до 8 транзакций на разных стадиях выполнения, и для идентификации транзакций достаточно использования трехбитного тега.
Первой фазой второго этапа является запрос ответчика (контролера памяти) в арбитраж на захват шин передачи данных. Второй фазой этого этапа является передача данных.
Между этими основными этапами возможны дополнительные этапы. Это этап возможной ошибки и этап управления завершением.
Вопросы и/или темы для самопроверки:
1.Протоколы с расщепленной транзакцией.
2. Первый этап протокола с расщепленной транзакцией.
3. Второй этап протокола с расщепленной транзакцией.
4. Назначение тега в протоколе с расщепленной транзакцией.
16-я неделя. Лекция 16
Дата добавления: 2015-08-14; просмотров: 855;