Процесс начальной загрузки.
Схемы | Программы | Библиотека | Все для сотового | Компьютеры | Поиск |
Чат | Форум | Ссылки | Рефераты | Гостевая |
Мало кто из пользователей задумывается над происходящим примерно в течение первых 30 с после включения питания компьютера. Но только до того момента, пока система тем или иным образом не выдаст на этом этапе сигнал "SOS". Большинство действий компьютера на этапе загрузки связано с выполнением тестирования его основных компонентов, включая процессор, память, вспомогательные микросхемы, приводы дисков, клавиатуру и видеоподсистему. Все эти операции являются составными частями одной важной процедуры, которая называется POST (Power On Self Test) - "самотестирование при включении питания компьютера». Как правило, эта процедура выполняется достаточно быстро, исключение, пожалуй, составляют только операции тестирования памяти и проверки приводов флоппи-дисков. Однако не всегда все завершается благополучно, и тогда компьютер реагирует либо выдачей серии гудков динамика, либо высвечивает на экране монитора номер соответствующей ошибки. К счастью, с некоторыми из возникающих проблем пользователь может справиться вполне самостоятельно. Итак, вы включили компьютер. Первое, что можно при этом услышать - это тихий "шорох" лопастей вращающегося вентилятора. Если вентилятор не работает, то необходимо проверить, действительно ли вы включили свой компьютер. Как это ни странно, но до 90% всех «неисправностей" на этом этапе связано, как правило, с элементарной невнимательностью. Например, могут быть отключены мотор-генератор, основной щит питания, бесперебойный источник питания, сетевой фильтр и т. п. На этом этапе неплохо бы проверить (по крайней мере, визуально) и кабель питания компьютера на предмет наличия повреждений. На некоторых компьютерах блоки питания имеют доступные снаружи сетевые предохранители. Наверное, стоит не полениться и проверить их, но только аккуратно, предварительно выключив перед этим компьютер из электрической сети. Если в результате всех проверок оказывается, что питание через кабель должно в принципе подаваться нормально, а компьютер по-прежнему молчит "как рыба", то дело, видимо, в его блоке питания. Если нет навыков работы с паяльником, самостоятельно заниматься его ремонтом, как правило, не рекомендуется. В ремонтную мастерскую лучше доставить весь системный блок. Однако ситуация может быть и несколько иной. Вентилятор работает, но сам компьютер не подает никаких признаков «жизни». Это, в частности, может быть следствием неконтактов отдельных микросхем. В таком случае сначала выключите компьютер из сети, и только после этого откройте крышку системного блока. Заодно проверьте надежность соединения и целостность кабелей, идущих от блока питания к системной плате, приводам дисков и другой периферии. После этого внимательно осмотрите все микросхемы, которые размещаются в специальных панельках (cbp sockets). В этом случае интерес, как правило, представляют в основном микросхемы ROM BIOS, которые расположены на системной плате и на платах адаптеров. На каждую такую микросхему в своей панельке следует аккуратно нажать. Если возможно, то соответствующую плату с панелькой стоит поддержать с противоположной стороны, чтобы избежать недопустимой деформации платы. В любом случае (в большей или меньшей степени) раздается характерное похрустывание. Теперь можно снова попробовать включить компьютер. Результат может превзойти ожидания, и компьютер «оживет». Отметим, что после включения компьютера, примерно 0, 3-0, 5 с выполняется самотестирование блока питания В случае, если все уровни напряжений питания находятся в допустимых пределах, на системную плату поступает сигнал Power Good. Сигнал Р G (Power Good) - питание в норме. Напряжение в 3-6 В вырабатывается через 0 1-0 5 с после включения питания при нормальных выходных напряжениях блока. При отсутствии этого сигнала на системной плате вырабатывается сигнал аппаратного сброса процессора, появление сигнала «выпускает» систему в нормальную работу. Отсутствие должной задержки сигнала может приводить к потере информации в CMOS и ошибкам при загрузке по включению питания Именно после этого события микропроцессор переходит к процедуре POST, записанной в системе ROM BIOS. Конечно, в деталях выполнение процедур тестирования отличается для разных фирм-производителей и типов машин, хотя имеется и много общего Мы будем ориентироваться на некий обобщенный случай. Итак, после поступления сигнала Power Good формируется сигнал Reset для микропроцессора. Он начнет выполнять команды с инструкции, записанной по адресу FFFF OOOOh. Для IBM PC-совместимых компьютеров первой такой инструкцией будет команда «длинного» перехода (FAR JUMP) на начало процедуры POST, располагаемой в сегменте FOOOh. Разумеется, в первую очередь тестируется сам микропроцессор, поскольку понятно - случись с ним что-нибудь, все дальнейшие операции станут просто бессмысленными. Тесты включают в себя выполнение базовых команд, работу с флагами, проверку регистров общего назначения. После проверки микропроцессора процедура POST тестирует, по сути дела, сана себя, проверяя, правильно ли считываются инструкции из системного ROM BIOS. В компьютерах типа АТ/286 и выше POST далее тестирует микросхему CMOS RAM, которая запитывается от аккумулятора (или гальванических элементов), обеспечивающего сохранность записанной информации даже при отключении сетевого электропитания. Как известно, помимо всего прочего, эта микросхема хранит также информацию о системной конфигурации всего компьютера. Кстати, в компьютерах PC/XT подобная информация сохраняется путем установки соответствующих положений DIP-переключателей, размещенных на системной плате. Надо отметить, что на первом этапе процедура POST проверяет только работоспособность CMOS RAM, поскольку в дальнейшем использует ее свободные байты памяти для хранения своих промежуточных данных. Особое значение на этом этапе имеет правильность контрольных сумм ROM BIOS и CMOS RAM. Далее следует проверка таймера, нулевой канал которого связан с процессором через программируемый контроллер прерываний, генерирующего прерывания примерно через каждые 18, 2 с. Первый канал таймера используется для запуска контроллера DMA - прямого доступа в память, передающего запрос для регенерации системной динамической памяти. Второй канал таймера служит обычно для генерации звука через динамик компьютера или измерения временных интервалов. Первым делом POST тестирует первый канал таймера и инициализирует его на требуемую частоту регенерации, и только затем инициализирует нулевой канал. Именно после этого шага становится доступной звуковая диагностика. Непосредственно после инициализации таймера POST начинает выполнять тесты записи-чтения регистров контроллера DMA и, если не возникает ошибок, начинает периодическую регенерацию системной памяти. В той же фазе тестируется и контроллер клавиатуры, также расположенный на системной плате. Только после инициализации контроллера DMA начинается тестирование первых 64 Кб системной памяти, которая впоследствии также интенсивно используется в процессах тестирования в качестве рабочей области. Еще два важнейших узла должны быть протестированы на системной плате - это контроллер прерываний и кэш-контроллер (если он есть, разумеется). Только когда все эти микросхемы работают нормально, компьютер может выполнять любые внутренние операции. Поскольку видеосистема компьютера в это время еще не инициализирована, то все сообщения об ошибках выдаются в виде гудков динамика. Более подробно об этом рассказывается чуть ниже. Услышав при загрузке "мелодию" из динамика компьютера, не надо сразу отчаиваться. Попробуйте выключите компьютер и, подождав 15-20 с, снова включить его. Вполне возможно, что ошибка окажется временной и компьютер во второй раз успешно загрузится. Можно также поискать микросхемы с плохим контактом (эта операция уже описана ранее). Кстати, некоторые IBM PC-совместимые компьютеры имеют для питания CMOS RAM литиевые элементы, другие щелочные. Прежде чем приступить к замене таких элементов необходимо, как правило, выполнить некоторую предварительную работу. При отсутствии напряжения питания вся информация о конфигурации вашей системы, хранимая в CMOS, естественно пропадает, поэтому если вы не хотите вызывать специалистов для настройки компьютера, поработайте сначала несколько минут с программой установки (Setup), чтобы тем или иным образом сохранить необходимую информацию о системе (проще и надежнее всего переписать на бумагу). Кстати, при замене самих элементов постарайтесь не перепутать «плюс» с "минусом" Следует помнить также, что литиевые элементы обычно нельзя перезаряжать.
После тестирования и инициализации видеоконтроллера становится возможным вывод сообщений на экран монитора. На завершающей стадии POST осуществляется проверка и инициализация устройств, выполняющих связь компьютера с внешним миром, - клавиатуры, дисков, последовательных и параллельных портов и т. п.
На компьютерах класса AT последняя фаза POST начинается, как правило, с проверки данных, сохраняемых в CMOS RAM. Полученные данные о конфигурации системы помогают POST выполнить оставшуюся работу. Кстати, неисправность CMOS RAM вполне может быть связана с разрядом (истощением) батареек, обеспечивающих энергонезависимость этого типа памяти. Важнейшей операцией POST на текущем этапе является, конечно, инициализация видеосистемы компьютера/ После выполнения этой работы POST уже может выдавать на экран различные сообщения. Понятно, что с этого же момента на экран могут выдаваться и диагностические сообщения об исправности периферии/ В табл 8 приведены некоторые номера подобных ошибок. Однако реально увидеть такие коды сообщения удается только на некоторых компьютерах класса brand-named (например, IBM). Таблица 8 Некоторые коды ошибок POST
Процедура POST вначале сканирует память в поиске видеоНОМ BIOS в диапазоне С000 0 до С780 0. Прежде всего происходит подсчет контрольной суммы, найденной ROM BIOS, затем ей передается управление. Происходит инициалиализация видеоадаптера, и на экране появляется курсор. Если ROM BIOS на плате адаптера не найден, инициализация видеоадаптера происходит с использованием драйвера из системной ROM BIOS. Кроме видеоадаптера, в компьютере могут быть установлены и другие устройства, имеющие собственные ROM BIOS. Это, например, некоторые контроллеры жестких дисков (XT, ESDI, SCSI), сетевые адаптеры и т п Их поиск выполняется в диапазоне адресов С800 0 - DF80 0 с инкрементом в 2 Кб. После подсчета контрольной суммы ROM BIOS ей на время передается управление. В противном случае высвечивается ошибка. хххх ROM Error, где хххх - адрес начального сегмента соответствующей ROM BIOS. При возникновении проблем с этими адаптерами рекомендации остаются прежними. Выключите компьютер, осмотрите саму плату и подключенные к ней кабели, проверьте надежность контакта микросхем в панельках, после чего снова включите компьютер. После инициализации видеосистемы POST тестирует оставшуюся оперативную память компьютера Обычно эта работа сопровождается "щелчкамю" из динамика и визуализацией работоспособности количества проверенных килобайт. Если переключатели на системной плате (для XT-компьютеров) установлены неправильно или обнаружена неисправная микросхема, POST выдает на экран соответствующее сообщение. В зависимости от типа BIOS в этом сообщении тем или иным образом указывается адрес, где именно произошла ошибка (рангу error). Так, для BIOS IBM XT/A и AMI используется линейная адресация типа ххххх (шестнадцатиричный код), а, например, в сообщении BIOS Phoenix может применяться запись типа сегмент смещение (хххх, хххх) Стоит отметить, что в процессе POST всегда проверяется содержимое ячейки памяти по адресу 0 0472. Если в ней содержится шестнадцатеричное число 1234п, то выполняется «теплый» рестарт, т е процедура проверки всей оперативной памяти опускается. Это происходит обычно после нажатия трех клавиш Ctrl-Alt-Del при включенном компьютере. После тестирования памяти процедура POST проверяет работоспособность клавиатуры. Если на экране появляется сообщение «Keyboard Error», то сначала выключите компьютер. Затем проверьте, правильно ли подключена клавиатура, не нарушен ли контакт, не запала ли какая-либо клавиша, или, может быть, что-то лежит на клавиатуре. После этого снова включите компьютер. Если и в этом случае появляется вышеуказанное сообщение, то возможно поврежден кабель клавиатуры или нарушен контакт в одном из разъемов. Проверка микросхем последовательных портов и контроллера жестких дисков происходит вслед за проверкой клавиатуры. Заметим, что если контроллер жесткого диска отсутствует или не подключен, никакого диагностического сообщения выдаваться не будет. Нормальное завершение процедуры POST обычно сопровождается одним коротким гудком динамика. После этого начинает работать не менее важная процедура - системный ROM BIOS, которая обеспечивает подготовку к начальной загрузке модулей оперативной системы. Эту функцию осуществляет программа начальной загрузки (ROM Bootstrap Routine), хранящаяся в ROM BIOS. Иногда эту программу называют также просто «начальный загрузчик». Вышеназванная программа первым делом пытается считать сектор 1 (головка О, цилиндр 0) с устройства. А в определенную память компьютера по адресу 0 7COOh. Если в накопитель вставлена несистемная дискета (или ее загрузочный сектор поврежден) для версий MS-DOS выше 4, 0, выдается сообщение. Non-System disk or disk error Replace and press any key when ready. В такой ситуации можно либо заменить дискету на исправную (системную), либо, удалив дискету на приводе А, нажать любую клавишу на клавиатуре и попытаться загрузиться с жесткого диска. В последнем случае программа начального загрузчика BIOS попробует прочитать тот же физический сектор по тому же адресу в память, но уже с первого винчестера (устройства С ). Тут следует, правда, оговориться, что такой порядок действий характерен для большинства настольных компьютеров, но он целиком зависит все-таки от BIOS. В частности, в некоторых BIOS предусматривается на выбор несколько вариантов загрузки, например, только с С , сначала с А, потом с С или наоборот. Кстати, если операционной системы нет ни на одном из носителей, компьютер выдаст сообщение. Operating system not found Если в оперативную память успешно считан с винчестера Master Boot-сектор, то управление передается программе IPL1. Эта программа сканирует содержание таблицы деления диска (Partition Table) в поискан активного раздела Как известно, активный (загружаемый) раздел в поле "Признак Загрузки" содержит код 80h, а остальные разделы помечены кодом OOh Программа ГРЫ считывает сектор, номер которого находится в поле "Начало раздела", а именно, в трех байтах, следующих за кодом 80h В этих байтах находятся номера головки, сектора и цилиндра стартового сектора раздела Выбранный таким образом сектор является Boot-сектором активного раздела винчестера, а его содержание аналогично содержанию Boot-сектора флоппи-диска. Заметим, что программа ILP1 может выдавать на экран три сообщения. Например, если Partition Table содержит более одного загружаемого раздела, то выдается сообщение. Invalid Partition Table Если Boot-сектор активного раздела не удается считать в память, то выдается сообщение. Error loading operation system Ну, а если в Boot-секторе отсутствует сигнатура OAA55h, то на экране монитора может появиться надпись. Missing operating system Это же сообщение может появиться, если винчестер в SETUP выставлен неверно. Напомним, что начальная инструкция JMP в Boot-секторе выполняет переход на точку входа программы IPL2. Эта программа, в свою очередь, используя информацию из блока параметров BIOS (BPB), определяет, являются ли два первых файла в корневом оглавлении диска модулями DOS (MSDOS SYS и 10 SYS). Затем IPL2 загружает эти файлы в младшие адреса памяти (70 OOOOh) и передает управление на 10 SYS. Далее следует процесс инициализации, выполняемый средствами самой DOS Отметим, что POST достаточно поверхностно проверяет работоспособность ОЗУ Это же можно сказать и о некоторый диагностический программах. Однако при загрузке драйвера расширенной памяти типа НГМБМ SYS происходит еще одна проверка памяти, причем по другим критериям. Если при этом выдается сообщение об ошибке, то скорей всего, проблемы с памятью все-таки есть. Они могут быть связаны с использованием различных модулей SIMM в одном банке, слишком большим временем доступа, а также с ошибками в cache-памяти. Для начала-можно попробовать отключить в SETUP внешний и внутренний кэш. Если это не помогло, то необходимо заменять модули ОЗУ, так как такие ошибки будут приводить к зависанию программ.
|
--------------------------------------------------------------------------------------------------------------------------------------------