При нажатии кнопки POWER на системном блоке системная плата отправляет на блок питания сигнал PS On. По этому сигналу в течение 0,1-0,5 секунд блок питания переходит в рабочий режим. В это время раскручиваются шпиндели жестких дисков, вентиляторы системы охлаждения, поступает питание на прочие компоненты. Все линии питания испытывают максимальную нагрузку.
Специальная схема контроля БП отслеживает процесс запуска и при нормальном завершении отправляет сигнал по линии Power Good (Питание в норме). Чипсет системной платы приняв сигнал, дает добро на запуск центрального процессора, снимая напряжение с вывода Reset (Сброс).
Центральный процессор проводит самотестирование и выполняет программу, записанную в BIOS. Первой программой всегда служит процедура проверки и инициализации компонентов системы POST (Power On Self Test). В ходе POST последовательно выполняются еле дующие операции:
- инициализация чипсета, контроллера прямого доступа к памяти DMA, контроллера шины памяти;
- копирование BIOS в оперативную память;
- инициализация контроллера клавиатуры;
- сканирование адресного пространства в поисках BIOS видеоадаптера;
- проверка контрольной суммы и передача управления BIOS видеоадаптера;
- инициализация и тестирование видеоадаптера, вывод на экран сообщений BIOS видеоадаптера;
- возвращение управления системной BIOS;
- инициализация компонентов, подключенных к внутренним и внешним шинам;
- загрузка пользовательских настроек BIOS;
- инициализация специфических блоков процессора (кэш-память второго уровня, блок SSE и тому подобное);
- выдача на экран параметров процессора (производитель, модель, частота);
- подача звукового сигнала о нормальном завершении POST; проверка таймера RTC (Real Time Clock);
- тестирование модулей оперативной памяти;
- вывод на экран параметров оперативной памяти:
- инициализация устройств на шине LCP:
- инициализация контроллеров шины IDE;
- инициализация контроллера привода гибких дисков;
- выдача на экран списка устройств, подключенных к шинам расширения и накопителей;
- поиск загрузочной записи на устройствах, в соответствии со списком, заданных пользователем в BIOS;
- передача управления первой найденной загрузочной записи.
В загрузочной записи содержится системный загрузчик, который копируется в оперативную память и запускает загрузчик операционной системы. Начиная с этого момента, процедура аппаратно-программного запуска компьютера считается завершенной, далее происходит программный запуск операционной системы.
Процессор Загружен на 100? Как Снизить Загрузку и Увеличить FPS в Играх на Windows 10
Источник: pcspravka.ru
Русские Блоги
Новичок изучает операционную систему — практикует (2) запуск аппаратной системы — первая инструкция ЦП
Аппаратный запуск системы — первая инструкция ЦП
Процессор загружен на 100%, что делать? ️ ⏲
Включение и перезагрузка компьютера:
После нажатия кнопки питания хоста компьютер начинает загружаться, а материнская плата начинает инициализировать свою прошивку после включения. В прошивке есть какие-то программы, которые закреплены на чипсете, она будет пытаться запустить CPU. Если при запуске произошел сбой (например, ЦП сломан или не подключен), компьютер зависнет и выдаст сообщение об ошибке (например, некоторые версии прошивки материнской платы будут издавать звуковой сигнал). Это состояние называется «зумби с веерами».
Если на предыдущем этапе нет ошибок, он начнет включаться. В случае многопроцессорного или многоядерного процессора в качестве загрузочного процессора (процессор начальной загрузки, BSP) будет случайным образом выбран определенный процессор для запуска программы внутри BIOS. Остальная часть ЦП (процессор приложений, AP) продолжает отключаться, пока ядро операционной системы не использует их явно.
Используется на материнских платах компьютеров до 2000 г.BIOS, Большинство компьютеров в настоящее время используютEFI(Mac использует EFI) илиUEFI, Использование BIOS постепенно прекращается. Процесс загрузки, основанный на EFI и UEFI, отличается от традиционного BIOS. Процесс загрузки будет представлен на примерах традиционного BIOS и процессора Intel.
В это время рабочий режим ЦП — реальный режим, адресная шина в этом режиме 20 бит, а диапазон адресации составляет 1М от 0x00000 до 0xFFFFF. Это также объясняет, почему емкость BIOS составляет всего 1 МБ.
При запуске BIOS память пуста. В это время ЦП находится в реальном режиме, а отображение адресов памяти — это аппаратное устройство. Карта памяти показана на рисунке ниже.

После запуска ЦП сначала переходит в реальный режим.В этом режиме ЦП обрабатывает адреса физической памяти, что означает, что MMU не включает функцию подкачки и может получить доступ только к 1 МБ памяти.
Однако большинство регистров ЦП в это время могут использоваться нормально, а регистр EIP — это регистр, указывающий на адрес памяти инструкции, которая должна быть выполнена ЦП. После запуска ЦП Intel будет вести себя особым образом, то есть добавит значение базового регистра к начальному значению EIP и позволит ЦП перейти по адресу 0xFFFFFFF0 для выполнения там первой инструкции. Это называется особым поведением, потому что этот адрес на самом деле превышает ограничение памяти в 1 МБ в реальном режиме. Поэтому адрес 0xFFFFFFF0 называется вектором сброса. Что такое вектор сброса, скажу ниже!
Затем микропрограмма на материнской плате гарантирует, что инструкция в векторе сброса является инструкцией перехода, которая очищает значение базового регистра, добавленного в EIP, позволяя процессору продолжить переход к началу кода BIOS (физический адрес 0xF0000). Запускаем BIOS.
После запуска ЦП значение каждого регистра:
Здесь нас больше всего беспокоят два регистра EIP (указатель инструкции) и CS (сегмент кода), связанные с выполнением инструкции. Чтобы
Как упоминалось ранее, адрес первой инструкции — 0xFFFFFFF0. При инициализации системы X86 микропрограмма в ПЗУ будет отображена (размер микропрограммы 0xFFFFFFFF) в адресное пространство 0xFFFFFFFF. Следовательно, 0xFFFFFFF0 соответствует определенной инструкции в ПЗУ.Это правило остается неизменным независимо от того, хранится ли в ПЗУ традиционная прошивка BIOS или сохраненная прошивка UEFI. Следующие инструкции продолжат путь инициализации ЦП с этого дня. Чтобы
BIOS можно разделить на два блока:
кодовый блок (обычная программа),
загрузочный блок (программа загрузки).
После включения сначала будет выполнен загрузочный блок, который проверит правильность кода кодового блока.
Если это правильно, он перейдет к блоку кода, чтобы продолжить выполнение.
Адрес 0xF0000 фактически является началом загрузочного блока в BIOS. На этом этапе будет инициализировано некоторое оборудование. CPU и USB системы инициализированы только частично.
BIOS POST (самотестирование при включении)
После завершения инициализации ЦП переходит к адресу 0xA0000 (см. 640 КБ на рисунке выше) для самотестирования BIOS при включении питания (POST). Этот процесс проверит различные компоненты компьютера, такие как ЦП, графическая карта, память, мышь, клавиатура и т. Д. Если вы не можете найти память или клавиатуру, BIOS может перестать работать и распечатать некоторые связанные сообщения об ошибках. Если графическая карта не может быть найдена, BIOS выдаст предупреждение зуммер (потому что экран не может быть отображен)
Когда ЦП достигает адреса 0xC0000 (см. 768 КБ на приведенном выше рисунке), он начинает поиск ПЗУ других устройств.Если он находит BIOS любого другого устройства, они также будут выполнены.
На следующем этапе видеокарта отобразит интерфейс BIOS и выполнит более глубокую проверку.
BIOS записывает системные настройки
После завершения проверки BIOS дополнительно подтвердит систему в соответствии со своей собственной «таблицей системных ресурсов», чтобы определить, какими ресурсами или оборудованием оснащен компьютер. Например, BIOS поддерживает plug and play, он обнаруживает и настраивает устройства plug and play.
Затем BIOS будет следовать расширенному интерфейсу питания конфигурации (ACPI), чтобы установить в памяти серию данных для описания информации об оборудовании, чтобы ее могло использовать ядро операционной системы.
На этом этапе BIOS пытается загрузить операционную систему. Он будет искать операционную систему последовательно с жесткого диска, оптического дисковода, дисковода гибких дисков, сети и других мест (пользователь может изменить приоритет поиска в настройках BIOS). Если операционная система не может быть найдена, BIOS остановится и выдаст сообщение об ошибке.
Предполагая, что операционная система находится на жестком диске, она сначала прочитает на жестком диске сектор 0 размером 512 байт. Этот сектор называетсяГлавная загрузочная запись(Основная загрузочная запись, MBR), которая состоит из трех частей:
(1) Стартовый код
(2) Таблица разделов жесткого диска
(3) Слово конечной метки
После того, как BIOS считывает MBR на диске, он копирует ее по адресу памяти 0x7C00, а затем ЦП переходит к адресу памяти, чтобы выполнить инструкции в MBR.
Теперь давайте рассмотрим еще один вопрос, с точки зрения процессора, почему физическая память, которую мы подключили к материнской плате, не является «всей памятью» в его глазах.
Ширина адресной шины определяет размер пространства памяти, к которому можно получить доступ.Например, адресная шина 16-разрядной машины составляет 20 бит, а ее диапазон адресов — 1 МБ.
Ширина 32-битной адресной шины составляет 32 бита, а ее диапазон адресов — 4 ГБ. Но указанный выше диапазон адресов относится к границе, которую может коснуться адресная шина.
Относится к территории, которую компьютер может достичь при адресации. Но они не сказали, где искать. Возьмем, к примеру, 16-битную машину.
Диапазон адресации должен быть физической памятью (полосой памяти). Распознает ли 20-битная адресная шина эту треть земли? совершенно не
В конечном итоге причина такова: в компьютере не только карты памяти, которые мы вставляем в материнскую плату, нуждаются в доступе через адресную шину.
Есть также некоторые периферийные устройства, к которым требуется доступ через адресную шину, и таких устройств много. Если вся адресная шина указывает на физический
Как получить доступ к другим устройствам? По этой причине мне пришлось заранее зарезервировать некоторые адреса на адресной шине для этих периферийных устройств.
При использовании этот непрерывный адрес предоставляется видеопамяти, а этот непрерывный адрес — контроллеру жесткого диска. Оставив достаточно, оставшиеся доступные адреса на адресной шине
Затем укажите на DRAM, то есть на планку памяти, вставленную на материнскую плату, физическую память в наших глазах.
Размер физической памяти бесполезен, в основном зависит от ширины шины заземления. Также это зависит от конструкции адресной шины, все ли она используется для доступа
DRAM. Таким образом, адресная шина является ключом к принятию решения о том, где мы посещаем, что мы посещаем, и о масштабах нашего визита. Машины, которые мы обычно используем
Обычно он 32-битный. Не все вышеперечисленные карты памяти используются. Разумеется, размер карты памяти превышает 4 ГБ и это бессмысленно. Это превышает общий адрес.
Сила линии — пустая трата. Однако, согласно предыдущему введению, даже если размер банка памяти не превышает диапазон адресной шины, он не будет полностью доступен.
Я спросил, в конце концов, некоторые адреса должны быть зарезервированы для доступа к другим периферийным устройствам, поэтому, в конце концов, это зависит от того, на какую память указывает адресная шина.
Если установлено 4 ГБ ОЗУ, на компьютере отображается только около 3,8 ГБ.
Короче говоря, строка чисел, представляющая адрес, является входом адресной шины, что эквивалентно ее параметрам и не имеет ничего общего с картой памяти. ЦП может получить доступ
Это сопоставление, выполняемое адресной шиной, что эквивалентно назначению блока хранения адресу, и блок хранения находится либо в определенном ПЗУ.
, Он либо попадает в память определенного периферийного устройства, либо на физическую карту памяти. Можно представить, что ЦП отправляет на адресную шину
Числа. С точки зрения адресной шины, эта строка чисел является адресом. Схема распределения адресов решает, какой носитель данных выделить в соответствии с диапазоном адресов.
Оборудован блоком хранения и, наконец, соответствует этому адресу с этим блоком хранения. Конечно, это может быть не так, как я только что сказал, вы можете себе представить
В это. Когда мы изучаем новые знания, мы часто опираемся на исходные знания и используем оригинальные знания, чтобы помочь усвоить новые знания, точно так же, как
Когда мы впервые услышали об электромобилях, мы подсознательно использовали концепцию автомобилей и аккумуляторов в образе электромобилей Lenovo. Если ты хочешь учиться
Попытка полагаться на воображение очень эффективна, когда новые знания являются новыми, а старые знания не могут использоваться для помощи в обучении. Для овладения знаниями это не
Каковы стандарты? У всех разное понимание знаний. Даже если два человека получают полную оценку, их мыслительный процесс отличается. и другие,
Освоение нового знания, по сути, дает повод убедить себя, и этого достаточно, чтобы уметь его оправдать.
Рассказал о функциях и расположении памяти BIOS полностью на глазах у неба. Вроде еще не говорил по теме. Как BIOS запускается? потому как
BIOS — это первое программное обеспечение, работающее на компьютере, поэтому оно не может загружаться само по себе, поэтому вы можете знать, что оно загружается аппаратно.
Так кто это железо? Фактически, как уже упоминалось ранее, это эквивалент ПЗУ с постоянным запоминающим устройством, потому что он там спал и не двигался.
Как вы все знаете, содержимое постоянной памяти не подлежит стиранию, то есть не похоже на динамическую оперативную память DRAM,
После включения данные внутри будут потеряны. Этот носитель данных используется для хранения неизменяемых данных. Когда данные записываются, они такие же, как солнце и луна.
Хуэй, сядь перед судом и смотри, как распускаются и опадают цветы, бессмертные среди мира, ха-ха, немного преувеличено.
Работа, выполняемая кодом BIOS, также неизменна, и при нормальных обстоятельствах ее не нужно изменять.
Исключением является перепрошивка BIOS, если плата сломана. Таким образом, BIOS логически записан в это ПЗУ. ПЗУ также является блоком памяти, и для этого требуется
ПЗУ, к которому осуществляется доступ, отображается в верхней части нижнего уровня 1МБ памяти, то есть по адресу FOOOO ~ FFFFF вы можете обратиться к BIOS в верхней части таблицы.
Часть Пока осуществляется доступ к указанному здесь адресу, осуществляется доступ к BIOS.
Сам BIOS — это программа. Для выполнения программы должен быть адрес входа. Этот адрес входа — OxFFFFO.
Самый важный момент наступает после того, как вы узнаете, где находится BIOS, как ЦП его выполняет, то есть как объединяется значение CS: ip в ЦП.
После включения ЦП он моделируется с помощью Bochs, и регистр сегмента CS и регистр инструкций IP будут сброшены. Значения после сброса следующие:
Итак, адрес первой инструкции, выполняемой ЦП: 0xFFFF: 0x0000 = CS * 10h + IP = 0xFFFF0, сначала найдите, какая инструкция хранится в этом адресе
Схема распределения адресов (память 1M):
ПЗУ: 0xF0000—0xFFFFF (1 Мб памяти занимает 64 КБ, первая инструкция, выполняемая ЦП, начинается здесь)
Адрес памяти, на который указывают после сброса CPU, требует очень важной функции: данные в этой памяти не исчезнут после отключения питания.
Тогда это место находится только в ПЗУ, я особенно хочу знать, какая первая инструкция выполняется процессором, затем откройте отладочную версию Bochs bochsdgb.exe, просто сделайте это, дважды щелкните bochsdgb.exe в каталоге установки, и он появится. Рисунок (в основном потому, что нам еще нужно настроить bochsrc.bxrc).
Перед настройкой bochsrc.bxrc мы должны создать образ жесткого диска (.img)
1. Запускаем -> CMD -> Войдите в каталог bochs (вводить не нужно, если переменная окружения установлена, но для удобства введем ее)
После создания образа жесткого диска мы начинаем просто настраивать bochsrc.bxrc!
Найдите в каталоге файл bochsrc-sample.txt, лучше всего скопировать файл и изменить его снова. Если модификация не работает, вы можете снова скопировать ее.
Найдите ata0-master выше и добавьте сюда знак #, отмените знак # в третьей строке, что означает запуск с жесткого диска c.img, затем переименуйте bochsrc-sample.txt в bochsrc.bxrc и откройте bochsdbg ==》 Load, Появится следующая картинка:
Как видно из рисунка выше:
Адрес первой инструкции, выполняемой ЦП: F000: FFF0
Преобразованный в виртуальный адрес: 0xF000 * 10H + 0xFFF0 = 0xFFFF0 Его код: jmpf 0xf000: e05b, мы знаем, что 0xf0000—0xfffff — это все адреса ПЗУ, мы знаем из вышеизложенного, что действительно первая инструкция от микросхемы ПЗУ Выполнение, переход к адресу все еще находится в микросхеме ПЗУ, в основном для диагностики, обнаружения и инициализации оборудования (например, для создания таблицы векторов прерываний) (это также реализуется с помощью кода, поэтому его также называют базовой системой ввода и вывода). Биос).
Когда BIOS инициализируется, он начинает создавать структуры данных, таблицу векторов прерываний IVT и заполнять процедуры обработки прерываний в памяти 0x000-0x3FF.
Последней задачей BIOS является проверка содержимого сектора 0 диска 0 дорожки 1 (512 байт) на загрузочном диске. Если последние два байта равны 0x55 и 0xaa соответственно, это считается исполняемой программой. , И загрузите его в 0x0000: 0x7c00, а затем появится JMP, 512 байтов — это знаменитая MBR.
В настоящее время нам нужно только знать, что B8000 — BFFFF используется для видеопамяти (32K), 7C00-7DFF (512B) может загружать MBR в это место, и мы будем использовать его здесь в будущем.
Дополнительное обучение:
Физический адрес: это реальный адрес физической памяти, который эквивалентен номеру дома каждой единицы хранения в памяти и является уникальным.
Независимо от того, какой виртуальный адрес, линейный адрес и ЦП в конечном итоге необходимы для доступа к памяти с физическим адресом, только физический адрес является концом доступа к памяти.
В реальном режиме: «базовый адрес сегмента + адрес смещения сегмента» обрабатывается компонентом сегмента, и физический адрес выводится напрямую, и ЦП может напрямую использовать этот адрес для доступа к памяти.
В защищенном режиме: «базовый адрес сегмента + адрес смещения сегмента» называется линейным адресом, но в настоящее время базовый адрес сегмента больше не является реальным адресом, а является селектором, по существу индексом, подобным нижнему индексу массива. Найдите эквивалентный глобальный дескриптор в GDT (Global Descriptor Table), который помещает начало, размер, разрешения и т. Д. Сегмента.
Независимо от того, в реальном или защищенном режиме, адрес смещения внутри сегмента также называется эффективным адресом, а также логическим адресом, который является адресом, видимым программисту.
Ни линейные, ни виртуальные адреса не являются реальными адресами памяти, а просто описывают адресное пространство программы или задачи.
Регистр сегмента: CS DS ES FS GS SS — это базовый адрес сегмента в реальном режиме и 16-битный селектор сегмента в защищенном режиме.
Символы ASCII в кодовой таблице ASCII разделены на две категории в зависимости от видимого: один — невидимые символы, всего 33, их значение кода ASCII — 31.
127 — это управляющий символ или специальный символ связи. Остальные символы в таблице являются видимыми символами, и их значение кода ASCil 32126, принадлежащее
Цифры, буквы, различные символы.
Источник: russianblogs.com
Запуск материнской платы [ ]
На материнку подаётся питания.Начинают работать логические элементы и аналоговые схемы.
Логика материнки отрабатывает и устанавливает сброс на RTC и синтезаторе частот.
Вырабатываеться сигнал питание в порядке.
Выставляется сброс(Reset) на PCI
Затем выставляется сброс на CPU.
Послы выжидания времени синтезатор частот начинает выдавать клоки, синхросигнал.
CPU начинает установку регистров и триггеров из состояния Х (не определённое состояние 0 или 1)
Процессор ждёт команды перевода из усыплённого состояния в активное.
Такой команду могут подать разные устройства: Запуск ЦП по прерыванию.
Запуск ЦП по нажатию кнопки на корпусе.
Запуск от сетевого контролёра.
Запуск процессора [ ]
В процессе включение питание подаётся на процессор он производит сброс основных параметров и производит установку регистров. После получения сигнала от тактового генератора процессор начинает выполнять чтение команды с памяти. Выставляет адрес на шину адреса и команду на чтение. Северный мост получив значение пропускает адрес на микросхему BIOS. Та проверяет сигналы и выдает данные на шину данных.
Получив данные процессор начинает выполнять следующую команду.
Микросхема BIOS, представляет собой флешку. Данные на которую записали на заводе.
Выполнения кода BIOS’а [ ]
Передача управление ОС. [ ]
Для этого БИОС производит выбор загрузочного диска и читает с него первый сектор по физическому адресу 7C00h. И передает ему управление. При этом в DL будет находится номер диска (0 и 1 для гибких дисков :, 80h для диска C: и так далее).
Столь странный адрес загрузки объясняется, по-видимому, историческими причинами: самые первые ПК комплектовались оперативной памятью очень небольшого даже по тогдашним меркам объёма, а загрузочный сектор должен грузиться в такую область памяти, которая гарантированно присутствует. Область 7C00h—7DFFh занимает предпоследние 512 байт младших 32 Кбайт ОЗУ, так что можно предположить, что именно 32 Кбайта были минимально возможным объёмом оперативной памяти на первых ПК, оснащённых дисками.