Горизонты техники для персонального компьютера

10 Дек 2012

Горизонты техники для персонального компьютера: Access Control Services

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

Освободить CPU от рутины призваны несколько ини­ци­а­тив, которым посвящены ряд публикаций «Компостера». Назовем главные из них: смысл технологии VT-d об­суж­да­ет­ся в статье «Виртуализация Intel VT-d на марше»; технология ATS (Address Translation Services) де­таль­но рас­смот­ре­на в обзоре «PCI Express оптимизируется для поддержки VT-d». Каждая из этих технологических ини­ци­а­тив прямо касалась процессорной парадигмы, в рамках которой периферия только принимала на себя ряд вы­чис­ли­тель­ных обязанностей CPU, влияя таким образом на эффективность платформы.

Логическим продолжением сервисов ATS, которые оставаясь в рамках централизованной модели с единым аген­том перенесли часть трансляционной логики в bus-master устройство и таким образом оптимизировали про­цесс тран­сля­ции адресов под особенности конкретных устройств, стала технология Access Control Services.

Горизонтальный уровень взаимодействия

Технология ACS (Access Control Services) предоставляет набор ресурсов, позволяющих проконтролировать локальное взаимодействие между устройствами, находящимися в одной группе, выделенной по некоторому топологическому признаку. Во всяком случае, так это понимает в PCI Special Interest Group инженер компании Intel Махеш Вог (Mahesh Wagh), излагая ряд важных положений спецификации PCI. К сожалению, термин Access Control Service (правда, в единственном числе) используется также и командой разработчиков Microsoft, но сей предмет находится за рамками нашего обсуждения.

Постараемся разобраться в сути новации по управлению доступом на примере воспроизведения фильма на экране дисплея.

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

Для выполнения этой задачи дисковый контроллер должен записать непосредственно в видео память данные, прочитанные с диска. Центральный процессор, как сюзерен, не участвует в этой транзакции, дав только разрешение на P2P-процесс. Вассалами выступают периферийные устройства, которые являются инициаторами и исполнителями режима peer-to-peer.

Ресурсы ACS контролируют транзакции bus-master устройств и выбирают один из вариантов их выполнения на основании содержимого управляющих структур. Для каждой транзакции, а по сути, для каждого запроса Peer-to-Peer Request, может быть выбран один из трех вариантов:

  1. Нормальное выполнение запроса
  2. Блокировка запроса
  3. Апелляция к верховному жрецу :)

Нормальное выполнение запроса (Route directly to target)

Запрос беспрепятственно поступает от инициатора к исполнителю (route directly to peer-to-peer target), без участия центрального агента. В этом случае преимущества ACS очевидны: время выполнения запроса и загрузка шин ввода-вывода минимальны, а значит, производительность — максимальная.

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

Блокировка запроса (Peer-to-peer violation)

Запрос блокируется с генерацией ошибки, это ситуация P2P Violation (handle as an ACS violation). Этот режим используется для обеспечения реакции на некорректные действия инициатора. Например, обращение к не существующему устройству. Логика ACS фиксирует ошибку, а для ее обработки требуется вмешательство центрального процессора.

Redirect upstream

Запрос направляется к Root Complex (redirect upstream) для обработки. Решение о перенаправлении или блокировке в этом случае будет принимать центральный агент. Этот режим используется в случаях, когда процесс взаимодействия инициатора и исполнителя не может быть полностью автономным и требует управления со стороны центрального агента.

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