UEFImark, v0.96

Исходный код UEFImark, v0.96Тестовые запуски утилиты UEFImark на ряде платформа дали богатый материал для улучшения функциональности этого программного продукта, позволив изолировать ошибки и ситуации, которые никак не предусмотрены спецификациями или другими документами. Пользуясь случаем, хотим поблагодарить украинское представительство компании ASUS за оперативно предоставленный мультимедийный ноутбук N550JV. С ним было весело!

В данный момент доступна консолидированная версия UEFImark v0.96 с историей изменений и дополнений, включая описание контрольных точек, используемых в процессе отладки и трассировки кода. Если вдумчиво прочитать этот Release Notes, то из него можно почерпнуть много интересного о современной архитектуре вычислительных платформ и применении UEFI-технологии. Тем, кто только начинает знакомиться с данной темой, будет предложен исследовательский материал на "Компостере" и детальное описание параметров утилиты на "Железе".

Уважаемые ромбаевцы! Ваше мнение ох! как важно для нас : )
Пробуйте, тестируйте, сомневайтесь!

Если данная информация оказалась полезной/интересной - плюсаните, пожалуйста:

мысли о статье "UEFI-диагностика: проблемы и решения"

Цитата:
скорость записи в видео память со стороны центрального процессора, при использовании 128-битных SSE-инструкций, равна 297.5 МБ/сек.
Вспомним, что даже для первого поколения шины PCI Express, пропускная способность равна около 4 ГБ/сек в режиме дуплекс (при параметрах соединения Width=x16, Speed=2.5GT/S). За счет чего образовался разрыв между теорией и практикой? Исследования показывают, что и в этом случае виноват неоптимальный контекст PCI PnP, установленный при старте платформы процедурами firmware.

мои исследования пропускной способности PCIe показывают ее приличную адекватность, нужно только помнить что байт (а также двойное слово или SSE) не бежит по шине, а "обрастает" заголовками и на 8/16 байт "полезной нагрузки" навешеваются 20-24 байта заголовков и пр., да и процессор(одиночка) не так шустр как может показаться на первый взгляд, добавте мультипроцессорности и возможность динамически их стопорить, вооружитесь адаптерами х16/х1, х16/х4 тогда будет нагляднее видно кто и в чем виноват

PS:хотя может это только на "моем глобусе все так красиво" ?

... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки

Аватар пользователя icbook

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


Click to enlarge!

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

В узком кругу обсуждались следующие причины обнаруженного явления:

  1. Ошибка (или каприз) American Megatreds;
  2. Происки Интел, направленные на ухудшение производительности дискретных видео-чипов в пользу видео, встроенного в процессор;
  3. Торсионные поля, йети, НЛО, барабашка:)
Ни одна из версий не подтверждается.

P.S. Есть еще особое мнение по поводу Prefetchable и Non-prefetchable. С этим тоже сложности.

ВложениеРазмер
uefimark097.png 11.35 КБ

Для оптимального использования пропускной способности PCI Express при записи в видео память требуется поддержка режима Write Combining, то есть возможность объединять результаты нескольких циклов записи, сформированных процессором, в пакеты для отправки по PCI Express. Чем больше пакет — тем меньший процент времени работы шины уходит на передачу заголовков пакетов и тем выше производительность.

Необходимое (но не достаточное) условие включения режима Write Combining состоит в том, чтобы диапазон доступа к видео памяти
был подключен в адресное пространство через Prefetchable диапазон моста PCI Express, а печаль наша о том, что в ряде платформ
он подключен через Non-Prefetchable, поэтому получаем статус Uncacheable, запрещающий все виды оптимизации. В этом неоптимальность firmware. Но здесь хотя бы все понятно с точки зрения PCI PnP.

А вот на ряде платформ для включения оптимизации мало переопределить статус региона на Prefetchable и перенастроить
MTRR, надо перенести диапазон доступа к видео памяти выше 4GB, иначе скорость не возрастает. Вот этот факт в рамках классических принципов PCI PnP не объясняется. То есть решение (перенос выше 4GB) найдено, а почему оно помогает, пока не знаем.

Цитата:
на ряде платформ для включения оптимизации мало переопределить статус региона на Prefetchable и перенастроить MTRR, надо перенести диапазон доступа к видео памяти выше 4GB

спасибо, не знал, буду копать для души ...

PS: приятная тема на поговорить со специалистами, к чему это относится - к архитектурным особенностям, деталям реализации(BIOS/UEFI) или специфике производителя (Intel/AMD)

ЗЫ2: есть тьма неявных вещей о которых и поговорить то не с кем :(
rom.by/forum/Dajte_potrogat_nebo_ili_skolko_bajt_begaet_po_shine

Цитата:
есть мать G45/ICH9 которой клиент недоволен
т.к. его плата (PCIeX4) не имеет той скорости которой довольна на предыдущей
i965/ICH8 системе (всего 400Мбайт/с вместо 700)

... иди туда, незнаю куда, возьми то, не знаю что ... (C) Русские народные сказки

Критичность к размещению диапазона доступа к видео памяти (выше или ниже 4GB) наблюдалась на платах Intel Socket 1150.

На AMD это явление не наблюдалось, достаточно переопределить MTRR статус на Write Combining (без изменения адреса диапазона) и получаем скорость записи в видео память около 2.5 GB/S.

Сказанное выше относится к шинному трафику, инициированному процессором, в тестах UEFImark процессор - инициатор, видеокарта PCIe - исполнитель.

А если говорить о медленной работе RAID-контроллера, установленного в слот PCI Express (как в ветке "дайте потрогать небо" ), то скорее всего речь идет о Bus Master операциях, когда инициатор цикла - RAID-контроллер, а исполнитель - оперативная память. Это совсем другая история и здесь возможно скорость падает вообще не из-за PCIe или процессора, а из-за медленной работы
оперативной памяти, например:

  1. Нет двухканальности из-за ассиметричного заполнения банков.
  2. Низкая частота памяти.
  3. Арбитраж между процессором и bus-master устройствами дает низкий приоритет bus-master устройствам при доступе к памяти.
  4. Высокая конкуренция среди bus-master устройств, кто-то работает параллельно и загружает шину. Возможно даже процессор.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей