☀️Общекомпьютерный форум☀️

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ☀️Общекомпьютерный форум☀️ » Программирование / Программное обеспечение » изменению таймингов видеопамяти


изменению таймингов видеопамяти

Сообщений 1 страница 2 из 2

1

Мини-гайд по изменению таймингов видеопамяти на примере видеокарты Sapphire Radeon R9 390 Nitro 8Gb

00 00 9C 40 = 400 МГц
00 01 38 80 = 800 МГц
00 01 5F 90 = 900 МГц
00 01 A0 86 = 1000 МГц
00 01 B7 74 = 1125 МГц
00 01 E8 48 = 1250 МГц
00 02 19 1C = 1375 МГц
00 02 2C A4 = 1425 МГц
00 02 49 F0 = 1500 МГц
00 02 7A C4 = 1625 МГц
00 02 AB 98 = 1750 МГц
00 03 0D 40 = 2000 МГц

2

Уже многие из вас знают, что имеется «чудо-биос» с форума Overclock.net, который повышает немного производительность на видеокартах Radeon R9 290(X), спроектированных на референсной плате, по большей части избавляет от ЧЭ (черный экран), BSOD'ов, имеет он и другие мелкие приятности, хотя бывают и обратные отзывы.
Оптимизаций в данном BIOS проведено много, о каждой можно написать свою заметку, но я остановлюсь об одной из них — таймингах видеопамяти.
Для себя и вас хочу отметить, что я решил не просто пересказать информацию с Overclock.net более простым и понятным языком, но и привести скриншоты и дать разумные инструкции по работе, чтобы сэкономить ваше время в изучении и подтолкнуть к вашему собственному энтузиазму. Поехали!

GDDR5 — современный и быстрый тип видеопамяти, массово использующийся в современных видеокартах. Если грубо и кратно, то как и любая другая память (оперативная), она обладает частотой и латентностью — временными задержками сигнала или проще таймингами. Сейчас мне сложно сказать как они отмечены в BIOS, как называются и в каком порядке располагаются, во всех этих вопросах нужно смотреть datasheet GDDR5, их технические характеристики, искать маркировки и т.п. А если учесть, что я наткнулся на информацию, что видеопамять таких видеокарт как 290(Х) и 390(Х) выпускаются разными заводами, то и их возможности немного отличаются.
Сейчас наиболее известны следующие модели:
Hynix H5GQ2H24AFR
Hynix H5GC2H24BFR
Hynix H5GC4H24AJR
Elpida EDW2032BBBG
Elpida EDW2032BBBG_DEBUG2
Elpida EDW4032BABG
Samsung K4G20325FD
Чтобы посмотреть какая видеопамять стоит у вас, вам стоит воспользоваться программой MemoryInfo, которая предоставит вам более точную информацию.

Основные отличия видеокарт Radeon R9 390(X) от 290(Х) не только в увеличенном объеме видеопамяти, но и использованных микросхемах. Так видеокарты 390(Х) используют только H5GC4H24AJR и EDW4032BABG, а 290(Х) — все оставшиеся пять. Стоит отметить где многие обычно по невнимательности зашивают BIOS с поддержкой H5GQ2H24AFR вместо H5GC4H24AJR, что обычно ведет к нестабильности в работе в лучшем случае :)
Поэтому также будьте внимательны при скачивании BIOS с коллекции с сайта Techpowerup. Внизу они отмечают какому устройству должна подойти та или иная версия.

Мое лирическое отступление закончено, переходим к самому интересному, и опасному :)
Инструменты

Нам понадобятся:
Прямые руки
Желание
Редактор Hex Workshop
Я перепробовал несколько программ, но больше всего мне понравился Hex Workshop: он может отмечать участки кода цветом, переводит в другом окне выделенные строчки в другие системы счисления и просто понятен.
И конечно же нам понадобится BIOS видеокарты, я советую править оригинальный BIOS, если у вас с ним не возникает проблем.
Скачиваем его с помощью GPU-Z:

Что мы делаем

Видеопамять как и оперативная память имеет частоты, но вот именно видеопамять имеет страпы, если грубо, то диапазоны частот, в которых зашиты определенные тайминги. Для последних видеокарт 290(х)/390(х):
— 150-400MHz
— 401-800MHz
— 801-900MHz
— 901-1000MHz
— 1001-1125MHz
— 1126-1250MHz
— 1251-1375MHz
— 1376-1500MHz
— 1501-1625MHz
— 1626-1750MHz
Как это работает: при дефолтной частоте для 290-ых равной 1250 МГц BIOS выставляет определенные тайминги, пусть будут X-Y-Z и они будут одинаковы на всем диапазоне 1126-1250 МГц.
Вы решаете сделать разгон и ставите 1375 МГц, активировался следующий страп с новыми таймингами, они чуть выше, что ведет к снижению производительности, но повышению стабильности. Падение производительности вы не ощущаете, так как сделали баф по частоте = + 125 МГц. Но! если вы разгоните до 1251 МГц, всего на 1 МГц, новый страп тоже активируется, прироста частоты вы не ощутите, а вот новые повышенные тайминги дадут о себе знать, понизив немного скорость.
Если на примере ОЗУ, то у нас с DDR3 бывает:
— 1333 МГц при 9-9-9-24
— 1600 МГц при 10-10-10-27
— 1866 МГц при 11-11-11-30
Вы разогнали автоматически до 1866, активировались 11-11-11, прирост есть. Вы вручную их понижаете до 9-9-9, система стабильна, прирост еще выше. Все счастливы.
На видеокартах так просто не сделаешь, но можно с помощью редактирования BIOS, чем мы и займемся. Наконец-то.
Редактирование

Погнали! Открываем наш биос Hawaii.rom с помощью редактора Hex Workshop.

Комбинацией Ctrl+F вызываем быстрый поиск, тип выставляем Hex Values, значение (value) 7771. Этот критерий сразу нас отнесет к нужному участку кода, искать нужные строки по смещению (offset) почти бесполезно: они отличаются от серии видеокарт и порой от самих биосов.

Кликаем ОК, и та-дам! Мы в нужной секции.

Для удобства дальнейшего использования выделяем перед найденными значениями по четыре пары чисел. Цвет вызывается на Ctrl+M. Сам редактор Hex Workshop в правом окне если что переводит числа, если вы же постараетесь это сделать в инженерном калькуляторе, то у вас ничего не получится: здесь все написано задом наперед :)
Стоит отметить, что раз у 390(х) четвертаря пара = 00, то в поле int32 значение частоты трактуется верно, в случае 290(х) — там 01 или 02, выделять их тоже нужно, но если хотите посмотреть какое значение получается в int32, то в калькуляторе от Windows переходите в режим «Программист». Далее наше число, к примеру, 48 E8 01 01 или 48 E8 01 02 (в обоих случаях это касается только Radeon 290 и 290Х) преобразуем:
обнуляем четвертое число и получаем 48 E8 01 00
записываем его в обратном порядке 00 01 E8 48
в калькуляторе идем в Вид-программист, выставляем счисление Hex и пишем наше число 00 01 E8 48. Нули первые затрутся — это нормально.
переводим его в счисление Dec и получаем на выходе наше значение 1250.00

Можно этого не делать, просто тогда редактор Hex Workshop засчитает 01 или 02 как еще одно число, и вместо, к примеру, 1250.00 вы увидите что-то похожее на 16914716. А с помощью калькулятора владельцы карт 290(х) могут убедится, что делают все правильно. Повторюсь, владельцам 390(х) этого можно не делать.
Выделяем числа как на рисунке.

Получается такая вот лесенка, где сохранена тенденция по смещению вниз) поэтому получается все быстро.

Если у кого-то возникли трудности, то пишу их значения и код:
40 9C 00 00 = 400 МГц
80 38 01 00 = 800 МГц
90 5F 01 00 = 900 МГц
A0 86 01 00 = 1000 МГц
74 B7 01 00 = 1125 МГц
48 E8 01 00 = 1250 МГц
1C 19 02 00 = 1375 МГц
A4 2C 02 00 = 1425 МГц
F0 49 02 00 = 1500 МГц
C4 7A 02 00 = 1625 МГц
98 AB 02 00 = 1750 МГц
40 0D 03 00 = 2000 МГц
Как вы заметили конце везде повторяются числа 00 — это указатель какую использовать видеопамять: на видеокартах Radeon R9 390(x) цифра будет всегда 00, на 290(х) либо 01, либо 02. Это означает, что видеокарты 290(х) имеют две секции с описанием таймингов, вам надо знать какую редактировать, чтобы не править обе и не тратить время. Какую нужно — подскажет программа MemoryInfo выше.
Кстати если прокрутить редактор чуть выше, то можно найти обозначение, поддержка какой памяти присутствует.

В моем случае Hynix H5GC4H24AJR.
Чтобы в глазах не мерцало, выделил серым цветом.

Добавлю подписи для наглядности.

Так что же такое страп? Это выделенный участок кода между двумя соседними зелеными парами чисел — границами.
В итоге и получаем.
— 401-800MHz
— 801-900MHz
— 901-1000MHz
— 1001-1125MHz
— 1126-1250MHz
— 1251-1375MHz
— 1376-1500MHz
— 1501-1625MHz
— 1626-1750MHz
В чем же смысл?

Он достаточно прост. Представим вы разогнали видеопамять до 1500 МГц у 290Х или же до 1750 МГц у 390Х, как я, и думаете: что бы еще оптимизировать или разогнать. Напряжение памяти нам пока недоступно, только контроллера (VDDCI), поэтому стали править тайминги — заменять повышенные тайминги данного страпа пониженными из предыдущего страпа. Это сказывается на эффективности и скорости памяти. Правим очень просто. Выделяем кусок серого кода из прошлого страпа и обычным Ctrl+V вставляем в нужный.
К примеру, я выделил кусок кода 1501-1625MHz и вставил его вместо кода 1626-1750MHz. Теперь видеопамять при 1750 МГц заработает на таймингах от 1501 МГц.
Теперь код, выделенный синим, соответствует коду красному.

Дальше только прошивка видеокарты, о ней писать я не буду. Проверка тестами, бенчмарками и играми.
Я провел несколько итераций тестов, не скажу что много, но выводы сделать можно. В целом получилось с видеокартой Sapphire Radeon R9 390 Nitro 8Gb, частота ядра везде =1000 МГц:
даунклок памяти до 1250 МГц (чтобы для себя сравнить с Radeon 290) — valid
дефолт 1500 МГц — valid
разгон 1750 МГц — valid
частота 1500 МГц (тайминги от 1250) — valid
частота 1750 МГц (тайминги от 1250) — valid
частота 1750 МГц (тайминги от 1125) — invalid
частота 1650 МГц (тайминги от 1125) — valid
частота 1500 МГц (тайминги от 1000) — invalid
Добавлено

Забыл упомянуть: после редактирования BIOS слетает его контрольная сумма. Такой BIOS вряд ли программа-прошивальщик согласится прошивать, поэтому нужно сделать одну простую вещь: открыть измененный BIOS утилитой HawaiiBiosReader

Там увидите эту страшную строку. Ваша задача всего лишь пересохранить BIOS, утилита сама поправит контрольную сумму. Теперь его можно шить :)
Результаты тестов

Ради сохранения собственного времени приведу лишь результаты графического теста 3DMark 2013 Fire Strike 1.5.915 (64-bit)

Да, я знаю, что результаты теста могут «гулять» туда-сюда да и погрешность никто не отменял, но я старался снизить все внешние факторы к минимуму, да и просто надеюсь к уважению к чужим трудам ;)
Рубрика «Вопрос-ответ»

Что лучше: частота или тайминги?

В основном частота.
Что лучше: частота или частота+тайминги?

Частота+тайминги.
Стоит ли игра свеч? Нужно ли этим заморачиваться?

Руки никогда не стоит опускать, рост производительности не более 3%, но если и его можно добиться, то почему бы и нет?)
Заключение

Я на своей практике познакомился наконец-то с редактированием BIOS через Hex, все манипуляции лично у меня заняли 20 минут.
Относительно вопроса таймингов я постарался ответить в материале. Из всех предложенных вариантов для своей видеокарты я оставлю частоту 1750 МГц при таймингах от страпа 1250. Конечно же чувствовалось, что при страпе 1150 и частоте 1750 МГц результат был бы лучше, но не все тесты видеокарта прошла: были черные полосы, пропадало изображение. Но если тест проходился, то результат был еще заманчивее.

Стоит ли «ковырять» BIOS или нет — решать только вам. Все же есть и резервная микросхема, и я постарался осветить все сложности в скриншотах, так что попробовать стоит. Плюс бесценный опыт никто не отменял ;)


Вы здесь » ☀️Общекомпьютерный форум☀️ » Программирование / Программное обеспечение » изменению таймингов видеопамяти


Рейтинг форумов | Создать форум бесплатно