|
Особенности национальной сборки
Александр Чижов
chizh@irk.ru
http://cooler.irk.ru
Часть 2. Как все заводится
В прошлой статье мы остановились на том, что включили свой компьютер в первый раз после того, как собрали его собственными руками. Не факт, что он у вас сразу заработал. Так вот, для того, чтобы правильно диагностировать причины возможных неполадок, необходимо иметь некоторое представление, что же происходит после подачи напряжения на системную плату (и остальные устройства, разумеется, тоже). Для этого немного пробежимся по основным частям материнской платы.
Теория
Сердцем системной платы является чипсет – он связывает процессор, память, периферию и кэш. Все "связи" выполнены в виде различных "шин" и "мостов". Например, для организации быстрейшего обмена данными между процессором и памятью (кэшем второго уровня, передача данных от остальных шин к процессору и памяти) предназначена т.н. "системная шина" (управляет этим системный контроллер, входящий, конечно в весь чипсет). Из основных шин - шина PCI, шина ISA, шина ввода/вывода, USB, AGP и др. Скорости на сегодняшний день на них распределены следующим образом: AGP – 66 МГц, PCI - 33 МГц, скорость системной шины (а вместе с ней и памяти) зависит от чипсета. Например, 440BX (самый распространенный на сегодня чипсет для PII) поддерживает стандартно до 100 МГц на системной шине. Все чипсеты для процессоров Intel Pentium 100-200 МГц (K6-2, Cyrix) процессоров (440TX и пр.) – стандартно до 66 МГц.
Более скоростная шина PCI является транспортом для медленной ISA. Мостом в этом случае (как и контроллером для жестких дисков, которые теперь "висят" на PCI) является контроллер шины периферии.
На шине ISA находится BIOS, который управляет инициализацией и загрузкой компьютера после включения питания. Как это происходит. На самом деле, "чисто" описать, как компьютер инициализируется, не получится – во многих системах это происходит с небольшими отличиями, да и надо учитывать набор оборудования, предустановки и пр. Но в основном – это выглядит следующим образом:
Возьмем вот такой набор – материнская плата под Socket7, PCI, ISA, AGP, на борту кроме стандартного набора периферийных контроллеров (клавиатура, диски, коммуникации) ничего нет.
Итак, включаем питание – происходит общий reset логики и процессора, процессор начинает выполнять набор инструкций, которые изначально хранятся в ПЗУ на материнской плате. Набор можно логически разбить на три части – Power On Self Test (POST) – запускается только один раз и сразу после включения питания – в этом тесте проверяется аппаратура на наличие грубых ошибок (функционирование аппаратуры вообще). Одним из видимых шагов на экране – тестирование памяти. Следующая часть – Инициализация – запускается каждый раз, когда машина перегружается (например, когда пользователь нажимает Ctrl-Alt-Del) – инициализирует все доступные устройства на плате и в слотах расширения (ISA, PCI, AGP). Третья часть – это собственно BIOS (basic I/O support) – поддержка ввода/вывода на низком уровне. Этими функциями пользуются некоторые операционные системы (DOS, Windows и др.) Обычно весь BIOS располагается на отдельном чипе, который программируется на заводе, хотя в современных компьютерах может быть перепрограммирован прямо из системы. Т.е. сейчас используется Flash Memory.
Нелишним будет отметить, что существуют системы, читающие все инструкции BIOS из специальной области на жестком диске – т.е. у них нет отдельной микросхемы для хранения BIOS. (А вообще, нет безбиосных компьютеров, даже если убить BIOS на жестком диске такой машины, в нем остается один нестираемый сектор, который грузит с дискетки программу перепрошивки).
Особенность существующих BIOS - в том, что они весьма медленны (гораздо медленнее, чем обычная оперативная память). Поэтому многие системы просто копируют весь BIOS в оперативную память.
Последовательность расположения областей памяти – 128 кб – окно памяти видеоадаптера, далее – окно памяти ввода-вывода адаптеров, присоединенных к шине ввода-вывода и выше – все содержимое BIOS, теперь уже скопированное в ОЗУ (кстати, это и называется Shadow ROM).
И когда в компьютере установлено, например, 8 Мб ОЗУ, а на экране показано только 7808 кб (а должно быть 8192 кб), то это значит, что для задач будет доступно только это количество памяти (8192 кб минус 384 кб). Однако в современной архитектуре компьютера память просто "раздвигается" (контроллером памяти чипсета) на 384 кб - от 640 кб до 1 Мб.
Тест памяти – это наиболее видимая часть теста аппаратуры на этапе POST. Кстати, о видимости: видеоадаптер – тоже аппаратура, и его как раз необходимо инициализировать в первую очередь, чтобы пользователь мог видеть процесс тестирования и инициализации устройств. Также необходимо установить еще и режим (частоту обновления, разрешение) экрана. Ведь видеокарточки могут быть сделаны разными фирмами, да еще и разные модели – кому как не "биосу" самой карточки досконально знать, как ее нужно инициализировать?
На каждой видеокарте есть свой BIOS, который опрашивается при тестировании аппаратуры. Сначала системный BIOS ищет видео-BIOS по стандартным адресам ISA VGA. Если там нет адаптера, то он ищется на PCI , потом на AGP (или сначала AGP, а потом PCI - это в установках системного BIOS можно прописать). И если видео-BIOS найден в одном из слотов, то управление передается на него.
И вообще, присутствие BIOS на различных адаптерах заставляет системный BIOS отдавать им управление. В случае с видеоадаптером это включение режима и т.д., в случае с сетевой картой – загрузка из сети (в случае с бездисковыми машинами – удаленная загрузка из сети), при наличии BIOS на сетевой карте и наличии жесткого диска, BIOS, например, может спросить: как будем грузиться – из сети или с имеющегося HDD?
SCSI-адаптер (если он имеется в наличии) должен проинициализировать свои устройства (диски, CD-приводы, ленточные накопители и т.п.) и коли таковые найдутся, необходимо будет поддержать int13 для того, чтобы система могла обращаться к ним, как к обычным жестким дискам. Хотя инициализация SCSI-устройств необязательна (при старте ее можно вообще отключать), в случае, если SCSI-устройство не является загрузочным, это разумно. Причем, PCI SCSI-адаптеров может быть несколько - и на каждом свой BIOS, в этом случае, системный BIOS и "биосы" на платах вместе разбираются, какой и куда загрузить (иногда не разбираются, и тогда происходит конфликт устройств – прим. ред.).
Все "биосы" адаптеров отображаются в адресном пространстве тех 128 кб, которые обозначены, как I/O Bus на рисунке, где показано раздвигание памяти на 384 кб. Эти адреса следующие: от 0xC0000 до 0xDFFFF. Каждый раз, когда системы инициализируется, программа "пробегает" весь блок 128 кб и проверяет на наличие специальной сигнатуры, которая указывает на начало собственного обработчика у адаптера. И запускает его.
Такой механизм позволяет, например, сетевому адаптеру правильно инициализировать самого себя – вне зависимости от производителя или модели, ведь собственный BIOS карточки расчитан специально для нее.
Дальше проверяется наличие жестких дисков (IDE) на контроллере ввода-вывода (если такая опция задана в BIOS Setup), дисководов для дискет и прочей подобной периферии. Проверяется клавиатура, и после успешной проверки выдается одиночный звуковой сигнал (бип), указывающий, что инициализация прошла успешно (если нет – различным сочетанием звуковых сигналов 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 сразу сказываются на работе PCI видеоадаптера – например, установка в слот ISA старенькой видеокарты может помочь диагностировать на экране ошибки в инициализации PCI или работы самого BIOS.
Несколько неполадок, которые могут встретиться при сборке.
1. Все работает, но флоппи-дисковод не инициализируется, и на нем постоянно горит светодиод – скорее всего, неправильно присоединен разъем шлейфа к контроллеру. Обычно первый провод (помечен красным) должен располагаться около разъема питания дисковода, но сущестуют модели дисководов, где это правило нарушено – там как раз наоборот – первый провод должен быть с другой стороны. То же относится к жестким дискам – система просто не инициализируется – не проходит POST, сообщающий системе о наличие запрещенных уровней сигнала на шине IDE.
2. Достаточно редкая, но все же, случающаяся ошибка – неправильное подключение питания к дисководу (у него разъем не очень удачной конструкции и иногда можно ошибиться) - система после включения питания не заводится, вентилятор на процессоре чуть дернется и все – это сразу срабатывает защита в блоке питания.
Стоит заметить, что после включения питания (и нарушения питания нет), жесткие диски издают характерный звук – сперва раскручиваются сами диски, потом частые "щелчки" – это работает система позиционирования головок. Точно таким же образом он будет инициализироваться, даже при отключенном сигнальном шлейфе к IDE контроллеру. Так что при общей диагностике жесткий диск вам особо не помощник. Отключайте его, чтобы не мешал.
Далее – удалите из слотов все адаптеры, кроме видео (желательно использовать на момент тестирования ISA адаптер). Из управляющих кнопок на плате необходим лишь reset. Из устройств сигнализации – динамик. Если по прошествии некоторого времени BIOS выдаст звуковой сигнал, указывающий на успешность инициализации устройств, а экран так и не ожил – очевидно, неполадка кроется в видеоадаптере.
При наличии SCSI-адаптера и SCSI-устройств, проверяйте их адреса – они выставляются у каждго SCSI-устройства перемычками (ID от 0 до 7) – при совпадении многие SCSI-адаптеры могут очень надолго задуматься при инициализации и проверке этих устройств.
Мышь в системе не работает. Ее не видят ни DOS, ни Windows. Первое – сигнальный шлейф с разъемом должен быть родной (поставляется вместе с материнской платой), потому как существует несколько распаек кабелей для COM-портов. Некоторые подходят к другим моделям, некоторые – нет. Или причина кроется в настройках самого BIOS. В setup в разделе Integrated Peripherals необходимо изменить значение auto у назначений адресов памяти и прерываний у COM-портов на стандартные – 0x3F8, IRQ 4 у первого COM-порта и 0x2F8, IRQ3 – у второго.
Ошибки работы оперативной памяти диагностировать достаточно сложно, за исключением явно нерабочих модулей, о которых сообщает POST звуковыми сигналами (система не инициализируется) – а память выше 1 Мб хорошо проверяется только специальными программами. В любом случае, при подозрении на память, желательно иметь заведомо рабочие модули, причем от сходных систем. Например, 60 нс память SIMM не работает на 486 материнских платах – не те временные характеристики.
Также стоит быть очень внимательным к креплению материнских плат – часто бывает, что плохо закрепленная плата касается радиаторами (транзисторов) железных частей корпуса – это практически всегда приводит к потере материнской платы…
Продолжение следует
|