Наборы для бюджетного апгрейда системы с использованием процессоров следующего поколения существовали с самого начала эпохи IBM PC-совместимых компьютеров. Железо в те времена было проще, и адаптировать, например, 386-й процессор для 286-й материнской платы не составляло особого труда. Конкуренция на рынке интегральных схем была выше: помимо нынешних Intel и AMD на процессорном рынке присутстовали компании Cyrix, Texas Instruments и IBM. Индустрия еще не до конца избавилась от наследия ранних времен, когда выпуск процессоров разными компаниями по общим спецификациям был обычным делом. Но и реверс-инжиниринг никто не отменял, из-за чего иногда получались совсем интересные экземпляры, вроде бы совместимые с «оригиналами», но имеющие массу собственных фич.
В 2020 году апгрейдить старую систему наверное вовсе не имеет смысла, только если из любопытства. Проще построить настоящий 486-й компьютер, если уж захотелось. Но в итоге я повторил путь владельца 386-го компьютера, который хочет сэкономить, повышая производительность малыми усилиями. Итак, представьте себя на месте обеспеченного фаната компьютеров году этак в 1994-м. Вы только что завершили удачную сделку, обменяв вагон зерна на гараж в Подмосковье, а его — на два подержанных «Запорожца». Продав их на авторынке, вы получаете небольшую сумму наличными, слишком мало для нового ПК на базе 80486 или даже на «Пентиуме». А хочется наконец нормально поиграть в Doom. Что делать? Сейчас расскажу.
Все статьи по теме:
0. 1992 год в компьютерной прессе
1. Рассматриваем материнскую плату 386-го компьютера
2. Бенчмарк 386-го процессора и лихие девяностые
3. Трудный выбор звуковой карты для DOS-игр
4. Особенности Sound Blaster Pro 2
5. Roland MT-32, альтернативный звук для DOS-игр
6. Беспощадный апгрейд 386-го ПК — < — вы находитесь здесь
Дневник коллекционера старых железок я веду в Телеграмме.
Беспощадный апгрейд материнской платы
К счастью мне не пришлось торговать на рынке «Запорожцами», а апгрейд компьютера я начал с замены материнской платы. Напомню, изначально у меня была вот такая матплата для 386-го процессора:
Еще в прошлом году в процессе покупки комплектующих я приобрел еще одну матплату «без гарантии работоспособности», с традиционно вытекшей батарейкой, но с 256 килобайтами кэш-памяти. Плата оказалась вполне рабочей, а ущерб от электролита — минимальным. На фото установлена уже новая батарея:
Модель матплаты — ISA-386SIQ. На сайте stason.org есть ее спецификации, где говорится, что производитель платы — компания Asus. На самой плате это нигде не указано. BIOS этой модели чуть более современный: есть утилита для работы с жестким диском для низкоуровневого форматирования, но по-прежнему нет автоматического определения параметров. Можно пропустить тест оперативной памяти выше 1 мегабайта, таким образом ускорив загрузку и отключить кэш-память. Но самое главное: на этой плате есть два дополнительных восьмибитных слота расширения, и всего на нее можно установить восемь плат вместо шести. В один из восьмибитных портов будет установлен MIDI-интерфейс HardMPU для синтезатора Roland MT-32. Со временем я ожидаю нехватку слотов, поэтому такое расширение возможностей очень кстати.
При замене платы нужно было убедиться, что изначальный набор из процессора AMD Am386DX-40 и сопроцессора работает с той же производительностью. Для этого я использовал бенчмарк System Speed Test или SpeedSys:
По сравнению с предыдущими замерами разница небольшая: немного уменьшилось количество баллов в тесте процессора (6.85 вместо 7.07), но заметно выросла скорость работы с памятью, с 27 до 31 мегабайта в секунду при работе с кэш-памятью и с 12 до 17 МБ/c для обычной памяти. Скорее всего это связано с единственным даунгрейдом в новой конфигурации: я уменьшил объем RAM с 32 до 16 мегабайт. Даже 16 мегабайт для такой системы много, а 32 приносили массу неудобств (долгое тестирование при загрузке, ошибки в некоторых старых программах и играх). Ожидаемого прироста производительности в Windows 95 не произошло: на 386-й платформе эта ОС судя по всему ограничена возможностями процессора, а не объемом памяти.
Добавим еще один бенчмарк: классический CheckIt, многофункциональную утилиту для оценки параметров работы системы. Он возвращает две цифры: производительность при целочисленных операциях и при вычислениях с плавающей запятой. Иными словами, тестируются возможности центрального процессора и сопроцессора 80387, что нам пригодится при следующем апгрейде. Заодно CheckIt сравнивает мощность ващей системы с компьютером IBM PC XT (1983 год, процессор Intel 8088 на 4.77 мегагерца). Пока получается в 34 раза быстрее, но это только начало.
Беспощадный апгрейд сопроцессора
Не то, чтобы обязательный апгрейд (обязательных в этой статье вовсе нет), но после того, как я начал собирать кусочки кремния с позолоченными ножками, было трудно остановиться.
Cyrix FasMath считается одним из самых быстрых сопроцессоров для 386-х систем. Само по себе это приносит пользу только в небольшом числе специализированных программ, но при апгрейде выяснилось, что с новыми процессорами исходный чип IIT «не дружит» — компьютер просто не загружался. С FasMath все отлично работало, а раз так, давайте посмотрим, что это нам дает.
Not Much. 3% прироста производительности FPU. Польза Cyrix FasMath именно в том, что он стабильно работает с более быстрыми процессорами.
К двум синтетическим бенчмаркам мне хотелось добавить какую-то реальную программу. Doom здесь идеально подходит: игра реально хорошо работает именно на 486-х системах, на 386-х тормозит, и вполне логичным для владельцев таких «устаревших» компьютеров был бы апгрейд, чтобы «Дум» работал. Я тестировал Doom на «максимальных» настройках графики (по сути, с изображением на полный экран, даже без строки меню). Стартовый результат для 386DX-40 — 6.61fps.
Half measures. Cyrix Cx486DLC-40 или TI TX486DLC-40
Какие вообще существуют отличия у процессоров 80486 от 80386? 486-е процессоры имеют «набортную» кэш-память (сначала 8 килобайт, позже было и 16), блок вычислений с плавающей запятой встроен (больше нет необходимости во внешнем сопроцессоре, хотя выпускались модели 486SX без FPU), оптимизированный вычислительный конвейер, выполняющий некоторые операции за меньшее количество тактов, новые инструкции. Первые процессоры 1989 года имели частоту 20 мегагерц, в 1991 году был выпущен процессор с частотой 50 мегагерц, после чего была внедрена практика удвоения, утроения и даже учетверения частоты. Это было необходимо, так как бесконечно повышать частоту системной шины невозможно — уже на 50Мгц наблюдались проблемы с периферией на шине VLB. Первые процессоры 80486DX2 имели частоту от 40 до 66 мегагерц, при частоте системной шины 20-33 мегагерца. Изменился и сокет — 386-е процессоры имеют 132 ножки, у 486 их 168 (позднее — 169, 237 и 238, в зависимости от модели).
Но это настоящие 486-е. Выпущенные в 1992 году процессоры Cyrix Cx486DLC были, во-первых, результатом «clean room» реверс-инжиниринга, а во-вторых — имели не все возможности полноценных 486-х процессоров. Кэш-память на кристалле имелась, но меньшего объема, всего 1кБ. Блок FPU отсутствовал — для этих процессоров необходим внешний сопроцессор. Википедия описывает эти чипы как «ядро от 386 с кэш-памятью и поддержкой инструкций от 486». Иными словами, не стоит ждать от Cx486DLC или TI 486DLC (это по сути одинаковые процессоры с разными лейблами) с частотой 40 мегагерц такой же производительности, как у полноценного 80486 с такой же частотой.
Зато для 386-го компьютера это самый простой и самый легкодобываемый апгрейд: вынимаете Am386, вставляете Cyrix и всё работает. Проблемы могут возникнуть только с кэш-памятью: для некоторых систем ее нужно принудительно «включать» специальной утилитой:
В моем случае даже утилита не требуется: кэш-память включена по умолчанию. Но здесь становится понятно, что мы начинаем использовать не самые стандартные решения. BIOS сообщает нам, что на матплате установлен какой-то «80486», даже без указания частоты. Speedsys, способный определять кэш-память первого уровня в процессоре, не видит таковую у Cyrix/TI, а частоту определяет неправильно. Не видит кэш и специализированная утилита CacheCHK, и проверить работоспособность можно только путем принудительного выключения и сравнения. Итак, результаты для 486DLC-40 без кэш-памяти:
Прирост производительности на 21% в CheckIt и 31% в SpeedSys. В Doom получилось 7.45fps, +12%. Включаем килобайт кэша обратно и смотрим, есть ли разница:
Еще как есть! По сравнению с базовой конфигурацией прирост на 33%, в SpeedSys — 42%. В Doom — 9.64fps, +45%. Даже производительность FPU по данным CheckIt выросла на 43%. На этом мне бы остановиться и успокоиться, но хотелось еще чуть больше мощности. «Апгрейды» 386-486 выпускали многие компании, но проблема в том, что эти процессоры сейчас не так легко найти. Подозреваю, что апгрейд 386-х систем быстро перестал быть актуальным, и более мощные решения хоть и были доступны, но продавались уже совсем небольшими тиражами.
Full measures. TI 486 SXL2-50
Мне повезло, я купил новый коробочный набор для апгрейда 386-го компьютера. Это было недешево и, как я уже не раз говорил, достаточно бессмысленно. Но покупать что-то очень древнее в состоянии «как тогда в магазине» — это особая радость для любого коллекционера старого хлама.
Внутри инструкция по установке (с ошибкой в самом важном месте — где указано как ориентировать процессор относительно матплаты!), процессор TI 486 SXL2-50 в исполнении PGA168, адаптер PGA168-PGA132, небольшой радиатор на термоскотче, дискета с драйвером и крайне полезный инструмент для аккуратного извлечения процессоров из сокета.
Адаптер оказался несколько сложнее, чем простое подключение одних ножек к другим.
Процессоры SXL2-50 также были доступны в версии, вставляющейся в 386-й сокет напрямую, без адаптеров, но так даже интереснее. Данный апгрейд принес с собой новый набор проблем. Процессор TI применяет удвоение частоты — при штатных 25 мегагерцах работает на пятидесяти. Частота системной шины на моей материнской плате — 40 мегагерц, и понятно, что на 80Мгц с удвоением этот процессор не заработает. Как поменять частоту на матплате? Сейчас это можно сделать прямо в BIOS, на настоящих 486-х — джамперами, но на 386-м есть только один способ: заменить генератор частоты.
Пока я заказывал и ждал доставки подходящих кварцевых генераторов, ничто не мешало попробовать запустить этот процессор на частоте 40 мегагерц без удвоения. 486 SXL2 оснащен кэш-памятью объемом 8 килобайт, как у «взрослых» 80486, что само по себе должно обеспечить прирост производительности.
В отличие от DLC40 с килобайтным кэшэм, Speedsys распознает 8 килобайт кэш-памяти SXL2. Скорость обмена данными, тем не менее, лишь немного быстрее, чем скорость работы с кэшем на материнской плате: 35 мегабайт в секунду против 31. В Pentium III встроенный кэш первого уровня работает в полтора раза быстрее. Тем не менее, мы имеем прирост (по сравнению с базовым 386DX-40) на 42% по версии Speedsys.
Так адаптер и сам процессор выглядят на материнской плате. Длинные платы расширения могут в такой конструкции упираться в радиатор:
+51% в CheckIt. Производительность в Doom выросла до 10.37fps, +56%. Я разогнал свой 386-й ПК в полтора раза! Вернемся к частоте системной шины. Для работы процессора на 40 мегагерц требуется кварцевый генератор на 80 Мгц, соответственно, чтобы получить 25Мгц я заказал новый генератор на 50. Уменьшение частоты системной шины — спорное решение, оно несет падение скорости работы с оперативной памятью и кэшем. Сможет ли удвоение частоты процессора это компенсировать? Результаты тестов на честных 25 мегагерцах вернули производительность системы на уровень исходного 386DX-40. Включаем удвоение: это делается с помощью консольной утилиты, запуск которой придется прописать в autoexec.bat. Итак, финальные результаты:
20904 балла в CheckIt, прирост на 76%, в 60 раз быстрее IBM PC XT! А вот скорость вычислений с плавающей точкой упала — из-за более низкой частоты системной шины.
А вот результат в Speedsys оказался меньше, чем в режиме 40Мгц без удвоения. Скорость работы кэш-памяти на кристалле повысилась, скорость работы кэш-памяти на матплате и обычной ОЗУ — упала. Cнизились результаты измерений пропускной способности видеокарты и жесткого диска. Самое главное, результат в Doom, как в реальном приложении, остался тем же, что и в режиме «40 мгц без удвоения» — 10.39 fps против 10.37.
На этом я данный квест пока закончу, хотя здесь есть способы повысить производительность еще больше. Можно ли данный процессор разогнать? Попытка запустить его с частотой 33Мгц и удвоением частоты процессора до 66Мгц провалилась — не стартует. Судя по отзывам на форуме Vogons, максимум возможного здесь — 55 мегагерц на процессоре и 27.5 на шине. Можно попробовать изменить настройки работы самого процессора — их там довольно много, и не все оптимизации включены по умолчанию.
Наконец, можно попробовать добыть либо еще более мощный «апгрейд», либо полноценный активный адаптер, позволяющий установить «настоящий» 486-й. Но подождите, ведь имеющийся у меня адаптер позволяет установить 486-й процессор. Главное соблюсти требования по питанию — модель должна быть с рабочим напряжением 5 вольт. И я конечно попробовал, и конечно у меня не вышло — процессор IBM DX2-66 с картинки выше, проверенный на нормальной 486-й матплате, на 386 не заработал. В идеале нужно искать процессоры IBM серии Blue Lightning, предназначенные для работы на 386-х системах. Такие выпускались с частотами вплоть до 100 мегагерц, но ныне являются коллекционной редкостью. Наконец, в этом треде на форуме Vogons вы можете увидеть бенчмарки 386-го ПК с процессором AMD Am5x86 на 160 мегагерц, установленным через более сложный (чем у меня) адаптер 486HPi. Это очень быстрый 386-й, но такой же процессор на такой же частоте, установленный в нормальную 486-ю матплату, работает в среднем в полтора-два раза быстрее.
Кстати, как мой франкен386 в сравнении с настоящей системой на 486-м процессоре? Чуть позже я выясню это на практике, но пока можно посмотреть в это большое сборное тестирование 80486 на форуме Vogons. В тесте Speedsys сравнимые 9.1 балла набрал дешевый 486SX с частотой 25 мегагерц. Результат 486DX-33 — 12.5 балла.
Цены
Сколько стоил такой апгрейд? В журнале PC Magazine за июнь 1994 года указаны следующие цены:
145 долларов ($250 с учетом инфляции) за Cyrix или TI 486DLС-40 — это пожалуй самая лучшая покупка, 33-50% прироста производительности после самого простого апгрейда. TI SXL2-50 стоит 299 долларов ($515), и это уже сомнительное приобретение: две цены 486DLC дают всего 30% прироста производительности в лучшем сценарии, и 7% в Doom. Но обратите внимание на широчайший ассортимент: апгрейд до «типа 486» был возможен даже на 16-разрядных системах с процессорами 80286 или 386SX. В наличии даже IBM BL3 с утроенной частотой в 100 мегагерц и стоимостью в 749 долларов ($1292).
Насколько это было оправдано? Новый компьютер на базе процессора 80486 с частотой 66 мегагерц (25 баллов в Speedsys, в три раза быстрее моего компьютера после апгрейда) стоил 1300-1600 долларов ($2250-2700), но это система с корпусом, клавиатурой и монитором. Самостоятельный апгрейд тогда был менее распространен, но реклама выше дает примерное представление о таком варианте. Материнская плата с тем же DX2-66 стоит 430 долларов ($740). Скорее всего вам придется докупить и память, и видеокарту стандарта VLB — тот же Doom в какой-то момент упирается именно в производительность 16-разрядного видео, а не в процессор. Вывод такой: если вы сами делали апгрейд в 1994 году, то он был вполне оправдан, но не стоило ожидать производительности, равной «реальному» 80486. Гораздо хуже, если вам под видом (и по цене) настоящего 486-го продавали вот такой DLC. Примерно по такому сценарию мне в 2001 году продали Celeron под видом настоящего Pentium III. Но это уже совсем другая история.
Итоговая таблица с результатами. Доступна на Google Docs тут.
Выводы
Таким вот неоднозначным (и недешевым, если учитывать стоимость запечатенной коробки с TI SXL2) методом я добился возможности играть на 386-м компьютере в Doom не только на минималках. Показатели «на полном экране» по-прежнему далеки от идеальных, но если немного уменьшить размеры окна, то все вполне работает. Конечно же я задавался таким типичным вопросом коллекционера: вот только что у меня был аутентичный 386-й, а теперь непонятно что, какой-то 486 на минималках, и зачем это всё? Наверное мне было важно повторить экспириенс владельца такой системы в начале девяностых. Я получил очень нестандартную систему, которая по-прежнему совместима со старым железом и софтом. При желании, я могу ее «тормозить» до уровня 386 или даже 286-го ПК: отключать удваивание частоты, кэш на процессоре и матплате. Удовольствие от вращения старых железок, которые, к тому же, работают и даже не глючат — оно стоит затрат.
Таким образом я финализировал базовую конфигурацию своего 386-го компьютера. Получилось вот что:
- Процессор TI SXL2-50 c 8кБ кэш-памяти
- Материнская плата с 256 кБ кэш-памяти (20ns) и 8 слотами расширения ISA
- 16 мегабайт оперативной памяти с контролем четности (4 модуля 4МБ 60ns)
- Видеокарта Diamond SpeedStar Pro с чипсетом Cirrus Logic GD5426 и 1 мегабайтом памяти
- Мультикарта на чипсете WinBond с контроллерами IDE, FDD, двумя последовательными и параллельным портами
Жесткий дискФлешка на 256 мегабайт в адаптере IDE-CF- Звуковая карта Creative Sound Blaster Pro 2
- MIDI-контроллер HardMPU и внешний синтезатор Roland MT32
Строительство продолжается!
mistergrim
f15 Автор
Это «вычисление без вывода на экран»? Спасибо, попробую. На 486 апгрейд видеокарты с ISA на VLB повышает fps чуть ли не в два раза на том же процессоре.
mistergrim
Что характерно, в Linux-версии, где используется обычный режим 13h, DOOM работает значительно шустрее.
old_gamer
Есть приличное число плат с 386м сокетом и поддержкой VLB. Правда это уже адский франкенштейн будет )
f15 Автор
Эм, я про такие только на Vogons читал, так что утверждать не могу. Но вроде как это только гибридные платы с возможностью установки как 386, так и 486-х процессоров. И VLB у них работает только с 486, так как эта шина сильно завязана на него.
Вот на EISA бы 386-ю плату найти, эх.
old_gamer
Ну почитайте на хабре )))
habr.com/ru/post/413997
Тут я в части статьи про 386 как раз использовал такую гибридну плату с 386м процессором и картой cirrus logic для шины VLB. Даже на 33 МГц 386м интеле VLB-карта работает сильно быстрее, чем ISA. Были такие платы и без сокетов под 486й, например вот:
stason.org/TULARC/pc/motherboards/U/UNIDENTIFIED-486-PANDA386V.html
f15 Автор
Спасибо, перечитал еще раз :) Приятно видеть практическое подтверждение работоспособности такой схемы.
old_gamer
Кстати, насчет EISA. Найти такую плату — пол дела. На EISA плате не на всякой даже ISA карты заработают. Для каждой платы в EISA нужен configuration file, который показывает шине, как конфигурировать ресурсы платы. Это не драйвер, которые довольно легко найти, а отдельных файл. На тех EISA платах, что использовал я, для ISA-плат был generic EISA configuration file, но для каждой EISA-платы нужен был свой.
f15 Автор
Ага, то есть желательно искать готовый системный блок, причем с живым жестким диском. Вот это конечно был бы совсем элитный ретрокомпьютер.
old_gamer
Да, крайне интересно было бы. Найдете, напишите обязательно про него!
uanet
Я, наверное, чуть не единственный, кто поставил в систему с Pentium-75MHz (кажется, тогда или 8МБ, или 16МБ памяти стояло) 8-бит ISA VGA 256KB (Realtek? или что-то такое — эти адаптеры приехали с дарёнными ХТ-шками в КПИ — модные ХТ-шки были, целых 2 класса). Doom2 весьма тормозил, но всякие LHX/Retal — нормально. Когда накопил на S3 Trio 64V+ — вот то прорыв был! А ещё Stacker 4.0 и хард 3,5" высотой в 2 «обычных» на 40МБ с шаговым двигателем и 80КБ/с трансфером — стэкер с пнём и кучей памяти реально спасали! А ещё была тема — стэкер на рам-диске :). А потом появилась памятесжималка для Вин-3.11… Во времена были — теперь снова есть памятесжималки в линуксах и виндах, 20 лет прошло…
axe_chita
Эта «сжималка» памяти для Win3.11 входила в QEMM 7.5 и выше (если ничего не путаю)
f15 Автор
Прогнал. Результаты интересные:
Процессор-частота / Realtics / FPS
386-40 / 480 / 155
SXL2-25 / 511 / 93
SXL2-50 / 313 / 238
Неужели Doom настолько зависит от пропускной способности видеокарты? В целом результаты правдоподобные, соотношение между 386-м и SXL2 без удвоения частоты сохраняется (второй совсем чуть-чуть быстрее первого в обычном режиме, и чуть медленнее с nodraw). А вот разница между SXL2 на частоте 25 и 50 мегагерц значительная, прирост на 53% вместо «околонуля».
Или же я где-то что-то сделал не так :)
progman_rus
осмелюсь предположить что тут в fillrate всё упирается.
PS «максималка» у вас это 640х480 или 320х200?
Fenzales
mistergrim
Плохо не то, что попиксельно, а то, что попиксельно напрямую в видеопамять, да причём пиксели рисуются не последовательно, а колонками.