На первом этапе инициализации практически любое устройство, будь то материнская плата или контроллер SCSI, не проявляет "признаков жизни" (таких, как звуковые сигналы, моргание индикаторов и т. п.).
Второй уровень подпрограмм предоставляет сервисные услуги по диагностике, а иногда даже по устранению различных неполадок. На данном этапе осуществляется окончательная инициализация устройства и вывод результатов самодиагностики (звуковые сигналы на системном динамике, сообщения на экране монитора или, в частном случае, вывод определенных кодов на дисплей диагностического устройства). Это Main Block.
Те же программы осуществляют управление компонентами ПК в таких режимах, как Suspend или Sleep Mode, при работе в среде MS-DOS и т. д.
Еще выделяют области, где хранятся данные ESCD и т. п, но в них хранятся вовсе не программы, а некие значения, необходимые для работы компонентов ПК (рис. 1.4).
Рис. 1.4. Так выглядит общая структура BIOS
Глава 2 Процессы, происходящие при включении компьютера
Любой пользователь на этот вопрос ответит: «Компьютер тестирует память, находит подключенные жесткие диски и загружает операционную систему». Это верный ответ. Но отражает ли он действительную ситуацию? Процесс загрузки по своей структуре довольно сложен. Представлять последовательность событий иногда очень полезно, например, при диагностике неисправностей.
В первую очередь электроника блока питания проходит процесс самотестирования, а уже затем на внутренние компоненты компьютера подается напряжение питания. Это происходит менее чем 0,1–0,5 секунды. По окончании тестов на центральный процессор поступает сигнал RESET. Тот самый, который и вы можете вызвать нажатием кнопки RESET, расположенной на системном блоке. Блок питания, не прошедший самотестирования, не включается, и компьютер, естественно, не начнет свою работу. Делается это для уменьшения вероятности повреждения электроники, а в качестве управляющего сигнала используется специальный сигнал, именуемый как "Power Good" ("хорошее напряжение").
В итоге центральный процессор готов к выполнению программы. Но на данном этапе доступна всего одна программа – некий стартовый блок, записанный в микросхеме постоянной памяти, установленной на материнской плате, являющейся, как все мы знаем, самой главной платой. Благодаря работе этого самого стартового блока появляется возможность запуска других программ, а в итоге и операционной системы.
Сначала осуществляется проверка состояния центрального процессора, его рабочих характеристик. В частности, проверяется напряжение питания, температура, частота системной шины, множитель и т. п. параметры. Если они не соответствуют параметрам, заданным производителем для данной модели процессора, то компьютер может и не включиться, хотя встречаются и исключения. Проверка осуществляется выполнением простейших вычислений, по результатам которых можно определить исправность процессора.
Следующий этап – проверка содержимого микросхемы постоянной памяти, которая является хранилищем не только стартового блока, но и всех остальных подпрограмм, необходимых для осуществления дальнейшей инициализации оборудования, да и для загрузки операционной системы тоже. Обратите внимание, что ошибки в микросхеме ПЗУ могут повлечь за собой невозможность старта компьютера, особенно если речь идет о стартовом блоке. Вот такова зависимость аппаратного обеспечения от программного обеспечения.
Как только система убеждается в целостности программ, записанных в микросхеме постоянной памяти, она начинает последовательно их запускать.
Разработчики х86-х платформ в свое время предусмотрительно встроили в базовую систему ввода-вывода (BIOS) различные процедуры диагностики неисправностей. Весь комплекс по инициализации компонентов ПК и их проверке носит обобщающее название POST (Power-On Self Test, что в вольном переводе обозначает "Самотестирование по Включению Питания").
Перед началом каждой операции POST генерирует специальный код, размером в один байт (от 00h до FFh), называемый POST-кодом, и записывает значение в диагностический порт с адресом 80h, который используется для этих целей еще со времен самого первого компьютера IBM PC. В случае возникновения неисправности процесс диагностики просто останавливается ("зависает"), а POST-код, заранее выведенный на указанный порт, однозначно определяет операцию, при которой возникла неполадка.
Единственный минус подобной системы – таблицы POST-кодов для BIOS разных производителей различны, а в связи с постоянным появлением новых устройств, что приводит к необходимости внесения изменений в соответствующие спецификации, даже у одного производителя для разных моделей устройств могут использоваться не одинаковые таблицы диагностических кодов. Это несколько путает пользователя и мешает достоверно судить об источнике неполадки. Ориентироваться в таком случае приходится на оригинальные разработки, например, компании AWARD (точнее Phoenix под упомянутой торговой маркой). Остается только надеяться, что производители будут упоминать о внесенных изменениях в руководствах по установке материнских плат. В главе 15 приведены POST-коды AVARD BIOS.
Читать дальше
Конец ознакомительного отрывка
Купить книгу