
- •Структура зу типа 2d
- •Структура зу типа 2.5d
- •Структура зу типа 2d-m
- •Структура зу типа 3d
- •Устройство перепрограммируемого пзу
- •Принципы ускорения доступа к озу. Расслоение, конвееризация, буферизация.
- •Алгоритм работы кэша с отложенной записью
- •Чередование адресов
- •Тайминг памяти
- •Основные сигналы интерфейса dram
- •Регенерация dram
- •Возможны три различных метода регенерации данных.
- •Память fpm dram
- •Память edo dram
- •Память bedo dram
- •Особенности sdram
- •Память ddr sdram
- •Память ddr2, ddr3 sdram.
- •Совместимость
- •Организация канала rdram
- •Процедура инициализации rdram
- •Память vc ram
- •Принцип организации устройств обработки цифровой информации.
- •Классификация алу
- •Блок-схема и алгоритм алу для сложения чисел с фиксированной запятой
- •Способы организации алу для умножения двоичных чисел.
- •Метод ускорения умножения
- •Однокристальные эвм семейства Intel8051. Общие характеристики эвм.
- •Структурная организация эвм Intel 8051
- •Функциональная схема микроконтроллера семейства 8051
- •Регистры общего назначения эвм Intel 8051
- •Служебные регистры эвм Intel 8051
- •Сигналы интерфейса эвм Intel 8051
- •Работа с портами эвм Intel 8051
- •Cтруктура прерываний эвм Intel8051
- •Организация внутренней памяти
- •Система команд Intel8051 Арифметические команды
- •Команды передачи данных
- •Команды битового процессора.
- •Команды ветвления и передачи управления
- •Схемы подключения внешней памяти данных
- •Подключение 8031(8051) к внешней памяти программ
- •Вывод числа на 7-сегментный код
- •Вывод двоично-десятичного трехразрядного числа для 7-сегментной индикации.
- •Передача по последовательному по последовательному асинхронному порту в 8051
- •Работа с таймером 8051: режимы, регистры таймеров
Алгоритм работы кэша с отложенной записью
Изначально все заголовки буферов помещаются в список свободных буферов. Если процесс намеревается прочитать или модифицировать блок, то он выполняет следующий алгоритм:
пытается найти в хеш-таблице заголовок буфера с заданным номером;
в случае, если полученный буфер занят, ждёт его освобождения;
в случае, если буфер не найден в хеш-таблице, берёт первый буфер из хвоста списка свободных;
в случае, если список свободных буферов пуст, то выполняется алгоритм вытеснения (см. ниже);
в случае, если полученный буфер помечен как «грязный», выполняет асинхронную запись содержимого буфера во внешнюю память.
удаляет буфер из хеш-таблицы, если он был помещён в неё;
помещает буфер в хеш-таблицу с новым номером.
Процесс читает данные в полученный буфер и освобождает его. В случае модификации процесс перед освобождением помечает буфер как «грязный». При освобождении буфер помещается в голову списка свободных буферов.
Таким образом:
если процесс прочитал некоторый блок в буфер, то велика вероятность, что другой процесс при чтении этого блока найдёт буфер в оперативной памяти;
запись данных во внешнюю память выполняется только тогда, когда не хватает «чистых» буферов, либо по запросу.
Виды архитектуры кэшей (ассоциативная, частично ассоциативная, прямог отображения)
у полностью ассоциативного кэша любая его строка может отображать любой блок памяти, что существенно повышает эффективность использования его ограниченного объема. При этом все биты адреса кэшированного блока, за вычетом бит, определяющих положение (смещение) данных в строке, хранятся в памяти тегов. В такой архитектуре для определения наличия затребованных данных в кэш-памяти требуется сравнение со старшей частью адреса тегов всех строк, а не одной или нескольких, как при прямом отображении или наборно-ассоциативной архитектуре. Естественно, последовательный перебор ячеек памяти тегов отпадает — на это может уйти слишком много времени. Остается параллельный анализ всех ячеек, что является сложной аппаратной задачей, которая пока решена только для небольших объемов первичного кэша в некоторых процессорах. Применение полностью ассоциативной архитектуры во вторичном кэше пока не предвидится.
Частично-ассоциативный кэш является наиболее распространенным в данный момент среди процессорных архитектур. Характеризуется тем или иным количеством n «каналов» (степенью ассоциативности, «п-way») и может отображать содержимое данной строки памяти на каждую из n своих строк. Этот вариант является разумным компромиссом между полностью ассоциативным и кэшем «прямого отображения».
В современных процессорах, как правило, используется либо кэш-память с прямым отображением, либо двух- (четырех-) канальная множественно ассоциативная кэш-память. Например, в архитектурах К7 и К8 применяется 16-канальный частично-ассоциативный кэш L2.
Стратегия замещения информации в кэше определяет блок, подлежащий замещению при возникновении промаха. Простота при использовании кэша с прямым отображением заключается в том, что аппаратные решения здесь наиболее простые: легко реализуется сама аппаратура, легко происходит замещение данных. При замещении просто нечего выбирать - на попадание проверяется только один блок и только этот блок может быть замещен.
В кэш-памяти прямого отображения адрес памяти, по которому происходит обращение, однозначно определяет строку кэша, в которой может находиться требуемый блок. Принцип работы такого кэша поясним на примере несекторированного кэша объемом 256 Кбайт с размером строки 32 байта и объемом кэшируемой основной памяти 64 Мбайт — типичный кэш системной платы для Pentium. Кэшируемая основная память условно разбивается на страницы (в данном случае 256), размер которых совпадает с размером кэш-памяти (256 Кбайт). Кэш-память (и условно страницы основной памяти) делится на строки (256К / 32 = 8К строк). Архитектура прямого отображения подразумевает, что каждая строка кэша может отображать из любой страницы кэшируемой памяти только соответствующую ей строку (на рисунке они находятся на одном горизонтальном уровне). Поскольку объем основной памяти много больше объема кэша, на каждую строку кэша может претендовать множество блоков памяти с одинаковой младшей частью адреса (смещением внутри страницы). Одна строка в определенный момент может, естественно, содержать копию только одного из этих блоков. Номер (адрес) строки в кэш-памяти называется индексом (index). Тег несет информацию о том, какой именно блок занимает данную строку (то есть старшая часть адреса или номер страницы). Память тегов должна иметь количество ячеек, равное количеству строк кэша, а ее разрядность должна быть достаточной, чтобы вместить старшие биты адреса кэшируемой памяти, не попавшие на шину адреса кэш-памяти. Кроме адресной части тега с каждой строкой кэша связаны биты признаков действительности и модифицированности данных. Такой кэш имеет самую простую аппаратную реализацию и применяется во вторичном кэше большинства системных плат.
Пакетный режим
Режим пакетной передачи (burst mode) предназначен для ускорения операций пересылки строк кэша. Этот режим появился в процессорах 486. Строка кэша процессора 486 имеет длину 16 байт, следовательно, для ее пересылки требуется четыре 32-разрядных шинных цикла. Для пересылки 32-байтной строки кэша Pentium* требуется тоже четыре такта, поскольку разрядность передач составляет 64 бита. Использование кэша предполагает, что строка должна в нем присутствовать целиком. Пакетный цикл (burst cycle) оптимизирован именно для операций обмена внутреннего кэша с оперативной памятью. В этом цикле адрес и сигналы идентификации типа шинного цикла выдаются только в первом такте пакета, а в каждом из последующих тактов могут передаваться данные, адрес которых уже не пересылается по шине, а вычисляется из первого адреса по правилам, известным процессору и контроллеру памяти. Пакетные циклы связаны только с кэшируемой памятью, при этом кэшируемость памяти подразумевает и поддержку пакетного режима. Один пакетный цикл не может пересекать границу строки кэша. Специфический порядок следования адресов в пакетном цикле определяется начальным адресом пакета. Порядок чередования (interleaving) адресов, который иллюстрирует табл. 8.1, в пакетном цикле характерен для всех процессоров Intel и совместимых с ними, начиная с 486. Он оптимизирован для двухбанковой организации памяти, подразумевающей чередование банков, используемых в соседних передачах пакетного цикла. С точки зрения памяти, у каждой микросхемы во время пакетного цикла могут изменяться только два младших бита адреса (независимо от разрядности шины данных процессора). Данный порядок чередования поддерживает любая память с пакетным режимом: динамическая память BEDO DRAM, SDRAM, RDRAM и статическая память Sync Burst SRAM, РВ SRAM. Процессоры других семейств (например, Power PC) используют линейный (linear) порядок адресов в пакете. Микросхемы пакетной памяти обычно имеют входной сигнал или бит в регистре режима, задающий порядок следования адресов (линейный или с чередованием) для конкретного применения. Длина пакетного цикла может быть фиксированной или программируемой и составлять 2, 4 или 8 передач.