
Почти полгода понадобилось Джеймсу Вангу (James Wang) для того, чтобы выпустить новую версию своей информационно-диагностической утилиты Read Universal. Согласно информации на страничке разработчика — функция генерации снимков экрана переведена из отладочной в статус полнофункциональной. Стало хорошим тоном выполнять эту операцию по нажатию клавиши F12. Семейство утилит RU.EFI продолжает данную традицию.
Проблемы с цветом
На первый взгляд, выбор цветовой схемы по умолчанию в UEFI-версии утилиты RU не вполне оптимален, что сказывается на контрастности дампов и на некоторых других элементах интерфейса.
Рис 1. Стартовый экран Read Universal: запуск в 64-битной среде UEFI дает неоптимальную цветовую схему
Как выяснилось в ходе дальнейших исследований, дефолтные цвета утилиты не изменялись и корректны, а корни проблемы, вероятнее всего, — в совместимости приложения с исследуемой платформой (модель которой указана в конце статьи).
Рис.2 Контрольный запуск Read Universal на ноутбуке ASUS N750JK: цветовая схема корректна
В любом случае, функция выбора пользовательской цветовой схемы, вплоть до установки монохромного изображения, помогает исправить ситуацию, как на экране, так и на скриншотах. А отмеченный недостаток, видимо, будет исправлен в следующих релизах.
Эксперименты с ACPI
Воспользуемся UEFI-версией утилиты для просмотра ACPI таблицы CRAT (Component Resource Affinity Table). Этот сравнительно новый системный объект декларирует мультипроцессорную топологию платформы. В отличие от SRAT (System или Static Resource Affinity Table) таблица CRAT позволяет декларировать вычислительные ядра не только центрального, но и графического процессора, делая оба компонента частями единого пула ресурсов. Она перечислена в каталоге таблиц, каковым является корневая таблица RSDT (Root System Description Table).
Рис.3 Список ACPI-таблиц, декларированный в корневой таблице RSDT
Таблица стандартно начинается с заголовка, включающего ее сигнатуру и строки OEM ID, OEM Table ID. Далее расположена последовательность структур, описывающая топологию соединения CPU, GPU и контроллеров оперативной памяти.
Рис.4 Дамп таблицы CRAT: заголовок содержит сигнатуру таблицы и метки OEM
Теория и первоисточники
В основополагающем документе ACPI 6.1 Specification описание таблицы CRAT отсутствует. Ознакомиться с принципами регулярного декларирования вычислительных ядер CPU/GPU и понять особенности гетерогенной мультипроцессорности от AMD, а также расшифровать содержимое ACPI-таблиц, поможет патент US20120162234.
В рамках унифицированной модели подключения CPU и GPU определяются маршруты доступа обоих устройств к оперативной памяти, методы передачи сигналов запросов на прерывание, тип интерфейса GPU (PCI Express или HyperTransport), и его теоретическая пропускная способность.
Виртуализация ввода-вывода и топология размещения агентов страничной трансляции для bus-master устройства, каковым является GPU, также в зоне ответственности описываемого расширения стандарта ACPI. Одним из декларируемых объектов является IOMMU (Input-Output Memory Management Unit), формирующий собственные виртуальные адресные пространства bus-master устройств.
Границы возможностей
Традиционно, объектом декларирования в ACPI являются on-board устройства платформы, поэтому дискретные видео адаптеры не смогут воспользоваться удобствами такой унификации, хотя такой вариант и упоминается в документе. Кроме того, «за скобками» осталась и система команд GPU Instruction Set Architecture.
Как видим, о возможности с разумными трудозатратами и с сохранением универсальности использовать графический акселератор UEFI-приложением, речь не идет. Рассматриваемое расширение всего лишь упрощает и стандартизует коммуникацию между UEFI firmware и операционной системой.
Условия эксперимента
- Платформа Gigabyte GA-F2A88XM-DS2, Rev. 3.2
- Процессор AMD A8-7670K Radeon R7, 10 Compute Cores 4C+6G