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

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

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

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

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

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

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

Tags