
Извините за водяной знак, случайно включил его при съемке
Здравствуйте, дорогие подписчики и читатели!
Эволюция ретро-системы
Четыре года назад я делился опытом настройки ретро-компьютера для DOS и ранних игр Windows 98. Основой служил системный блок Acer. В результате естественного отбора и выхода из строя нескольких материнских плат, мне удалось собрать интересную конфигурацию: материнская плата Asus TXP4 на чипсете i430TX с процессором Intel Pentium 233 MMX, видеокарта ATI 3D Rage II в паре с Voodoo 2 и недавно собранный клон звуковой карты AdLib. Платы Asus TXP4 не зря считаются находкой для энтузиастов ретро-техники: они поддерживают любые процессоры с разъемом Socket 7 (Intel, IBM, AMD), работают как с блоками питания AT, так и ATX, имеют встроенный контроллер USB версии 1, что позволяет в Windows 98SE использовать флешки и USB-мыши, а также поддерживают память как в формате SIMM, так и DIMM (но не одновременно).
Следуя спецификациям, я решил установить максимально возможный объем оперативной памяти — 256 МБ, используя два модуля DIMM по 128 МБ. В конце 1990-х хороший компьютер на базе первого Pentium имел 16-32 МБ ОЗУ. Мой первый компьютер был с AMD X5-133 и 4 МБ, позже обновленными до 8 МБ, а затем K6-200 с 8 или 16 МБ. Возник логичный вопрос: если есть техническая возможность, почему бы не установить максимум? Однако, как показала практика, иногда лучше этого не делать, и в этой статье я расскажу почему.
Архитектура кэш-памяти Pentium MMX
Как известно, общая производительность компьютера сильно зависит от кэш-памяти. Процессоры Pentium MMX уже имели двухуровневую кэш-память. Кэш первого уровня (L1) состоял из 16 КБ для инструкций и 16 КБ для данных — это была самая быстрая и дорогая память того времени, размещенная непосредственно на кристалле процессора.

Схема архитектуры Pentium MMX для прерывания длительного чтения ;-)
Кэш второго уровня (L2) объемом 512 КБ располагался на материнской плате. Он был медленнее L1, но все же значительно быстрее обычной оперативной памяти и подключался напрямую к процессору. Это позволяло в десятки раз быстрее получать доступ к часто используемым данным, таким как системные переменные.
Ограничения чипсетов эпохи Socket 7
Чипсеты времен Socket 7 имеют особенность: они физически не могут кэшировать весь объем оперативной памяти, который формально поддерживают. В инструкции к моей предыдущей материнской плате, Acer V38X, было четко указано, что независимо от установленного объема ОЗУ, кэшироваться будет не более 64 МБ. В документации к Asus TXP4 об этом прямо не сказано, но ситуация, судя по всему, аналогичная. Я решил это проверить на практике.
Если полностью отключить кэш L2, то производительность компьютера на P233MMX опускается до уровня среднего 486-го (а при отключении и L1 — становится даже слабее 386SX).
Обратите внимание: Необычный мерч Intel времён Pentium II.
Такой прием может быть полезен для запуска очень старого ПО, чувствительного к производительности. Похожая ситуация возникает, когда включенный кэш L2 не "видит" часть адресного пространства оперативной памяти — использование этих адресов приводит к потере производительности. Например, Windows 98 в силу своих внутренних алгоритмов стремится размещать системные переменные по старшим адресам памяти, которые моя материнская плата не кэширует. И не только Windows использует такие принципы, поэтому потеря производительности в некоторых сценариях неизбежна.Практический эксперимент
Недавно я посмотрел отличный видеообзор Артура "СТАРЫЙ РОБОТ" на тему построения компьютера для реверс-инжиниринга, где автор специально обратил внимание на опасности установки избыточного объема ОЗУ в старые системы. Это заставило меня задуматься о 256 МБ на моем P233 и провести собственные тесты.

Не так уж и мало!
Скриншот выше показывает результат тестирования исходной конфигурации: 256 МБ ОЗУ и отключенный файл подкачки. Во всех тестах использовалось разрешение 800x600, цветность 16 бит, графика обрабатывалась Voodoo2. Память работала на скорости доступа 60 нс.
Далее я удалил одну планку на 128 МБ, временно оставив файл подкачки отключенным:

Затем заменил оставшуюся планку на 128 МБ двумя по 32 МБ (итого 64 МБ) и включил файл подкачки, так как некоторые тесты без него не запускались:

Практика – главный критерий проверки истины!
Выводы и рекомендации
Уменьшать объем памяти ниже 32 МБ обычно нецелесообразно — начинает сильно сказываться частое обращение к файлу подкачки на медленном жестком диске. Однако эксперимент наглядно подтвердил гипотезу: переход с максимально разрешенных 256 МБ на максимально кэшируемые 64 МБ улучшил общую производительность системы примерно на 10%. В некоторых сценариях, когда программа активно использует "некэшируемые" адреса, прирост может быть еще значительнее.
Уменьшив объем памяти в 4 раза, мы не потеряли в функциональности, поскольку игры эпохи Socket 7 редко требовали даже 64 МБ ОЗУ. Более того, я подозреваю, что некоторые прежние глюки и сбои в играх вроде Interstate'76 и Parkan могли быть вызваны именно "несварением" чипсета из-за избыточного объема памяти. Сохраненные сейвы для этих игр теперь используют другие адреса, и стоит попробовать пройти их заново.
Таким образом, главный вывод — в мире ретрокомпьютеров умеренность и соответствие спецификациям эпохи часто важнее максимальных цифр на бумаге. Желаю всем удачи в настройке своих исторических систем! Спасибо за внимание и до новых встреч!
[Моя] IBM PC Pentium mmx3dfx3dmark Ретро-игра, длинная статья 6Больше интересных статей здесь: О гаджетах.
Источник статьи: Pentium-233 MMX: ретрокомпьютер оперативкой не испортишь?.