
- •Структура, алгоритм функционирования кэш-памяти
- •Алгоритмы восстановления информации в оперативной памяти.
- •Алгоритмы замещения: точные, приближенные.
- •7. Пример реализации кэш памяти в процессоре i486
- •Расслоение памяти. Расчет эффективности.
- •10. Конвейер команд. Временные проблемы конвейера (временные диаграммы).
- •11. Структура линейного конвейера.
- •Конфликты в конвейере( структурные, по данным, по управлению)
- •Решение проблемы условного перехода: статические, динамические.
- •Суперконвейерные процессоры. Суперскалярные процессоры.
- •Особенности risc и cisc архитектуры.
- •Стратегии выдачи и завершения команд суперскалярных процессоров
- •Метод переименования регистров. Метод переупорядочивания команд. Бвп команд.
- •Прерывание. Характеристики системы прерывания.
- •Программно-управляемый приоритет между прерывающими программами.
- •Структура контроллера прерываний.
- •Векторное прерывание. Обработка прерываний в реальном режиме.
- •Проблемы разработки систем ввода-вывода и методы решения.
- •Подключение систем ввода-вывода.?
7. Пример реализации кэш памяти в процессоре i486
КЭШ имеет объем 8Кб и предназначен для хранения данных и команд. Он разделен на 4 сектора. Количество блоков в каждом секторе 128.
Центральный процессор не поддерживает частичного заполнения строк, поэтому все строки кэш должны быть достоверными и полностью заполненными. В блоке данных в каждом секторе содержится информация равная 16-ти последовательным ячейкам, начиная с адреса кратного 16. При заполнении КЭШ используется пакетный режим передачи данных. Длина строки КЭШ должна составлять 16 байт.
Блок тегов тоже разделен на 4 сектора, в каждом секторе 128 блоков. Каждый тэг содержит номер отображаемого сегмента.
В блоке достоверности младшие 4 бита (0..3) определяют строку как достоверную, а 4..7 биты следят за использованием данных. Разряды 4..7 используются при реализации алгоритма LRU.
Адресация КЭШ осуществляется путем разделения старших 128 бит физического адреса на две части. Старшие 21 бит служат полем тега(указывают номер сегмента) и применяются для различения кэшированных данных из любой другой 16-байтной строки, которая может находиться в том же блоке.
Младшие 7 бит образуют поле блока и определяют множество, в котором могут храниться данные. Биты с 0 по 3 определяют номер отображенного байта в строке кэша.
В качестве алгоритма замещения LRU используется приближенная реализация алгоритма - “двоичное дерево”.
Обозначим сектора кэш памяти : S0, S1, S2, S3. Каждым двум секторам ставится в соответствие триггер. При обращении к сектору формируется 3-х разрядный двоичный код (B2 B1B0 ). Этот код модифицируется при каждом попадании. Если произошло обращение к верхней группе блока, то соответствующий триггер устанавливается в 1, если же к нижней, то триггер устанавливается в 0. Выбор заменяемого сектора определяется по значению B0, B1, B2 в соответствии с таблицей.
Расслоение памяти. Расчет эффективности.
«Расслоение» памяти
Если обмен информации производится между медленным устройством и быстрым, то достичь быстродействия невозможно. Но в случае организации параллельного доступа к медленным устройствам к требованию высокой скорости обмена можно приблизить. Эффективным методом реализации параллельного доступа является: 1) «расслоение» памяти; 2)»расслоение» с чередующейся организацией.
ОП физически и логически делится на блоки.
П
ри
такой организации возможен параллельный
доступ более, чем к одному байту. За счет
этого можно повысить скорость передачи
информации в основную память. Для
определения среднего количества модулей,
которые могут быть задействованы, важно
знать как распределяются адреса.
Аисп: старшие К бит адреса определяют один из модулей, младшие n бит слово в модуле.
Недостатки: 1) при обращении к последовательным адресам в операции участвует только дин модуль, что снижает эффективность. 2) данный недостаток исключается, если использовать прямой доступ к памяти.
«Расслоение» с чередующейся организацией
М
ладшие
разряды определяют номер модуля, а
старшие номер слова. Возможен параллельный
доступ.
Расчет эффективности
Имеется кэш с блоками размером в 8 слов. На пересылку в одну ссылку? уходит 1 такт. Т.к. используется пакетная передача, то время доступа = 4 такта. При функционировании кэша зафиксирован промах. Определить эффективность кэша при промахе. Для отправки 1-го слова в кэш 1 такт.
Предположим, что используется один модуль памяти. Время загруженности блока в кэш определяется следующим образом: = 1 + 8 + 7*4 + +1 = 38 тактов
Предположим, что память состоит из 4-х блоков с чередующейся адресацией?
1 + 8 + 4 + 4 + 1 = 18 тактов
___
Для обращения к памяти (дин.) уходит 10 тактов. Структура кэша: блоки по 8 слов, используется чередующаяся адресация. 30% команд выполняют чтение или запись.
Время без кэша = 130 * 10 = 1300 тактов
Время с кэш = 100 * (0,95*1 + 0,05*18) + 30 (0,9*1 + 0,1*18) = 266 тактов