link560 link561 link562 link563 link564 link565 link566 link567 link568 link569 link570 link571 link572 link573 link574 link575 link576 link577 link578 link579 link580 link581 link582 link583 link584 link585 link586 link587 link588 link589 link590 link591 link592 link593 link594 link595 link596 link597 link598 link599 link600 link601 link602 link603 link604 link605 link606 link607 link608 link609 link610 link611 link612 link613 link614 link615 link616 link617 link618 link619 link620 link621 link622 link623 link624 link625 link626 link627 link628 link629 link630 link631 link632 link633 link634 link635 link636 link637 link638 link639 link640 link641 link642 link643 link644 link645 link646 link647 link648 link649 link650 link651 link652 link653 link654 link655 link656 link657 link658 link659 link660 link661 link662 link663 link664 link665 link666 link667 link668 link669 link670 link671 link672 link673 link674 link675 link676 link677 link678 link679 link680 link681 link682 link683 link684 link685 link686 link687 link688 link689 link690 link691 link692 link693 link694 link695 link696 link697 link698 link699

PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Память. Верхний уровень

Сиситемные регистры процессоров Intel хх86

Сиситемные регистры процессоров Intel х86

На рисунке ниже показан формат управляющих регистров CR0, CR2, CR3 и CR4. В большинстве систем загрузка управляющих регистров из прикладных программ невозможна (хотя в незащищенных системах такая загрузка разрешается).

 

Формат регистров управления

Прикладные программы имеют возможность считывать эти регистры, например, для определения наличия математического сопроцессора. Некоторые разновидности команды MOV позволяют загружать управляющие регистры из регистров общего назначения, и наоборот.

Например,

MOV EAX, CR0
MOV CR3, EBX

Назначения регистров: СRO, CR4 — управляющие. CR1 — резерв. CR2 — линейный адрес страничной ошибки. CR3 — база каталога таблиц страниц.

Регистры CR0, CR4 содержат системные управляющие флаги, которые управляют режимами или указывают на состояние процессора в целом, а не относительно выполнения конкретных задач. Программа не должна пытаться изменить состояние каких-либо битов в зарезервированных позициях. Эти зарезервированные биты всегда должны устанавливаться в то состояние, которое они имели ранее при считывании.

Назначение большинства битов управляющих регистров приведено в нижеследующей таблице (см. таблица ниже).

 

Биты управляющих регистров

 

Отладка и отладочные регистры

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

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

Для других процессоров контрольные точки команд устанавливаются заменой нормальных команд командами контрольных точек. При выполнении команды контрольной точки вызывается отладчик. Однако в случае отладочных регистров процессора 386+ это не обязательно. При исключении необходимости записи в пространство кода процесс отладки упрощается (не требуется установки отображения сегментов данных в ту же область памяти, что и кодовый сегмент) и контрольные точки могут устанавливаться в ПЗУ-резидентном программном обеспечении. Кроме того, контрольные точки могут быть установлены для чтения и записи данных, что позволяет контролировать состояние данных в режиме реального времени. Доступ к этим регистрам имеют только программы с наивысшим уровнем привилегированности.

В число средств архитектуры, поддерживающих отладку, входят:

•Отладочные адресные регистры — задают адреса до четырех контрольных точек.

•Отладочный управляющий регистр — задает формы доступа к памяти для контрольных точек.

•Отладочный регистр состояния — сообщает об условиях, которые существовали в момент генерации исключения.

•Бит ловушки в TSS (T-бит) — генерирует отладочное исключение при попытке выполнить переключение задачи на задачу, для которой этот бит был установлен.

•Флаг возобновления (RF) — подавляет возобновление множественных исключений для одной и той же команды.

•Флаг трассировки (TF) — генерирует отладочное исключение после каждого выполнения команды.

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

•Резервируемый вектор прерывания для исключения контрольной точки — вызывает процедуру или задачу при выполнении команды контрольной точки.

Эти средства позволяют вызывать отладчик как отдельную задачу или процедуру в контексте текущей задачи.

Для вызова отладчика могут быть использованы следующие условия:

•Переключение на конкретную задачу.

•Выполнение команды контрольной точки.

•Выполнение любой команды.

•Выполнение команды по заданному адресу.

•Чтение или запись байта, слова или двойного слова по конкретному заданному адресу.

•Запись в байт, слово или двойное слово по заданному адресу.

•Попытка изменить содержимое отладочного регистра.

Формат регистров отладки


Отладочные адресные регистры. Отладочный управляющий регистр (DR7)

Отладочные адресные регистры (DR0-DR3)

Каждый из этих регистров содержит линейный адрес одной из четырех контрольных точек. При разрешенной подкачке страниц эти адреса транслируются в физические адреса по алгоритму подкачки страниц. Условие каждой контрольной точки определяется содержимым регистра DR7.

Отладочный управляющий регистр (DR7)

Отладочный управляющий регистр задает вид доступа к памяти, связанный с каждой контрольной точкой. Каждый адрес в регистрах DR0 — DR3 соответствует полю R/W0 — R/W3 в регистре DR7.

Процессор интерпретирует их следующим образом:

00 — прерывание только при выполнении команды;

01 — прерывание только при записи данных;

10 — не определено;

11 — прерывание при чтении и записи данных, но не при выборке команды.

Поля LEN0 — LEN3 регистра DR7 задают размер позиции памяти, для которой установлены контрольные точки. Может быть задан размер в 1, 2 или 4 байта. Поля длины интерпретируются следующим образом:

00 — длина один байт;

01 — длина два байта;

10 — не определено;

11 — длина четыре байта.

Младшие восемь битов регистра DR7 (поля от L0 до L3 и от G0 до G3) по отдельности разрешают условия контрольных точек в четырех адресах. Существует два уровня их разрешения: локальный (от L0 до L3) и глобальный (от G0 до G3).

Локальные биты разрешения автоматически очищаются процессором при каждом переключении задачи, чтобы избежать нежелательных условий контрольных точек в новой задаче. Они используются для установки контрольных точек в одной отдельной задаче. Глобальные биты разрешения при переключении задачи не очищаются. Они используются для разрешения условий контрольной точки, применимых ко всем задачам.