- •Структура, алгоритм функционирования кэш-памяти
- •Алгоритмы восстановления информации в оперативной памяти.
- •Алгоритмы замещения: точные, приближенные.
- •7. Пример реализации кэш памяти в процессоре i486
- •Расслоение памяти. Расчет эффективности.
- •10. Конвейер команд. Временные проблемы конвейера (временные диаграммы).
- •11. Структура линейного конвейера.
- •Конфликты в конвейере( структурные, по данным, по управлению)
- •Решение проблемы условного перехода: статические, динамические.
- •Суперконвейерные процессоры. Суперскалярные процессоры.
- •Особенности risc и cisc архитектуры.
- •Стратегии выдачи и завершения команд суперскалярных процессоров
- •Метод переименования регистров. Метод переупорядочивания команд. Бвп команд.
- •Прерывание. Характеристики системы прерывания.
- •Программно-управляемый приоритет между прерывающими программами.
- •Структура контроллера прерываний.
- •Векторное прерывание. Обработка прерываний в реальном режиме.
- •Проблемы разработки систем ввода-вывода и методы решения.
- •Подключение систем ввода-вывода.?
11. Структура линейного конвейера.
При функционировании конвейера его структура изменяется, т.к. на практике редко удается добиться того, чтобы задержки в каждом функциональном блоке были одинаковы. Буферные регистры предназначены для хранения результатов обращений? в ФБ на тот случай, если ФБ не готов использовать этот результат. Производительность конвейера снижается, если период поступления входных данных определяется max временем их обработки в каждом ФБ. Для устранения этого недостатка каждый буферный регистр заменяют буферной памятью. При выборе БП необходимо соотнести объем памяти и время выполнения элементарной операции в ФБ. Желательно, чтобы время выполнения было одинаковым. Это характерно для синхронных конвейеров. В этом случае ступени конвейера расположены близко друг от друга, тракты распределения сигналов короткие, факт перекоса сигнала не существует. В асинхронных конвейерах связь между ступенями не столь сильна. Тракты распределения сигналов длинные и такие конвейеры используются в систолических процессорах.
Конфликты в конвейере( структурные, по данным, по управлению)
1) структурные конфликты; 2) конфликты по данным; 3) конфликты по управлению.
Структурные конфликты возникают при обращении нескольких команд к одному и тому же ресурсу, т.к. в этапах рабочего цикла 3 этапа связаны с памятью? На практике удается избежать данных конфликтов: за счет использования иерархической системы память (кэш данных, кэш команд), за счет расслоения памяти. В целом влияние структурных конфликтов на производительность конвейеров по сравнению с другими видами конфликтов невелико. Более существенно влияют конфликты по данным.
Конфликты по данным – типичная и регулярно встречающаяся проблема. Предполагают, что на конвейере располагаются 2 команды: i и j, которые обращаются к одной переменной. I предшествует j. Возникают 3 конфликта: 1) чтение после записи (команда j читает до того, как команда I успела записать новое значение X, т.е. j ошибочно получит старое значение в X вместо нового. 2) запись после чтения (при параллельной обработке): команда j записывает новое значение х до того как команда i успела прочитать х, то есть команда i ошибочно получит новое значение х вместо старого. 3) запись после записи: команда j записывает новое значение х прежде, чем команда i успела записать в качестве х свое значение, то есть х ошибочно содержит i-e значение х вместо j-гo.
Наиболее частый вид конфликтов – чтение после записи. Т.к. операция чтения в этапах рабочего цикла процессора предшествует команде записи. По этой же причине конфликты типа запись после чтения большой проблемы не вызывают. Сложности появляются, если структура конвейера допускает переупорядочивание команд. Конфликт запись после записи также не вызывают существенных проблем в конвейере, если команды выполняются в последовательности, приписанной программой.
В борьбе с конфликтами по данным выделяют 2 аспекта: 1) своевременное обнаружение потенциальных конфликтов; 2) устранение конфликтов.
Для борьбы с конфликтами по данным применяются программные и аппаратные методы. Программные методы ориентированы на возможности устранения конфликтов на стадии компиляции. Аппаратные методы предпринимают приостановку конвейера, но это снижает производительность. Наиболее проблемный конфликт – чтение после записи. Для решения таких конфликтов используют прием ускорения продвижения информации или цепи обхода.
При ускоренной пересылке используют операнд, вычисленный предыдущей командой. Он сохраняется в буферном регистре и отправляются на ступень выполнения арифметической операции, минуя все ступени конвейера. С этой целью в конвейере предусмотрены дополнительные тракты пересылки информации.
Конфликты по управлению
Наибольшие проблемы при создании эффективного конвейера обусловлены появлением в программном коде команд перехода, которые изменяют естественный порядок вычисления. Команда перехода занимают 10-20% программного кода. Команды перехода приводят к остановке конвейера и снижению производительности всей системы.
Основные факторы приостановки конвейера: 1) характерен для любой команды перехода и связан с выборкой команды из точки перехода, т.е. спустя 2 такта постановки команды на конвейер необходимо определить адрес следующей команды. 2) характерно для команд условного перехода. Из точки перехода необходимо определить адрес следующей команды, которая чаще всего зависит от результата предыдущей команды.
Для эффективности конвейера и сокращения задержек, обусловленных выборкой команд из точки перехода, применяют несколько подходов: 1) вычисление Аисп перехода на ступенях декодирования команды; 2) использование буфера адресов переходов; 3) использование кэш-памяти для хранения команд; 4) использование буфера цикла.
1) В результате декодирования определяется принадлежность текущей команды к командам условного перехода, способ адресации и адресный код из точки перехода. Знание данной информации на первой ступени рабочего цикла процессора позволяет приступить к вычислению Аисп, не дожидаясь передачи команды далее на 3-ью ступень конвейера. Задержка сокращается с 2-х тактов до одного. В структуру вводятся дополнительные сумматоры для вычисления Аисп из точки перехода.
2) буфер адресов перехода. В структуру вводится небольшой объем кэш-памяти, в которой хранится Аисп из точек перехода нескольких команд. Перед выборкой очередной команды условного перехода ее адрес (СчК) сравнивается с адресами представленными в кэш-памяти для определения Аисп данной команды. Т.е. выборка команды может быть начат на 1 такт раньше. Если ссылка на данную команду в кэш-памяти отсутствует, то обработка осуществляется следующим образом: кэш-память формируется для команд условного перехода, в которых переход состоится.
3) использование кэш-памяти для хранения команд. Используют кэш-память для хранения команд, которые помимо Аисп для команды условного перехода хранят и код команды. Т.е. выигрыш достигается за счет того, что не вычисляется Аисп и исключается этап выборки команды. Данное решение эффективно при многократном повторе одних и тех же команд, т.е. при реализации циклов.
4) использование буфера циклов. В этом случае кэш-память входит в состав 1-ой ступени конвейера. В буфере содержится n последовательных команд в той последовательности, в которой они выбирались. При поступлении новой команды обращение производится к буферу. Если удача, то она выбирается из буфера. Обычно буфер достаточно большой, чтобы охватить все тело цикла. Такое решение было использовано при построении суперЭВМ.
