BIOS Inside

BIOS… Все, кто сталкивался с работой на компьютере, слышали это слово. Давайте основательно разберемся, что же такое BIOS.


I. Что делает BIOS?

Материнская плата - куча больших и маленьких, квадратных и прямоугольных микросхем, нашлёпанных между многочисленными разъёмами и связанных друг с дружкой паутиной дорожек-проводников, часть которых видна, а часть нет (современные платы имеют 5-6-слойный монтаж).

Одна из многих микросхем представляет собой микросхему памяти смешного по теперешним меркам объёма - от 64 Кб у 486-х до 512 Кб у Pentium-3 с интегрированными компонентами ("стандарт" для 486-х - 64 Кб, Pentium-1 - 128 Кб, Pentium-2/3 - 256 Кб). Причём её содержимое сохраняется при отсутствии питания, это - ПЗУ (постоянное запоминающее устройство) или, по-буржуйски, ROM (Read Only Memory - память только для чтения). В ней-то и прописан объект исследований - программа BIOS (Basic Input/Output System - базовая система ввода-вывода). Итак, первое: BIOS - это программа. Просто под этим словом часто понимается и сама микросхема памяти, где она (программа BIOS) записана. Ещё под этим словом имеют в виду одну из подпрограмм - "BIOS Setup", которая запускается обычно по клавише "Del" во время загрузки компьютера. Но мы под словом "биос" будем иметь в виду именно саму программу. Отсюда второе: это программа и, значит, она состоит из подпрограмм. Зная, что делает каждая из подпрограмм, можно понять всю суть работы BIOS. Разберём по порядку все этапы (подпрограммы) работы BIOS. Нужно добавить, что они выполняются последовательно, и если на каком-либо этапе произойдёт сбой, BIOS останавливается и сигнализирует об ошибке (чаще всего, начиная противно пищать в динамик). Итак, включили питание, всё в порядке, в том числе присутствует и процессор:). Главная большая квадратная микросхема на плате (чипсет) делает сброс всех и вся (Reset). В результате процессор переходит по адресу ПЗУ и начинает выполнять записанную в нём программу BIOS (здесь и далее будем брать в качестве примера BIOS от Award как более распространённый, хотя всё нижеизложенное большей частью с некоторыми поправками будет верно и для др. производителей BIOS).


1. Первоначальная инициализация и программирование всей логики

 

Любой малейший сбой уже на этом этапе обозначает полную неработоспособность системы. При условии исправности главных компонентов (блока питания, материнской платы и процессора) это, чаще всего, является результатом некорректно выставленных перемычек, например, задающих частоту работы процессора выше его возможностей ("переразгон"). Как правило, при ошибке на этом этапе ничего не происходит - ничто не пищит, тёмный экран, компьютер прикидывается совсем дохлым. Что можно посоветовать в такой ситуации? Стандартно: если уж совсем никак не выходит, прочтите, наконец, инструкцию по эксплуатации (мануал).


2. Определение типа и количества памяти, её расположения по слотам

Для работы компьютера, естественно, нужна память. Здесь определяется её тип, количество и расположение по гнёздам (для корректного программирования контроллера памяти). Думаю, вам знакомо явление, связанное с проблемой памяти (во всех смыслах:), когда при включении компьютер начинает противно пищать. Это может быть из-за того, что вы забыли её (память) вставить; вставили, но не так; вставили правильно, но BIOS (плата, т.е. чипсет) её (её тип) не знает (не поддерживает); ну а если перечисленное выше сделано правильно, значит, она неисправная.

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


3. Проверка целостности кода BIOS путём подсчёта контрольной суммы

Если контрольная сумма не совпадает с подсчитанной, BIOS "решает", что он повреждён, и запускается аварийная программа восстановления. На экран выводится сообщение типа "BIOS checksum error", система обращается к дисководу с целью загрузиться с него и запустить программу перешивки. Если же дисковод выключен/отсутствует или в нём нет дискеты/не загрузочная, то компьютер останавливается. Кстати, на старых машинах (Pentium1-2) при установленной PCI- или AGP-видеокарте сообщение об ошибке может и не выводиться на экран, для этого нужна старенькая ISA-видео. Поэтому если у вас установлена PCI/AGP-видеокарта и нет дисковода/выключен, то при такой ошибке может вообще ничего не произойти - компьютер просто будет молчать. Ну а если дисковод включен, и вдруг, весёлым утром, вы просыпаетесь, включаете компьютер, а он, кроме дурацкого подмигивания лампочкой дисковода и пожёвывания забытой дискеты, ничего не делает и не хочет ничего показывать даже на третьем одолженном у соседа мониторе, знайте - придётся "шить-перешивать", надо было предохраняться, вирусы - не шутки (хотя могут быть и другие происки врагов).

  • Здесь второй совет - не пробуйте редактировать содержимое BIOS обычным шестнадцатеричным редактором и потом перешивать отредактированную версию - придётся мучаться (или тратиться), чтобы вернуть все "как было". Даже более опытным пользователям, знающим, что такое программа modbin, нужно взять на заметку - modbin не всегда корректно вычисляет контрольную сумму, и на многих платах, после изменения, например, заставки или чтобы появлялась какая-нибудь крутая надпись типа "Pentium-VIII 33.3GHz", можно запросто столкнуться с вышеописанной ситуацией. Замечено на многих платах от Chaintech, некоторых Asus, MicroStar и других, причём это, в основном, "породистые" производители. Вообще, данная ситуация (checksum error) возникает довольно частенько: и при неправильной перешивке - плачевно, и при установке памяти, совсем неизвестной BIOS (плате, чипсету) - обратимо, и при жестоком разгоне - в основном, обратимо, но иногда и плачевно. Соответственно, решение возникших в результате проблем достаточно просто и понятно - поставить нужный тип памяти, "отразогнать" систему, ну а если не помогло - перешить "родной" BIOS.

(Продолжение следует)

Роман СЕВКО,
k6-2@narod.ru

Версия для печатиВерсия для печати

Номер: 

43 за 2001 год

Рубрика: 

Hardware
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя Макс Курмаз
Поправка: автор путает POST-код с кодом BIOS. Ведь BIOS - набор обработчиков прерываний, а вот POST как раз и тестирует компоненты до загрузки BIOS. Восстановление BIOS производит Boot Block, который тоже не является частью BIOS. И Setup - не часть BIOS, а всего лишь редактор CMOS-памяти.
Аватар пользователя Savely
Ну, тут как кто назовет.

Если строго, то BIOS - Basic I/O System. Т.е. обработчики прерываний и функции работы с кое-каким железом. Современными системами почти не используется. :-) Здесь Max прав на все 100%.

А де-факто сейчас BIOSом называют, IMHO, все содержимое микросхемы Flash. В том числе и POST-процедуры, процедуры настройки чипсета, тот же самый Setup, Boot-Block. В этом смысле автор прав.

Аватар пользователя Макс Курмаз
В общем, прав каждый по своему :) Все же хотелось бы видеть больше корректности, тем более что статья посвящена именно устройству BIOS.
Аватар пользователя apple_rom
В принципе Макс прав. НО. Как бы совсем правильно говорить - x86-совместимая многозадачная операционная система Windows xxxx. Но все давно привыкли к просто "Windows" или "винда". Всем, даже совсем чайникам, понятно, о чём речь, при использовании не совсем корректного, но уже ставшего СТАНДАРТНЫМ, слова.

Так же и с "BIOS"-ом. Если отбросить использование этого слова в качестве обозначения самой микросхемы или BIOS Setup, то КАК ПРАВИЛЬНО назвать ВСЁ содержимое флэш-памяти? НПЗПЗУВСПВК - "Набор Подпрограмм Записанных в ПЗУ и Выполняемых Сразу После Включения Компьютера"?

Я тоже люблю - "чтоб правильно". Но, не найдя ПРАВИЛЬНОГО названия и подумав, что теперь явно мало кто помнит/знает, про IBMBIO.COM/IBMDOS.COM, решил, что пусть неточно-банально-избито, но ПОНЯТНО.

...Как говорится: пофиг как фильм называется, главно, чтоб про войну!