Билет №10 1. Конвейерная обработка команд. Конфликты по

advertisement
Билет №10
1. Конвейерная обработка команд. Конфликты по ресурсам.
Конвейеризация (или конвейерная обработка) в общем случае основана на разделении
подлежащей исполнению функции на более мелкие части, называемые ступенями, и выделении
для каждой из них отдельного блока аппаратуры. Так обработку любой машинной команды
можно разделить на несколько этапов (несколько ступеней), организовав передачу данных от
одного этапа к следующему. При этом конвейерную обработку можно использовать для
совмещения этапов выполнения разных команд. Производительность при этом возрастает
благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько
команд. Конвейерная обработка такого рода широко применяется во всех современных
быстродействующих процессорах.
Конвейеризация увеличивает пропускную способность процессора (количество команд,
завершающихся в единицу времени), но она не сокращает время выполнения отдельной
команды. В действительности, она даже несколько увеличивает время выполнения каждой
команды из-за накладных расходов, связанных с управлением регистровыми станциями. Однако
увеличение пропускной способности означает, что программа будет выполняться быстрее по
сравнению с простой неконвейерной схемой.
Тот факт, что время выполнения каждой команды в конвейере не уменьшается, накладывает
некоторые ограничения на практическую длину конвейера. Кроме ограничений, связанных с
задержкой конвейера, имеются также ограничения, возникающие в результате
несбалансированности задержки на каждой его ступени и из-за накладных расходов на
конвейеризацию. Частота синхронизации не может быть выше, а, следовательно, такт
синхронизации не может быть меньше, чем время, необходимое для работы наиболее
медленной ступени конвейера. Накладные расходы на организацию конвейера возникают из-за
задержки сигналов в конвейерных регистрах (защелках) и из-за перекосов сигналов
синхронизации. Конвейерные регистры к длительности такта добавляют время установки и
задержку распространения сигналов. В предельном случае длительность такта можно уменьшить
до суммы накладных расходов и перекоса сигналов синхронизации, однако при этом в такте не
останется времени для выполнения полезной работы по преобразованию информации.
Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной, а скорость
подачи новых команд и операндов соответствует максимальной производительности конвейера.
Если произойдет задержка, то параллельно будет выполняться меньше операций и суммарная
производительность снизится. Такие задержки могут возникать в результате возникновения
конфликтных ситуаций. В следующих разделах будут рассмотрены различные типы конфликтов,
возникающие при выполнении команд в конвейере, и способы их разрешения.
Рис. 5.3. Представление о работе конвейера Номер команды
Номер такта 1
2
3
4
5
Команда i
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
WB
IF
ID
EX
MEM
Команда i+1
Команда i+2
Команда i+3
Команда i+4
IF
Рис. 5.4. Диаграмма работы простейшего конвейера
6
7
8
9
WB
При реализации конвейерной обработки возникают ситуации, которые препятствуют выполнению
очередной команды из потока команд в предназначенном для нее такте. Такие ситуации
называются конфликтами. Конфликты снижают реальную производительность конвейера, которая
могла бы быть достигнута в идеальном случае. Существуют три класса конфликтов:
1.Структурные конфликты, которые возникают из-за конфликтов по ресурсам, когда аппаратные
средства не могут поддерживать все возможные комбинации команд в режиме одновременного
выполнения с совмещением.
2.Конфликты по данным, возникающие в случае, когда выполнение одной команды зависит от
результата выполнения предыдущей команды.
3.Конфликты по управлению, которые возникают при конвейеризации команд переходов и других
команд, которые изменяют значение счетчика команд.
Конфликты в конвейере приводят к необходимости приостановки выполнения команд (pipeline
stall). Обычно в простейших конвейерах, если приостанавливается какая-либо команда, то все
следующие за ней команды также приостанавливаются. Команды, предшествующие
приостановленной, могут продолжать выполняться, но во время приостановки не выбирается ни
одна новая команда.
2.Графический режим работы видео системы. Операции считывания процессором из видео
буфера.
Режимы работы видеосистемы
Все видеосистемы персональных компьютеров (за исключением адаптера MDA)могут работать в
двух основных режимах — текстовом и графическом. Различия этихрежимов работы связаны со
способом интерпретации содержимого видеобуфера.
Графический режим
Графический режим – это режим с адресацией всех точек экрана, позволяющий получать
сложные, цветные и движущиеся изображения и связанный с обработкой процессором больших
массивов информации. В этом режиме каждый байт видеобуфера хранит цветные значения
одного или нескольких пикселов. Если пиксел кодируется n битами видеобуфера, то на экране
одновременно можно наблюдать 2n цветов. В адаптере CGA графический режим 320´200
использует 2 бита для кодирования цвета пиксела, т.е. на экране одновременно можно
наблюдать 4 цвета из 16 цветов палитры. В каждом байте видеобуфера CGA хранятся значения
четырех пикселов, причем левый младший пиксел в байте соответствует старшим байтам D7 и D6.
В адаптере CGA реализуется прямое соответствие (без преобразования) между битами
видеобуфера и пикселами экрана, а адаптерах EGA и VGA – косвенное отображение с
использованием 16 регистров палитры, как и в текстовом режиме. На рис. 9.9 показаны схемы
отображения содержимого видеобуферов CGA, EGA и VGA на экраны мониторов.:
видеобуфер ® экран CGA
видеобуфер ® регистры палитры ® экран EGA
видеобуфер ® регистры палитры ® регистры ЦАП® экран VGA
Рис. 9.9. Схемы отображения видеобуферов на экраны CGA, EGA, VGA
Следует отметить, что во всех этих трех случаях сохраняется линейное отображение видеобуфера
(страницы) на экран, т.е. двоичному полю (коду) видеобуфера ставится в соответствие пиксел
(элемент изображения) на экране.
Операция считывания процессором из видеобуфера.
(В запоминающих устройствах, реализующих в ЭВМ функцию памяти, выполняются операции
считывания хранимой информации для передачи в другие устройства и записи информации,
поступающей из других устройств. При считывании слова из ячейки содержимое последней не
меняется и при необходимости слово может быть снова взято из той же ячейки. При записи
хранившееся в ячейке слово стирается и его место занимает новое.
Регистры секвенсера адаптеров EGA и VGA.
Этот узел управляет передачами данных между видеобуфером и процессором, т.е.
операциями считывания записи в видеобуфер, а также выводит данные из видеобуфера в
атрибутный контроллер.)
Операции считывания процессором из видеобуфера
При выполнении процессором записи данных в видеобуфер производится параллельная
модификация байт во всех 4-х двоичных плоскостях
Операции записи процессором в видеобуфер
Физически записываемые в видеобуфер значения пикселов формируются с привлечением данных
из регистров-защёлок, байта данных от процессора или предопределённого значения пиксела,
находящегося в регистре управления.
Когда в командах обмена адресуется видеобуфер, то обмен осуществляется между регистрами
защёлок и байтами двоичных плоскостей видеобуфера.
Передачу данных между процессором, РГ-защёлками и видеобуфером обеспечивает графический
контроллер (ГК). Он обеспечивает двумерную обработку находящихся в Рг-защёлках 8 значений
пикселов. Одни операции ориентированы на байты, другие - на пикселы.
ГК может обеспечить выполнение 3 байтных операций над данными из РГ-защёлок:
1) может просто передавать данные из видеобуфера в Рг-защёлки (считывание процессора);
2) может передавать содержимое одного из Рг-защёлок в Рг процессора (считывание);
3) может объединить байт данных от процессора с байтами в одном или всех Рг-защёлках
(запись). Объединить – значит выполнить логическую поразрядную операции.
Download