Билет №9 1. Основные принципы RISC

advertisement
Билет №9
1. Основные принципы RISC-архитектуры. Конвейеризация.
RISC (англ. restricted (reduced) instruction set computer[1][2] — компьютер с сокращённым набором
команд) — архитектура процессора, в котором быстродействие увеличивается за счёт упрощения
инструкций, чтобы их декодирование было более простым, а время выполнения — меньшим.
Первые RISC-процессоры даже не имели инструкций умножения и деления. Это также облегчает
повышение тактовой частоты и делает более эффективной суперскалярность (распараллеливание
инструкций между несколькими исполнительными блоками).
Характерные особенности RISC-процессоров

Фиксированная длина машинных инструкций (например, 32 бита) и простой формат
команды.

Специализированные команды для операций с памятью — чтения или записи. Операции
вида Read-Modify-Write («прочитать-изменить-записать») отсутствуют. Любые операции
«изменить» выполняются только над содержимым регистров (т. н. архитектура load-andstore).

Большое количество регистров общего назначения (32 и более).

Отсутствие поддержки операций вида «изменить» над укороченными типами данных —
байт, 16-битное слово. Так, например, система команд DEC Alpha содержала только
операции над 64-битными словами, и требовала разработки и последующего вызова
процедур для выполнения операций над байтами, 16- и 32-битными словами.

Отсутствие микропрограмм внутри самого процессора. То, что в CISC-процессоре
исполняется микропрограммами, в RISC-процессоре исполняется как обыкновенный (хотя
и помещённый в специальное хранилище) машинный код, не отличающийся
принципиально от кода ядра ОС и приложений. Так, например, обработка отказов страниц
в DEC Alpha и интерпретация таблиц страниц содержалась в так называемом PALcode
(Privileged Architecture Library), помещённом в ПЗУ. Заменой PALCode можно было
превратить процессор Alpha из 64-битного в 32-битный, а также изменить порядок байтов
в слове и формат входов таблиц страниц виртуальной памяти.
Программная конвейеризация циклов (англ. software pipelining) — это техника, используемая
компиляторами, для оптимизации циклов, по аналогии с вычислительным конвейером в
микропроцессорах. Является формой внеочередного исполнения с той разницей, что
переупорядочивание выполняется не процессором, а компилятором (либо, в случае ручной
оптимизации, программистом). Некоторые компьютерные архитектуры, например Intel IA-64[1],
имеют явную аппаратную поддержку для упрощения программной конвейеризации циклов.
При конвейеризации цикла в каждый момент времени на исполнении находится код,
относящийся к нескольким итерациям цикла, но к различным частям цикла.
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
Следует отметить, что во всех этих трех случаях сохраняется линейное отображение видеобуфера
(страницы) на экран, т.е. двоичному полю (коду) видеобуфера ставится в соответствие пиксел
(элемент изображения) на экране.
Хранение значений пикселов в видеобуферах CGA, EGA и VGA выполняется следующим образом
Организация работы
В графических режимах символ записывается в прямоугольную область видеобуфера по размеру
символьной матрицы.
Ранее подчеркивалось, что в адаптере EGA с видеобуфером емкостью 64К байт байты пикселов
отображаются иначе, чем с видеобуфером большей емкости. Банки памяти 0 - 1 и 2 - 3 сцепляются
и образуют две плоскости. Следовательно, процедура считывания значения пиксела должна
определять используемые банки по адресу байта.
В естественных режимах адаптера EGA не применяется чересстрочная организация видеобуфера,
принятая в адаптере CGA. Вместо этого строки пикселов отображаются линейно аналогично
линейному отображению текстовых строк в текстовых режимах.
В графических режимах каждый символ записывается в прямоугольную область видеобуфера по
размеру символьной матрицы. Значение в регистре BL определяет цвет пикселов переднего
плана. В 256-цветном режиме 320x200 содержимое регистра ВН задает значение фона, а во всех
остальных режимах регистр ВН указывает страницу видеобуфера, поэтому здесь принимается
нулевое значение фона.
Отображение видеобуфера на экран дисплея
Аппаратный знакогенератор преобразует код каждого символа в точечное изображение символа
на экране. Одновременно схема дешифратора атрибутов формирует необходимые атрибуты
символа - цвет, яркость, мерцание. Изображение символа формируется на прямоугольной
матрице пикселов, называемой символьной матрицей. В пределах этой матрицы собственно
символ состоит из пикселов на фоне переднего плана (рис. 3.10).
Для вывода символа на экран необходимо поместить его код и атрибут в определённые ячейки
видеобуфера. Благодаря линейному отображению несложно получить относительный адрес и
смещение видеобуфера в зависимости от прямоугольных координат:
^ Смещение = ((строка ширину) + столбец) 2,
где под шириной понимается число символов в каждой текстовой строке. Значения строки и
столбца отсчитываются от верхнего левого угла экрана, начиная с нуля.
Способ интерпретации атрибутных байт зависит от конкретной видеосистемы. Так, на рис. 3.10
показан пример для адаптера CGA.
Для адаптера EGA атрибуты пикселов переднего плана IRGB (4 разряда) преобразуются на
регистрах палитры в 6-разрядный мониторный код RrGgBb, который, в свою очередь, в адаптерах
VGA с помощью таблицы цветов преобразуется в 18-разрядный код, по 6-ть разрядов на каждый
цвет (RGB).
Таким образом в текстовом режиме в видеобуфере хранятся коды символов, которые
транслируются в точечное изображение посредством аппаратного знакогенератора. В основе
знакогенератора лежит ПЗУ, в котором хранятся «разложения» символов по строкам развертки.
Знакогенератор воспринимает код символа и номер строки развертки на символьной матрице и
выдаёт соответствующий двоичный код, преобразуемый в видеосигнал. Наряду с кодами
символов в видеобуфере по нечётным адресам находятся байты-атрибуты символов, которые
определяют цвет отображаемых символов.
Download