ASTRA32 и ASTRA. Программы определения конфигурации компьютера.
184 subscribers
243 photos
45 files
16 links
Канал разработчика программ определения конфигурации компьютера ASTRA32 for Windows и ASTRA for DOS. Новости, тестирование.
http://www.astra32.com/ru
http://www.sysinfolab.com/ru
Download Telegram
Сделал апгрейд своей EISA платформе на плате DEC Promise, установив Intel DX4 Overdrive 100 МГц.
Материнская плата поддерживает только 5 вольтовые процессоры. Официальный максимум платы - Intel 80486DX2 66 МГц.
Для решения этой проблемы Intel выпускала Overdrive процессоры. DX4 Overdrive начали выпускать в октябре 1994 года.
Данный процессор Intel DX4 Overdrive (DX4ODP100, SZ957) на ядре P24C работает на частоте 100 МГц и имеет вдвое больший (16 кБ) кэш, чем Intel 80486 DX2.
Это самый быстрый 486 процессор, который можно установить на эту плату. Существует так же Intel Pentium Overdrive 82.5 МГц, но его я видел только на картинке.
🔥9👍4❤1
Интересные факты:
1. Почему процессор официально называется DX4, а не 80486DX4? Набор цифр 80486 невозможно зарегистрировать в качестве торговой марки, поэтому маркетологи Intel придумали собственное имя, как поступили за год до этого с новым процессором Pentium, чтобы конкуренты не могли его использовать.
Тем не менее, производители компьютеров и разработчики BIOS продолжали называть эти процессоры 80486, чтобы не путать пользователей (в раскрутку бренда Pentium были вложены большие деньги, чего не скажешь о DX4).
Хотя BIOS данной материнской платы определяет процессор как IntelDX4(TM).
2. Почему DX4, а не DX3? Процессор имеет утроение частоты и логичнее было назвать его DX3. Есть упоминания, что имя DX3 должны были иметь процессоры с умножением 2.5, но они так и не были выпущены.
🔥8👍2
3. Программно определить, что это Overdrive процессор невозможно. Специальный бит Overdrive команды CPUID не используется. Только две ранние версии (DX4ODPR75 и DX4ODPR100 v1.0) использовали этот бит. Похоже, для них создавался свой кристалл. В дальнейшем использовался кристалл штатных процессоров.
Фактически, это обычный DX4 3.3 вольт (CPUID 0480) с регулятором напряжения под радиатором (на фото).
4. Процессор имеет пассивное охлаждение и довольно сильно греется (TDP 5.4 Вт). Без нагрузки в чистом DOS температура радиатора достигает 64 градуса. При этом в Windows NT 4.0 температура намного ниже - 40 градусов. Очевидно, что планировщик Windows NT использует команду HALT во время простоя.
🔥9👍2
5. Данный процессор поддерживает только Write Through (сквозная запись) кэш. К этому времени уже выпускались процессоры с Write Back (обратная запись) кэшем. Но поддержка этого режима кэширования зависит не только от процессора, но и от чипсета. Очевидно, что Overdrive процессоры предназначены для установки в устаревшие платы без поддержки Write Back. Официально Overdrive процессоры с Write Back кэшем никогда не выпускались.

Выводы:
По данным The Speed Test 1.14 быстродействие в целочисленных операциях сопоставимо с Intel Pentium 60 МГц.
🔥8👍2❤1
Вышла новая бета версия ASTRA for DOS 7.21 beta.

Новое в этой бете:
- Добавлено определение sSPEC номера процессоров семейства Intel 486
- Добавлено определение коэффициента умножения процессоров 486
- Исправлено чтение информации DDR5 SPD на чипсетах Intel
- Исправлено определение номера AMD OPN процессоров AMD Athlon/Sempron
- Исправлено зависание программы при определении звуковой карты ESS 1868 в
некоторых случаях
- исправлены некоторые незначительные ошибки
- обновлена база данных программы
👍8
Вышла новая бета версия ASTRA32 for Windows 4.21 beta.

Новое в этой бете:
- Добавлено определение sSPEC номера процессоров семейства Intel 486
- Добавлено определение коэффициента умножения процессоров 486
- Исправлено чтение информации DDR5 SPD на чипсетах Intel
- Исправлено определение номера AMD OPN процессоров AMD Athlon/Sempron
- Исправлено определение некоторых SCSI контроллеров Adaptec в Windows NT 4.0
- исправлены некоторые незначительные ошибки
- обновлена база данных программы
🔥7👍3
Вышла новая бета версия ASTRA for DOS 7.21 beta.

Новое в этой бете:
- улучшено определение процессоров семейства 386/486 (без поддержки CPUID) с помощью метода CPU RESET.
- исправлено зависание программы на процессорах семейства IBM 486SLC/BLX
- исправлены некоторые незначительные ошибки
🔥11👍2
Позавчера вышла новая бета версия ASTRA for DOS.
Расскажу что означает строка "улучшено определение процессоров семейства
386/486 (без поддержки CPUID) с помощью метода CPU RESET".
Современные процессоры определяются с помощью команды CPUID. Но были времена когда в процессорах не было такой команды.
Изначально в IBM PC был возможен только один вариант процессора - Intel 8088 4.87 МГц и проблема как таковая не существовала. С появлением процессора Intel 80286 появилась задача определить на каком процессоре работает программа.
Intel опубликовала официальный способ определения 286 процессора. Он основан на том, что биты 12-15 регистра флагов FLAGS всегда установлены в ноль на 286 процессоре.
Подобная манипуляция с различными битами в расширенном регистре флагов EFLAGS позволяет определить 386 и 486 процессор. Но без деталей. Например, этим методом нельзя определить SX или DX вариант процессора. Тем более нельзя узнать производителя процессора. Только поколение.
Этого недостаточно.
🔥9
Каждое поколение процессора имеет несколько моделей и может использовать разные ревизии ядра с исправленными ошибками. Хорошо бы знать точную ревизию процессора. Поэтому все процессоры от Intel 80386, выпущенного в 1985 году, до современных Core/Ryzen после аппаратного сброса содержат в регистре EDX специальный идентификатор. Этот идентификатор может прочитать BIOS, но он нигде не сохраняется и не доступен для прикладных программ. В некоторых версиях BIOS для IBM PS/2 и старых версиях AMI BIOS есть функция для получения идентификатора из прикладной программы, но я никогда не встречал такой BIOS.
Для решения этой проблемы в процессорах Intel Pentium в 1993 году появилась инструкция CPUID. Она возвращает производителя процессора, семейство, модель и степпинг. Фактически CPUID возвращает тот самый идентификатор из регистра EDX.
Постепенно эта инструкция появилась в новых вариантах 486 процессоров, а так же у других производителей.
Поддержка CPUID появилась в 1993 году у всех Intel 486DX/SX с поддержкой SL Enhanced (функция энергосбережения).
В процессорах AMD 486 поддержка CPUID появилась в версии Enhanced с Write-Back кэшем в 1994 году.
В процессорах Cyrix команда CPUID по некоторым источникам появилась в Cx5x86 в 1995 году, но по умолчанию она отключена. В эмуляторе 86BOX программно включить CPUID не удалось, настоящего Cx5x86 у меня для проверки нет.
Тем не менее, в процессорах Cyrix (начиная с Cx486SLC/DLC, 1992 год) есть свой механизм идентификации с помощью регистров конфигурации DEVID registers (DIR). Доступ к этим регистрам возможен из прикладной программы в любой момент (в отличие от идентификатора в регистре EDX, который так же присутствует в процессорах Cyrix).
Итак, в 1997 году когда началась разработка INFORMER (на Intel Pentium 166 МГц) процессоры без поддержки CPUID считались устаревшими, но еще использовались. Для определения старых процессоров использовалась сторонняя библиотека CPU/FPU feature detection library by B-coolWare. С исправлениями и модификациями эта библиотека используется в ASTRA до сих пор. Есть подозрение, что такие диагностические программы как NSSI и agSI тоже используют эту библиотеку.
Определение основано на анализе ошибок разных версий процессоров и попытке исполнения различных недокументированных команд, специфичных для данного производителя/модели. Точность определения такими методами не очень высокая. Но так как поддержка старых процессоров была сделана по остаточному принципу, то эта библиотека устраивала.
В 2000 году я увлекся ретро компьютерами, стал добавлять поддержку старого железа. В прошлой апрельской бете было добавлено определение sSPEC номера, коэффициента умножения и прочего процессоров семейства Intel 486. Разумеется, только SL Enhanced версий с поддержкой инструкции CPUID.
А как быть с более старыми процессорами Intel/AMD (с Cyrix проблем нет)?
Как я написал выше идентификатор процессора в регистре EDX появляется только после сброса процессора. Казалось бы, невозможно сбросить процессор и остаться в своей программе. Оказалось, что можно.
🔥11