Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Принцип организации памяти ЭВМ
Памятью ЭВМ называют совокупность устройств, служащих для
запоминания, хранения и выдачи информации. Отдельные устройства,
входящие в эту совокупность, называют запоминающими устройствами (ЗУ).
Состав и характеристики отдельных устройств памяти существенно влияют
на общие характеристики вычислительной системы. В общем случае, в
вычислительной системе может содержаться несколько типов ЗУ.
Все операции с памятью сводятся к двум основным: запись - это занесение
информации в память и чтение - это выборка информации из памяти.
Операции чтения и записи называются операциями обращения к памяти, и
при каждом таком обращении осуществляется операция над некоторой
единицей информации.
Основные параметры памяти
1. Ёмкость памяти - максимальное количество информации, которое можно записать
в память. Определяется в количестве бит, байт или машинных слов.
2. Быстродействие памяти определяется временем выполнения операций записи или
считывания данных. Складывается из времени поиска нужной информации в
запоминающем массиве и времени считывания информации:
для считывания: tобращения = tдоступа + tсчитывания (+ tрегенерации)
для записи:
tобращения = tподготовки + tдоступа
+ tзаписи
2.1. Длительность цикла обращения определяется как минимальный период
следующих друг за другом обращений к памяти, причем циклы чтения и записи
могут требовать различных затрат времени. В цикл обращения кроме активной
фазы самого доступа входит и фаза восстановления (регенерации) - возврата
памяти к исходному состоянию, которая соизмерима по времени с активной фазой.
Временные характеристики самих запоминающих элементов определяются их
принципом действия и используемой технологией изготовления.
2.2. Время доступа определяется как задержка появления действительных данных на
выходе памяти относительно начала цикла чтения.
Основные параметры памяти
3. Производительность памяти характеризуется как скорость потока
записываемых или считываемых данных и измеряется в мегабайтах в секунду.
Производительность подсистемы памяти зависит от следующих характеристик:
3.1. Типа и быстродействия применяемых запоминающих элементов.
3.2. Разрядности шины памяти. Это количество байт (или бит), с которыми
операция чтения или записи может быть выполнена одновременно. Обычно
согласуется с разрядностью внешней шины процессора.
3.3. Рабочей частоты шины памяти, либо пропускной способности интерфейса.
3.4. Некоторых особенностей архитектуры, таких как применение различных
вариантов конвейеризации и различных идей организации кэширования.
4.Удельная ёмкость - это отношение ёмкости к какому-либо показателю: либо к
физическому объёму.
5.Стоимость единицы информации: СЕД=СЗУ/ёмкость ЗУ, СЗУ – стоимость.
6.Экономичность - это отношение затрат энергии на всё электронное
оборудование ЗУ к его стоимости.
7.Удельная плотность - характеризует количество битов информации хранимых в
единице объема.
8.Достоверность хранения данных и методы увеличения надёжности хранения
информации.
Классификация устройств памяти
1. По реализуемым ЗУ операциям обращения
ЗУ с произвольным обращением - позволяет работать в режимах записи и чтения. К нему
относятся все типы ОЗУ, внешние ЗУ на дисках и лентах.
ЗУ для считывания. Относятся ПЗУ, некоторые ЗУ на оптических дисках.
2. По способу организации доступа информации
ЗУ с непосредственным произвольным доступом. Характерна независимость времени
обращения от величины адреса ячейки (относится к ОЗУ и СОЗУ).
ЗУ с циклическим доступом. Представляет любые диски и ЗУ, в которых информация
перемещается относительно носителя с постоянным временем цикла.
ЗУ с последовательным доступом. Составляет ЗУ, в котором время доступа определяется
перемещением носителя (магнитные ленты).
3. По выполняемым в компьютерной системе функциям
ОЗУ (оперативная память);
СОЗУ (местная память);
управляющие ЗУ (ПЗУ, ЗУ типа ОЗУ);
все ПЗУ.
4. По способам адресации информации накопителей
все адресные ЗУ (ОЗУ, регистровое СОЗУ, все типы ВЗУ);
ассоциативная память;
безадресные (стек аппаратный или программный, ЗУ типа “очередь”).
5. По физическим принципам, использующим информацию
полупроводниковые;
магнитоэлектрические;
магнитные;
магнитооптические.
Многоуровневая (иерархическая) организация памяти
системная
память
Процессор
РОН
КЭШ L1
контроллер
КЭШ L2
КЭШ L2
системная шина
RAM
ROM
CMOS
память с прямым доступом
Buffer Memory
ЗУ на дисках
ВЗУ
память с последовательным доступом
ЗУ на лентах
РОН - регистры общего назначения
КЭШ L1 - КЭШ 1-го уровня
Память строится как многоуровневая, нулевой уровень — процессорный, 1-ый уровень — ОЗУ, далее
уровни распределяются между различными типами памяти в зависимости от класса машин. При этом 2-ой
уровень может принадлежать любому типу ВЗУ (или массовой памяти), количество уровней определяется
классом.
Иерархическая организация преследует следующие цели: увеличить быстродействие процессора при
общении его с памятью соседнего уровня и уменьшить стоимость хранения информации при размещении на
более низком уровне. Каждый уровень характеризуется определенной ёмкостью, временем доступа и
стоимостью хранения единицы информации. Чем ниже уровень, тем больше его ёмкость, время обращения,
но меньше цена единицы информации. Обмен информации между уровнями осуществляется блоками
(строками).
Скорость обмена между уровнями будет определяться частотными характеристиками более низкого уровня.
Многоуровневая (иерархическая) организация памяти
Основная или оперативная память компьютера используется для оперативного обмена
информацией (командами и данными) между процессором, внешней памятью. Её другое
название - ОЗУ (оперативное запоминающее устройство) - примерно соответствует английскому термину RAM (Random Access Memory) - память с произвольным доступом.
Произвольность доступа подразумевает возможность операций записи или чтения с любой
ячейкой ОЗУ в произвольном порядке. Требования, предъявляемые к основной памяти:
большой (для электронной памяти) объём, исчисляемый единицами, десятками гигабайт;
быстродействие и производительность, позволяющие реализовать вычислительную
мощность современных процессоров;
высокая надежность хранения данных - ошибка даже в одном бите в принципе может
привести и к ошибкам вычислений, и к искажению и потере данных, иногда и на внешних
носителях.
Кэш-память (Cache Memory) - сверхоперативная память, является буфером между ОЗУ и его
«клиентами» - процессором и другими абонентами системной шины. Кэш-память не является
самостоятельным хранилищем; информация в ней не адресуема клиентами подсистемы
памяти, присутствие кэш для них «прозрачно». Кэш хранит копии блоков данных тех областей
ОЗУ, к которым происходили последние обращения, и весьма вероятное последующее
обращение к тем же данным будет обслужено кэш-памятью существенно быстрее, чем
оперативной памятью. От эффективности алгоритма кэширования зависит вероятность
нахождения затребованных данных в кэш-памяти и, следовательно, выигрыш в
производительности памяти и компьютера в целом. Кэш в большинстве современных
компьютерных системах строится по трёхуровневой схеме.
Многоуровневая (иерархическая) организация памяти
Постоянная память используется для энергонезависимого хранения системной информации - BIOS, таблиц
знакогенераторов и т. п. Эта память при обычной работе компьютера только считывается, а запись в нее
(часто называемая программированием) осуществляется специальными устройствами - программаторами.
Отсюда и ее название - ROM (Read Only Memory) - память только для чтения или ПЗУ (постоянное
запоминающее устройство). Требуемый объем памяти этого типа невелик - например, BIOS PC/XT
помещалась в 8 Кбайт, в современных компьютерах типовое значение - 128 Кбайт. Быстродействие
постоянной памяти обычно ниже, чем оперативной. Для повышения производительности содержимое ROM
копируется в ОЗУ, и при работе используется только эта копия — теневая память (Shadow ROM). В настоящее
время постоянная память вытесняется энергонезависимой памятью (флэш-память), запись в которую
возможна и в самом компьютере в специальном режиме работы.
Полупостоянная память в основном используется для хранения информации о конфигурации компьютера.
Традиционная память конфигурации вместе с часами-календарем (CMOS Memory и CMOS RTC) имеет объем
несколько десятков байт, ESCD - (Extended Static Configuration Data) область энергонезависимой памяти,
используемая для конфигурирования устройств Plug and Play - имеет объем несколько килобайт. Сохранность
данных полупостоянной памяти при отключении питания компьютера обеспечивается маломощной внутренней батарейкой или аккумулятором. В качестве полупостоянной применяется и энергонезависимая память
- NV RAM (Non-Volatile RAM), которая хранит информацию и при отсутствии питания.
Разделяемая буферная память различных адаптеров - память, содержимое которой может изменяться как со
стороны системной шины, так и со стороны адаптера, составной частью которого она является. Примерами
разделяемой памяти является буферная память коммуникационных адаптеров (она в произвольный момент
времени может быть заполнена принятым из сети пакетом), видеопамять адаптеров с графическими
сопроцессорами (битовое разложение графического примитива строится в ней внутренним процессором
графического адаптера).
Достоверность хранения данных в памяти
В любой из многих миллионов ячеек памяти возможен случайный сбой или окончательный отказ, приводящий
к ошибке. Вероятность ошибки, естественно, возрастает с увеличением объёма памяти. Современные
технологии позволяют выпускать высоконадежные микросхемы памяти, у которых при корректной эксплуатации вероятность ошибки достаточно мала, но все-таки не нулевая.
Контроль четности. При его использовании каждый байт памяти сопровождается битом паритета (Parity bit),
дополняющим количество единиц в байте до нечетного. Значение бита паритета апаратно генерируется при записи в память и проверяется при считывании. При обнаружении ошибки паритета схемой контроля
вырабатывается немаскируемое прерывание. Со временем качество применяемых микросхем памяти
улучшилось, и в целях удешевления модулей памяти от применения контроля четности стали отказываться сначала предлагали выбор через опцию BIOS Setup: проверять или не проверять паритет, а потом появилась
масса моделей системных плат, в которых контроля паритета нет вообще.
В компьютерах особо ответственного применения используют память с обнаружением и исправлением
ошибок - ЕСС Memory (Error Checking and Correcting). В этом случае для каждого записываемого
информационного слова памяти (а не байта, как при контроле паритета) по определенным правилам
вычисляется функция свертки, результат которой разрядностью в несколько бит также хранится в памяти. Для
64-битного слова обычно используют 7-8 дополнительных бит. При считывании схема контроля с
использованием этих избыточных бит способна обнаруживать ошибки с различной кратностью и (или)
исправлять однократные ошибки. Функцию контроля и исправления выполняет набор микросхем (чипсет), его
реакцию на ошибки обычно можно задать опциями BIOS Setup. Возможны различные варианты поведения,
например:
автоматически исправлять ошибки, не уведомляя об этом систему;
исправлять однократные ошибки, уведомляя систему только о многократных;
не исправлять ошибки, а только уведомлять об их обнаружении (самый достоверный контроль).
Достоверность информации, хранимой в постоянной (ROM BIOS) и полупостоянной (CMOS RTC) памяти
проверяется с помощью контрольной суммы (Checksum) - обычно это байт, дополняющий до нуля сумму по
модулю 256 всех байт контролируемой области.
Организация и принцип работы КЭШ памяти
Любой кэш уменьшает среднее время обращения к памяти более низкого уровня в общей иерархии памяти.
Кэш не представляет собой дополнительной адресуемой области памяти, он является дополнительным и
быстродействующим хранилищем копий блоков информации основной памяти, к которым, вероятно, в
ближайшее время будет обращение. Объём кэш во много раз меньше объёма основной памяти. Он хранит
лишь ограниченное количество блоков данных и каталог (cache directory) - список их текущего соответствия
областям основной памяти.
Эффективная работа кэш основывается на наличии у информации (команд и данных) объективных свойств
пространственной и временной локальности. Если в данный момент произошло обращение по определенному
адресу, то с очень высокой степенью вероятности в ближайшее время будет обращение к информации по
соседним адресам. Особенно это свойство характерно для команд. Если произошло обращение по данному
адресу, то с высокой степенью вероятности возможно обращение по тому же адресу.
При каждом обращении к кэшируемой памяти контроллер кэш-памяти по каталогу проверяет, есть ли
действительная копия затребованных данных в кэш. Если она там есть, то это случай кэш-попадания (cache
hit), и обращение за данными происходит только к кэш-памяти. Если действительной копии там нет, то это
случай кэш-промаха (cache miss), и данные берутся из основной памяти. В соответствии с алгоритмом
кэширования блок данных, считанный из основной памяти при определенных условиях, заместит один из
блоков кэш. От типа алгоритма зависит процент попаданий и, следовательно, эффективность кэширования.
Качество кэш определяется процентом попаданий и лежит в пределах 80-90%.
Контроллер кэш оперирует строками (cache line) фиксированной длины. Строка может хранить копию блока
основной памяти, размер которого, естественно, совпадает с длиной строки. С каждой строкой кэш связана
информация об адресе скопированного в нее блока основной памяти и признаки ее состояния. Строка может
быть действительной (valid) - это означает, что в текущий момент времени она достоверно отражает
соответствующий блок основной памяти, или недействительной (пустой). Информация о том, какой именно
блок занимает данную строку, то есть старшая часть адреса или номер страницы, и её состояние называется
тегом (tag) и хранится в связанной с данной строкой ячейке специальной памяти тегов (tag RAM).
Строки кэш под отображение блока памяти обычно выделяются только при операциях чтения. Запись блока,
не имеющего копии в кэш, производится только в основную память. Поведение кэш-контроллера при
операции записи в память, когда копия затребованной области находится в некоторой строке кэш,
определяется его политикой записи (Write Policy).
Основные способы организации кэш
В зависимости от способа определения взаимного соответствия строки кэш и
области основной памяти различают три архитектуры кэш-памяти:
КЭШ с прямым отображением (direct-mapped cache).
Полностью ассоциативный КЭШ (fully associative cache).
Множественно (частично) ассоциативный КЭШ (set-associative cache).
Обмен КЭШ с уровнями осуществляется блоками. У каждого блока КЭШ
имеется адресный тег, который указывает, какой блок ОЗУ, представляет
данный блок в КЭШ, поэтому при обращении к КЭШ памяти сравниваются
теги выставленного адреса с тегами, записанными в КЭШ. Их совпадение
означает, что в КЭШ записан именно тот блок ОЗУ, в котором работает
процессор.
КЭШ с прямым отображением
Тег Строка
3
25
1
2
3
1
DC
2
3
25
m
Теги
Данные
4
5
Адрес памяти, по которому происходит обращение,
однозначно определяет строку, в которой может находиться
отображение требуемого блока.
Поскольку объем основной памяти много больше объёма
кэш, на каждую строку кэш может претендовать множество
блоков памяти с одинаковой младшей частью адреса смещением внутри страницы. Одна строка в определенный
Данные момент может содержать копию только одного из этих
блоков. Номер (адрес) строки в кэш-памяти называется
индексом (index). Информация о том, какой именно блок
занимает данную строку, то есть старшая часть адреса или
номер страницы, называется тегом (tag) и хранится в
связанной с данной строкой ячейке специальной памяти
тегов (tag RAM).
Память тегов должна иметь количество ячеек, равное количеству строк кэш, а её разрядность должна умещать старшие биты адреса
кэшируемой памяти, не попавшие на шину адреса кэш-памяти. Кроме адресной части тега с каждой строкой кэш связаны биты
признаков действительности и модифицированности данных.
По адресу страницы осуществляется прямая адресация КЭШ, после этого идет ассоциативное сравнение адресного тега со
значением, записанным в КЭШ. Если они совпадают, то разрешено обращение к КЭШ. В случае если теги не совпадают, должно
быть осуществлено копирование из памяти более низкого уровня блока по заданному адресу. При копировании в область тегов будет
записан тег данного блока, а блок, который замещается, будет перемещен в память более низкого уровня.
Этот кэш имеет самую простую аппаратную реализацию. Однако ему присущ серьезный недостаток: если в процессе выполнения
программы процессору поочередно будут требоваться блоки памяти, смещенные относительно друг друга на величину, кратную
размеру страницы, то кэш будет работать интенсивно, но вхолостую. Очередное обращение будет замещать данные, считанные в
предыдущем и необходимые в последующем обращении. Переключение страниц в многозадачных ОС также снижает количество
кэш-попаданий, что отражается на производительности системы. Увеличение размера кэш при его архитектуре прямого
отображения даст не очень существенный эффект, поскольку разные задачи будут претендовать на одни и те же строки кэш.
Полностью ассоциативный КЭШ
Тег
25
Байт
4
У полностью ассоциативного кэш любая его строка
может отображать любой блок памяти, что существенно
повышает эффективность его использования при
ограниченном объёме.
34
158
Данные
25
16
12
Адрес представлен двумя полями. При этом все биты
адреса кэшированного блока, за вычетом бит,
определяющих положение (смещение) данных в строке,
хранятся в памяти тегов.
10
Тег
1
2
3
4
5
Поиск осуществляется по полностью ассоциативному принципу. Для определения наличия
затребованных данных в кэш-памяти требуется сравнение со старшей частью адреса тегов всех строк.
Последовательный перебор ячеек памяти тегов естественно не используется (на это может уйти слишком
много времени). Применяется параллельный анализ всех ячеек, что является очень объемной аппаратной
задачей, которая пока решается только для небольших объемов первичного кэш в некоторых
процессорах.
Множественно-ассоциативный КЭШ
Тег
10
Набор
3
Байт
6
1
2
3
m
1
15
2
3
4
5
Представлен
строками
с
соответствующими тегами, но группа
строк объединяется в набор. Эту
архитектуру можно рассматривать как
несколько параллельно и согласованно
работающих
каналов
прямого
отображения, где контроллеру кэш
приходится принимать решение о том,
в какую из строк набора помещать
очередной блок данных.
6
25
33
168
35
10
10
12
18
64
Данные
Адрес
набора
указывается
в
выставленном адресе. Количество
строк в наборе может быть разное от
2-х и выше. Кроме этого в адресном
поле указывается адресный тег, набор
и адрес байта. По адресу набора
выбирается группа строк.
Ассоциативный поиск обеспечивается по адресному тегу номера требуемой строки. Если в выбранном
наборе, в одной из строк присутствует требуемый адресный тег, то ведется обращение к данной строке по
номеру байта, если нет, то идет замещение набора.
Архитектура широко применяется для первичного кэш современных процессоров.
Замещение информации в кэш-памяти
Замещение реализуется по алгоритму псевдо-LRU (Least Recently Used) - наиболее давно используемый.
Здесь для каждого множества в блоке достоверности отведено три бита. Биты достоверности обновляются при
каждом попадании в кэш-память или заполнении строки. Каждая строка имеет свой бит достоверности,
показывающий, содержит ли строка достоверные данные. При очистке кэш-памяти или сбросе процессора все
биты достоверности сбрасываются в 0. Когда происходит заполнение строки кэш-памяти, место для заполнения
выбирается просто нахождением любой недостоверной строки. Если недостоверных строк нет, то заменяемую
строку выбирают биты LRU. Биты достоверности не устанавливаются для частично достоверных строк.
Существуют два основных алгоритма записи данных из кэша в основную память: сквозная запись WT (Write
Through) и обратная запись WB (Write Back).
Алгоритм WT предусматривает выполнение каждой операции записи (даже однобайтной), попадающей в
кэшированный блок, одновременно и в строку кэш, и в основную память. При этом процессору при каждой
операции записи придется ожидать окончания относительно длительной записи в основную память. Алгоритм
прост в реализации и легко обеспечивает целостность данных за счет постоянного совпадения копий данных в
кэш и основной памяти. Для него нет необходимости хранения признаков присутствия и модифицированности вполне достаточно только информации тега, но эта простота оплачивается низкой эффективностью записи.
Существуют варианты этого алгоритма с применением отложенной буферированной записи, при которой данные
в основную память переписываются через FIFO-буфер во время свободных тактов шины.
Алгоритм WB позволяет уменьшить количество операций записи на шине основной памяти. Если блок
памяти, в который должна производиться запись, отображен и в кэш, то физическая запись сначала будет
произведена в эту действительную строку кэш, и она будет отмечена как грязная (dirty), или модифицированная,
то есть требующая выгрузки в основную память. Только после этой выгрузки (записи в основную память) строка
станет чистой (clean), и её можно будет использовать для кэширования других блоков без потери целостности
данных. В основную память данные переписываются только целой строкой или непосредственно перед её
замещением в кэш новыми данными. Данный алгоритм сложнее в реализации, но существенно эффективнее, чем
WT. Поддержка системной платой кэширования с обратной записью требует обработки дополнительных
интерфейсных сигналов для обеспечения выгрузки модифицированных строк в основную память, если к этой
области производится обращение со стороны таких контроллеров шины.
Принцип работы динамической памяти
Основная или оперативная память компьютера строится на элементах динамической памяти.
DRAM (Dynamic RAM) - получила свое название от принципа действия ее запоминающих ячеек,
которые выполнены в виде конденсаторов, образованных элементами полупроводниковых микросхем.
С некоторым упрощением описания физических процессов можно сказать, что при записи логической
единицы в ячейку конденсатор заряжается, при записи нуля - разряжается. При отсутствии обращения к
ячейке со временем за счет токов утечки конденсатор разряжается и информация теряется, поэтому
такая память требует постоянного периодического подзаряда конденсаторов (обращения к каждой
ячейке) - память может работать только в динамическом режиме. Этим она принципиально отличается
от статической памяти. Благодаря относительной простоте ячейки динамической памяти на одном
кристалле удается размещать миллионы ячеек и получать самую дешевую полупроводниковую память
достаточно высокого быстродействия с умеренным энергопотреблением, используемую в качестве
основной памяти компьютера.
Запоминающие ячейки микросхем DRAM организованы в виде двумерной матрицы. Адрес
ячейки памяти состоит из двух частей: старшего адреса (строки) и младшего адреса (столбца). Область
элементов с одним и тем же адресом строки называется страницей (Page). Особенностью DRAM
является мультиплексирование адресов строки и столбца, иными словами, оба адреса последовательно
подаются на входы микросхемы через одни и те же контакты. После получения адреса строки
микросхема полностью считывает из ячеек памяти нужную строку и сохраняет её в промежуточном
буфере, выполненном на элементах статической памяти, так называемых усилителях чтения (Sense
Amplifiers). Затем из него выбираются искомые данные в соответствии с полученным адресом столбца.
Одновременно информация из буфера перезаписывается на прежнее место – в ту же строку элементов
памяти. Таким образом, происходит обновление содержимого всех её ячеек, т.е. перезарядка
конденсаторов. Передачей адресов управляют стробирующие сигналы адресов строки (RAS) и столбца
(CAS), задающие строки «годности» адресов строки и столбца соответственно. Для сокращения
времени восстановления записанных данных (перезарядка конденсаторов) разработано несколько
методов. Наиболее распространены методы стандартной построчной (RAS only Refresh) и скрытой
регенерации (CAS before RAS Refresh).
Организация банков памяти
Чтобы обеспечить возможность
быстрой работы одновременно с
разными
участками
памяти
используется
архитектура
с
несколькими массивами памяти или
банками
(Bank).
Банки
памяти
работают полностью независимо.
Возможна различная организация использования банков. При этом по-разному
выполняется трансляция адреса памяти, который использует процессор, в последовательность:
номер банка, номер строки массива памяти, номер колонки массива памяти. В простейшем
случае банки памяти идут последовательно. Соответственно преимущества от наличия
нескольких банков будут, только если обращения к памяти сильно разнесены в адресном
пространстве. Обычно программы работают с небольшим локальным участком памяти и не
будут иметь ускорения.
Возможна организация с чередованием банков (Interleaving). Сначала идёт строка первого
банка, потом второго, потом опять первого, и так далее до конца памяти. Вероятность, что
будут использоваться участки памяти, принадлежащие разным банкам, значительно
увеличивается. Но всегда возможны "неудобные" случаи, когда рабочие участки памяти
разбросаны так, что принадлежат одному банку. Тем не менее, наличие нескольких банков
повышает производительность. Чем больше банков, тем лучше.
Особенности архитектуры синхронной памяти
В SDRAM (Sync DRAM)
задержки
эффективно
устраняются за счет синхронного
функционирования блоков ячеек.
На схеме показано, что работа
ОЗУ и процессора согласуется
через системный таймер.
Значит, в конце каждого такта на выводах модуля памяти появляется сигнал готовности
данных, т.е. процессорное время тратится лишь на циклы чтения/записи (процессор
освобождается от необходимости находиться в состоянии ожидания).
Кроме того, в SDRAM имеет место конвейерная адресация, обеспечивающая доступ к
следующему блоку запрошенной информации до завершения обработки предыдущего. Таким
образом, время ожидания было снижено в несколько раз. SDRAM стала первой DRAM, где
была внедрена технология синхронизации работы памяти с тактами ЦП и с внешней шиной
данных.
Технология
SDRAM
стала
отправной
точкой
для
создания
новых
высокопроизводительных типов ОЗУ.
Пакетный цикл обмена (Burst Cycle)
В современных системах в целях повышения быстродействия операций с памятью
используется так называемый пакетный цикл обмена (Burst Cycle). Обычный цикл обмена
имеет фазу адреса и фазу данных. Пакетный цикл предназначен для последовательного обмена
обычно с четырьмя соседними элементами (байт, слово, двойное слово...) памяти.
Предполагается, что все запрашиваемые данные находятся на одной и той же странице
памяти. При этом фаза адреса существует только в начале цикла, а следующие три передачи
идут без нее, подразумевая автоматическое изменение адреса по определенным правилам.
Указанием длительности пакетного цикла чтения, измеренной в тактах системной шины,
характеризуют производительность основной памяти. Обозначение вида 5-3-3-3 для
диаграммы пакетного цикла чтения соответствует 5 тактам на считывание первого элемента в
цикле и 3 тактам на считывание каждого из трех последующих элементов. При этом
существенно значение тактовой частоты, на которой обеспечивается данный цикл. Повышение
тактовой частоты шины эквивалентно сокращению длительности тактов и может потребовать
применения более быстродействующих микросхем памяти.
Таймиги - это временные задержки, измеряющиеся в системных тактах, предназначенные
для распределения времени действия сигналов «чтение» и «запись». То есть, поскольку модуль
памяти не может принять две команды одновременно, ему требуется подавать команды
последовательно, соблюдая некоторые временные задержки. Соответственно, чем меньше
задержки, тем быстрее будет работать память и, следовательно, возрастет производительность
в целом. К таймингам относят четыре параметра - CAS Latency, Active to Prechar-ge (Tras),
Precharge to Active (Trp) или RAS# Precharge и Active to CMD (Trcd). Обычно о
производительности памяти судят лишь по значению первого из них, которое иногда
указывается производителем на самих модулях.
Самые важные задержки
TRCD (RAS to CAS Delay) - время, которое необходимо для активации строки
банка. Минимальное время между командой активации и командой чтения/записи;
CL (CAS Latency) - время между подачей команды чтения и началом передачи
данных;
TRAS (Active to Precharge) - время активности строки. Минимальное время между
активацией строки и командой закрытия строки;
TRP (Row Precharge) - время, необходимое для закрытия строки;
TRC (Row Cycle time, Activate to Activate/Refresh time) - время между активацией
строк одного и того же банка;
TRPD (Active bank A to Active bank B) - время между командами активации для
разных банков;
TWR (Write Recovery time) - время между окончанием записи и подачей команды
закрытия строки банка;
TWTR (Internal Write to Read Command Delay) - время между окончанием записи и
командой чтения.
Это не все существующие в модулях памяти задержки, но именно указанные
параметры существенно влияют на производительность памяти.
В маркировке модулей памяти и обычно указываются только четыре задержки.
Например, при параметрах 11-13-13-31 тайминг CL равен 11, TRCD и TRP - 13, а
TRAS - 31 такту.
Особенности развития архитектур синхронной памяти
Потенциал SDRAM достигла своего потолка, и производители
столкнулись
с
проблемой
повышения
быстродействия
оперативной памяти.
Стандарт DDR (Double Data Rate) в котором вдвое увеличена
шина внутри чипа, а передачу данных осуществляется также на
вдвое повышенной частоте. Предусматривается передача
информации по обоим фронтам тактового сигнала, то есть два
раза за такт. Используется двухканальный режим работы памяти,
при наличии чётного числа модулей памяти в системе. Создаётся
виртуальная 128-битная шина за счет чередования модулей. В
таком случае происходила выборка сразу 256 бит. Теоретически
двухканальный режим может поднять производительность
подсистемы памяти в два раза, однако на практике прирост
скорости оказывается минимален и далеко не всегда заметен. Он
зависит не только от модели оперативной памяти, но и от
таймингов, чипсета, контроллера памяти и частоты.
DDR2 использует всю ту же архитектуру 2n-prefetch. Если раньше внутренняя шина данных была вдвое больше,
чем внешняя, то теперь она стала шире в четыре раза. При этом возросшую производительность чипа стали
передавать по внешней шине с удвоенной частотой.
Вновь было снижено рабочее напряжение. Модули DDR работали при напряжении 2,5В, DDR2
функционировали при разности потенциалов 1,8В.
Первое время модули DDR2 в отрицательную сторону отличались высокими задержками, из-за чего
проигрывали в производительности планкам DDR с одинаковой частотой. Однако вскоре ситуация
исправиласть: производители снижали задержки и выпускали более быстрые наборы оперативной памяти.
Максимальная частота DDR2 достигала отметки эффективных 1300 МГц.
Особенности развития архитектур синхронной памяти
DDR3
При переходе от стандарта DDR2 к DDR3 использовался тот же самый подход, что и при переходе от DDR
к DDR2. Сохранилась передача данных по обоим концам тактового сигнала, а теоретическая пропускная
способность выросла в два раза.
Модули DDR3 сохранили архитектуру 2n-prefetch и получили 8-битную предвыборку, при этом внутренняя
шина стала в восемь раз больше, чем внешняя. Из-за этого в очередной раз при смене поколений памяти
увеличились ее тайминги.
Номинальное рабочее напряжение для DDR3 было снижено до 1,5 В, что позволило энергоэффективность.
Чипы получили поддержку некоторых новых технологий: например, автоматическую калибровку сигнала и
динамическое терминирование сигналов.
DDR4
DDR4 также использует архитектуру 2n-prefetch, только теперь 8n-Prefetch.
Длина каждой строки чипа DDR4 в четыре раза меньше длины строки DDR3. В результате «просмотр»
банков осуществляется быстрее, как и переключение между самими банками. Для каждой группы банков
предусмотрен независимый выбор операций (активация, чтение, запись или регенерация).
Используется интерфейс с топологией «точка-точка» вместо шины Multi-Drop, применяемой в DDR3.
Конструкция шины Multi-Drop предусматривает использование всего лишь двух каналов для связи модулей
с контроллером памяти. При использовании сразу четырех портов DIMM каждые два модуля соединяются с
контроллером посредством лишь одного канала, что само собой негативно сказывается на
производительности подсистемы памяти.
увеличится не только объем модулей памяти, но и частота чипов. В рамках стандарта DDR4 реальная
частота достигнет отметки 2133 МГц.
Для снижения энергопотребления и тепловыделения стандарт DDR4 предусматривает очередное снижение
рабочего напряжения. На этот раз до 1,2 В.
Повышена надёжность за счёт самостоятельного выявления и исправления ошибок, связанные с контролем
четности адресов и команд.
Модули динамической памяти
Элементы динамической памяти обычно выполнены в виде модулей. Они представляют из себя
маленькие печатные платы с припаянными к ним микросхемами. Стандартные печатные платы имеют 4 или 6
слоёв. Сигналы, питание и масса разведены по разным слоям для защиты и разделения. Количество
микросхем в модулях может быть разным, и установлены они могут быть как на одной, так и на обеих
сторонах платы. Вдоль одной из кромок платы вытравлены два ряда печатных контактов (с двух сторон),
которые могут быть покрыты золотом или другим не окисляющимся металлом.
Модули памяти устанавливаются в специальные гнёзда (разъёмы), снабжённые механическими
защёлками для большей надёжности и прочности закрепления плат. В компьютерах, предназначенных для
применения в качестве серверов или мощных станций, нередко применяются специальные платы памяти,
позволяющие устанавливать большие объемы ОЗУ.
Пропускная способность модуля памяти рассчитывается как:
ПС=A*64/8, где «А» - это скорость передачи данных. Например, для
DDR3 с эффективной частотой 2400 МГц ПС=2400*64/8=19200 МБ/с.
В настоящее время используются модули памяти DIMM (Dual-In-lineMemory Module), которые отличаются размерами, количеством
контактов, электрическими характеристиками в зависимости от типа
архитектур устанавливаемых микросхем памяти.
Unbuffered DIMM - входные и выходные цепи не буферизованы и
модули сильно нагружают шину памяти, но обеспечивают
максимальное быстродействие. Используются для системных плат с
небольшим (1-4) количеством слотов DIMM.
Registered DIMM - адресные и управляющие сигналы буферизованы
регистрами, синхронизируемыми тактовыми импульсами системной
шины. В результате конвейер памяти удлиняется на одну ступень,
требующую дополнительного такта синхронизации. За счет регистров
эти модули меньше нагружают шину памяти, что позволяет набирать
больший объем памяти.
Разновидности модулей динамической памяти DIMM
100-pin DIMM — используется для принтеров SDRAM
144-pin SO-DIMM — используется для SDR SDRAM (иногда также для EDO RAM) в ноутбуках
168-pin DIMM — используется для SDR SDRAM
172-pin MicroDIMM — используется для DDR SDRAM
184-pin DIMM — используется для DDR SDRAM
200-pin SO-DIMM — используется для DDR SDRAM и DDR2 SDRAM
214-pin MicroDIMM — используется для DDR2 SDRAM
204-pin SO-DIMM — используется для DDR3 SDRAM
240-pin DIMM — используется для DDR2 SDRAM, DDR3 SDRAM и FB-DIMM DRAM
260-pin SO-DIMM — используется для DDR4 SDRAM
288-pin DIMM — используется для DDR4 SDRAM
DDR2 SDRAM DIMM
Chip
Module
Memory clock I/O Bus Clock
Transfer rate
Voltage
DDR2-400
PC2-3200
100 MHz
200 MHz
400 MT/s
1.8 V
DDR2-533
PC2-4200
133 MHz
266 MHz
533 MT/s
1.8 V
DDR2-667
PC2-5300
166 MHz
333 MHz
667 MT/s
1.8 V
DDR2-800
PC2-6400
200 MHz
400 MHz
800 MT/s
1.8 V
DDR2-1066
PC2-8500
266 MHz
533 MHz
1066 MT/s
1.8 V
Разновидности модулей динамической памяти DIMM
DDR3 SDRAM DIMM
Chip
Module
Memory
Clock
I/O Bus
Clock
Transfer rate
Voltage
DDR3-800
PC3-6400
100 MHz
400 MHz
800 MT/s
1.5 V
DDR3-1066
PC3-8500
133 MHz
533 MHz
1066 MT/s
1.5 V
DDR3-1333
PC3-10600
166 MHz
667 MHz
1333 MT/s
1.5 V
DDR3-1600
PC3-12800
200 MHz
800 MHz
1600 MT/s
1.5 V
DDR3-1866
PC3-14900
233 MHz
933 MHz
1866 MT/s
1.5 V
DDR3-2133
PC3-17000
266 MHz
1066 MHz
2133 MT/s
1.5 V
DDR3-2400
PC3-19200
300 MHz
1200 MHz
2400 MT/s
1.5 V
DDR4 SDRAM DIMM
Chip
Module
Memory Clock
I/O Bus
Clock
Transfer rate
Voltage
DDR4-1600
PC4-12800
200 MHz
800 MHz
1600 MT/s
1.2 V
DDR4-1866
PC4-14900
233 MHz
933 MHz
1866 MT/s
1.2 V
DDR4-2133
PC4-17000
266 MHz
1066 MHz
2133 MT/s
1.2 V
DDR4-2400
PC4-19200
300 MHz
1200 MHz
2400 MT/s
1.2 V
DDR4-2666
PC4-21300
333 MHz
1333 MHz
2666 MT/s
1.2 V
DDR4-3200
PC4-25600
400 MHz
1600 MHz
3200 MT/s
1.2 V
Организация и идентификация модулей памяти
Модули памяти имеют шину данных разрядностью 1, 4 или 8 байт. Кроме основных информационных
бит, модули могут иметь дополнительные контрольные биты с различной организацией:
Модули без контрольных бит (nоn Parity) имеют разрядность 8, 32 или 64 бита и допускают независимое
побайтное обращение с помощью отдельных для каждого байта линий CAS.
Модули с контролем паритета (Parity) имеют разрядность 9, 36 или 72 бита и также допускают
независимое побайтное обращение, контрольные биты по обращению приписаны к соответствующим
байтам.
Модули с генератором паритета (Fake Parity, Parity Generator, Logical Parity) также допускают независимое
побайтное обращение, логические генераторы паритета по чтению приписаны к соответствующим
байтам. Действительного контроля памяти они не обеспечивают.
Модули с контролем по схеме ЕСС имеют разрядность 36, 40, 72 или 80 бит. Обычно они допускают
побайтное обращение к информационным битам, но контрольные биты у них привязаны к одному или
нескольким сигналам CAS, поскольку ЕСС подразумевает обращение сразу к целому слову.
ECC-Optimized - модули, оптимизированные под режим ЕСС. От обычных ЕСС модулей они отличаются
тем, что могут не обеспечивать побайтное обращение и к информационным битам.
ECC-on-Simm (EOS) - модули со встроенной схемой исправления ошибок. Каждый байт модуля имеет
встроенные средства контроля и исправления ошибок, работающие прозрачно. Для системы модули
функционируют как обычные паритетные - в случае обнаружения неисправимой ошибки они генерируют
ошибочный бит паритета. Эти модули обеспечивают отказоустойчивость по памяти для системных плат,
поддерживающих только контроль паритета.
SPD EEPROM
Емкость Модуль памяти DIMM и другие рабочие параметры могут быть идентифицированы с Serial Presence
Detect (SPD), дополнительный чип, который содержит информацию о типе модуля и времени для контроллера
памяти, чтобы быть правильно сконфигурирован.
Рекомендации по выбору и установке модулей динамической памяти
Конструктив и спецификация быстродействия должны поддерживаться системной платой на заданной
частоте системной шины (и с учетом возможных перспектив замены процессора).
Использование модулей со временем доступа большим, чем указано в документации на системную плату,
обычно требует увеличения количества тактов в циклах памяти, что не всегда поддерживается опциями
BIOS Setup. «Разогнанная» память имеет полное право работать неустойчиво.
Установка модулей более быстродействующих, чем требуется, повышения производительности может и не
дать, поскольку циклы обращения к памяти можно укорачивать (если это позволяет чипсет и BIOS) только
на целое количество тактов, и ближайшие возможные значения времени цикла могут не вписаться в
быстродействие модуля.
Каждый банк памяти должен быть заполнен однотипными модулями. Некоторые «капризные» платы
требуют применения только «родных» фирменных модулей. Не полностью заполненный банк в лучшем
случае игнорируется.
В односторонних модулях (1, 4, 16, 64 Мбайт) используется только одна пара сигналов выборки RAS#, в
двусторонних (2, 8, 32 Мбайт) - две пары сигналов RAS#. Некоторые системные платы не могут полностью
использовать объем двусторонних модулей. Иногда установка двустороннего модуля в одном банке
исключает возможность использования соседнего банка.
Смешение на плате (и тем более в одном банке) модулей, разнотипных по организации (симметричность
матрицы и количество используемых линий RAS#), может приводить к неработоспособности или
неполному использованию установленной памяти.
Возможность применения разнотипных модулей в разных банках существует не всегда.
При использовании в разных банках модулей с разным быстродействием часто производится
выравнивание временной диаграммы по самому медленному.
На плате, поддерживающей чередование банков (Bank Interleaving), с точки зрения повышения
производительности целесообразно стремиться к заполнению всех банков, участвующих в чередовании, и
разрешить чередование опциями BIOS Setup.
Если системная плата поддерживает память с битом паритета или ЕСС, для ответственных применений
есть смысл в установке всей памяти с битами паритета (но не генераторами паритета!) или ЕСС и
установке в BIOS Setup разрешения контроля.
Модули памяти в двухканальном режиме устанавливаются через один слот.