| ||||
Мои небольшие утилиты. Для экономии места я соберу
все самое интересное по программам, с остальным можно ознакомиться по ссылкам.
|
Программа, дата начала проекта. |
Особенности реализации |
|
TestMem (DOS) ~1998 ![]() |
Это первая программа, которую я был вынужден написать для поиска неустойчивой работы своего компьютера. Программа весьма простая и, как ни странно, весьма эффективная. В отличии от других программ, в TM1 используется шаблон тестирования вида A/неA/A/неA, что хорошо нагружает шину данных. |
|
TestMem2 (DOS) ~1999 ![]() (устарела) |
Вторая редакция TM предерпела существенные внешние изменения и не только внешне.
Здесь проверяласть вся физически доступная память, даже та ее часть, что используется
как тень EPROM BIOS. Второй уникальной особенностью этой редакции стала возможность
менять тайминги памяти 'на лету' для их автоматической подстройки под имеющуюся память.
Поменять тайминги не трудно, вот только CAS Latency изменить принципиально нельзя. |
|
TestMem3 (DOS-BIOS) 11.1999 ![]() (не выпускалась) |
Хотел совместить TM2 с автоматическим анализом SPD, да как-то не получилось. Основная ошибка была в сильной привязке свойств программы к конкретному набору микросхем. В программе появилась фаза нагрева DIMM и самих тестов памяти стало несколько. После схода с арены весьма удачного набора микросхем LX...BX от Intel наступила эра отковенного безобразия VIA и гнустных поделок i8xx, переделывать программу под них (а, к тому-же, по VIA нет документации) мне не захотелось, программа заморожена. |
|
T100-T170 (DOS-BIOS) 11.1999 (проект закрыт) |
Коммерческая версия, сделанная из TM2. Программа имела несколько тестов и настривалась
на конфигурацию в момент запуска, что было не слишком удобно. Формат GUI напоминал TM2.
Программа делела сортировку ошибок по битам адресов и данных. Программа могла загружаться
обычным способом или с специальной платы без подключения каких-либо приводов.
|
|
TestVRAM (DOS) 6.2000 ![]() (Перенесен в TestMem4) |
Программа тестирует память видеокарты так-же, как это делают с обычной памятью.
Но есть и нюансы - без включения кеширования скорость записи очень низка, а скорость
чтения так-же не вызывает восторга. Поэтому надо использовать алгоритмы наиболее эффективные
именно для данного применения. |
|
T200 (DOS-BIOS) 5.2001 ![]() (проект закрыт) |
Проект T200 написан практически с нуля и я старался устранить основные недостатки
предыдущих редакций. В T200 используется зашищенный режим (а не "Flat"),
многопоточный доступ (8 threads), восемь тестов плюс режим проверки регенерации.
Кроме того, программа стала оперировать не всей памятью, а ее сегментами. Проверяется
вся доступная память, а это вся память (до 4G) - 128K, из которых 64К под векторы и 64К программа.
В T200 достаточно свободно настраиваемые правила отбраковки, по результатам которых
проще отбраковывать микросхемы. |
|
TestMem4 (DOS) 9.2001 ![]() (Перенесен в S&M) |
TM4 сделана из T200 отключением 5,7,8 тестов, загрузки с спецплаты и удалением всего,
что касалось правил отбраковки. Обычному пользователю эти функции не нужны.
На освободившееся место был помещен модуль от TestVRAM. Вначале была редакция
под nVidia, потом я попробовал расширить поддержку на видеокарты ATI, но уж больно
нудно собирать TM4, так что .... :( |
|
BenchMem (Win) 3.2003 ![]() |
Разные тесты производительности памяти давали очень уж различающиеся цифры, доходило до 'в разы'. Эх, взял и написал собственный тест. Еще серьезный момент - практически все программы измеряют максимальную, (линейную) потоковую скорость чтения (и записи), что не является основопологающей характериситикой производительности памяти. Очень часто программы оперируют небольшими объемами данных, которые еще и разбросаны произвольным образом. Можно привести уже набивший оскомину пример - Intel долго и нудно продвигали память RIMM, которая демонстрировала весьма неплохую потоковую скорость, а вот на случайном доступе наступал катастрофический провал. Да, можно измерять Latency (время, задержка) доступа к памяти и это будет более предметный индикатор эффективности подсистемы памяти, но и тут есть проблемы - в каком соотношении связать два параметра - потоковую скорость и Latency? Кроме всего прочего, эти два параметра зависят еще от множества других факторов и простые арифметические формулы A+B (или A*B &etc) не применимы. В программе измеряется производительность от размера блока и меры случайности (как далеко взаимно расположены адреса запросов). Вывод графический, все наглядно. |
|
Video BIOS extender (BIOS) 8.2003 ![]() |
Задался мыслью - управлять частотой VGA я могу, а почему-бы не вставить это прямо в BIOS
видеокарты? Править код скучно, да и хлопотно, проще сделать пристыковочный модуль
и добавить его в EPROM видеокарты. Программа меняет частоты ядра, памяти и прочие мелочи.
Пристыковочный модуль очень сильно привязан к аппаратуре (семейству видеокарт), потому интерес
к программе скорее академический. |
|
S&M v0 (Win) 5.2004 ![]() |
Программа имела два теста - прогрев процессора (без обнаружения сбоев) и тест памяти.
Тест процессора эффективно работал только на семействе AMD, с Intel его эффективность
падала. Этот тест имел режим 'с прогревом памяти', когда на одном процессоре запускалось
одновременно два процесса - нагрев CPU и обращения к памяти. Причем, эффективность
нагрева процессора практически не страдала. В процессоре К8 весьма существенно
изменили механизм взаимодействия с памятью и, увы, алгоритм потерял свою эффективность. |
|
S&M v1 (Win) 9.2004-2008 ![]() |
Редкостный долгострой. |
|
C&QnF2 (Win) 7.2005 ![]() |
Не_мобильные процессоры К7 не имели возможности понижать частоту в моменты простоя,
что мне не особо понравилось. Альтернативные программные решения были, но там страдала
или надежность или функциональность. Кроме того, мне хотелось управлять частотой
в гораздо бОльшем диапозоне, чем это было возможно в стороннем софте. Копание в BIOS
позволило добиться работоспособности программы в диапозоне FSB от 70MHz до максимальной.
Для получения такого большого диапозона приходилось адаптировать значения некоторых регистров
предкоррекции. Набор микросхем nForce2 обеспечивал наибольшую эффективность с памятью
при CAS=2.5, потому я далеко не сразу заметил, что при другом CAS надо устанавливать
иную предкоррекцию. Для CAS не 2.5 программа переходит в режим совместимости и нижняя
граница частоты FSB сильно повышается. |
|
HDD Access Block (Win) 10.2006 ![]() |
Эта программа была написана для статьи, но она как-то не пошла, а программа осталась.
Собственно, HAB нужен для того, чтоб понять то самое тонкое место, что ограничивает
производительность дисковой системы. На данный момент процессоры и память настолько
быстрее дисковой подсистемы, что при любых обращениях к диску всё банально останавливается
и ждет порцию данных с диска. Создание RAID0 массивов вроде-бы должно кардинально улучшить
в этом вопросе ... но иногда становится даже хуже, чем без массива. Один из самых
деструктивных элементов - пропускная способность (всего!) интерфейса от контроллера диска
до центрального процессора может очень сильно ограничить производительность. Чем меньше
параметр IO Delay, тем меньше задержки в системе. Эти задержки могут быть вызваны
массой причин - заторможенность этой версии Windows (на x64 задержка больше), этого
драйвера диска (особенно может вредить включение NCQ), какая-то 'умная' программа кеширования,
вносящая лишнее время на передачу данных, набор микросхем, контроллер, да и сам HDD. |
|
MarkViewer (Win) 1.2008 ![]() |
У продуктов фирмы Futuremark есть одна особенность, если я не ошибаюсь, то в них сохранение
результатов ведется в похожем формате. Сам же просмотрщик фирмой Futuremark не выпускается
в принципе. Очень мило, очень мило. Ну чтож, значит напишем свой в'ювер. :) |
|
C&QС2 (Win) 6.2008 ![]() |
C&QС2 - реинкарнация C&QnF2 для процессоров Intel Core2. Принципы схожие,
только меняется не FSB, а множитель..... ну и напряжение, конечно. |
|
CST (CPU Stress Test) (Win) 8.2009 ![]() |
CST - программа тестирования устойчивости процессора на интенсивную нагрузку в приложениях с применением команд SSE. Сейчас идет отказ от применения FPU в пользу SSE и данный тест может быть полезен. Не претендует на всеобщий тест SSE, но достаочно эффективно нагружает процессор. Программа находится в состоянии тестирования (альфа версия). |