Извините за вотермарки, случайно включил при съемке
Здравствуйте, дорогие подписчики и читатели!
Четыре года назад я рассказывал о том, как настраивал ретро-компьютер для DOS- и ранних Win98-игр. Базой послужил брендовый системный блок Acer. Путем естественного отбора (и гибели некоторых плат), в нем окончательно прижились Intel P233MMX, материнская плата ASUS TXP4 на чипсете i430TX, видеокарта ATI 3D Rage II в связке с Voodoo 2 и новодельная реплика AdLib Soundcard. Материнская плата TXP4 не зря имеет репутацию "находка для ретрокомпьютера": можно установить любой процессор Intel/IBM/AMD c Socket 7, питается от блоков питания с разъемами AT и ATX, имеет встроенный контроллер USB первой ревизии и в Win98SE свободно работает с флешками и USB-мышью, а память для нее подойдет и на SIMM, и на DIMM модулях (но только не одновременно). Оперативку я тогда решил поставить вообще максимального объема, предусмотренного спецификациями - 256 Мб двумя планками DIMM по 128 Мб. В конце 1990х хороший комп на первом "пне" имел 16 Мб ОЗУ, а отличный 32 Мб. У меня был сначала AMD X5-133 c 4 Мб и апгрейдом до 8 Мб, а потом, кажется K6-200 c 8 или 16 Мб. Чего бы теперь не попробовать экстрима, если могу? О том, что лучше так не делать - как раз эта заметка.
Не секрет, что общее быстродействие компьютера во многом определяется кэш-памятью. У поколения Pentium MMX кэш был предусмотрен уже двух уровней. Первый уровень L1 (16 кб кэш команд + 16 кб кэш данных) сделан из самой быстрой и дорогой на тот момент памяти и располагается непосредственно на кристалле процессора.
Схема архитектуры Pentium MMX для перебивки лонгрида ;-)
Кэш L2 размером 512 кб располагается уже непосредственно на материнской плате, но он и быстрее обычной ОЗУ, и подключен к процессору напрямую. Таким образом наиболее часто используемые данные из оперативки (типа системных переменных) всегда под рукой и могут быть получены в 10 раз быстрее, чем обращением к стандартной памяти. Особенность чипсетов эпохи Socket 7 в том, что они не умели кэшировать весь объем оперативки, который новые контроллеры памяти формально типа допускали устанавливать. В мануале предыдущей материнки этого компьютера Acer V38X (убившей мне две Voodoo нестандартным вольтажом) явно было обозначено, что сколько оперативки ни поставь - кэшироваться будет не более 64 Мб. У TXP4 это явно не прописано, но по факту, скорее всего, ситуация такая же. И это мне удалось наглядно протестировать, о чем далее.
Если кэш L2 полностью выключить, то компьютер с P233MMX по быстродействию превратится в средненький 486й (а если отключить еще и L1 - он станет работать слабее 386SX). Этот трюк хорош, когда надо запустить совсем древний софт, чувствительный к производительности. А если включенный L2 не видит часть ОЗУ, то ситуация будет похожа - работа с этими адресами будет просаживать производительность. Например, Win98, в силу внутренних алгоритмов, всегда будет стремиться записать системные переменные в самые верхние адреса, где их моя материнка никогда не прокэширует. Да и не одна винда такими правилами пользовалась - так что потери производительности обеспечены.
Недавно вышли великолепные видео-обзоры уважаемого Артура "OLD ROBOT" (@Ar2r4eg) на Дзене на тему "Какой ретрокомп себе собрать", где автор отдельно обратил внимание на вред лишней оперативки в ранних системах. Я ознакомился, вспомнил про свои монструозные 256 Мб на P233, решил - хватит это терпеть! И немного поэкспериментировал.
Выше на снимке с экрана - результат тестирования исходной конфигурации, 256 Мб ОЗУ и выключенный файл подкачки. Во всех тестах отключены тесты с текстурами 32 и 64 Мб, остальное включено. Разрешение 800х600, 16 бит цвет, графику обрабатывает Voodoo2. Во всех вариантах память работает со скоростью доступа 60 нс.
Убираем одну планку 128 Мб, файл подкачки на харде пока не задействуем:
Теперь меняем на 2х32 Мб, включаем файл подкачки (иначе часть тестов уже не запустится):
Практика - главный критерий истины!
Убавлять до 32 Мб и ниже уже вряд ли стоит, начнет давать о себе знать более частое использование файла подкачки на HDD. В целом, всё и так подтвердилось - переход от предельно допустимых 256 Мб к максимальному кэшируемым 64 Мб поднял общую производительность примерно на 10%. Очевидно, что в некоторых ситуациях (когда программа захочет разместиться как можно дальше по адресам) выигрыш окажется заметно выше. Убавив память в 4 раза мы ничего не теряем по возможностям, т.к. ни одна игра, предназначенная для поколения Socket 7, не потребует даже 64 Мб ОЗУ. Подозреваю, что некоторые глюки и вылеты, которые случались ранее на этом компьютере (например, в играх Interstate'76 и Parkan), могли быть вызваны несварением чипсета от избытка ОЗУ. RW-болванки этих игр сейчас записаны уже чем-то другим, но надо будет найти время и снова их попробовать.
Так что остается пожелать всем умеренности и, конечно же, удачи. Спасибо Вам за внимание и до новых встреч!