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

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) для обработки. Решение о перенаправлении или бло­ки­ров­ке в этом случае будет принимать центральный агент. Этот режим используется в случаях, когда процесс вза­и­мо­дей­ст­вия инициатора и исполнителя не может быть полностью автономным и требует управления со стороны центрального агента.

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