- •Структура, алгоритм функционирования кэш-памяти
- •Алгоритмы восстановления информации в оперативной памяти.
- •Алгоритмы замещения: точные, приближенные.
- •7. Пример реализации кэш памяти в процессоре i486
- •Расслоение памяти. Расчет эффективности.
- •10. Конвейер команд. Временные проблемы конвейера (временные диаграммы).
- •11. Структура линейного конвейера.
- •Конфликты в конвейере( структурные, по данным, по управлению)
- •Решение проблемы условного перехода: статические, динамические.
- •Суперконвейерные процессоры. Суперскалярные процессоры.
- •Особенности risc и cisc архитектуры.
- •Стратегии выдачи и завершения команд суперскалярных процессоров
- •Метод переименования регистров. Метод переупорядочивания команд. Бвп команд.
- •Прерывание. Характеристики системы прерывания.
- •Программно-управляемый приоритет между прерывающими программами.
- •Структура контроллера прерываний.
- •Векторное прерывание. Обработка прерываний в реальном режиме.
- •Проблемы разработки систем ввода-вывода и методы решения.
- •Подключение систем ввода-вывода.?
Алгоритмы восстановления информации в оперативной памяти.
Существует два метода восстановления измененной информации из КЭШ в ОП:
Write Back – обратная запись; 2. Write Through – сквозная запись.
Обратная запись.
Восстановление информации в ОП происходит на этапе вытеснения информации из кэша. При работе ЦП и ОП инфа изменяется только в кэше.
Существует 3 реализации этого метода восстановления:
1. Простой обмен. Вне зависимости от того изменялась информация в КЭШ или нет, она восстанавливается в ОП.
2. Регистровый обмен. Измененный блок информации записывается в буферный регистр. Из ОП на освободившееся место отображается новый блок информации и только за тем измененная информация восстановленная в ОП.
3. Признаковый обмен. В этом случае только измененная информация восстанавливается в ОП. Признаком изменения является единичное значение бита изменения в строке кэша.
В процессорах Pentium при реализации кэш памяти второго уровня используется обратная запись.
Сквозная запись.
При данном методе изменяется информация как в кэше, так и в ОП почти одновременно. Т.к. каждый цикл записывается => шина загружается. Т.е. на каждую операцию изменения данных приходится 2 операции изменения данных.
Достоинства: в ОП всегда хранятся последние данные.
Для повышения эффективности функционирования кэша используют метод с двойной буферизацией. Для уменьшения загрузки шины процессор выполняет запись в нескольких буферах, работающих по алгоритму FIFO. Т.е. запись для процессора заканчивается практически мгновенно, но информация не сохраняется в ОП. Процессор далее выполняет свои функции, не заботясь о восстановлении информации в ОП. Дополнительные затраты связаны с необходимостью реализации алгоритмов освобождения буфера, определения загрузки шины. Но это эффективно, т.к. процессор полностью освобождается от работы с ОП.
Сравнение:
1) при обратной записи системная шина менее загружена из-за меньшего количества записей. 2) требуются аппаратные затраты, связанные с обеспечением целостности данных.
Обычно обратная запись используется в процессорах для реализации кэша 2-го уровня. Обратная запись на 10% эффективнее сквозной записи.
1) плюсом сквозной записи – в ОП постоянно находится измененная инфа. Практика показывает, что операция записи составляет небольшую долю от общего обращения к памяти. Поэтому различие между 2-мя методами невелико.
Обычно сквозная запись используется для реализации кэш 1-го уровня в современных процах.
Алгоритмы замещения: точные, приближенные.
Оптимальный алгоритм замещения обеспечивает удаление тех блоков, которые нескоро понадобятся, т.е. хранит историю использования блоков. При функционировании кэш-памяти используют алгоритм LRU. Существуют точные и приближенные методы реализации данного алгоритма. Они отличаются количеством используемого оборудования и методами реализации алгоритмов.
Точная реализация алгоритма
Регистр хронологий
|
|
БП |
|
Рг хрон |
|
|
|
0 |
|
|
1 |
|
1 |
|
1 |
|
|
0 |
|
0 |
|
2 |
|
|
2 |
|
2 |
|
3 |
|
|
4 |
|
4 |
|
4 |
|
|
3 |
|
3 |
|
5 |
|
|
7 |
|
6 |
|
6 |
|
|
6 |
|
5 |
|
7 |
|
|
5 |
|
7 |
n=log2N
При вытеснении используют блок, значение регистра хронологий которого равно 0. Аппаратные затраты оцениваются по необходимому объему памяти и количеству регистров хронологии.
C = n* log2N – теоретический min для данного алгоритма.
Применение точных алгоритмов требует больших аппаратных затрат, поэтому эффективно при небольшом объеме кэш-памяти (до 4 кбайт).
Турнирная таблица
Создается матрица SxS, в которой фиксируется обращение к блокам. Количество элементов, используемых в матрице, определяется как k(k-1)/2, где к – количество блоков. В качестве элементов матрицы используют триггеры. В общем виде структура матрицы имеет следующий вид.
Обращение ко 2-ому блоку
Если происходит обращение к i-ому блоку, которому соответствует i-ая строка, следовательно все элементы этой строки устанавливаются в 1, а все элементы i-го столбца в 0. При вытеснении замещению подлежит блок …, члены строки которого равны 0. На данном рисунке вытеснению подлежит блок 0.
Затраты оборудования определяются по следующей формуле: a=n(n-1)/2, где n –количество триггеров. Данный алгоритм относится к точным алгоритмам и эффективен для реализации объема до 64 кбайт.
Приближенные методы
Метод триггеров
№ блока |
Инф. часть БП |
|
Тг акт. |
0 |
7 |
|
1 |
1 |
2 |
|
0 |
2 |
7 |
|
0 |
3 |
8 |
|
1 |
4 |
9 |
|
1 |
5 |
3 |
|
1 |
6 |
7 |
|
1 |
7 |
5 |
|
1 |
Каждому блоку БП ставится в соответствие триггер активности. При обращении к i-ому блоку соответствующий этому блоку триггер устанавливается в 1. В процессе функционирования БП все триггеры будут установлены в 1. Как только это произойдет, значение последнего триггера останется равным 1, остальные сбрасываются в 0. В случае промаха для замещения выбирается блок с меньшим номером из группы блоков, триггеры активности которых = 0. Для данного рисунка вытесняется блок 1.
Затраты оборудования: a=n, где n – количество триггеров.
Двоичное дерево
Е
сли
производится обращение к верхнему
блоку, то триггер устанавливается в 1,
в нижней в 0. Если производится обращение
к 3 блоку: B2B1B0=001
Определение номера блока для замещения:
B0=NE(TO/7); B1=NE(T0/7)*T4/7VT0/7*NE(TO/7); B2=NE(T0/7)*NE(T4/7)*NE(T6/7)VNE(T0/7)*T4/7*T4/5VT0/7*T0/3*NE(TO/1)VT0/7*NE(T0/3)*NE(T2/3). При обращении к 6 блоку: B2B1B0=100
5. КЭШ-память. Метод пакетной передачи данных.
Режим пакетной передачи данных предназначен для ускорения передачи данных из ОП в кэш. На производительность системы влияет размер строки кэша. Если размер строки кэша мал, то растет запаздывание памяти, что приводит к промахам. Если размер строки кэша длинный, то это также снимает вероятность попадания. Для функционирования кэша используются следующие критерии выбора пакетной передачи. Длина пакета определяется 4-мя циклами шины.
Если используется 32-х разрядная шина, то длина строки кэша = 16 байт, если 64 – то 32 байта.
Передача данных осуществляется 2-мя способами:
пакетная; 2) одиночная
Одиночная передача одного элемента данных представляет собой min цикл длительностью 2 такта.
Пакетная передача предназначена для операции обмена внутреннего кэша с ОП. В этом случае адрес и сигналы идентификации шинного цикла выдаются только в 1-ом такте. А в каждый из последующих могут передаваться данные. Адрес этих данных не передается по шине, а вычисляется по правилам известных процессора или контроллеру памяти.
В пакеты формируются только выровненные строки кэша (записанные данные во все ячейки).
Пакеты можно преобразовать в любой внутренний запрос на множественную передачу, но при чтении размер пакета ограничивается строкой кэша, а при записи пакет может собирать не более 32 или 64 бит.
3 |
2 |
1 |
32 бит |
|||
|
|
|
В3 |
В2 |
В1 |
В0 |
№ сегмента |
№ блока |
№ ячейки |
|
|
Номер байта |
Номер посылки |
||
№ сегмента |
№ блока |
|
|
|
|
Режим пакетной передачи может представляться следующим образом:
В идеальном случае пакет передается за 5 тактов. 2 такта на формирование адреса и передачи первых данных.
