Уважаемые счастливые обладатели современных плат и ещё более современных процессоров!
Для того, чтобы система запустилась, биос должен произвести настройку всех частей системы. Некоторые параметры можно изменить "на лету", а некоторые - только сразу после сигнала RESET (т.е. "перегрузки" по-простому) и, главное, ДО начала работы биоса. В результате получаем следующую схему:
1. Включение компьютера.
2. Настройка всех режимов работы железа "по-умолчанию".
3. Старт биоса.
4. Биос считывает из CMOS-памяти настройки, которые Вы задали до этого в Setup BIOS.
5. Устанавливает специальные программные "виртуальные перемычки", которые после перезагрузки переключат железо с "дефолтных" настроек в заданные Setup-ом.
6. Биос перезагружает компьютер
7. Компьютер стартует уже с "номинальными" настройками.
Обычно эта операция (Старт-Установка-Перезагрузка-Повторный старт) происходит в самом начале работы биоса, в коде BootBlock-а и вы её даже не замечаете (но её чётко видно при помощи POST-карты), потому что такая перезагрузка происходит через 0.5-1.5 секунды после включения. Однако в случае "сложных манипуляций" по установке настроек железа - код для подобных операций может располагаться не в бутблоке, а в основной части процедуры POST, которая распаковывается в процессе работы биос. В результате момент перегрузки "задерживается" и становится очевидным даже без POST-карты. Более того, в зависимости от реализации (в частности, именно как в обсуждаемой тут теме) это получается совсем не "двойной", а уже "тройной" (один "бутблочный" рестарт плюс "поздний") старт.
Теоретически, обычно ничто не мешает биосописателям засунуть такой "критический" код в бутблок и тогда подобных "загадок двойного старта" никогда бы не возникло. Однако, во-первых, биосописатели, как и большинство программистов - ленивые по определению (из-за совершенно справедливого постулата - не трогай то, что "и так" работает. ), во-вторых, код бутблока и распакованной части - разные вещи и ими даже занимаются разные люди, в-третьих, многие вопросы программирования современных чипсетов действительно очень сложны в реализации и такой подход - следствие банальной попытки упростить себе работу.
Вот что нашел по поводу "двойного старта"
Уважаемые счастливые обладатели современных плат и ещё более современных процессоров!
Для того, чтобы система запустилась, биос должен произвести настройку всех частей системы. Некоторые параметры можно изменить "на лету", а некоторые - только сразу после сигнала RESET (т.е. "перегрузки" по-простому) и, главное, ДО начала работы биоса. В результате получаем следующую схему:
1. Включение компьютера.
2. Настройка всех режимов работы железа "по-умолчанию".
3. Старт биоса.
4. Биос считывает из CMOS-памяти настройки, которые Вы задали до этого в Setup BIOS.
5. Устанавливает специальные программные "виртуальные перемычки", которые после перезагрузки переключат железо с "дефолтных" настроек в заданные Setup-ом.
6. Биос перезагружает компьютер
7. Компьютер стартует уже с "номинальными" настройками.
Обычно эта операция (Старт-Установка-Перезагрузка-Повторный старт) происходит в самом начале работы биоса, в коде BootBlock-а и вы её даже не замечаете (но её чётко видно при помощи POST-карты), потому что такая перезагрузка происходит через 0.5-1.5 секунды после включения. Однако в случае "сложных манипуляций" по установке настроек железа - код для подобных операций может располагаться не в бутблоке, а в основной части процедуры POST, которая распаковывается в процессе работы биос. В результате момент перегрузки "задерживается" и становится очевидным даже без POST-карты. Более того, в зависимости от реализации (в частности, именно как в обсуждаемой тут теме) это получается совсем не "двойной", а уже "тройной" (один "бутблочный" рестарт плюс "поздний") старт.
Теоретически, обычно ничто не мешает биосописателям засунуть такой "критический" код в бутблок и тогда подобных "загадок двойного старта" никогда бы не возникло. Однако, во-первых, биосописатели, как и большинство программистов - ленивые по определению (из-за совершенно справедливого постулата - не трогай то, что "и так" работает. ), во-вторых, код бутблока и распакованной части - разные вещи и ими даже занимаются разные люди, в-третьих, многие вопросы программирования современных чипсетов действительно очень сложны в реализации и такой подход - следствие банальной попытки упростить себе работу.