Дефекты BIOS и проблемы совместимости
6.4. Дефекты BIOS и проблемы совместимости
Независимо от количества затраченного времени и усилий на разработку программ BIOS, в ней иногда обнаруживаются ошибки (особенно в новейших системах). Прежде чем начинать диагностировать неисправности, полезно познакомиться с узкими местами BIOS.
Не секрет, что ни одна BIOS не может обслуживать все разнообразие существующей компьютерной аппаратуры и успевать за развитием устройств, которые должны поддерживаться со стороны BIOS. Разработчики компьютерных технологий решили эту проблему в использовании драйверов устройств. Первые модели дисководов CD-ROM являются прекрасной иллюстрацией сказанному. Каждая из моделей дисковода CD-ROM использовала свои собственные схемы для управления накопителем и взаимодействия с компьютером. Идентифицировать произвольный накопитель или интерфейс не могла ни одна прикладная программа, ни DOS, ни BIOS. Для решения этой задачи в обычную память при запуске компьютера с диска загружается низкоуровневый драйвер устройства. Драйвер преобразует стандартные вызовы операционной системы в команды, необходимые для работы адаптера и накопителя. После загрузки драйвера в DOS также загружается программа MSCDEX. Она совместно с MSDOS.SYS обеспечивает прикладным программам доступ к дисководу CD-ROM, аналогичный доступу к жестким и гибким дискам. Проще говоря, все драйверы устройств являются дополнением BIOS и предназначены для организации взаимодействия операционной системы с конкретной аппаратурой. Видео, SCSI и сетевые адаптеры также используют драйверы устройств.
Современные версии BIOS идентифицируют и поддерживают работу загрузочных дисководов CD-ROM, которые соответствуют стандарту EI Torito.
6.4.1. Использование теневого ОЗУ BIOS
Другой проблемой использования микросхем BIOS является традиционно низкая скорость их работы. Современные BIOS записывается в перепрограммируемую микросхему ПЗУ, для перезаписи которой не нужно специальное устройство. Старые версии BIOS записывались в обычные микросхемы ПЗУ, для записи которых используется отдельный программатор. Использование для хранения BIOS постоянного запоминающего устройства (ПЗУ) обуславливалась необходимостью сохранения данных BIOS даже во время выключения питания компьютера. К сожалению, устройства постоянной памяти (ПЗУ) имеют очень большое время доступа (от 150 до 200 не) по сравнению с обычной памятью, используемой в компьютерах (время доступа к которой не превышает 70 не, а у современных видов гораздо меньше). Поскольку записанные в ПЗУ служебные программы BIOS используются постоянно, то обращение к медленному ПЗУ приводит к существенному снижению общей производительности системы.
Решение этой проблемы заключается в уменьшении времени доступа к ПЗУ BIOS. Однако это сложный путь, учитывая современный уровень полупроводниковой технологии. Поэтому разработчики ПК нашли альтернативное решение — использование теневого ОЗУ (ROM shadowing). Идея состоит в копировании содержимого микросхемы ПЗУ BIOS в верхнюю область памяти ОЗУ (upper memory area, UMA). После копирования система может работать с копией BIOS, а не с оригиналом. В результате время доступа к служебным программам BIOS становится равным времени доступа к быстрому ОЗУ. Использовать теневое ОЗУ можно как для системной BIOS, так и для любой другой BIOS компьютера (наиболее часто теневое ОЗУ используется для видео BIOS). Использование теневого ОЗУ можно разрешать или запрещать с помощью программы CMOS Setup.
Теневое ОЗУ можно успешно использовать не для всех BIOS. Возникающие при этом проблемы могут приводить к нестабильной работе системы и ее зависаниям. При возникновении проблем с настройкой системы всегда следует рассмотреть вариант отключения всех теневых ОЗУ. Позже можно вновь разрешить использование теневого ОЗУ, если проблема окажется не в этом.
Бесплатная лекция: "Обязанности ответственного за газовое хозяйство" также доступна.
6.4.2. Непосредственное управление аппаратурой
В гонке за использованием каждого тактового импульса с целью повышения производительности системы даже наиболее элегантно написанные BIOS оказываются слишком медленными для удовлетворения нужд высокопроизводительных приложений. Если бы прикладная программа могла бы работать с аппаратурой непосредственно, то это привело бы к существенному увеличению производительности (особенно дисковых и видеосистем). Идея непосредственного управления аппаратурой не нова — в персональных компьютерах, предшествующих IBM совместимым, прикладные программы управляли аппаратурой напрямую. Использование BIOS было введено компанией IBM для того, чтобы вносимые аппаратные изменения оставались совместимыми с операционной системой и прикладным программным обеспечением. Как оказалось, аппаратные функции современных компьютеров являются стандартизированными (несмотря на то, что реальные компоненты могут сильно отличаться). Используя эту широкую базу относительно стандартизированных функций, разработчики программного обеспечения возродили метод прямого управления и игнорируют служебные функции BIOS, используя драйверы или служебные утилиты, написанные для данного приложения. Например, мощный ускоритель трехмерной графики 3Dfx Voodoo 3 работает с помощью драйверов, которые не ис пользуют служебные программы BIOS.
Такой подход имеет существенный недостаток: прямое управление аппаратурой может работать не на всех системных конфигурациях, и любые изменения в аппаратуре компьютера (например, обновление или замена некоторых компонент) могут привести к тому, что система не будет функционировать нормально при выполнении конкретного приложения или драйвера.
6.4.3. Программные ошибки BIOS
Как и любой программный продукт, BIOS может содержать в себе ошибки или недочеты. После разработки BIOS она дублируется в тысячах экземпляров и продается производителям системных плат, которые устанавливают их на свои изделия. Когда в BIOS присутствует ошибка, то система может зависать, рушиться непредсказуемо или при выполнении некоторых операций. Поскольку одна и та же версия BIOS используется на разных системных платах, то ошибка может и не проявиться в каждом случае. Например, некоторые пользователи AMI BIOS (датированной 04/09/90 и позднее) сообщают о проблемах с контроллером клавиатуры при работе операционных систем Windows или OS/2. Ошибки BIOS наихудшим образом сказываются на работе компьютера. Если ошибка присутствует в прикладной программе, то ее можно не использовать. BIOS отключить нельзя, поэтому при наличии в ней ошибки можно либо заменить микросхему BIOS, либо записать в микросхему новую версию BIOS, либо заменить системную плату.
Если пользователь имеет претензии к работе ПК, то вначале надо связаться с производителем BIOS (через службу технической поддержки или сайт в Интернете) и узнать, нет ли обнаруженных ошибок в этой версии BIOS при использовании конкретных моделей системных плат. Например, некоторая версия Phoenix BIOS может иметь симптом неисправности при ее использовании на конкретной системной плате компании Intel. Если симптомы вашей неисправности совпадают с другими обнаруженными симптомами, то замена BIOS позволит сократить срок простоя неисправного компьютера.