Объясните, в чем заключается динамическое (спекулятивное) исполнение команд процессором. Назовите поколения процессоров, в которых использовалось такое исполнение

 

 

Этот метод сначала использовался в процессорах шестого поколения (Р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