Инициализация процессора устанавливаются регистры cr и msr что это значит

Обновлено: 07.07.2024

Современные микропроцессоры архитектуры x86 (начиная с Pentium, Pentium Pro, AMD-K6, Cyrix MII …) имеют достаточно большое количество дополнительных регистров, выполняющих контрольные, управляющие и иные функции. Эти регистры не являются стандартными, их количество и назначение (и даже методика доступа) различны в различных моделях процессоров. В процессорах производства Intel (Pentium …) такие регистры называются особыми регистрами модели — MSR (Model Specific Registers). Для чтения и записи этих регистров используются привилегированные команды RDMSR и WRMSR. За полной информацией об этих регистрах обратитесь к техническому руководству фирмы Intel, здесь же описываются только некоторые из них.

Счетчик времени TSC: Pentium …

Доступ к регистру TSC осуществляется с помощью команды RDTSC (в т.ч. и в некоторых процессорах производства Cyrix, AMD, …) или через привилегированные команды RDMSR/WRMSR (в процессорах Pentium, … Pentium III адрес MSR-регистра — 10h), но в последующих реализациях процессоров доступ через эти команды не гарантируется. Перед началом работы с TSC пользовательская программа должна определить наличие этой функциональной возможности с помощью команды CPUID (EDX, бит 4).

По умолчанию, команда RDTSC доступна во всех режимах работы процессора — реальном, защищенном на всех уровнях привилегий, виртуальном-8086. Защищенные операционные системы могут использовать бит CR4.TSD для запрета использования команды RDTSC на уровне привилегий отличном от 0 (CR4.TSD = 1). Это позволяет запретить пользовательским программам производить точный мониторинг производительности операционной системы (в обработчике прерывания общей защиты может быть реализована эмуляция данной команды).

Запись в регистр TSC с помощью команды WRMSR возможна только в младшие 32 бита регистра. Старшие 32 бита при этом расширяются нулями (все сбрасываются в 0).

Регистры мониторинга производительности: Pentium

Механизм мониторинга производительности процессора Pentium реализован на основе трех специальных MSR-регистров. Эти три регистра: CESR (11h), CTR0 (12h), CTR1 (13h) являются специфическими для процессора Pentium, в последующих моделях процессоров (Pentium Pro, Pentium II, Pentium III …) механизм мониторинга производительности значительно расширен и изменен.

Регистры CTR0 и CTR1 являются 40-рязрядными счетчиками. Каждый счетчик может быть запрограммирован для счета различных событий. Режимы работы счетчиков и типы считаемых ими событий устанавливаются программированием регистра CESR (Control and Event Select Register). Счетчики не изменяются при записи в регистр CESR и должны устанавливаться отдельно при переключении на новое событие. Счетчики могут работать либо в режиме счета числа событий, либо в режиме счета времени до события.

Подробную информацию об использовании регистров мониторинга производительности смотрите в технической документации фирмы Intel (Intel Architecture Software Developer’s Manual. Volume 3: System Programming Guide).

Регистры мониторинга производительности: Pentium Pro …

В процессорах Pentium Pro, Pentium II, Pentium III механизм мониторинга производительности включает четыре MSR-регистра: PerfEvtSel0 (186h), PerfEvtSel1 (187h), PerfCtr0 (C1h), PerfCtr1 (C2h). Регистры PerfCtl0 и PerfCtl1 — это 40-разрядные счетчики. Счетчики могут осуществлять счет различных событий или времени до события. Управление режимами работы счетчиков осуществляется программированием регистров PerfEvtSel0 и PerfEvtSel1. Для доступа к счетчикам введена новая команда RDPMC, которая позволяет считывать значения счетчиков в любом режиме работы процессора и при любом уровне привилегий, когда CR4.PCE = 1 (или только при , когда CR4.PCE = 0).

Регистры мониторинга производительности процессора Pentium в более поздних моделях процессоров не поддерживаются. Аналогичные регистры процессоров Pentium Pro, … Pentium III также могут быть модифицированы в последующих устройствах.

Подробную информацию об использовании регистров мониторинга производительности смотрите в технической документации фирмы Intel (Intel Architecture Software Developer’s Manual. Volume 3: System Programming Guide).

Регистры контроля отладки: Pentium Pro …

Регистры контроля отладки расширяют возможности процессора по отслеживанию источников возникновения ошибок, упрощают трассировку и мониторинг производительности программ. В состав регистров контроля отладки входят: управляющий регистр DebugCtlMSR (1D9h), регистры адресов последнего перехода/прерывания/особой ситуации LastBranchToIP (1DCh), LastBranchFromIP (1DBh), а также регистры адресов последнего перехода перед последним прерыванием/особой ситуацией LastExceptionToIP (1DEh), LastExceptionFromIP (1DDh). Доступ ко всем указанным регистрам осуществляется при помощи привилегированных команд RDMSR, WRMSR.

Все режимы работы регистров контроля отладки устанавливаются программированием регистра DebugCtlMSR, его формат приведен на рис.1.10.

Рис. 1.10. Формат регистра DebugCtlMSR

LBR (бит 0)

BTF (бит 1)

Когда флаг BTF установлен, процессор интерпретирует флаг трассировки (E)FLAGS.TF как флаг трассировки по переходам, т.е. особая ситуация отладки генерируется не после выполнения очередной команды, а после возникновения очередного перехода/прерывания/особой ситуации. Перед передачей управления в программу реакции на особую ситуацию отладки флаги DebugCtlMSR.BTF и (E)FLAGS.TF сбрасываются, так что для продолжения трассировки отладчик должен установить их вновь.

PB0, PB1, PB2, PB3 (биты 2, 3, 4, 5)

TR (бит 6)

Как указано выше, регистры LastBranchToIP и LastBranchFromIP служат для сохранения указателей для последнего перехода/прерывания/особой ситуации, а регистры LastExceptionToIP и LastExceptionFromIP — для сохранения указателей для последнего перехода перед последним прерыванием/особой ситуацией. Эти указатели могут быть использованы отладчиком в комбинации с селекторами сегмента кода, восстановленными из стека, чтобы отследить причины (источники) срабатывания контрольных точек в регистрах DR0. DR3. Так как указатели команды, записанные в LastBranchToIP, LastBranchFromIP, LastExceptionToIP и LastExceptionFromIP являются смещениями в сегменте кода, то для получения полного линейного адреса программное обеспечение прежде должно определить базовый адрес сегмента кода. Базовый адрес сегмента кода, в свою очередь, может быть определен чтением селектора сегмента кода из стека и использованием его для поиска дескриптора сегмента в GDT или LDT (базовый адрес сегмента содержится в его дескрипторе).

Сергей Колпаков

Данная таблица содержит POST-коды, которые отображаются при полной процедуре POST.

CF Определяется тип процессора и тестируется чтение/запись CMOS

C0 Предварительно инициализируется чипсет и L1-, L2-кэш, программируется контроллер прерываний, DMA, таймер

C1 Детектируется тип и объем оперативной памяти

C3 Код BIOS распаковывается во временную область оперативной памяти

0С Проверяются контрольные суммы BIOS

C5 Код BIOS копируется в теневую память и управление передается модулю Boot Block

01 Модуль XGROUP распаковывается по физическому адресу 1000:0000h

02 Инициализация процессора. Устанавливаются регистры CR и MSR

03 Определяются ресурсы ввода/вывода (Super I/O)

05 Очищается экран и флаг состояния CMOS

06 Проверяется сопроцессор

07 Определяется и тестируется контроллер клавиатуры

08 Определяется интерфейс клавиатуры

09 Инициализация контроллера Serial ATA

OA Определяется клавиатура и мышь, которые подключены к портам PS/2

0B Устанавливаются ресурсы звукового контроллера AC97

OE Тестируется сегмент памяти F000h

10 Определяется тип flash-памяти

12 Тестируется CMOS

14 Устанавливаются значения для регистров чипсета

16 Первично инициализируется тактовый генератор

18 Определяется тип процессора, его параметры и объемы кэша L1 и L2

1B Инициализируется таблица векторов прерываний

1С Проверяются контрольные суммы CMOS и напряжение питания аккумулятора

1D Определяется система управления питанием Power Management

1F Загружается матрица клавиатуры (для ноутбуков)

21 Инициализируется система Hardware Power Management (для ноутбуков)

23 Тестируется математический сопроцессор, дисковод, инициализация чипсета

24 Обновляется микрокод процессора. Создается карта распределения ресурсов устройств Plug and Play

25 Начальная инициализация PCI: перечисляются устройства, поиск адаптера VGA, запись VGA BIOS по адресу C000:0

26 Устанавливается тактовая частота по CMOS Setup. Отключается синхронизация неиспользуемых слотов DIMM и PCI. Инициализируется система мониторинга (H/W Monitor)

27 Разрешается прерывание INT 09h. Снова инициализируется контроллер клавиатуры

29 Программируются регистры MTRR, инициализируется APIC. Программируется контроллер IDE. Измеряется частота процессора. Вызывается расширение BIOS видеосистемы

2B Поиск BIOS видеоадаптера

2D Отображается заставка Award, информация о типе процессора и его скорости

33 Сбрасывается клавиатура

35 Тестируется первый канал DMA

37 Тестируется второй канал DMA

39 Тестируются страничные регистры DMA

3C Настраивается контроллер 8254 (таймер)

3E Проверка контроллера прерываний 8259

43 Проверяется контроллер прерываний

47 Тестируются шины ISA/EISA

49 Вычисляется объем оперативной памяти. Настраиваются регистры для процессора AMD K5

4E Программируются регистры MTRR для процессоров Syrix. Инициализируются кэш L2 и APIC

50 Определяется шина USB

52 Тестируется ОЗУ с отображением результатов. Очищается расширенная память

53 Если выполнена очистка CMOS, то сбрасывается пароль на вход в систему

55 Отображается количество процессоров (для многопроцессорных платформ)

57 Отображается логотип EPA. Начальная инициализация устройств ISA PnP

59 Определяется система защиты от вирусов

5B Вывод подсказки для запуска обновления BIOS с дискеты

5D Запускается контроллер Super I/O и интегрированный аудиоконтроллер

65 Инициализируется мышь PS/2

69 Включается кэш L2

6B Настраиваются регистры чипсета согласно BIOS Setup

6D Назначаются ресурсы для устройств ISA PnP и COM-порты для интегрированных устройств

6F Инициализируется и настраивается контроллер гибких дисков

75 Детектируются и устанавливаются IDE-устройства: жесткие диски, CD/DVD, LS-120, ZIP и др.

Предлагаю Вашему вниманию основные POST-коды для BIOS производителя AMI. Небольшое вступление. Сразу после нажатия кнопки POWER на системном блоке персонального компьютера управление ПК переходит непосредственно к БИОС. В это время (в начале запуска ПК) процессор подает сигнал на микросхему BIOS, который инициализирует загрузку микропрограммы BOOT-ROUTINE Базовой Системы Ввода-Вывода.
Микропрограмма BOOT-ROUTINE вызывает подпрограмму самотестирования POST.

Подпрограмма POST (Power-On Self Test) тестирует установленное на компьютере оборудование, настраивает его и готовит к работе.

Для каждого отдельного оборудования (процессор, память, видеокарта, клавиатура, порты ввода/вывода и.т.д) производится отдельный тест. Каждый тест имеет свой уникальный номер, который называется POST-кодом. POST-код записывается в порт Manufacturing Test Port (с адресом 0080H) до начала выполнения каждого отдельного теста процедуры POST.

После того, как POST-код теста записан в порт Manufacturing Test Port начинается процедура тестирования соответствующего оборудования. Если процедура тестирования завершилась неудачей в порту Manufacturing Test Port остается POST-код последней процедуры (которая и вызвала ошибку). Если узнать POST-код последней процедуры, можно определить устройство, которое вызвало ошибку.

Чтение POST-кодов можно осуществить несколькими способами.

  • Если Ваша материнская плата имеет встроенный индикатор POST-кодов, информацию о POST-коде последней процедуры можно узнать с него.
  • POST-код последней выполняемой процедуры в некоторых системах может отображаться на экране монитора во время прохождения процедуры POST.
  • Для чтения POST-кодов может использоваться специальная карта расширения.

Поскольку BIOS выпускается несколькими производителями, соответственно, для каждой BIOS отдельного производителя имеется своя таблица POST-кодов.

AWARD BIOS6.0 Полная загрузка

Данная таблица содержит POST-коды, которые отображаются при полной процедуре POST.

Award BIOS 6.0: сокращенная загрузка

Сокращенная процедура выполняется при установке в BIOS параметра Quick Power On Self Test.

AMIBIOS8.0

PhoenixBios 4.0

82249881_1_1000x700_post-karta-pci-isa-4-tsifr-led-kabel-analizator-neispravnosti-pk-pos-kremenchug

Фото:

В данном материале будут собраны таблицы с описанием POST кодов для разных материнских плат.
Зачем? Чтобы вам не надо было качать (или искать в далёком углу шкафа) руководство пользователя. Просто нажимаете название своей материнской платы и открывается нужная таблица.


Материал будет пополняться со временем.
Версия 3 от 30.06.2014

Материнские платы ASUS
Линейка Republic of Gamers

Серия Z87 (на базе чипсета Z87)
Z87-Deluxe

Серия Z97 (на базе чипсета Z97)
Z97-Deluxe

На базе чипсетов AMD
A88X-Pro

Материал скоро будет дополнен.

Копирование любых материалов сайта допускается только с разрешения Администратора сайта (профиль, e-mail) и со ссылкой на источник.

По вопросам сотрудничества можно и нужно обращаться по этим же адресам 🙂


Award BIOS 6.0: полная загрузка

Данная таблица содержит POST-коды, которые отображаются при полной процедуре POST.

Award BIOS 6.0: сокращенная загрузка

Сокращенная процедура выполняется при установке в BIOS параметра Quick Power On Self Test.

Всем доброго времени суток. Принесли материнку "полуживую" gigabyte ga-650sli-ds4 первой ревизии.
При подключенном блоке питания на пост карте горят диоды 12в(тускло),5в,3.3в, на блоке же начинает работать куллер. При включении на пост карте сразу отображаеться 55 код и все. Как я понимаю в выключеном состоянии матерники, но включенной в сеть должно быть только 3,3в, а все остальное залетное. А

теперь вопрос: где начинать искать что-то пробитое в этих цепях, т.к.

Ищу dump bios ECS H61H2-M (V2.0)

Ищу dump bios ECS H61H2-M (V2.0).Не проходит 55 post

не стартует материнская плата Asus P8H67-M LE

  • 31 комментарий
  • Подробнее
  • 461 просмотр
  • 1 вложение

Ms-7673 ver.1.1 p67s-c43(b3), 4beep codes

abit Fatal1ty FP-IN9 SLI нет запуска

Перестала работать мамка abit Fatal1ty. Выключилась нормально и больше не запустилась. На посткарте один всего пост 55. Напряжение на проце(Целерон Д 325) 1,35В. На памяти 1,82В. На ресете 3,34, ресетится. На повере 3,31В. На ЮМ 1,51, на СМ 1,22(мерял на конденсаторах с другой стороны платы). Мосты еле греются.
Плата запускается с кнопки, но выключается только удерживая 4 сек.

P5B-VM SE глюк при прошивке BIOS

Intel INTEL DG31PR три бипа сразу после включения

Здравствуйте. Попалась мне в руки плата Intel DG31PR- новая, в работе не была, сразу не заработала после установки . При включении издает три бипа ,вентиляторы работают, на экране пусто. Читал на форуме , и в мануале, что 3 бипа указывают на проблемы с памятью. Пост-карта кажет 55. Южник, холодный в дежурке, в работе нагревается градусов до 60-65 (палец еле держит). Остальные микросхемы не греются выше нормы. Повыходам Usb КЗ нет
Напряжения в норме (проц-1.35в, южник(ICH7)- 1.5в, север(Intel G31) -1.25в, память 1.8, напруга терминации -0.9. -норма? ) Батарейка 3в .

Читайте также: