Этот метод сначала использовался в процессорах шестого поколения (Р6). Динамическое выполнение представляет собой "творческую" комбинацию трех методов обработки данных в процессоре, таких как предсказание множественного перехода (ветвления), анализ потока команд и упреждающее выполнение. При динамическом выполнении более эффективно обрабатываются данные в процессоре, поскольку при этом учитывается логическая последовательность, а не просто обрабатывается поток команд.
Динамическое выполнение - один из отличительных признаков всех процессоров шестого поколения.
Предсказание множественного перехода (ветвления)
С помощью этого метода можно выяснить, каким будет поток управления программы через несколько команд ветвления. При использовании специального алгоритма процессор может предсказать переходы или ветвления в потоке команд. Это применяется для чтения следующих команд из памяти с вероятностью не менее 90%. Это возможно потому, что во время выборки команд процессор просматривает также и те команды, которые следуют далее в программе, т.е. несколько "забегает" вперед.
Анализ потока команд
Это средство анализирует и планирует выполнение команд в оптимальной последовательности, независимо от их первоначального порядка в программе. Процессор рассматривает декодируемые команды программного обеспечения и определяет, доступны ли они для обработки или же зависят от других команд, которые следует выполнить предварительно. Затем процессор определяет оптимальную последовательность обработки и выполняет команды наиболее эффективным способом.
Упреждающее выполнение
Этот метод повышает эффективность с помощью опережающего просмотра счетчика команд и выполнения тех из них, к которым, вероятно, потребуется обратиться позже. Поскольку обработка команд программного обеспечения основана на предсказании ветвлений, результаты сохраняются в пуле (накопителе) и могут быть использованы в дальнейшем. Если в результате обработки потока команд окажется, что эти команды должны быть выполнены, то уже завершенные команды пропускаются, а их результаты записываются в основные регистры процессора в первоначальном порядке выполнения команд программы. Эта методика, по существу, позволяет процессору завершать команды заранее, а затем использовать уже вычисленные результаты по мере необходимости.
2. Опишите состав регистра флагов процессора. На примере команды ADD AX, 9A74h (где AX←8E35h) раскройте назначение флагов состояния. Объясните назначение флагов управления состоянием процессора.
Регистр флагов эквивалентен регистру слова состояния процессора других вычислительных систем. Этот регистр содержит информацию о текущем состоянии процессора. Рассматривают его не как единое целое, а как набор 16-ти отдельных битов, каждый из которых указывает на определенный факт. Он включает 6 флагов состояний и 3 флага управления состоянием CPU.
После выполнения очередной команды процессором все биты – флаги заново устанавливаются. По этим флагам можно судить о результате выполнения операции.
OF | DF | IF | TF | SF | ZF | AF | PF | CF |
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Флаги состояния процессора:
CF — устанавливается в 1 при переносе из/заёме в (при вычитании) старший значащий бит результата и показывает наличие переполнения в беззнаковой целочисленной арифметике. Также используется в длинной арифметике
PF — устанавливается в 1, если младший значащий байт результата содержит чётное число единичных (ненулевых) битов.
AF — устанавливается в 1 при переносе и заёме из бита 3 результата.
ZF — устанавливается в 1, если результат равен нулю.
SF — равен значению старшего значащего бита результата, который является знаковым битом в знаковой арифметике.
OF – флаг переполнения. Устанавливается в 1, если происходит переполнение разрядной сетки при обработке операндов со знаком. Такая ситуация возникает в случае выхода результата за пределы допустимого диапазона для чисел со знаком.
Управляющий флаг
Флаг направления (DF, бит 10 в регистре флагов) управляет строковыми инструкциями (MOVS, CMPS, SCAS, LODS и STOS): установка флага заставляет уменьшать адреса (обрабатывать строки от старших адресов к младшим), обнуление заставляет адреса увеличивать. Инструкции STD и CLD соответственно устанавливают и обнуляют флаг DF.
Системные флаги
IF — обнуление этого флага запрещает отвечать на маскируемые запросы на прерывание.
TF — установка этого флага разрешает пошаговый режим отладки, когда после каждой выполненной инструкции происходит прерывание программы и вызов специального обработчика прерывания.
ПРИМЕР
Пример походу с подвохом, т.к. не сказано знаковые или незнаковые операнды. Рассмотрим две ситуации.
А) Операнды беззнаковые. Тогда:
8E35 1000 1110 0011 0101
+ 9A74 +1001 1010 0111 0100
128A9 1 0010 1000 1010 1001
CF — 1, т. к. произошло переполнение
PF —.1, т. к. в младшем бите четное кол – во единиц
AF — 0, т. к. переноса из 3 в 4 бит не было
ZF — 0, т. к. результат не равен 0
SF — 0
OF –? (не определяем)
Б) Операнды знаковые. Тогда:
1)Т.к. оба числа отрицательные (1 в старшем бите) получаем обратный код:
- 8E35
71CB
-9A74
658C
2)Складываем полученные операнды
71CB 0111.0001.1100.1011
658C0110.0101.1000.1100
D757 1101.0111.0101.0111
3)Т.к. в старшем байте 1, то мы получили дополнительный код отрицательного числа. Найдем его модуль.
-10000
D757
28A9
Ответ: -28A9h или - 1240910
Для установки флагов смотрим шаг 2 в двоичной системе
CF — не рассматриваем(знаковые операнды)
PF —.0, т. к. в младшем бите нечетное кол – во единиц
AF — 1, т. к. был перенос из 3 в 4 был
ZF — 0, т. к. результат не равен 0
SF — 1
OF – 1, т. к. произошло переполнение
3. Интерфейсы подключения периферийных устройств. Классификация интерфейсов, общая характеристика.
Большинство периферийных устройств подключаются через промежуточные периферийные интерфейсы, находящиеся на нижних уровнях иерархии подключений (на верхнем уровне — системная шина). Периферийные интерфейсы — самые разнообразные из всех аппаратных интерфейсов. К периферии, подключаемой через промежуточные интерфейсы, относятся большинство устройств хранения (дисковые, ленточные), устройств ввода-вывода (дисплеи, клавиатуры, мыши, принтеры, плоттеры), ряд коммуникационных устройств (внешние модемы). По назначению периферийные интерфейсы можно разделить на специализированные и универсальные, выделенные и разделяемые:
Специализированные интерфейсы ориентированы на подключение устройств определенного узкого класса, и в них используются сугубо специфические протоколы передачи информации. Примеры — популярнейший интерфейс мониторов VGA, интерфейс накопителя на гибких дисках, традиционные интерфейсы клавиатуры и мыши, IDE/АТА и ряд других.
Универсальные интерфейсы имеют более широкое назначение, их протоколы обеспечивают доставку данных, не привязываясь к специфике передаваемой информации. Примеры — коммуникационные порты (СОМ), интерфейс SCSI, шины USB и FireWire.
Выделенные интерфейсы позволяют подключить к одному порту (точке подключения) адаптера (контроллера) лишь одно устройство; число подключаемых устройств ограничено числом портов. Примеры — СОМ-порт, интерфейс VGA-монитора, порт AGP, интерфейс Serial SCSI.
Разделяемые интерфейсы позволяют подключить к одному порту адаптера множество устройств. Варианты физического подключения разнообразны: шина (жесткая, как ISA или PCI; кабельная шина SCSI и IDE/ATA), цепочка (daisy chain) устройств (SCSI, IEEE 1284.3), логическая шина на хабах (USB) или встроенных повторителях (IEEE 1394 FireWire).
Интерфейсы характеризуются следующими параметрами:
1) пропускной способностью интерфейса — количеством информации которая может быть передана через интерфейс в единицу времени;
2) максимальной частотой передачи информационных сигналов через интерфейс;
3) информационной шириной интерфейса — числом бит или байт данных, передаваемых параллельно через интерфейс;
4) максимально допустимым расстоянием между соединяемыми устройствами;
5) динамическими параметрами интерфейса — временем передачи отдельного слова или блока данных с учетом продолжительности процедур подготовки и завершения передачи;
6) общим числом проводов (линий) в интерфейсе.
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 7