По ту сторону RESET-а

Материал из Wiki.ROM.by
Перейти к: навигация, поиск

Содержание


Что происходит с компьютером сразу после нажатия кнопки включения? Как "начинает жить" вся система? Кто "более первый"? Что делает процессор до снятия сигнала #RESET?

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

Вопросы "электрической" составляющей "жизни до старта" (т.е. до выдачи сигнала PowerGood) здесь опущены, их правильней рассмотреть в отдельной статье.


Кто "первый"?

- Странный вопрос - скажете. - А кто же еще - процессор, кто у нас главный? И что, есть еще кто-то в очереди?

Вынужден разочаровать: процессор - самое бесправное существо в системе, он стартует самым последним. А с учетом растущего семимильными шагами интеллекта "периферии" (в первую очередь - видеокарт) и чипсетов, вообще, рискует со временем превратиться в "модуль аппаратной поддержки Windows". :)

Всё просто и сложно одновременно. Прогресс делает свое чёрное дело. Каждый отдельный компонент компьютера усложняется в геометрической прогрессии. В результате, по сути, каждый такой элемент начинает приобретать черты того же компьютера, только "попроще". А какая у компьютера главная микросхема? Только не надо опять про процессор! Конечно же - BIOS. :) Итого, для настройки каждого отдельного элемента платы требуется где-то сохранять (причем желательно/обязательно - энергонезависимо) настройки сего элемента. А много пригодных для этого "мест" у компьютера? Верно, опять - биос. В результате и получается не совсем очевидный, но факт - современная система целиком и полностью зависима от BIOS. Нет, конечно, это было верно и раньше, однако во времена, "когда деревья были большими", мы знали, что от биоса требуется лишь, чтобы по адресу FFFF:FFF0 процессор мог взять первую команду POST. А теперь... Что же "теперь"?

Рассмотрим ситуацию на примере AMD K7 систем. Получив в наследие от Alpha 21264 шину EV6, оные, кроме гигантских плюсов, позволивших впоследствии выбраться "из грязи в князи" и засунуть на несколько лет за пояс саму Intel, получили и отсутствовавющую ранее потребность в инициализации самой шины (здесь и дальше под этим подразумевается установка её - шины - характеристик из энергонезависимой памяти ). А кто должен этим заниматься? Процессор? А каким образом? Ведь мы пару абзацов назад уже выяснили, что процессор - самый "последний", а шину-то как раз нужно проинициализировать в первую очередь. В результате получаем, что до старта процессора кто-то должен "всё подготовить". Так северному мосту пришлось "резко поумнеть". Теперь, после получения PWR_GOOD, через небольшую задержку с северного моста снимается #NB_RESET (сигнал сброса северного моста), в то же время процессор продолжает "отдыхать" (сигнал #RESET не снимается). За это время (до "просыпания" процессора - снятия также и #RESET-а) северный мост должен оперативненько вытащить из биоса нужные ему (т.е. мосту, а не процессору) настройки и подготовиться к запуску. Как только процессор, наконец, зафункционирует, северный мост посылает ему пакет данных (SIP), в котором задаются основные параметры самого процессора (в том числе КУ). И только после отработки этого пакета, северный мост, наконец, вынимает первую команду на исполнение процессору. Обычно (раньше) она находилась по адресу FFFF:FFF0, однако нонче это совершенно не обязательно (в чем можно самому убедиться, просто дизассемблировав "концовку"-boot block любого современного биоса).

Инициализация северного моста.

Попробуем разобраться "на пальцах". Зачем так сделали? Тут понятно: умной системе - умные железки, умным железкам - нужно как-то инициализироваться. Вот это они и делают в самом начале работы, еще в "доресетный" период. А что выйдет, если у северного моста "не получится" проинициализироваться корректно? А ничего и не будет - нули на посткарте. Именно подобную ситуацию мы частенько получаем, когда кажется, что "ну, всё же нормально - биос на месте, процессор и разъём и т.п.", а "не идёт". Кроме того, ежели в системе много всяческих "наворотов" (читай - как у Asus), то запросто может случиться ситуация, когда северный мост откажется работать с флэшками "не его" типа, предпочитая лишь какой-то конкретный тип оных (читай SST). Кроме того, подобные технологии (типо-флэше-зависимость) позволяет продвинутым производителям защищать свою продукцию от копирования "сторонними китайскими платостроителями". Более подробно ситуацию с вариантами защиты своих схемотехнических решений от плагиата рассмотрим в отдельной статье.

Роль Super I/O Chip (SIO)

Обычно все привыкли, что неисправность мультика проявляется на "более позднем" этапе (в процессе POST), обычно это POST-код 05h для Award и т.п. Однако в свете обрисованной выше инициализации моста явно становится видна зависимость последней уже и от мультика, который также напрямую связан с функционированием биоса. А в результате получаем, что в случае проблем с мультиком, мы можем получить не только "обычные 05" на посткарте, но и "непонятные" нули, потому как северный мост не сможет корректно пройти необходимую инициализацию. Соответственно, берем на заметку - при исправности цепей питания, биоса и мостов, нули на посткарте могут быть в том числе и из-за проблемного мультика.

Например у очень популярных м/с IT8712F-A, а также продолжений этой линейки IT8716F и IT8718F, в составе GPIO регистров часть сконфигурирована (по умолчанию) и используется производителями под порты VID-input и VID-output. Имеется флаг разрешения/запрещения копирования из Input в Output (default 0. VID output from input). Таким образом при старте системы на ШИМ-регулятор подается комбинация VID-ов не напрямую с процессора, а через "посредника".


Персональные инструменты
Google