Процессором и памятью

Архитектурные способы повышения скорости обмена между

Как указано в /1/, быстродействие СБИС DRAM увеличивается существенно медленнее, чем быстродействие процессоров. Важнейшим архитектурным решением для сглаживания этого противоречия явилось введение в структуру вычислительных машин кэш-памяти – быстродействующего буфера между основной памятью и регистрами процессора. В эту буферную память из основной памяти помещаются копии команд и данных, относящихся к обрабатываемому в данный момент фрагменту программы. Работа кэш-памяти скрыта от пользователя. Кэш-память наиболее эффективна, если она встроена внутрь кристалла процессора (кэш-память 1-го уровня – L1). Её объём составляет 16-32 Кбайт. В большинстве современных компьютеров используют 2- или 3-уровневую кэш-память, L2 и L3, соответственно. Кэш-память L2 объёмом 256-512 Кбайт часто располагается в одном корпусе с процессором и соединяется с ним с помощью специальной локальной шины, работающей на основной или половинной частоте процессора. Кэш-память L3 объёмом в несколько Мбайт размещается на системной плате компьютера. Обычно всё содержимое кэш L1 находится в кэш L2, а всё содержимое L2 является частью кэш L3.

Вся доступная программе информация размещается в оперативной памяти. При обращении процессора к памяти вначале проверяется наличие требуемых данных в кэш-памяти. Обнаружение искомой информации фиксируется как кэш-попадание, в противном случае фиксируется кэш-промах. Обмен данными между кэшем и оперативной памятью осуществляется информационными блоками. В современных микропроцессорных системах используются блоки фиксированного размера, например, 32 байта. Управляет кэш-памятью специальный контроллер кэша. Если адресуемый операнд находится в кэше, он быстро извлекается из него (при чтении) или результат операции заносится в кэш (при записи). При отсутствии требуемого операнда в кэш-памяти процессор считывает из оперативной памяти блок данных, содержащий искомый операнд и помещает его в кэш. Запись данных, не имеющих копий в кэше, проводится непосредственно в оперативную память.

Пакетный обмен, с одной стороны, позволяет интенсифицировать поток данных в системной шине и за счёт этого уменьшить затраты времени на обмен, с другой стороны, повышает разнообразие вариантов обмена и усложняет управление. Можно выделить следующие способы обмена данными процессора с оперативной памятью, построенной на СБИС DRAM: пакетный доступ, конвейерный доступ и их сочетание.

Структура оперативной памяти с пакетным доступом и чередованием банков представлена на рисунке 7.7 /1/ и содержит в себе следующие блоки: накопитель, разделённый на 4 банка (Б0, Б1, Б2, Б3); регистр данных, содержащий 4 субрегистра- фиксатора данных (Ф0, Ф1, Ф2, Ф3), соответственно 4-м банкам; мультиплексор (демультиплексор) – М/ДМ; регистр адреса (РА), блок управления (БУ). Разрядность ячеек каждого банка соответствует разрядности шины данных в системной шине. Адреса присваиваются ячейкам оперативной памяти с чередованием номера банка (на рисунке 7.7: 0, 1, …, 11). Накопитель (упорядоченный массив из n-разрядных ячеек) разделяется на m банков: , k – целое. В рассматриваемом примере k = 2.

Рисунок 7.7 – Структура оперативной памяти с пакетным доступом и

чередованием банков

При этом адрес i-ой ячейки представляется следующим образом (Формула 7.1):

, (7.1)

где d – адрес внутри банка, b – номер банка (b = 0, 1, …, m-1). Такое распределение адресов между m банками называют m-кратным чередованием банков.

При пакетном обмене в РА запоминается адрес внутри банка. БУ обеспечивает считывание целой строки ячеек из накопителя, соответствующей адресу в РА во всех m банках. Содержимое считанных ячеек фиксируется в регистре данных. Далее данные из Ф0, Ф1, … по очереди с использованием мультиплексора передаются по системной шине данных. Пусть, например, осуществляется считывание пакета из ячеек с адресами 4, 5, 6, 7 (Рисунок 7.7). Если обозначить время доступа через , а время передачи через , то оценка времени чтения пакета без чередования банков вычисляется по формуле 7.2, а с чередованием банков осуществляется по формуле 7.3.

(7.2)

(7.3)

Быстродействие памяти по отношению к быстродействию процессора характеризуется числом тактов ожидания в цикле обращения к памяти. Допустим, что время доступа соответствует 3 тактам, а время передачи – 2 тактам. Тогда в случае без чередования банков время передачи пакета из 4 слов можно охарактеризовать вектором (5, 5, 5, 5), а при использовании чередования банков – (5, 2, 2, 2). Из приведённых оценок видно, что в структурах оперативной памяти с пакетным доступом интенсивность обмена повышается.

При записи работа организована следующим образом: данные пакета из процессора по очереди записываются в субрегистры Ф0, …, Ф3, а затем осуществляется запись одновременно в ячейки всех банков.

Структура оперативной памяти с конвейерным доступом и чередованием банков представлена на рисунке 7.8 /1/.

Рисунок 7.8 - Структура оперативной памяти с конвейерным доступом и

чередованием банков

Она содержит следующие блоки: накопитель, разделённый на 4 банка (Б0, Б1, Б2, Б3); 4 регистра данных (Ф) с независимым управлением (в отличие от структуры на рисунке 7.7); мультиплексор (демультиплексор) – М/ДМ; регистры адреса РА0-РА3 для каждого банка; блок управления (БУ). Разрядность ячеек для каждого банка соответствует разрядности данных в системной шине. Адреса присваиваются ячейкам оперативной памяти с чередованием номера банка (на рисунке 7.8: 0, 1, …, 11).

Цикл обращения к памяти (например, чтения) содержит 3 фазы: доступ к ячейке, воспроизведение данных, передача данных от регистров Ф через мультиплексор и системную шину в процессор. В качестве примере рассмотрим чтение пакета с последовательностью адресов 8, 6, 1, 7. Ограничение на расположение адресов ячеек здесь менее жёсткое, чем при пакетном доступе. Требуется, чтобы адреса ячеек пакета находились в разных банках. Если длительность фаз считать одинаковой, равной T, то справедливы следующие оценки для времени чтения пакета из 4 слов: без конвейеризации – формула 7.4, с конвейеризацией – формула 7.5 /1/.

(7.4)

(7.5)

В общем случае возможно сочетание обоих изложенных способов доступа. При этом накопитель оперативной памяти разбивается на банков, образующих прямоугольную матрицу. Адреса ячеек располагаются по порядку сначала в банках первой строки, затем второй и т.д. Организуется пакетный доступ к строке ячеек и конвейерный доступ к строкам. В каждом интервале, равном цикла памяти, осуществляется доступ к k ячейкам с идущими подряд адресами.