Процесс загрузки компьютера. Включение и загрузка компьютера

- сложный и многошаговый процесс запуска компьютера. Загрузочная последовательность - это последовательность действий, которые должен выполнить компьютер для запуска операционной системы (точнее загрузчика), независимо от типа установленной OS.

Энциклопедичный YouTube

  • 1 / 5

    После включения компьютера в его оперативной памяти нет операционной системы. Само по себе, без операционной системы, аппаратное обеспечение компьютера не может выполнять сложные действия, такие как, например, загрузку программы в память. Таким образом мы сталкиваемся с парадоксом, который кажется неразрешимым: для того, чтобы загрузить операционную систему в память, мы уже должны иметь операционную систему в памяти.

    Решением данного парадокса является использование специальной компьютерной программы , называемой начальным загрузчиком , или BIOS (Basic Input/Output System). Эта программа не обладает всей функциональностью операционной системы, но её достаточно для того, чтобы загрузить другую программу, которая будет загружать операционную систему. Часто используется многоуровневая загрузка, в которой несколько небольших программ вызывают друг друга до тех пор, пока одна из них не загрузит операционную систему.

    В современных компьютерах процесс начальной загрузки начинается с выполнения процессором команд, расположенных в постоянной памяти (например на IBM PC - команд BIOS), начиная с предопределённого адреса (процессор делает это после перезагрузки без какой бы то ни было помощи). Данное программное обеспечение может обнаруживать устройства, подходящие для загрузки, и загружать со специального раздела выбранного устройства (чаще всего загрузочного сектора данного устройства) загрузчик ОС .

    Начальные загрузчики должны соответствовать специфическим ограничениям, особенно это касается объёма. Например, на IBM PC загрузчик первого уровня должен помещаться в первых 446 байтах главной загрузочной записи , оставив место для 64 байт таблицы разделов и 2 байта для сигнатуры 55AAh, необходимой для того, чтобы BIOS выявил сам начальный загрузчик.

    История

    Первые компьютеры имели набор переключателей, которые позволяли оператору размещать начальный загрузчик в памяти до запуска процессора . Затем данный загрузчик считывал операционную систему с внешнего устройства, например с перфоленты или с жесткого диска .

    Псевдо-ассемблерный код начального загрузчика может быть столь же простым, как и следующая последовательность инструкций:

    0: записать в регистр P число 8 1: проверить что устройство считывания с перфолент может начинать считывание 2: если не может, перейти к п. 1 3: прочитать байт с устройства считывания с перфолент и записать его в аккумулятор 4: если перфолента закончилась, перейти к п. 8 5: записать значение, хранимое в аккумуляторе, в оперативную память по адресу, хранящемуся в регистре P 6: увеличить значение регистра P на единицу 7: перейти к п. 1

    Данный пример основан на начальном загрузчике одного из мини-компьютеров , выпущенного в 1970-х годах фирмой Nicolet Instrument Corporation.

    0: записать в регистр P число 106 1: проверить что устройство считывания с перфолент может начинать считывание 2: если не может, перейти к п. 1 3: прочитать байт с устройства считывания с перфолент и записать его в аккумулятор 4: если перфолента закончилась, перейти к п. 8 5: записать значение, хранимое в аккумуляторе, в оперативную память по адресу, хранящемуся в регистре P 6: уменьшить значение регистра P на единицу 7: перейти к п. 1

    Длина загрузчика второго уровня была такой, что последний байт загрузчика изменял команду, расположенную по адресу 6. Таким образом, после выполнения пункта 5 стартовал загрузчик второго уровня. Загрузчик второго уровня ожидал заправки в устройство считывания перфолент длинной перфоленты, содержащей операционную систему. Различием между загрузчиком первого уровня и загрузчиком второго уровня были проверки на ошибки считывания с перфоленты, которые часто встречались в то время, и, в частности, на используемых в данном случае телетайпах ASR-33.

    Некоторые операционные системы, наиболее характерными из которых являются старые (до 1995 года) операционные системы компьютеров Macintosh производимых Apple Computer , настолько тесно связаны с аппаратным обеспечением компьютеров, что на данных компьютерах невозможно загрузить какую-либо другую операционную систему. В данных случаях обычно разрабатывается начальный загрузчик, который работает как загрузчик стандартной ОС , а затем передает управление альтернативной операционной системе. Apple использовала данный способ для запуска A/UX версию Unix , а затем он использовался различными бесплатными операционными системами.

    Устройства, инициализируемые BIOS

    Загрузочное устройство - устройство, которое должно быть проинициализировано до загрузки операционной системы. К ним относятся устройства ввода (клавиатура , мышь), базовое устройство вывода (видеокарта и дисплей), и устройство, с которого будет произведена загрузка ОС - дисковод , жесткий диск , CD-ROM , флэш-диск , SCSI -устройство, сетевая карта (при загрузке по сети; например, при помощи PXE).

    Последовательность загрузки IBM PC-совместимого компьютера

    После включения персонального компьютера (ПК) на базе процессора семейства Intel 80x86 , его процессор начинает работу в реальном режиме адресации с сегментной организацией и выполнение инструкций процессора с адреса FFFF:0, инициализированного в паре регистров CS:IP (Code Segment: Instruction Pointer) после снятия сигнала RESET. В конце доступного процессору адресного пространства оперативной памяти из ПЗУ материнской платы загружается загрузчик базовой системы ввода-вывода (BIOS), на который передается выполнение по инструкции безусловного перехода, отображенной по адресу FFFF:0.

    Программа инициализации BIOS с помощью программы POST проверяет, что устройства компьютера работают корректно и инициализирует их.

    Затем BIOS опрашивает по порядку устройства из заранее сформированного (в консольной утилите CMOS SETUP) списка загрузочных устройств, пока не найдет загрузочное устройство. Если такое устройство не будет найдено, BIOS выведет на консоль ПК сообщение об ошибке и процесс загрузки будет остановлен. При обнаружении BIOS’ом загрузочного устройства, с последнего будет произведена попытка чтения данных его нулевого сектора (512 байт, в которых должна находиться загрузочная запись). После успешного завершения чтения данных нулевого сектора загрузочного устройства в оперативную память по начальному адресу 0000:7С00, BIOS передает на этот адрес дальнейшее исполнение инструкций процессора.

    Нулевой сектор загрузочного жесткого диска содержит так называемую «Главную загрузочную запись» (MBR - Master Boot Record) , содержащую как данные первых четырёх записей

    На самом деле, "чисто" описать, как компьютер инициализируется, не получится - во многих системах это происходит с небольшими отличиями, да и надо учитывать набор оборудования, предустановки и пр. Но в основном - это выглядит следующим образом:
    Включаем питание - происходит общий сброс логики и процессора, процессор начинает выполнять набор инструкций, которые изначально хранятся в ПЗУ на материнской плате. Набор можно логически разбить на три части:

    1. Power On Self Test (POST) - запускается только один раз и сразу после включения питания. В этом тесте проверяется аппаратура на наличие грубых ошибок (функционирование аппаратуры вообще). Одним из видимых шагов на экране - тестирование памяти.
    2. Инициализация - запускается каждый раз, когда машина перегружается (например, когда пользователь нажимает Ctrl-Alt-Del) - инициализирует все доступные устройства на плате и в слотах расширения (ISA, PCI, AGP).
    3. Третья часть - это собственно BIOS (BASIC INPUT/OUTPUT SYSTEM) - базовая система ввода/вывода на низком уровне. Этими функциями пользуются некоторые операционные системы (DOS, Windows и др.) Обычно, весь BIOS располагается на отдельном чипе, который программируется на заводе, хотя в современных компьютерах может быть перепрограммирован прямо из системы. Т.е. сейчас используется Flash Memory.

    Особенность существующих BIOS в том, что они весьма медленны (гораздо медленнее, чем обычная оперативная память). Поэтому, многие системы просто копируют весь BIOS в оперативную память.

    Тест памяти - это наиболее видимая часть теста аппаратуры на этапе POST. Кстати, о видимости - видеоадаптер - тоже аппаратура, и его как раз необходимо инициализировать в первую очередь - чтобы пользователь мог видеть процесс тестирования и инициализации устройств. Так же, необходимо установить еще и режим (частоту обновления, разрешение) экрана. Ведь видеокарты могут быть сделаны разными фирмами, да еще и разные модели - кому как не БИОСу самой карточки знать досконально, как ее нужно инициализировать?
    На каждой видеокарте есть свой BIOS, который опрашивается на его наличие при тестировании аппаратуры. Сначала системный БИОС ищет видео по стандартным адресам ISA VGA, - если там нет адаптера, то он ищется на PCI , потом на AGP (или сначала AGP, а потом PCI - это прописывается в установках BIOS SETUP). И если, видеобиос найден в одном из слотов, то управление передается на него.

    И вообще, присутствие БИОСа на различных адаптерах заставляет системный БИОС отдавать им управление - в случае с видеоадаптером - это включение режима и т.д., в случае с сетевой картой - загрузка с сети (в случае с без дисковыми машинами - удаленная загрузка с сети) - при наличие BIOS на сетевой карте и наличие жесткого диска БИОС, например, может спросить - как будем грузиться - с сети или с имеющегося HDD? При наличии SCSI адаптера - он должен проинициализировать свои устройства (диски, CD-приводы, ленточные накопители и т.п.) и если таковые найдутся из числа дисков SCSI - необходимо будет поддержать int13 для того, чтобы система могла обращаться к ним, как к обычным жестким дискам. Хотя, инициализация SCSI устройств необязательна - например, при старте, ее можно отключать - если SCSI устройство не является загрузочным, это разумно.

    Дальше проверяется наличие жестких дисков (IDE) на контроллере ввода-вывода, дисководов для дискет и пр. подобной периферии. Проверяется клавиатура и после успешной проверки выдается одиночный звуковой сигнал, указывающий, что инициализация прошла успешно (если нет - различным сочетанием звуковых сигналов BIOS сигнализирует об ошибках и/или сообщает о них на экране).

    Итак, коротко можно описать следующим образом: все, кроме SCSI, IDE, USB "оживает" сразу - из адаптеров исключение составляет видеоадаптер, который инициализируется даже до проверки памяти.

    Далее - если в слотах ISA находятся другие устройства, имеющие свои ПЗУ (с BIOS) - они инициализируются на этапе проверки внешних устройств, потом проходит проверка и назначение PCI (проверка устройств Plug and Play). Кстати, PnP есть и на ISA адаптерах.
    Только после этого начинается проверка наличия устройств на IDE шине.

    Тут может возникнуть вопрос - а как быть, если на ISA нет видеоадаптера, а есть на PCI - но ведь он "оживает" сразу - не дожидаясь даже проверки всего PCI? Просто на PCI есть BIOS, отображаемый в обычное пространство памяти, и все VGA PCI имеют еще и стандартную VGA программную часть, находящуюся в тех же регистрах, как и в случае, если бы это был ISA адаптер. Системный BIOS проверяет, есть ли VGA на ISA шине - если да, то на PCI шину и "не лезет", если нет - то сканирует PCI.

    Ну, и в конце концов, после инициализации - считывается первый сектор первой дорожки первой головки жесткого диска и управление передается загрузочному сектору, который уже управляет дальнейшими действиями (либо выдается сообщение типа "NO SYSTEM TO BOOT"). Или подобным же образом система грузится с дискеты.

    BIOS (Base Input/Output System) представляет собой специальное программное обеспечение , которое встроено в микроконтроллер на материнской плате, переводится с английского языка как основная система ввода-вывода. Данный программный код обеспечивает взаимодействие операционной системы с оборудованием, позволяет совместить аппаратные различия в компьютерном оборудовании.

    Какова роль BIOS?

    При первоначальной загрузке компьютера БИОС с помощью встроенных программных алгоритмов тестирует аппаратное оборудование на предмет работоспособности. Микроконтроллер посылает инструкции для запуска к каждому компоненту компьютера. Взамен он должен в обязательном порядке получить ответ от устройства. Если BIOS ответ не получает, система сообщает об этом пользователю посредством выдачи сообщения на монитор или звукового сигнала.

    Без данного ПО невозможна работа компьютера. Также операционная система не запустится, если конфигурация БИОС настроена неправильно, или сбились настройки в результате системных неполадок. Системные настройки BIOS позволяют выполнить:

    Как попасть в BIOS?

    Информацию, как попасть в БИОС, можно считать в процессе загрузки компьютера. Чаще всего выдается системой запись вида: Press DEL to enter SETUP. В этом случает для входа в систему необходимо нажать клавишу DELETE в процессе загрузки компьютера. В некоторых случаях для того чтобы войти в меню BIOS, необходимо нажать определенные сочетания клавиш. Чаще всего используются F1, F2, F10, ESC или сочетания Ctrl+Alt+Ins, Ctrl+Alt+Esc.

    Следует помнить: не рекомендуется менять настройки BIOS без надобности. В системе имеются жизненно важные параметры работы аппаратного оборудования, неправильная настройка которых может вывести из строя определенные компоненты или материнскую плату в целом.

    Меню настроек BIOS

    Наиболее распространены системы AMI BIOS и Award BIOS . Версия AMI BIOS имеет три раздела:

    • Main позволяет менять настройки системного времени. Даты, приоритет съемных носителей, содержит информацию о системе;
    • Advanced включает параметры работы центрального процессора и параметры конфигурации встроенной аппаратуры, настройки USB-портов и питания;
    • Boot содержит параметры загрузки, в том числе и настройки безопасности в процессе загрузки.

    Меню Award BIOS имеет более сложную конфигурацию. Система содержит такие разделы:

    • Standart CMOS Features позволяет настраивать системную дату и время, тип используемого дисковода, а также характеристики имеющихся накопителей.
    • Advanced BIOS Features включает множество опций, в частности, порядок опроса накопителей при загрузке, включение/отключение многопоточности процессора, параметры взаимодействия ядер, информацию о состоянии жестких дисков . Данный раздел позволяет оптимизировать работу оперативной памяти .
    • Advanced Chipset Features содержит важные настройки работы встроенного оборудования: центрального процессора, оперативной памяти и системных шин передачи данных. Изменять данные настройки самостоятельно не рекомендуется.
    • Integrated Peripherals отвечает за настройку компонентов, встроенных в материнскую плату (USB-контроллер, видеокарта и звуковая карта, сетевой контроллер и различные порты).

    В общем виде меню BIOS включает такие разделы (возможные названия блоков указаны в скобках):

    • общие параметры (STANDARD CMOS SETUP или MAIN);
    • свойства BIOS (ADVANCED или BIOS FEATURES SETUP);
    • свойства чипсетов (CHIPSET FEATURES SETUP или Chip Configuration);
    • свойства интегрированного оборудования (INTEGRATED PERIPHERALS или I/O Devices Configuration);
    • свойства слотов PCI (PNP/PCI CONFIGURATION или PCI CONFIGURATION);
    • управление питанием (POWER MANAGMENT SETUP или POWER);
    • пароли системы (SUPERVISOR PASSWORD или USER PASSWO RD);
    • сохранение и восстановление настроек (SAVE SETUP, LOAD SETUP DEFAULTS или LOAD BIOS DEFAULT);
    • выход из конфигурации (EXIT).

    Этот небольшой кусок информации, в принципе все что нужно на первом этапе знакомства с БИОСом компьютера, мы продолжим цикл статей про сей инструмент и расскажем много интересной информации. Спасибо.

    Многие начинающие пользователи спрашивают у поисковика – как настроить БИОС для того, что бы загрузиться с компакт диска. А так же, если необходимо загрузиться с флешки. В первую очередь загрузка из под BIOS требуется в тех случаях, когда вам нужно и сделать это можно только переустановкой операционной системы (Windows). А так же, если у вас есть загрузочный образ с утилитами, например для разделения жесткого диска на разделы и тут, естественно, тоже не обойтись без загрузки с диска или флешки через БИОС . В общем, поводов для загрузки с диска очень и очень много так, что начну уже рассказ о настройке BIOS.

    В отличие от BIOS, код UEFI и вся ее служебная информация может храниться не только в специальной микросхеме, но и на разделах как внутренних, так и внешних жестких дисков, а так же сетевых хранилищах. В свою очередь, тот факт, что загрузочные данные могут размещаться на вместительных накопителях, позволяет за счет модульной архитектуры наделять EFI богатыми функциональными возможностями. Например, это могут быть развитые средства диагностики, или полезные утилиты , которые можно будет использовать как на этапе начальной загрузки ПК, так и после запуска ОС.

    Еще одной ключевой особенностью UEFI является возможность работы с жесткими дисками огромных объемов, размеченных по стандарту GPT (Guid Partition Table). Последний не поддерживается ни одной модификацией BIOS, так как имеет 64-битные адреса секторов.

    Загрузка ПК на базе UEFI, как и в случае с BIOS, начинается с инициализации устройств. Но при этом, данная процедура происходит гораздо быстрее, так как UEFIможет определять сразу несколько компонентов одновременно в параллельном режиме (BIOSинициализирует все устройства по очереди). Затем, происходит загрузка самой системы UEFI, под управлением которой выполняется какой-либо набор необходимых действий (загрузка драйверов, инициализация загрузочного накопителя, запуск загрузочных служб и т.д.), и только после этого осуществляется запуск операционной системы.


    Может показаться, что такая многоступенчатая процедура должна увеличить общее время загрузки ПК, но на самом деле все происходит наоборот. С UEFI система запускается гораздо быстрее, благодаря встроенным драйверам и собственному загрузчику. В итоге, перед стартом, ОС получает исчерпывающую информацию об аппаратной начинке компьютера, что позволяет запускаться ей в течение нескольких секунд.

    Несмотря на всю прогрессивность UEFI, все же существует ряд ограничений, сдерживающих активное развитие и распространение этого загрузчика. Дело в том, что для реализации всех возможностей нового загрузочного интерфейса требуется полноценная его поддержка со стороны операционных систем. На сегодняшний день в полной мере использовать возможности UEFI позволяет только Windows 8. Ограниченную поддержку нового интерфейса имеют 64-разрядные версии Windows 7, Vista и Linux на ядре 3.2 и выше. Так же возможности UEFI используются в загрузочном менеджере BootCamp компанией Apple в собственных системах Mac OS X.

    Ну а как же происходит загрузка компьютера с UEFI, если на нем используются неподдерживаемая операционная система (WindowsXP, 32-битная Windows 7) или файловая разметка (MBR)? Для таких случаев в новый загрузочный интерфейс встроен модуль поддержки совместимости (Compatibility Support Module), по сути, представляющий из себя традиционную BIOS. Именно поэтому, можно видеть, как многие современные компьютеры, оснащенные системными платами с UEFI, загружается традиционным способом в режиме эмуляции BIOS. Чаше всего это происходит потому, что их владельцы продолжают использовать разделы HDD с традиционной MBR и не хотят переходить к разметке GPT.

    Заключение

    Совершенно очевидно, что, в отличие от традиционной BIOS, интерфейс UEFI способен на много большее, чем просто процесс загрузки. Возможность запуска рабочих сервисов и приложений, как на начальном этапе загрузки ПК, так и после запуска операционной системы открывает широкий спектр новых возможностей, как для разработчиков, так и конечных пользователей.

    Но при этом говорить о полном отказе в ближайшее время от базовой системы ввода/вывода пока преждевременно. В первую очередь нужно вспомнить, что до сих пор большинство компьютеров находятся под управлением WindowsXP и 32-битной Windows 7, которые не поддерживаются UEFI. Да и жесткие диски, размеченные по стандарту GPT в большинстве своем можно встретить разве что в новых моделях ноутбуков на базе Windows 8.

    Так что до тех пор, пока большинство пользователей в силу своих привычек или еще каких-либо причин, будут привязаны к старым версиям ОС и традиционным способам разметки винчестеров, BIOS так и будет оставаться основной системой для начальной загрузки компьютера.

    После включения компьютера в его оперативной памяти нет операционной системы. Само по себе, без операционной системы, аппаратное обеспечение компьютера не может выполнять сложные действия, такие как, например, загрузку программы в память. Таким образом мы сталкиваемся с парадоксом, который кажется неразрешимым: для того, чтобы загрузить операционную систему в память, мы уже должны иметь операционную систему в памяти.

    Решением данного парадокса является использование специальной маленькой компьютерной программы , называемой начальным загрузчиком , или BIOS (Basic Input/Output System). Эта программа не обладает всей функциональностью операционной системы, но её достаточно для того, чтобы загрузить другую программу, которая будет загружать операционную систему. Часто используется многоуровневая загрузка, в которой несколько небольших программ вызывают друг друга до тех пор, пока одна из них не загрузит операционную систему.

    В современных компьютерах процесс начальной загрузки начинается с выполнения процессором команд, расположенных в постоянной памяти (например на IBM PC - команд BIOS), начиная с предопределённого адреса (процессор делает это после перезагрузки без какой бы то ни было помощи). Данное программное обеспечение может обнаруживать устройства, подходящие для загрузки, и загружать со специального раздела выбранного устройства (чаще всего загрузочного сектора данного устройства) загрузчик ОС .

    Начальные загрузчики должны соответствовать специфическим ограничениям, особенно это касается объёма. Например, на IBM PC загрузчик первого уровня должен помещаться в первых 446 байт главной загрузочной записи , оставив место для 64 байт таблицы разделов и 2 байта для сигнатуры AA55, необходимой для того, чтобы BIOS выявил сам начальный загрузчик.

    История

    Первые компьютеры имели набор переключателей, которые позволяли оператору размещать начальный загрузчик в памяти до запуска процессора . Затем данный загрузчик считывал операционную систему с внешнего устройства, например с перфоленты или с жесткого диска .

    Псевдо-ассемблерный код начального загрузчика может быть столь же простым, как и следующая последовательность инструкций:

    0: записать в регистр P число 8 1: проверить что устройство считывания с перфолент может начинать считывание 2: если не может, перейти к п. 1 3: прочитать байт с устройства считывания с перфолент и записать его в аккумулятор 4: если перфолента закончилась, перейти к п. 8 5: записать значение, хранимое в аккумуляторе, в оперативную память по адресу, хранящемуся в регистре P 6: увеличить значение регистра P на единицу 7: перейти к п. 1

    Данный пример основан на начальном загрузчике одного из миникомпьютеров , выпущенного в 1970-х годах фирмой Nicolet Instrument Corporation.

    0: записать в регистр P число 106 1: проверить что устройство считывания с перфолент может начинать считывание 2: если не может, перейти к п. 1 3: прочитать байт с устройства считывания с перфолент и записать его в аккумулятор 4: если перфолента закончилась, перейти к п. 8 5: записать значение, хранимое в аккумуляторе, в оперативную память по адресу, хранящемуся в регистре P 6: уменьшить значение регистра P на единицу 7: перейти к п. 1

    Длина загрузчика второго уровня была такой, что последний байт загрузчика изменял команду, расположенную по адресу 6. Таким образом, после выполнения пункта 5 стартовал загрузчик второго уровня. Загрузчик второго уровня ожидал заправки в устройство считывания перфолент длинной перфоленты, содержащей операционную систему. Различием между загрузчиком первого уровня и загрузчиком второго уровня были проверки на ошибки считывания с перфоленты, которые часто встречались в то время, и, в частности, на используемых в данном случае телетайпах ASR-33.

    Некоторые операционные системы, наиболее характерными из которых являются старые (до 1995 года) операционные системы компьютеров Macintosh производимых Apple Computer , настолько тесно связаны с аппаратным обеспечением компьютеров, что на данных компьютерах невозможно загрузить какую либо другую операционную систему. В данных случаях обычно разрабатывается начальный загрузчик, который работает как загрузчик стандартной ОС , а затем передает управление альтернативной операционной системе. Apple использовала данный способ для запуска A/UX версию Unix , а затем он использовался различными бесплатными операционными системами.

    Устройства, инициализируемые BIOS

    Загрузочное устройство - устройство, которое должно быть проинициализировано до загрузки операционной системы. К ним относятся устройства ввода (клавиатура , мышь), базовое устройство вывода (дисплей), и устройство, с которого будет произведена - дисковод , жесткий диск , CD-ROM , флэш-диск , SCSI -устройство, сетевая карта (при загрузке по сети; например, при помощи PXE).

    Загрузочная последовательность стандартного IBM-совместимого персонального компьютера

    Загружается персональный компьютер


    Wikimedia Foundation . 2010 .

    Включаем БП, если все напряжения в норме, то спустя 0,1...0,5 сек БП выдаёт на материнскую плату сигнал PowerGood (PG). На материнской плате собрана специальная схема, вырабатывающая сигнал RESET. Эта же схема может быть завязана с хардваремонитором, контролирующим напряжения питания, которые поступают на маму от БП и\или вырабатываются преобразователями материнки для питания различных узлов (проца, памяти, чипсета и т.д.). В обязанности хардваремонитора также входит контроль температуры основных элементов платы и контроль оборотов вентиляторов. Только после получения PG от БП, а также сигнала от хардваремонитора "все в порядке" схема формирования RESETa снимает этот самый RESET с чипсета, мультика и различной мелкой логики, распаяной на плате, а также с самого процессора. Сигнал RESET держит сброшеными значения всех битов управляющих регистров и обнуляет регистры процессора, кроме регистра CS (Code Segment) содержащего начальный адрес сегмента кода, в нем устанавливается значение FFFFh. После снятия RESETa процессор начинает работу в реальном режиме и в течение примерно 7 циклов синхронизации приступает к выполнению инструкции, считываемой из ROM BIOS по тому самому адресу FFFF:0000. (Современный процессор (начиная с i386DX) выполняет первую инструкцию по адресу FFFFFFF0h, находящемуся в топе 4 Гб пространства.) К этому моменту клокер уже должен выдавать стабильные задающие тактовые частоты на PCI, процессор, USB, чипсет и оперативную память. Размер области ROM BIOS от адреса FFFF:0000 до конца равен 16 байт, и в ней по указанному адресу записана команда перехода на реально исполняемый код BIOS. В этот момент процессор не может выполнять никакую другую последовательность команд, поскольку нигде в любой из областей памяти, кроме BIOS, её просто не существует. Итак, начинается выполнение конкретного кода ROM BIOS. Последовательно выполняя команды этого кода, процессор реализует функцию начального самотестирования POST (Power-On Self Test). На данном этапе кроме процессора тестируются память и системные средства ввода/вывода. Обнаружив ошибку, система подаст звуковой сигнал, так как видеоадаптер пока еще не инициализирован. Также производится конфигурирование программно-управляемых аппаратных средств материнской платы. Часть конфигурирования выполняется однозначно, другая часть может определяться положением джамперов (перемычек или переключателей) системной платы, но ряд параметров возможно (а иногда и необходимо) устанавливать пользователю. Для этих целей служит утилита Setup, встроенная в код BIOS, обычно эта утилита вызывается нажатием DEL во время выполнения POST. Параметры конфигурирования, установленные с помощью этой утилиты, запоминаются в энергонезависимой памяти, питаемой от трехвольтовой батарейки, размещённой на материнской плате. Часть из них всегда хранится в традиционной CMOS Memory, объединённой с часами и календарём RTC (Real Time Clock). Другая часть (в зависимости от фирмы-производителя) может помещаться и в энергонезависимую (например, флэш) память (NVRAM). Кроме этой части статически определяемых параметров, имеется область энергонезависимой памяти ESCD для поддержки динамического конфигурирования системы Plug and Play, которая может автоматически обновляться при каждой перезагрузке компьютера. ESCD - неупакованная область, хранится во Flash ROM, его обновление на финальном этапе выполнения POST сопровождается выводом сообщения "Update DMI pool..." Останов в этом случае (до вывода сообщения или во время вывода сообщения) связан с нарушеними логических структур BIOS. Перепрограммирование - необходимое, но увы иногда недостаточное решение в такой ситуации.

    Следует отметить, что далеко не все коды видны на индикаторе в процессе нормальной загрузки компьютера: некоторые высвечиваются лишь в том случае, если POST останавливается. Происходит это потому, что многие подпрограммы POST исполняются настолько быстро, что человеческий глаз не в состоянии уследить за индицируемым состоянием регистра диагностики, а некоторые коды появляются только при обнаружении неисправности. Итак, смотрим код, но не надо спешить менять девайс, если он известен! Тщательно проверяем всё, вплоть до прозвонки дорожек! Если не известно, что это за девайс, подизасмить БИОСяку, найти, где он инитится... Если не "моги", позадалбывать местных дизасмеров... Если индикатор показывает FF или 00, то наша плата вообще не смогла "стартануть", и нам надо проверять все питания элементов платы, задающий генератор, процессор и посмотреть наличие сигналов на шине данных и адреса.

    Итак, программный старт компьютера вкратце выглядит примерно так:

    Программируются регистры Host Bridge, очищается Internal Cache, запрещается Internal и External Cache, а также операции с кэш-памятью, запрещается Shadow RAM, вследствие чего происходит направление непосредственно к ROM циклов обращения к адресам расположения System BIOS. Эта процедура должна соответствовать конкретному чипсету. Далее программируются РIIХ ресурсы: контроллер DMA, контроллер прерываний, таймер, блок RTC. При этом контроллер DMA переводится в пассивный режим.

    В компьютерах на SIMM или SDRAM с помощью последовательных циклов запись/чтение определяется тип памяти, суммарный объём и размещение по строкам. В компьютерах на SDRAM, DDR или DDR2 для определения параметров установленой памяти читается SPD (по протоколу SMBus, практически тот же самый i2c). И в соответствии с полученной информацией настраивается DRAM-контроллер. На этом же этапе процессор должен быть переключён в Protected Mode (защищённый режим).

    Проверяются первые 256 кб памяти, которые в дальнейшем будут использованы как транзитный буфер, а также осуществляется распаковка и копирование System BIOS в DRAM.

    По специальному алгоритму определяется наличие, тип и параметры External Cache.

    Определяется тип процессора, результат помещается в CMOS. Если по каким-либо причинам определение типа процессора закончилось неудачно, для платформы на интеловском процессоре такая ошибка становится фатальной и система, а соответственно и выполнение POST, останавливается. При неудачном определении типа процессора на платформе АМД в CMOS помещается "неизвестный процессор".

    Осуществляется проверка и инициализация контроллера клавиатуры, однако на данный момент приём кодов нажатых клавиш ещё не возможен.

    Проверяется функционирование CMOS и напряжение питания её батареи. Если фиксируется ошибка питания, выполнение POST не останавливается, однако BIOS "запоминает" этот факт. Ошибка при контрольной записи/чтении CMOS считается фатальной и POST останавливается.

    Программируются конфигурационные регистры Host Bridge и PIIX значениями, взятыми из BIOS.

    Генерируется таблица векторов прерываний, а также производится первичная настройка подсистемы управления питанием.

    Проверяется контрольная сумма блока ячеек CMOS, а также, если BIOS поддерживает PnP, выполняется сканирование устройств ISA PnP и инициализация их параметров. Для PCI-устройств устанавливаются основные (стандартные) поля в блоке конфигурационных регистров.

    Инициализируется блок переменных BIOS.

    Определяется наличие видеоадаптера путём проверки наличия сигнатуры 55АА по адресу начала Video BIOS (C0000:0000h). Если Video BIOS обнаружен и его контрольная сумма правильная, включается процедура инициализации видеоадаптера. С этого момента появляется изображение на экране монитора, высвечивается заставка видеоадаптера, инициализируется клавиатура. Далее по ходу POST тестируется контроллер DMA и контроллер прерываний.

    Определяется объём Base Memory и External Memory, и с этого момента начинается отображаемый на экране тест оперативной памяти.

    Инициализируется PS/2 mouse.

    Производится инициализация подсистемы гибких дисков.

    Выполняется программный сброс контроллера жёстких дисков. Если в Setup указан режим AUTO, производится детектирование устройств IDE, в противном случае параметры устройств берутся из CMOS. В соответствии с конфигурацией системы размаскируются прерывания IRQ14 и IRQ15.

    Инициализируется сопроцессор FPU.

    Настраивается клавиатура USB. На данном этапе становится возможен вход в CMOS Setup по нажатию клавиши DEL.

    Осуществляется запрос на ввод пароля, если это предусмотрено установками CMOS Setup.

    Производится поиск и инициализация ПЗУ дополнительных BIOS, а также картируется каждая из линий запросов прерывания PCI.

    Если в Setup включён данный режим, устанавливается антивирусная защита BOOT Sector.

    Осуществляется автоматический переход на зимнее или летнее время, для клавиатуры настраиваются состояние NumLock и режим автоповтора.

    Корректируются блоки ESCD (только для PNP BIOS) и производится очистка ОЗУ.

    Успешная инициализация аппаратных средств компьютера сопровождается одиночным звуковым сигналом, после чего управление передается загрузчику BOOT-сектора.

    А как быть если 00 или FF, т.е. не выполнена ни одна команда системного BIOS? ("жизнь" на биосной флешке отсутствует):

    1. Нужно быть абсолютно уверенным, что все напряжения в норме и обеспечено надлежащее тактирование.
    2. Нужно быть абсолютно уверенным, что процессор исправен и данный экземпляр платы с данным процессором, грубо говоря "заводится".
    3. На платформах с AMD нужно обеспечить связь CPU с NB, т.к. до начала выполнения первой из команд системного BIOS по известному адресу выполняется недокументированный "Hand-Shake" между CPU и NB. Только после этого платформа переходит к нормальному старту в смысле x86. (Hand-Shake - название условное по аналогии с чем-то давно знакомым).
    4. На платформах с чипсетами VIA(начиная с KT266)/SiS(начиная с 635/735) до старта в смысле x86 выполняется "НЕЧТО", обеспеченное SB и BIOS. Поэтому BIOS должен быть достоверным (!). Кстати, на nForce тоже есть нечто подобное, хотя и не такое критичное, как VIA/SiS.
    5. Предположим, что передача управления по адресу FFFF FFF0h все-таки состоялась. До инициализации первого POST кода BIOS выполняет сотни команд, в т.ч. зачастую (Award, AMI, но не Phoenix) обращается к SIO/MIO и CMOS. Если там проблема - сообщение POST не дождаться. Если есть уверенность в том, что SIO/MIO неисправен (дикий нагрев - тут мы на все 100% солидарны) - менять и не думать. Думать будем, если это не помогло:) Тут следует заметить, что если принято решение о замене SIO, то иногда следует снять два буфера RS-232, были случаи, когда пробитый преобразователь RS232-TTL выжигал переустановленный SIO. Работы тут мало, а спокойствие дороже. Но если буфер выполнен "нестандартно", например, как у ITE или у старых Winbond, то прежде чем снимать, полезно обратиться к документации.
    6. Если это не помогло: кроме SIO/MIO на старт влияет система мониторинга (если она в SIO/MIO, то этот пункт можно и не читать), особливо ея датчики. На старых платах это что-то типа LM75. Датчики снять. Так же не будет лишним проверить на соответствие Hardware Monitor Interface (Например, Epox 3PTA, нет RESETа, на SIO не было сигнала FAN1in, выяснилось до замены SIO). В некоторых случаях настроение системной платы зависит и от звуковых чипов, сетевых чипов, прочих разных подключенных к PCI/LPC/ISA. Особенно, если они что-то там просаживают, коротят и т.п. Особенно упорные ремонтники в таких случаях на плате оставляют только чипсет, и смотрят жив ли он:)
    7. Как посмотреть, жив ли чипсет. Можно осциллографом, если есть время, осциллограф и навыки по работе с ним. Можно просто заменить чипсет, если плата того стоит и в изобилии комплектующие. Наши партнеры доложили, что они при снятом SIO ставят тестовый BIOS, и если он выполняется, то плату есть надежда поднять без BGA-операций. Но это вопрос спорный, ибо для различных SIO есть свои варианты:
      1. SIO с Flash ROM Interface (W83697HF);
      2. SIO с раздельными шинами DATA/ADDRESS(FDC37M602);
      3. LPC Inerface.
    8. Если в течение ~10 сек. процессор не выполнит инициализацию SIO, чип аппаратного мониторинга в системный динамик выведет последовательность звуковых сигналов типа "сирена". Если чип системного мониторинга в отдельном корпусе (на BX, например), то сирена будет без процессора, без BIOS и без чипа SIO. Естественно, это только в том случае, если обеспечено питание и тактирование этого самого HW-мониторинга.


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: