Устройство и принципы функционирования оперативной памяти
Содержание
- Введение
3 - Устройство и принципы функционирования оперативной памяти 4
- Conventional DRAM 6
- FPM DRAM 9
- EDO-DRAM 10
- BEDO
11 - SDRAM 13
- DDR SDRAM 14
- RDRAM 15
- Взаимодействие памяти и процессора. 17
- Заключение
20 - Список используемой
литературы
21
Введение
Операти́вная
па́мять (англ. Random Access Memory, память с
произвольным доступом) — энергозависимая
часть системы компьютерной памяти, в
которой временно хранятся данные и команды,
необходимые процессору для выполнения
им операции. Обязательным условием является
адресуемость (каждое машинное слово имеет
индивидуальный адрес) памяти. Передача
данных в оперативную память процессором
производится непосредственно, либо через
сверхбыструю память. Содержащиеся в оперативной
памяти данные доступны только тогда,
когда компьютер включен. При выключении
компьютера содержимое стирается из оперативной
памяти, поэтому перед выключением компьютера
все данные нужно сохранить. Так же от
объема оперативной памяти зависит количество
задач, которые одновременно может выполнять
компьютер.
Рисунок 1. Простейшая
схема взаимодействия оперативной памяти
с ЦП
Устройство и принципы функционирования оперативной памяти
В
ядре
Ядро микросхемы
динамической памяти состоит из множества
ячеек, каждая из которых хранит всего
один бит информации. На физическом
уровне ячейки объединяются в прямоугольную
матрицу, горизонтальные линейки которой
называются строками (ROW), а вертикальные
- столбцами (Column) или страницами (Page).
Линейки представляют
собой обыкновенные проводники, на
пересечении которых находится "сердце"
ячейки - несложное устройство, состоящее
из одного транзистора и одного конденсатора.
Конденсатору
отводится роль непосредственного
хранителя информации. Правда, хранит
он очень немного - всего один бит.
Отсутствие заряда на обкладках соответствует
логическому нулю, а его наличие
- логической единице. Транзистор же играет
роль "ключа", удерживающего конденсатор
от разряда. В спокойном состоянии
транзистор закрыт, но, стоит подать
на соответствующую строку матрицы
электрический сигнал, как спустя
мгновение-другое (конкретное время
зависит от конструктивных особенностей
и качества изготовления микросхемы)
он откроется, соединяя обкладку конденсатора
с соответствующим ей столбцом.
Чувствительный
усилитель (sense amp), подключенный к каждому
из столбцов матрицы, реагируя на слабый
поток электронов, устремившихся
через открытые транзисторы с
обкладок конденсаторов, считывает
всю страницу целиком. Это обстоятельство
настолько важно, что последняя
фраза вполне заслуживает быть выделенной
курсивом. Именно страница является минимальной
порцией обмена с ядром динамической
памяти. Чтение/запись отдельно взятой
ячейки невозможно! Действительно, открытие
одной строки приводит к открытию
всех, подключенных к ней транзисторов,
а, следовательно, - разряду закрепленных
за этими транзисторами
Чтение ячейки
деструктивно по своей природе, поскольку
sense amp (чувствительный усилитель) разряжает
конденсатор в процессе считывания
его заряда. "Благодаря" этому
динамическая память представляет собой
память разового действия. Разумеется,
такое положение дел никого устроить
не может, и потому во избежание потери
информации считанную строку приходится
тут же перезаписывать вновь. В зависимости
от конструктивных особенностей эту
миссию выполняет либо программист,
либо контроллер памяти, либо сама микросхема
памяти. Практически все современные
микросхемы принадлежат к последней
категории. Редко какая из них
поручает эту обязанность контроллеру,
и уж совсем ни когда перезапись
не возлагается на программиста.
Ввиду микроскопических
размеров, а, следовательно, емкости
конденсатора записанная на нем информация
хранится крайне недолго, - буквально
сотые, а то тысячные доли секунды. Причина
тому - саморазряд конденсатора. Несмотря
на использование
Conventional DRAM (Page
Mode DRAM) - "обычная" DRAM
Разобравшись
с устройством и работой ядра
памяти, перейдем к рассмотрению ее
интерфейса. Физически микросхема памяти
(не путать с модулями памяти) представляет
собой прямоугольный кусок
В первую очередь
выделим среди них линии адреса
и линии данных. Линии адреса,
как и следует из их названия,
служат для выбора адреса ячейки памяти,
а линии данных - для чтения и
для записи ее содержимого. Необходимый
режим работы определяется состоянием
специального вывода Write Enable (Разрешение
Записи).
Низкий уровень
сигнала WE готовит микросхему к считыванию
состояния линий данных и записи
полученной информации в соответствующую
ячейку, а высокий, наоборот, заставляет
считать содержимое ячейки и "выплюнуть"
его значения в линии данных.
Такой трюк значительно
сокращает количество выводов микросхемы,
что в свою очередь уменьшает
ее габариты. А, чем меньше габариты,
тем выше предельно допустимая тактовая
частота. Почему? Увы! В двух словах
не расскажешь - тут замешен целый
ряд физических явлений и эффектов.
Во-первых, в силу ограниченной скорости
распространения электричества, длины
проводников, подведенных к различным
ножкам микросхемы, должны не сильно отличаться
друг от друга, иначе сигнал от одного
вывода будет опережать сигнал от
другого. Во-вторых, длины проводников
не должны быть очень велики - в противном
случае задержка распространения сигнала
"съест" все быстродействие. В-третьих,
любой проводник действует как
приемная и как передающая антенна,
причем уровень помех резко
Таким образом,
совмещение выводов микросхемы увеличивает
скорость обмена с памятью, но не позволяет
осуществлять чтение и запись одновременно.
(Забегая вперед, отметим, что, размещенные
внутри кристалла процессора микросхемы
кэш-памяти, благодаря своим
Столбцы и строки
матрицы памяти тем же самым способом
совмещаются в единых адресных линиях.
В случае квадратной матрицы количество
адресных линий сокращается вдвое,
но и выбор конкретной ячейки памяти
отнимает вдвое больше тактов, ведь
номера столбца и строки приходится
передавать последовательно. Причем, возникает
неоднозначность, что именно в данный
момент находится на адресной линии:
номер строки или номер столбца?
А, быть может, и вовсе не находится
ничего? Решение этой проблемы потребовало
двух дополнительных выводов, сигнализирующих
о наличии столбца или строки
на адресных линиях и окрещенных RAS
(от row address strobe - строб адреса строки)
и CAS (от column address strobe - строб адреса столбца)
соответственно. В спокойном состоянии
на обоих выводах поддерживается
высокий уровень сигнала, что
говорит микросхеме: никакой информации
на адресных линиях нет и никаких
действий предпринимать не требуется.
Но вот программист
захотел прочесть содержимое некоторой
ячейки памяти. Контроллер преобразует
физический адрес в пару чисел - номер
строки и номер столбца, а затем
посылает первый из них на адресные
линии. Дождавшись, когда сигнал стабилизируется,
контроллер сбрасывает сигнал RAS в низкий
уровень, сообщая микросхеме памяти
о наличии информации на линии. Микросхема
считывает этот адрес и подает
на соответствующую строку матрицы
электрический сигнал. Все транзисторы,
подключенные к этой строке, открываются
и бурный поток электронов, срываясь
с насиженных обкладок конденсатора,
устремляется на входы чувствительного
усилителя. Чувствительный усилитель
декодирует всю строку, преобразуя
ее в последовательность нулей и
единиц, и сохраняет полученную информацию
в специальном буфере. Все это
(в зависимости от конструктивных
особенностей и качества изготовления
микросхемы) занимает от двадцати до сотни
наносекунд, в течение которых
контроллер памяти выдерживает терпеливую
паузу. Наконец, когда микросхема завершает
чтение строки и вновь готова к
приему информации, контроллер подает
на адресные линии номер колонки
и, дав сигналу стабилизироваться,
сбрасывает CAS в низкое состояние. "Ага!",
говорит микросхема и преобразует
номер колонки в смещение ячейки
внутри буфера. Остается всего лишь
прочесть ее содержимое и выдать его
на линии данных. Это занимает еще
какое-то время, в течение которого
контроллер ждет запрошенную информацию.
На финальной стадии цикла обмена
контроллер считывает состояние
линий данных, дезактивирует сигналы
RAS и CAS, устанавливая их в высокое
состояние, а микросхема берет определенный
тайм-аут на перезарядку внутренних
цепей и восстановительную
Задержка между
подачей номера строки и номера столбца
на техническом жаргоне называется
"RAS to CAS delay" (на сухом официальном
языке - tRCD). Задержка между подачей
номера столбца и получением содержимого
ячейки на выходе - "CAS delay" (или tCAC),
а задержка между чтением последней
ячейки и подачей номера новой
строки - "RAS precharge" (tRP).
Эволюция динамической памяти.
В микросхемах
памяти, выпускаемых вплоть до
середины девяностых, все три
задержки (RAS to CAS Delay, CAS Delay и RAS precharge)
в сумме составляли порядка
200 нс., что соответствовало двум
тактам в 10 мегагерцовой системе
и, соответственно, двенадцати - в 60 мегагерцовой.
С появлением Intel Pentium 60 (1993 год) и Intel 486DX4
100 (1994 год) возникла потребность в совершенствовании
динамической памяти - прежнее быстродействие
уже никого не устраивало.
FPM DRAM (Fast Page
Mode DRAM) быстрая страничная память
Первой ласточкой
стала FPM-DRAM - Fast-Page Mode DRAM (Память быстрого
страничного режима), разработанная
в 1995 году. Основным отличием от памяти
предыдущего поколения стала
поддержка сокращенных адресов.
Если очередная запрашиваемая ячейка
находится в той же самой строке,
что и предыдущая, ее адрес однозначно
определяется одним лишь номером
столбца и передача номера строки
уже не требуется. За счет чего это
достигается? При работе с обычной DRAM
после считывания данных сигнал RAS дезактивируется,
подготавливая микросхему к новому циклу
обмена, контроллер FPM-DRAM удерживает RAS
в низком состоянии, избавляясь от повторной
пересылки номера строки.
При последовательном
чтении ячеек памяти, (равно как
и обработке компактных одно-двух
килобайтовых структур данных), время
доступа сокращается на 40%, а то
и больше, ведь обрабатываемая строка
находится во внутреннем буфере микросхемы,
и обращаться к матрице памяти
нет никакой необходимости!
Правда, хаотичное
обращение к памяти, равно как
и перекрестные запросы ячеек
из различных страниц, со всей очевидностью
не могут воспользоваться
Ситуация, когда
запрашиваемая ячейка находится
в открытой строке, называется "попаданием
на страницу" (Page Hit), в противном
случае говорят, что произошел промах
(Page Miss). Поскольку, промах облагается штрафными
задержками, критические к быстродействию
модули должны разрабатываться с
учетом особенностей архитектуры FPM-DRAM,
так что абстрагироваться от ее устройства
уже не получается.
Возникла и
другая проблема: непостоянство времени
доступа затрудняет измерение производительности
микросхем памяти и сравнение
их скоростных показателей друг с
другом. В худшем случае обращение
к ячейке составляет RAS to CAS Delay + CAS Delay
+ RAS precharge нс., а в лучшем: CAS Delay нс.
Хаотичное, но не слишком интенсивное
обращение к памяти (так, чтобы
она успевала перезарядиться) требует
не более RAS to CAS Delay + CAS Delay нс.
Поскольку, величины
RAS to CAS Delay, CAS Delay и RAS precharge непосредственно
не связаны друг с другом и в
принципе могут принимать любые
значения, достоверная оценка производительность
микросхемы требует для своего выражения
как минимум трех чисел. Однако производители
микросхем в стремлении приукрасить
реальные показатели, проводят только
два: RAS to CAS Delay + CAS Delay и CAS Delay. Первое (называемое
так же "временем [полного] доступа")
характеризует время доступа
к произвольной ячейке, а второе
(называемое так же "временем рабочего
цикла") - время доступа к последующим
ячейкам уже открытой строки. Время,
необходимое для регенерации
микросхемы (т.е. RAS precharge) из полного времени
доступа исключено.
EDO-DRAM (Extended Data
Out) память с усовершенствованным выходом
Между тем тактовые частоты микропроцессоров не стояли на месте, а стремительно росли, вплотную приближаясь к рубежу в 200 МГц. Рынок требовал качественного нового решения, а не изнуряющей борьбы за каждую наносекунду. Инженеров вновь отправили к чертежным доскам, где (году эдак в 1996) их осенила очередная идея. Если оснастить микросхему специальным триггером-защелкой, удерживающим линии данных после исчезновения сигнала CAS, станет возможным дезактивировать CAS до окончания чтения данных, подготавливая в это время микросхему к приему номера следующего столбца.
Рисунок 2. Временная
диаграмма, иллюстрирующая работу некоторых
типов памяти
Взгляните на диаграмму
рис. 2: У FPM низкое состояние CAS удерживается
до окончания считывания данных, затем
CAS дезактивируется, выдерживается небольшая
пауза на перезарядку внутренних цепей,
и только после этого на адресную шину
подается номер колонки следующей ячейки.
В новом типе памяти, получившем название
EDO-DRAM (Extend Data Output), напротив, CAS дезактивируется
в процессе чтения данных параллельно
с перезарядкой внутренних цепей, благодаря
чему номер следующего столбца может подаваться
до завершения считывания линий данных.
Продолжительность рабочего цикла EDO-DRAM
(в зависимости от качества микросхемы)
составляла 30, 25 и 20 нс., что соответствовало
всего двум тактам в 66 МГц системе. Совершенствование
производственных технологий сократило
и полное время доступа. На частоте 66 МГц
формула лучших EDO-микросхем выглядела
так: 5-2-x-x. Простой расчет позволяет установить,
что пиковый прирост производительности
(в сравнении с FPM-DRAM) составляет около
30%, однако, во многих компьютерных журналах
тех лет фигурировала совершенно немыслимая
цифра 50%, - якобы настолько увеличивалась
скорость компьютера при переходе с FPM
на EDO. Это могло быть лишь при сравнении
худшей FMP-DRAM с самой "крутой" EDO-памятью,
т.е. фактически сравнивались не технологии,
а старые и новые микросхемы.
BEDO (Burst EDO) - пакетная
EDO RAM
Двукратное увеличение
производительности было достигнуто лишь
в BEDO-DRAM (Burst EDO). Добавив в микросхему
генератор номера столбца, конструкторы
ликвидировали задержку CAS Delay, сократив
время цикла до 15 нс. После обращения
к произвольной ячейке микросхема BEDO
автоматически, без указаний со стороны
контроллера, увеличивает номер
столбца на единицу, не требуя его
явной передачи. По причине ограниченной
разрядности адресного счетчика
(конструкторы отвели под него всего
лишь два бита) максимальная длина
пакета не могла превышать четырех
ячеек (22=4).
Забегая вперед,
отметим, что процессоры Intel 80486 и Pentium
в силу пакетного режима обмена с
памятью никогда не обрабатывают
менее четырех смежных ячеек
за раз. Поэтому, независимо от порядка
обращения к данным, BEDO всегда работает
на максимально возможной скорости
и для частоты 66 Мгц ее формула
выглядит так: 5-1-1-1, что на ~40% быстрее
EDO-DRAM!
Все же, несмотря
на свои скоростные показатели, BEDO оказалась
не конкурентоспособной и не получила
практически никакого распространения.
Просчет состоял в том, что BEDO,
как и все ее предшественники,
оставалась асинхронной памятью. Это
накладывало жесткие
SDRAM (Synchronous DRAM) - синхронная DRAM
Появление микропроцессоров
с шинами на 100 MHz привело к радикальному
пересмотру механизма управления памятью,
и подтолкнуло конструкторов
к созданию синхронной динамической
памяти - SDRAM (Synchronous-DRAM). Как и следует
из ее названия, микросхемы SDRAM памяти
работают синхронно с контроллером,
что гарантирует завершение цикла
в строго заданный срок. Кроме того,
номера строк и столбцов подаются
одновременно, с таким расчетом,
чтобы к приходу следующего тактового
импульса сигналы уже успели стабилизироваться
и были готовы к считыванию.
Так же, в SDRAM реализован
усовершенствованный пакетный режим
обмена. Контроллер может запросить
как одну, так и несколько
Другое усовершенствование.
Количество матриц (банков) памяти в SDRAM
увеличено с одного до двух (а, в
некоторых моделях, и четырех). Это
позволяет обращаться к ячейкам
одного банка параллельно с
В отличие от
FPM-DRAM\EDO-DRAM\BEDO, выполняющих перезарядку
внутренних цепей при закрытии страницы
(т.е. при дезактивации сигнала RAS), синхронная
память проделывает эту операцию
автоматически, позволяя держать страницы
открытыми столь долго, сколько
это угодно.
Наконец, разрядность
линий данных увеличилась с 32 до
64 бит, что еще вдвое увеличило
ее производительность!
Формула чтения
произвольной ячейки из закрытой строки
для SDRAM обычно выглядит так: 5-1-x-x, а
открытой так: 3-1-х-х.
В настоящее
время (2002 год) подавляющее большинство
персональных компьютеров оснащаются
SDRAM памятью, которая прочно удерживает
свои позиции, несмотря на активный натиск
современных разработок.
DDR SDRAM, SDRAM II (Double
Data Rate SDRAM)
SDRAM с удвоенной
скоростью передачи данных
Дальнее развитие
синхронной памяти привело к появлению
DDR-SDRAM - Double Data Rate SDRAM (SDRAM удвоенной скорости
передачи данных). Удвоение скорости достигается
за счет передачи данных и по фронту,
и по спаду тактового импульса
(в SDRAM передача данных осуществляется
только по фронту). Благодаря этому
эффективная частота
Претерпела изменения
и конструкция управления матрицами
(банками) памяти. Во-первых, количество
банков увеличилось с двух до четырех,
а, во-вторых, каждый банк обзавелся
персональным контроллером (не путать
с контроллером памяти!), в результате
чего вместо одной микросхемы мы получили
как бы четыре, работающих независимо
друг от друга. Соответственно, максимальное
количество ячеек, обрабатываемых за один
такт, возросло с одной до четырех.
RDRAM (Rambus DRAM) - Rambus-память
С DDR-SDRAM жесточайше конкурирует Direct RDRAM, разработанная компанией Rambus. Вопреки распространенному мнению, ее архитектура довольно прозаична и не блещет новизной. Основных отличий от памяти предыдущих поколений всего три:
а) увеличение тактовой частоты за счет сокращения разрядности шины,
б) одновременная передача номеров строки и столба ячейки,
в) увеличение количества
банков для усиления параллелизма.
А теперь обо
всем этом подробнее. Повышение тактовой
частоты вызывает резкое усиление всевозможных
помех и в первую очередь электромагнитной
интерференции, интенсивность которой
в общем случае пропорциональна
квадрату частоты, а на частотах свыше
350 мегагерц вообще приближается к кубической.
Это обстоятельство налагает чрезвычайно
жесткие ограничения на топологию
и качество изготовления печатных плат
модулей микросхемы, что значительно
усложняет технологию производства
и себестоимость памяти. С другой
стороны, уровень помех можно
значительно понизить, если сократить
количество проводников, т.е. уменьшить
разрядность микросхемы. Именно по
такому пути компания Rambus и пошла, компенсировав
увеличение частоты до 400 MHz (с учетом
технологии DDR эффективная частота
составляет 800 MHz) уменьшением разрядности
шины данных до 16 бит (плюс два бита
на ECC). Таким образом, Direct RDRAM в четыре
раза обгоняет DDR-1600 по частоте, но во столько
же раз отстает от нее в разрядности!
А от DDR 2100, Direct RDRAM даже отстает, притом,
что себестоимость DDR заметно дешевле!
Второе (по списку)
преимущество RDRAM - одновременная передача
номеров строки и столбца ячейки
- при ближайшем рассмотрении оказывается
вовсе не преимуществом, а фичей
- т.е. конструктивной особенностью. Это
не уменьшает латентности доступа
к произвольной ячейке (т.е. интервалом
времени между подачей адреса
и получения данных), т.к. она, латентность,
в большей степени определяется
скоростью ядра, а RDRAM функционирует
на старом ядре. Из спецификации RDRAM следует,
что время доступа составляет 38,75 нс. (для
сравнения время доступа 100 MHz SDRAM составляет
40 нс.). Ну, и стоило бы огород городить?
Стоило! Большое
количество банков позволяет (теоретически)
достичь идеальной
Стоило?! Для
потоковых алгоритмов последовательной
обработки памяти это, допустим, хорошо,
но во всех остальных случаях RDRAM не
покажет никаких преимуществ
перед DDR-SDRAM, а то и обычной SDRAM, работающей
на скромной частоте в 100 MHz. К тому
же (как будет показано ниже), "солидный"
объем кэш-памяти современных процессоров
позволяет обрабатывать подавляющее
большинство запросов локально, вообще
не обращаясь к основной памяти или
на худой конец, отложить это обращение
до "лучших времен". Производительность
памяти реально ощущается лишь при
обработке гигантских объемов данных,
например редактировании изображений
полиграфического качества в PhotoShop.
Таким образом,
использование RDRAM в домашних и офисных
компьютеров, ничем, кроме желания
показать свою "крутость", не оправдано.
Для высокопроизводительных рабочих
станций лучший выбор - DDR-SDRAM, не уступающей
RDRAM в производительности, но значительно
выигрывающей у последней в себестоимости.
В этом свете
становится не очень понятно стремление
компании Intel к продвижению Rambus'а
на рынке. Еще раз обращу внимание
читателя: ничего революционного Rambus в
себе не несет. Чрезвычайно сложная
и требовательна к качеству производства
интерфейсная обвязка, обеспечивает высокую
тактовую частоту, но не производительность!
Соотношение 400x2 MHz на 16 бит оптимальным
соотношением категорически не является,
уже хотя бы потому, что DDR-SDRAM без
особых ухищрений тянет 133x2 MHz на 64 бит.
Причем ее производители в ближайшем
будущем планируют взять барьер
в 200x4 MHz на 128 бит, что увеличит пропускную
способность до 12,8 Гбайт/с., что в восемь
раз превосходит пропускную способность
Direct RDRAM при меньшей себестоимости и аппаратной
сложности.
Взаимодействие
памяти и процессора.
Ввиду несоответствия
интерфейсов памяти и процессора,
для совместного взаимодействия
им необходим посредник - контроллер
памяти. Контроллер памяти в значительной
мере определяет скорость обмена с
памятью а, значит, и быстродействие
всей системы в целом.
В настоящее
время, такие контролеры выпускаются
не в виде отдельных микросхем, а
входят в состав чипсета, поэтому, очень
важно выбрать "правильный" чипсет.
Чем они отличаются друг от друга, или
на какие характеристики следует обращать
внимание в первую очередь?