Вконтакте Facebook Twitter Лента RSS

Оперативная память объем статическая и динамическая памяти. Оперативные запоминающие устройства. Логическая структура основной памяти

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

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

Микросхемы (МС) большинства динамических ОЗУ с целью уменьшения количества выводов построены с мультиплексированием кода адреса: вначале в МС вводят код строки А0 – А7, фиксируя его во входном регистре стробирующим сигналом RAS (Row Address Strobe ), а затем код адреса столбца А8 – А13, фиксируя его во внутреннем регистре стробирующим сигналом CAS (Column Address Strobe ).

В режиме регенерации микросхема ОЗУ изолируется от информационных входа и выхода за счет подачи сигнала CAS = 1. Следовательно, адресуются только строки, т.к. регенерация информации происходит во всех элементах памяти строки одновременно.

Перебирая адреса строк, устройство регенерации обеспечивает восстановление информации во всей матрице накопителя. Условное обозначение БИС динамического ОЗУ типа К565РУ5 и временная диаграмма функционирования показаны на рисунке 5.6.

Схема динамической ячейки памяти на 8 транзисторах показана на рисунке 5.7. Она отличается от аналогичной ячейки статического ОЗУ только тем, что затворы транзисторов Т3 и Т6 соединены с генератором импульсов регенерации, а не с источником питания.

Рисунок 5.7 - Схема ячейки памяти динамического ОЗУ Рисунок 5.8 – Схема однотранзисторной ячейки динамического ОЗУ

За счет уменьшения количества транзисторов на одну ячейку удалось существенно увеличить емкость динамической памяти, располагаемой на одном кристалле и снизить потребление энергии от источника питания.

5.5. Постоянные запоминающие устройства

Постоянные запоминающие устройства (ПЗУ) являются энергонезависимыми устройствами, служащими для хранения цифровых данных. ПЗУ могут быть построены на пассивных элементах (плавких перемычках П или диодах D) или активных (транзисторах). Схема ПЗУ представляет собой матрицу (рисунок 5.9) количество горизонтальных линий равно разрядности хранимого слова, а число вертикальных – количеству хранимых слов.

Как видно из схемы, при активации адресной линии вертикальная шина соединяется с сигнальной землей и диоды, подключенные к этой шине, шунтируют линии данных на "землю". Таким образом, если горизонтальная линии данных соединена с вертикальной через диод (или перемычку), то при выборе адресной линии, на выходе линии данных будет потенциал близкий к нулю, т. е. логический 0. Если диод или перемычка отсутствуют в данном узле, то на соответствующем выходе линии данных присутствует высокий потенциал, близкий к Е П , т.е. логическая 1. Обычно такие ПЗУ изготавливаются со всеми диодами (или плавкими перемычками) в узлах матрицы. В тех узлах, в которых диод или перемычка должны отсутствовать, их убирают путем выжигания. Эта процедура выполняется в процессе программирования ПЗУ и называется "прожиганием ПЗУ".
Рисунок 5.9 – Схема матричного ПЗУ

Запись информации в ПЗУ осуществляется пословно (побайтно). Для занесения информации в ячейку ПЗУ необходимо на линии данных, в которых должна быть "1", подать высокий потенциал (≈ 25 В) и выбрать соответствующую адресную линию, т.е. соединить ее с сигнальной землей. Протекающий ток расплавляет диод или плавкую перемычку, исключая тем самым шунтирующую цепь соответствующей линии данных.

Недостаток рассмотренной схемы ПЗУ состоит в том, что после занесения информации в это устройство ее нельзя изменить. То есть, при изменении программы, подлежащей хранению в ПЗУ, необходимо запрограммировать новое устройство. Для устранения этого недостатка разработаны полупостоянные электрически перепрограммируемые постоянные запоминающие устройства (ЭППЗУ). Схема ЭППЗУ подобна ПЗУ на основе МОП транзисторов, однако транзисторы в таком устройстве имеют "плавающий" затвор, который электрически изолирован оксидным слоем полупроводникового материала. Схема ЭППЗУ изображена на рисунке 5.10. При подаче на "плавающий" затвор (ПЗ) положительного потенциала по отношению к стоку транзистора на ПЗ индуцируется электрический заряд, который за счет высококачественной изоляции может сохраняться до 10 лет и более. Благодаря этому заряду транзистор находится в открытом состоянии, при котором сопротивление Сток-Исток становится близким к нулю.

Динамической памяти в вычислительной машине значительно больше, чем стати­ческой, поскольку именно DRAM используется в качестве основной памяти ВМ. Как и SRAM, динамическая память состоит из ядра (массива ЗЭ) и интерфейсной логики (буферных регистров, усилителей чтения данных, схемы регенерации и др.). Хотя количество видов DRAM уже превысило два десятка, ядро у них организова­но практически одинаково. Главные различия связаны с интерфейсной логикой, причем различия эти обусловлены также и областью применения микросхем -помимо основной памяти ВМ, ИМС динамической памяти входят, например, в состав видеоадаптеров. Классификация микросхем динамической памяти пока­зана на рис. 5.10.

Чтобы оценить различия между видами DRAM, предварительно остановимся на алгоритме работы с динамической памятью. Для этого воспользуемся рис. 5.6.

Вотличие отSRAM адрес ячейки DRAM передается в микросхему за два шага вначале адрес столбца, а затем строки, что позволяет сократить количество выводов шины адреса примерно вдвое, уменьшить размеры корпуса и разместить Н материнской плате большее количество микросхем. Это, разумеется, приводит снижению быстродействия, так как для передачи адреса нужно вдвое больше времени. Для указания, какая именно часть адреса передается в определенный момент служат два вспомогательных сигнала RAS и CAS. При обращении к ячейке памяти на шину адреса выставляется адрес строки. После стабилизации процессов на шине подается сигнал RAS и адрес записывается во внутренний регистр микросхемы

Рис. 5.10. Классификация динамических ОЗУ: а - микросхемы для основной памяти; б - микросхемы для видеоадаптеров

памяти. Затем на шину адреса выставляется адрес столбца и выдается сиг­нал CAS. В зависимости от состояния линии WE производится чтение данных из ячейки или их запись в ячейку (перед записью данные должны быть помещены на шину данных). Интервал между установкой адреса и выдачей сигнала RAS (или CAS) оговаривается техническими характеристиками микросхемы, но обычно ад­рес выставляется в одном такте системной шины, а управляющий сигнал - в следующем. Таким образом, для чтения или записи одной ячейки динамического ОЗУ требуется пять тактов, в которых происходит соответственно: выдача адреса строки, выдача сигнала RAS, выдача адреса столбца, выдача сигнала CAS, выполнение операции чтения/записи (в статической памяти процедура занимает лишь от двух до трех тактов).

Следует также помнить о необходимости регенерации данных. Но наряду с естественным разрядом конденсатора ЗЭ со временем к потере заряда приводит так же считывание данных из DRAM, поэтому после каждой операции чтения данные должны быть восстановлены. Это достигается за счет повторной записи тех же данных сразу после чтения. При считывании информации из одной ячейки фактически выдаются данные сразу всей выбранной строки, но используются только те, которые находятся в интересующем столбце, а все остальные игнорируются. Таким образом, операция чтения из одной ячейки приводит к разрушению данных всейстроки, и их нужно восстанавливать. Регенерация данных после чтения выполняется автоматически интерфейсной логикой микросхемы, и происходит это сразу же после считывания строки.

Теперь рассмотрим различные типы микросхем динамической памяти, начнем с системных DRAM, то есть микросхем, предназначенных для использования в ка­честве основной памяти. На начальном этапе это были микросхемы асинхронной памяти, работа которых не привязана жестко к тактовым импульсам системной шины.

Асинхронные динамические ОЗУ. Микросхемы асинхронных динамических ОЗУ управляются сигналами RAS и CAS, и их работа в принципе не связана непосредственно тактовыми импульсами шины. Асинхронной памяти свойственны дополнительные затраты времени на взаимодействие микросхем памяти и контроллера, Так, в асинхронной схеме сигнал RAS будет сформирован только после поступле­ния в контроллер тактирующего импульса и будет воспринят микросхемой памя­ти через некоторое время. После этого память выдаст данные, но контроллер смо­жет их считать только по приходу следующего тактирующего импульса, так какой должен работать синхронно с остальными устройствами ВМ. Таким образом, на протяжении цикла чтения/записи происходят небольшие задержки из-за ожида­ния памятью контроллера и контроллером памяти.

Микросхемы DRAM . В первых микросхемах динамической памяти применялся наиболее простой способ обмена данными, часто называемый традиционным (conventional). Он позволял считывать и записывать строку памяти только на каждый пятый такт (рис. 5.11, а). Этапы такой процедуры были описаны ранее. Традици­онной DRAM соответствует формула 5-5-5-5. Микросхемы данного типа могли работать на частотах до 40 МГц и из-за своей медлительности (время доступа со­ставляло около 120 не) просуществовали недолго.

Микросхемы FPM DRAM . Микросхемы динамического ОЗУ, реализующие режим FPM, также относятся к ранним типам DRAM. Сущность режима была пока­зана ранее. Схема чтения для FPM DRAM (рис. 5.11, б) описывается формулой 5-3-3-3 (всего 14 тактов). Применение схемы быстрого страничного доступа по­зволило сократить время доступа до 60 не, что, с учетом возможности работать на более высоких частотах шины, привело к увеличению производительности памя­ти по сравнению с традиционной DRAM приблизительно на 70%. Данный тип микросхем применялся в персональных компьютерах примерно до 1994 года.

Микросхемы EDO DRAM . Следующим этапом в развитии динамических ОЗУ стали ИМС с гиперстраничным режимом, доступа (НРМ, Hyper Page Mode), бо­лее известные как EDO (Extended Data Output - расширенное время удержания данных на выходе). Главная особенность технологии - увеличенное по сравне­нию с FPM DRAM время доступности данных на выходе микросхемы. В микро­схемах FPM DRAM выходные данные остаются действительными только при ак­тивном сигнале СAS, из-за чего во втором и последующих доступах к строке нужно три такта: такт переключения CAS в активное состояние, такт считывания данных и такт переключения CAS в неактивное состояние. В EDO DRAM по активному (спадающему) фронту сигнала С AS данные запоминаются во внутреннем регистре, где хранятся еще некоторое время после того, как поступит следующий активный фронт сигнала. Это позволяет использовать хранимые данные, когда CAS уже переведен в неактивное состояние (рис. 5.11, в)

Иными словами, временные пара­метры улучшаются за счет исключения циклов ожидания момента стабилизации данных на выходе микросхемы.

Схема чтения у EDO DRAM уже 5-2-2-2, что на 20% быстрее, чем у FPM. Вре­мя доступа составляет порядка 30-40 нс. Следует отметить, что максимальная ча­стота системной шины для микросхем EDO DRAM не должна была превышать 66МГц.

Микросхемы BEDO DRAM . Технология EDO была усовершенствована компа­нией VIA Technologies. Новая модификация EDO известна как BEDO (Burst EDO - пакетная EDO). Новизна метода в том, что при первом обращении считы­вается вся строка микросхемы, в которую входят последовательные слова пакета. За последовательной пересылкой слов (переключением столбцов) автоматически следит внутренний счетчик микросхемы. Это исключает необходимость выдавать адреса для всех ячеек пакета, но требует поддержки со стороны внешней логики. Способ позволяет сократить время считывания второго и последующих слов еще на один такт (рис. 5.11, г), благодаря чему формула приобретает вид 5-1-1-1.

5.11. Временные диаграммы различных типов асинхронной динамической памяти при длине пакета в четыре слова: а - традиционная DRAM; б - FPM FRAM; в - EDO DRAM;

г - BEDO DRAM

Микросхемы EDRAM. Более быстрая версия DRAM была разработана подразделением фирмы Ramtron - компанией Enhanced Memory Systems. Технология реализована в вариантах FPM, EDO и BEDO. У микросхемы более быстрое ядро и внутренняя кэш-память. Наличие последней - главная особенность технологии. В роли кэш-памяти выступает статическая память (SRAM) емкостью 2048 бит. Ядро EDRAM имеет 2048 столбцов, каждый из которых соединен с внутренней кэш-памятью. При обращении к какой-либо ячейке одновременно считывается целая строка (2048 бит). Считанная строка заносится в SRAM, причем перенос информации в кэш-память практически не сказывается на быстродействии поскольку происходит за один такт. При дальнейших обращениях к ячейкам, относящимся к той же строке, данные берутся из более быстрой кэш-памяти. Следующее обращение к ядру происходит при доступе к ячейке, не расположенной в строке хранимой в кэш-памяти микросхемы.

Технология наиболее эффективна при последовательном чтении, то есть когда среднее время доступа для микросхемы приближается к значениям, характерным для статической памяти (порядка 10 нс). Главная сложность состоит в несовмес­тимости с контроллерами, используемыми при работе с другими видами DRAM

Синхронные динамические ОЗУ. В синхронных DRAM обмен информацией син­хронизируется внешними тактовыми сигналами и происходит в строго определен­ные моменты времени, что позволяет взять все от пропускной способности шины «процессор-память» и избежать циклов ожидания. Адресная и управляющая ин­формация фиксируются в ИМС памяти. После чего ответная реакция микросхе­мы произойдет через четко определенное число тактовых импульсов, и это время процессор может использовать для других действий, не связанных с обращением к памяти. В случае синхронной динамической памяти вместо продолжительности цикла доступа говорят о минимально допустимом периоде тактовой частоты, и речь уже идет о времени порядка 8-10 нс.

Микросхемы SDRAM . Аббревиатура SDRAM (Synchronous DRAM - синхрон­ная DRAM) используется для обозначения микросхем «обычных» синхронных динамических ОЗУ. Кардинальные отличия SDRAM от рассмотренных выше асин­хронных динамических ОЗУ можно свести к четырем положениям:

Синхронный метод передачи данных на шину;

Конвейерный механизм пересылки пакета;

Применение нескольких (двух или четырех) внутренних банков памяти;

Передача части функций контроллера памяти логике самой микросхемы.

Синхронность памяти позволяет контроллеру памяти «знать» моменты готов­ности данных, за счет чего снижаются издержки циклов ожидания и поиска данных. Так как данные появляются на выходе ИМС одновременно с тактовыми импульсами, упрощается взаимодействие памяти с другими устройствами ВМ.

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

Значительный эффект дает разбиение всей совокупности ячеек на независимые внутренние массивы (банки). Это позволяет совмещать доступ к ячейке одного банка с подготовкой к следующей операции в остальных банках (перезарядкой управляющих цепей и восстановлением информации). Возможность держать открытыми одновременно несколько строк памяти (из разных банков) также спо-собствует повышению быстродействия памяти. При поочередном доступе к банкам частота обращения к каждому из них в отдельности уменьшается пропорционально числу банков и SDRAM может работать на более высоких частотах. Благодаря встроенному счетчику адресов SDRAM, как и BEDO DRAM, позволяет производить чтение и запись в пакетном режиме, причем в SDRAM длина пакета варьируется и в пакетном режиме есть возможность чтения целой строки памяти. ИМС может быть охарактеризована формулой 5-1-1-1. Несмотря на то, что формула для этого типа динамической памяти такая же, что и у BEDO, способность работать на более высоких частотах приводит к тому, что SDRAM с двумя 6анками при тактовой частоте шины 100 МГц по производительности может почти вдвое превосходить память типа BEDO.

Микросхемы DDR SDRAM . Важным этапом в дальнейшем развитии техноло­гии SDRAM стала DDR SDRAM (Double Data Rate SDRAM - SDRAM с удвоен­ной скоростью передачи данных). В отличие от SDRAM новая модификация вы­дает данные в пакетном режиме по обоим фронтам импульса синхронизации, за счет чего пропускная способность возрастает вдвое. Существует несколько специ­фикаций DDR SDRAM, в зависимости от тактовой частоты системной шины: DDR266, DDR333, DDR400, DDR533. Так, пиковая пропускная способность мик­росхемы памяти спецификации DDR333 составляет 2,7 Гбайт/с, а для DDR400 -3,2 Гбайт/с. DDR SDRAM в настоящее время является наиболее распространен­ным типом динамической памяти персональных ВМ.

Микросхемы RDRAM , DRDRAM . Наиболее очевидные способы повышения эффективности работы процессора с памятью - увеличение тактовой частоты шины либо ширины выборки (количества одновременно пересылаемых разрядов). К сожалению, попытки совмещения обоих вариантов наталкиваются на существен­ные технические трудности (с повышением частоты усугубляются проблемы элек­тромагнитной совместимости, труднее становится обеспечить одновременность поступления потребителю всех параллельно пересылаемых битов информации). В большинстве синхронных DRAM (SDRAM, DDR) применяется широкая вы­борка (64 бита) при ограниченной частоте шины.

Принципиально отличный подход к построению DRAM был предложен ком­панией Rambus в 1997 году. В нем упор сделан на повышение тактовой частоты до 400 МГц при одновременном уменьшении ширины выборки до 16 бит. Новая па­мять известна как RDRAM (Rambus Direct RAM). Существует несколько разно­видностей этой технологии: Base, Concurrent и Direct. Во всех тактирование ведется по обоим фронтам синхросигналов (как в DDR), благодаря чему результирующая частота составляет соответственно 500-600, 600-700 и 800 МГц. Два первых варианта практически идентичны, а вот изменения в технологии Direct Rambus весьма значительны.

Сначала остановимся на принципиальных моментах технологии RDRAM, ориентируясь в основном на более современный вариант - DRDRAM. Главным отличием от других типов DRAM является оригинальная система обмена данными ядром и контроллером памяти, в основе которой лежит так называемый «канал Rambus», применяющий асинхронный блочно-ориентированный протокол. На логическом уровне информация между контроллером и памятью передается пакетами.

Различают три вида пакетов: пакеты данных, пакеты строк и пакеты столбцов. Пакеты строк и столбцов служат для передачи от контроллера памяти команд управления соответственно линиями строк и столбцов массива запоминающих элементов. Эти команды заменяют обычную систему управления микросхемой с помощью сигналов RAS, CAS, WE и CS.

Массив ЗЭ разбит на банки. Их число в кристалле емкостью 64 Мбит составляет 8 независимых или 16 сдвоенных банков. В сдвоенных банках пара банков использует общие усилители чтения/записи. Внутреннее ядро микросхемы имеет 128-разрядную шину данных, что позволяет по каждому адресу столбца передавать 16 байт. При записи можно использовать маску, в которой каждый бит соот ветствует одному байту пакета. С помощью маски можно указать, сколько байтов пакета и какие именно должны быть записаны в память.

Линии данных, строк и столбцов в канале полностью независимы, поэтому ко­манды строк, команды столбцов и данные могут передаваться одновременно, при­чем для разных банков микросхемы. Пакеты столбцов включают в себя по два поля и передаются по пяти линиям. Первое поле задает основную операцию записи или чтения. Во втором поле находится либо указание на использование маски записи (собственно маска передается по линиям данных), либо расширенный код опера­ции, определяющий вариант для основной операции. Пакеты строк подразделя­ются на пакеты активации, отмены, регенерации и команды переключения режи­мов энергопотребления. Для передачи пакетов строк выделены три линии.

Операция записи может следовать сразу за чтением - нужна лишь задержка на время прохождения сигнала по каналу (от 2,5 до 30 не в зависимости от длины канала). Чтобы выровнять задержки в передаче отдельных битов передаваемого кода, проводники на плате должны располагаться строго параллельно, иметь оди­наковую длину (длина линий не должна превышать 12 см) и отвечать строгим тре­бованиям, определенным разработчиком.

Каждая запись в канале может быть конвейеризирована, причем время задерж­ки первого пакета данных составляет 50 нс, а остальные операции чтения/записи осуществляются непрерывно (задержка вносится только при смене операции с за­писи на чтение, и наоборот).

В имеющихся публикациях упоминается работа Intel и Rambus над новой вер­сией RDRAM, названной nDRAM, которая будет поддерживать передачу данных с частотами до 1600 МГц.

Микросхемы SLDRAM . Потенциальным конкурентом RDRAM на роль стандарта архитектуры памяти для будущих персональных ВМ выступает новый вид динамического ОЗУ, разработанный консорциумом производителей ВМ SyncLm Consortium и известный под аббревиатурой SLDRAM. В отличие от RDRAM, технология которой является собственностью компаний Rambus и Intel, данный стандарт - открытый. На системном уровне технологии очень похожи. Данные и команды от контроллера к памяти и обратно в SLDRAM передаются пакетами п или 8 посылок. Команды, адрес и управляющие сигналы посылаются по однонаправленной 10-разрядной командной шине. Считываемые и записываемые данные подаются по двунаправленной 18-разрядной шине данных. Обе шины работают на одинаковой частоте. Пока что еще эта частота равна 200 МГц, что, благодаря технике DDR, эквивалентно 400 МГц. Следующие поколения SLDRAM должны работать на частотах 400 МГц и выше, то есть обеспечивать эффективную частоту более 800 МГц.

К одному контроллеру можно подключить до 8 микросхем памяти. Чтобы избежать запаздывания сигналов от микросхем, более удаленных от контроллера, временные характеристики для каждой микросхемы определяются и заносятся в ее управляющий регистр при включении питания.

Микросхемы ESDRAM . Это синхронная версия EDRAM, в которой используются те же приемы сокращения времени доступа. Операция записи в отличие от ения происходит в обход кэш-памяти, что увеличивает производительность FSDRAM при возобновлении чтения из строки, уже находящейся в кэш-памяти. Благодаря наличию в микросхеме двух банков простои из-за подготовки к опера­циям чтения/записи сводятся к минимуму. Недостатки у рассматриваемой мик­росхемы те же, что и у EDRAM - усложнение контроллера, так как он должен учитывать возможность подготовки к чтению в кэш-память новой строки ядра. Кроме того, при произвольной последовательности адресов кэш-память задейству-ется неэффективно.

Микросхемы CDRAM . Данный тип ОЗУ разработан в корпорации Mitsubishi, и его можно рассматривать как пересмотренный вариант ESDRAM, свободный от некоторых ее несовершенств. Изменены емкость кэш-памяти и принцип размеще­ния в ней данных. Емкость одного блока, помещаемого в кэш-память, уменьшена до 128 бит, таким образом, в 16-килобитовом кэше можно одновременно хранить копии из 128 участков памяти, что позволяет эффективнее использовать кэш-па­мять. Замена первого помещенного в кэш участка памяти начинается только после заполнения последнего (128-го) блока. Изменению подверглись и средства доступа. Так, в микросхеме используются раздельные адресные шины для статического кэша и динамического ядра. Перенос данных из динамического ядра в кэш-память со­вмещен с выдачей данных на шину, поэтому частые, но короткие пересылки не снижают производительности ИМС при считывании из памяти больших объе­мов информации и уравнивают CDRAM с ESDRAM, а при чтении по выбо­рочным адресам CDRAM явно выигрывает. Необходимо, однако, отметить, что вышеперечисленные изменения привели к еще большему усложнению контроллера памяти.

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

(См. оригинал)

Рис. 11.29. 12-разрядные двухканальвые ЦАП (с любезного разрешения Analog Devices), а - микросхема 7537 с шириной загрузки 1 байт; б - микросхема 7547 с шириной загрузки 12 бит.

Энергонезависимые ПЗУ с «зашитыми» программами широко используются в микропроцессорных устройствах, чтобы избавиться от необходимости каждый раз при включении прибора загружать программу. В настоящем разделе мы рассмотрим различные виды памяти: статические и динамические ОЗУ (оперативные запоминающие устройства), РПЗУ (репрограммируемые постоянные запоминающие устройства), ЭРПЗУ (электрически стираемые репрограммируемые постоянные запоминающие устройства). Как только вы немного в них разберетесь, выбор уже не составит труда. Можете сразу обратиться к рис. 11.35, где мы свели воедино типы запоминающих устройств.

Статические и динамические ОЗУ.

В статических ОЗУ биты хранятся в матрицах триггеров, в то время как в динамических ОЗУ - в заряженных конденсаторах. Бит, записанный в статическое ОЗУ, остается в нем до тех пор, пока не будет перезаписан, или пока не выключится источник питания. В динамическом ОЗУ данные, если их не «регенерировать», исчезнут менее чем через секунду. Другими словами, динамическое ОЗУ непрерывно забывает данные, и чтобы их сохранить, приходится периодически опрашивать «строки» двумерной матрицы битов в микросхеме памяти. Например, в ОЗУ объемом 256 кбит к каждому из 256 рядов приходится обращаться каждые 4 мс.

Вы можете задаться вопросом, кому же придет в голову выбирать динамическое ОЗУ? Дело в том, что обходясь без триггеров, динамическое ОЗУ занимает меньше места, в результате чего микросхема большей емкости оказывается дешевле. Например, популярное сегодня статическое ОЗУ емкостью кбит) стоит около 10 долл., в два раза больше нынешней цены динамического ОЗУ емкостью 1 Мбит. В результате, используя динамические ОЗУ, вы за половину стоимости будете иметь в 4 раза больше памяти.

Теперь, наверное, вы удивляетесь, кому же нужны статические ОЗУ (что-то вас кидает из стороны в сторону)? Основное достоинство статических ОЗУ заключается в их простоте. Отпадает необходимость в циклах регенерации, не нужно заботиться об их синхронизации (циклы регенерации конкурируют с обычными циклами обращения к памяти и должны поэтому жестко синхронизоваться). В простых системах с ограниченным числом микросхем памяти естественно использовать статические ОЗУ. К тому большая часть нынешних статических ОЗУ используют КМОП-технологию, что существенно для приборов с батарейным питанием. Между прочим, статическое КМОП ОЗУ, автоматически переключаемое на батарейное питание при выключении основного (с помощью микросхемы управления питанием типа ), представляет неплохую альтернативу ПЗУ в качестве энергонезависимой памяти. Другим достоинством статических ОЗУ является их высокое быстродействие (выпускаются микросхемы с характерным временем 25 не и менее), а также удобная компоновка секциями по 8 бит. Рассмотрим оба типа ОЗУ подетальнее.

Статические ОЗУ. Мы уже столкнулись со статическим ОЗУ в нашей микропроцессорной разработке, где одно такое ОЗУ емкостью использовалось для размещения данных, стека и рабочей области (программа была записана в РПЗУ). Организовать обмен данными со статическим ОЗУ проще простого: в цикле чтения вы устанавливаете сигналы адреса, выбора микросхемы (CS) и разрешения выхода (ОЕ); запрошенные данные появляются на тристабильных линиях данных спустя максимум (адресное время доступа). В цикле записи вы устанавливаете сигналы адреса, данных и CS, а затем (спустя время упреждения адреса ) импульс разрешения записи (WE); достоверные данные записываются в конце импульса WE. Действующие временные ограничения для 120 не статического ОЗУ показаны на рис. 11.30, из которого видно, что «быстродействие» памяти - это время от установки достоверного адреса до достоверных данных (при чтении) или до завершения цикла записи (при записи).

Рис. 11.30. Синхронизация статического ОЗУ с быстродействием 120 нс. а - цикл чтения, б - цикл записи.

Для статических ОЗУ интервал времени между последовательными обращениями к памяти («длительность цикда») равен времени доступа; для динамических ОЗУ, как будет показано ниже, это не так.

Микросхемы статических ОЗУ могут иметь емкость от 1 Кбит (или меньше) до 1 Мбит при ширине 1, 4 или 8 бит. Быстродействие (время доступа) колеблется от 150 до 10 не или около того. В настоящее время широко используются недорогие статические КМОП ОЗУ емкостью с временем доступа 80 не, а также меньше по емкости, но более быстродействующие не) статические КМОП ОЗУ для кеш-памяти. Варианты микросхем могут иметь отдельные выводы для входов и выходов, два порта доступа и то или иное внешнее оформление (например, однорядный корпус ).

Может быть это и существенно, однако заметьте, что вам не надо заботиться, чтобы линии данных ЦП подключались обязательно к одноименным выводам микросхемы памяти - ведь независимо от порядка соединения вы при чтении всегда получите то же, что записали! Это замечание справедливо и для адресов. Однако не пытайтесь так поступить с ПЗУ.

Упражнение 11.18. А почему?

Динамические ОЗУ. По сравнению со статическими ОЗУ динамические ОЗУ - это сплошная мигрень. На рис. 11.31 показан нормальный цикл. Адрес (содержащий, например, для ОЗУ объемом 1 Мбайт 20 бит) расщепляется на две группы и мультиплексируется на вдвое меньшее число выводов, сначала «адрес строки», стробируемый сигналом Address Strobe - строб адреса строки), а затем «адрес колонки», стробируемый сигналом CAS (Column Address -строб адреса колонки). Данные записываются (или читаются в соответствии с состоянием входа направления ) вслед за установкой CAS. Перед началом следующего цикла памяти должно пройти некоторое время «выдержки RAS», поэтому длительность цикла больше времени доступа; например, динамическое ОЗУ может иметь время доступа 100 не и длительность цикла 200 не. Цикл регенерации выглядит так же, но без сигнала CAS. Вообще-то обычные обращения к памяти отлично ее регенерируют, если только вы можете гарантировать обращения со всеми возможными адресами строк!

Динамические ОЗУ, как и статические, выпускаются с шириной данных 1, 4 и 8 бит, емкостью от 64 Кбит до 4 Мбит и с быстродействием приблизительно от 70 до 150 не. Наиболее популярны большие -битовые микросхемы, что вполне объяснимо: если вам нужна большая матрица памяти, скажем объемом 4 Мбайт и шириной 16 бит, и имеются в наличии ОЗУ емкостью 1 Мбит с организацией , имеет смысл использовать -битовые микросхемы, потому что (а) каждая линия данных будет подключена только к двум микросхемам (а не к 16), что существенно уменьшит емкостную нагрузку, и (б) эти микросхемы занимают меньше места, потому что меньшее число выводов данных более чем компенсирует дополнительные адресные выводы.

Рис. 11.31. Циклы чтения и записи динамического ОЗУ (Motorola, 120 нс).

Кроме того, -битовые микросхемы, как правило, дешевле. Приведенные рассуждения справедливы, если вы строите большую память, и не относятся, например, к нашему простому микропроцессору с памятью Заметьте, однако, что улучшенная технология упаковки микросхем с высокой плотностью уменьшает важность минимизации числа выводов.

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

Требуемая последовательность создается с помощью сдвигового регистра, тактируемого с частотой, кратной тактовой частоте микропроцессора или, что лучше, с помощью линии задержки с отводами. Для организации периодических циклов регенерации (только RAS) вам потребуется еще несколько логических схем и счетчик, отсчитывающий последовательные адреса строк. На все это уйдет около 10 корпусов.

Привлекательным способом, альтернативным «дискретным» схемам управления динамическим ОЗУ, является использование ПЛМ, причем для генерации всех необходимых сигналов достаточно одной-двух микросхем. Еще проще взять специальную микросхему «поддержки динамического ОЗУ», например, . Такого рода микросхемы берут на себя не только мультиплексирование адресов и образование сигналов RAS/CAS, но также и арбитрацию регенерации вместе с образованием адресов строк; более того, они даже включают мощные драйверы и демпфирующие резисторы, которые нужны для подключения больших матриц микросхем памяти, как это будет объяснено ниже. К таким контроллерам динамических ОЗУ обычно прилагаются дополнительные микросхемы для синхронизации, а также обнаружения и коррекции ошибок; в результате небольшой набор микросхем полностью решает проблему включения динамического ОЗУ в вашу разработку.

Впрочем, почти полностью! Основные неприятности с динамическими ОЗУ начинаются, когда вы пытаетесь освободиться от наводок на всех этих стробирующих и адресных магистральных линиях. Суть проблемы заключается в том, что несколько десятков корпусов МОП-схем оказываются разбросанными на большой площади системной платы, причем ко всем корпусам подходят управляющие и адресные шины. Для подключения к ним нескольких десятков микросхем требуются мощные выходные каскады Шоттки; однако большая длина линий и распределенная входная емкость в сочетании с крутыми фронтами выходных каскадов приводят к появлению «звона» большой амплитуды. Часто можно увидеть на адресных линиях ОЗУ отрицательные выбросы до -2 В! Типичным средством борьбы (не всегда полностью успешной) является включение на выходе каждого драйвера последовательных демпфирующих резисторов с сопротивлением около 33 Ом. Другая проблема заключается в огромных переходных токах, часто достигающих величины на линию. Представьте себе микросхему -разрядного драйвера, у которого большинство выходов случайно переключаются в одном направлении, например, с высокого уровня на низкий. Это приводит к переходному току величиной около 1 А, который на некоторое время повышает потенциал нулевого вывода, а вместе с ним и всех выходов, которые должны были иметь низкий уровень. Отмеченная проблема отнюдь не носит академического характера - однажды мы наблюдали сбои в работе памяти как раз из-за таких переходных токов на нулевом выводе, образующихся из-за выбросов токов -драйвера. При этом наводки, проходящие в -драйверы той же микросхемы, оказывались достаточными для завершения цикла памяти!

Дополнительным источником наводок в динамических ОЗУ являются большие переходные токи, образованные микросхемами в целом, причем наиболее честные разработчики даже включают сведения об этом явлении в свои технические материалы (рис. 11.32). Обычным средством борьбы является установка шунтирующих конденсаторов, подключенных к нулевой линии с малой индуктивностью; считается разумным шунтировать каждую микросхему керамическим конденсатором с емкостью .

Мы пришли к выводу, что логические драйверы с внешними резисторами хорошо работают с динамическим ОЗУ, как и специальные драйверы типа , которые включают интегральные демпфирующие резисторы. Контроллер динамического ОЗУ , упоминавшийся выше, по заверениям разработчиков может обслуживать до 88 микросхем памяти без внешних компонент, давая при этом отрицательные выбросы не более -0,5 В.

Рис. 11.32. Переходные токи динамического ОЗУ.

Даже более важным, нежели выбор конкретного драйвера, является использование нулевых линий с низкой индуктивностью и частого шунтирования . Двухсторонние платы с узкими линиями заземления неминуемо приведут к неприятностям; макетные платы с накруткой проводов обычно немногим лучше.

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

Постоянные запоминающие устройства (ПЗУ).

ПЗУ относятся к памяти, неразрушаемой при выключении питания (энергонезависимой), и нужда в них возникает практически в любой компьютерной системе. К примеру, в микрокомпьютерах необходимо иметь по крайней мере небольшое ПЗУ для хранения последовательности команд начальной загрузки, которая включает не только строки выделения стека и инициализации портов и прерываний, но также и команды, обеспечивающие чтение операционной системы с диска. Когда ваш персональный компьютер выполняет тестирование памяти и затем загружает DOS, он выполняет приказы некоторого ПЗУ. Кроме того, для микрокомпьютера типично хранение в ПЗУ некоторой части операционной системы (обычно наиболее аппаратно-зависимых модулей); эта часть называется «базовой системой ввода-вывода» (basic I/O system, BIOS) и обеспечивает стандартный механизм для обращения операционной системы к конкретным портам. ПЗУ широко используются для хранения различных таблиц, например, для генератора символов, отображаемых на экране дисплея. В предельном случае вообще вся операционная система, включая даже компиляторы и графические программы, может размещаться в ПЗУ. Например, в микрокомпьютере Macintosh значительная часть системного программного обеспечения записана в ПЗУ, и почти все 256 Кбайт ОЗУ отдаются пользователю. Однако такой «ПЗУ-ориентированный» подход используется в микрокомпьютерах относительно редко ввиду его негибкости; заметьте, однако, что исправление ошибок и умеренные усовершенствования программного обеспечения могут осуществляться с помощью заплат, размещаемых в ОЗУ.

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

РПЗУ. Стираемые программируемые постоянные запоминающие устройства выполняются в виде больших микросхем с кварцевым окном. Это, несомненно, самый популярный тип энергонезависимой памяти для компьютеров. РПЗУ используют КМОП- и МОП-технологию и состоят из больших матриц полевых и МОП-транзисторов с плавающим затвором, которые можно зарядить с помощью «лавинной -процесса пробоя слоя, изолирующего затвор, при приложении напряжения свыше 20 В. Данные хранятся в РПЗУ неограниченно долго в виде ничтожного заряда (около 106 электронов) изолированных «погребенных» затворов, которые можно рассматривать как конденсаторы с постоянной времени порядка столетий. Чтобы прочитать состояние отдельного конденсатора, ему надо выступить в качестве затвора канала полевого МОП-транзистора. Поскольку затвор электрически недоступен, стереть заряд можно лишь облучая микросхему интенсивным потоком ультрафиолетовых лучей в течение 10-30 мин, отчего запасенный заряд стекает за счет явления фотопроводимости. В результате отдельные байты РПЗУ выборочно стереть нельзя.

В первом издании этой книги мы упоминали «классическую» микросхему 2716, РПЗУ стоившую 25 долл. Теперь она стала такой классической, что ее уже нигде не достанешь! Типичные РПЗУ нашего времени имеют емкость от до и цену несколько долларов. Время доступа обычно составляет 150- 300 не, хотя такие компании, как Cypress, предлагают ПЗУ небольшого объема с быстродействием 25 не. Чтобы запрограммировать РПЗУ, к нему надо просто приложить повышенное напряжение (обычно 12,5 или 21 В), устанавливая при этом требуемые значения байтов. Исходные алгоритмы требовали на программирование каждого байта (что дает 100 с для микросхемы 2716, но для РПЗУ умеренного объема превращается в полчаса). Выпуск больших ПЗУ потребовал от разработчиков изобретения более совершенных алгоритмов, в которых каждый байт программируется последовательностью импульсов длительностью , причем после каждой записи делается попытка чтения; когда байт считывается правильно, выполняется окончательная запись, равная по длительности утроенной сумме всех предыдущих. Большая часть байтов программируется первым же импульсом, в результате на каждый байт тратится около , а на все ПЗУ объемом - 2 мин.

РПЗУ очень удобны при разработке опытных образцов, так как после стирания их можно использовать повторно. Они также применяются при выпуске небольших партий приборов. В продаже имеются более дешевые варианты РПЗУ без кварцевого окна, иногда называемые «РПЗУ однократного программирования». Хотя эти микросхемы не следовало бы называть РПЗУ, инженеры не желают изменять привычное название. Консервативные производители РПЗУ гарантируют сохранение в них информации в течение лишь 10 лет. Эта величина предполагает наихудшие условия (в частности, высокую температуру, которая приводит к утечке заряда); в действительности РПЗУ, похоже, не теряют данные, если только вам не попалась дефектная партия.

Для РПЗУ характерно ограниченное число циклов репрограммирования, т. е. стирания и программирования заново. Производители неохотно называют это число, хотя вы можете считать, что микросхема заметно ухудшит свои характеристики лишь после 100 или около того циклов стирания / программирования.

Рис. 11.33. Микроконтроллер с РПЗУ. а - 8-разрядный микроконтроллер с контактами для установки РПЗУ; б - 8-разрядный микроконтроллер со встроенным РПЗУ.

Масочные ПЗУ и ПЗУ с плавкими перемычками. Масочно-программируемые ПЗУ относятся к категории заказных микросхем, которые рождаются с указанным вами расположением бит. Фирма-производитель преобразует вашу спецификацию бит в маску металлизации, используемую далее при изготовлении ПЗУ. Такая процедура хороша для больших партий микросхем, и вам, надеемся, не придет в голову заказывать ПЗУ с масочным программированием для макетного образца. Типичная стоимость составляет от 1 до 3 тыс. долл. за производственный цикл, и фирмы неохотно берут заказы на партии ПЗУ менее тысячи штук. При таких количествах микросхема может обойтись в несколько долларов.

Многие однокристальные микроконтроллеры содержат в том же корпусе несколько кбайт ПЗУ и ОЗУ, так что законченный прибор может обходиться без дополнительных микросхем памяти. В большинстве случаев микроконтроллерное семейство включает варианты, требующие внешнего ПЗУ, а иногда и варианты со встроенным РПЗУ (рис. 11.33). Это дает возможность при разработке прибора использовать вариант с РПЗУ (или внешним ПЗУ), куда можно записать программу, при подготовке же партии приборов обратиться к более дешевым контроллерам с масочным программированием.

Другим типом ПЗУ с однократным программированием являются ПЗУ с плавкими перемычками. При выпуске в них все биты установлены, и для сброса требуемых бит ПЗУ надо подвергнуть действию электрического тока. В качестве типичного примера можно привести микросхему Harris , КМОП ППЗУ (программируемое постоянное запоминающее устройство) объемом ППЗУ с плавкими перемычками выпускаются также на базе биполярной (ТТЛ) технологии.

ЭРПЗУ. Электрически стираемые программируемые ПЗУ могут быть выборочно стерты и электрически репрограммированы прямо в той же схеме, где они используются в качестве памяти. Такого рода ПЗУ идеально подходят для хранения констант конфигурации, параметров калибровки и прочей информации, которую нельзя записать в ПЗУ до включения компьютера. ЭРПЗУ, как и РПЗУ, используют технологию МОП с плавающим затвором.

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

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

Рис. 11.34. ЭРПЗУ.

Протокол -опроса удобен тем, что ЭРПЗУ можно вставить в стандартный разъем для ОЗУ без каких-либо схемных изменений (разумеется, в ваши программы придется включить строки анализа считываемых назад данных и ожидания их совпадения с тем, что вы записываете). Поскольку запись в ЭРПЗУ выполняется относительно редко, фактически в прерываниях по линии RDY/BUSY необходимости не возникает.

КМОП ЭРПЗУ выпускаются в виде микросхем с емкостью по цене примерно 10-50 долл. Время доступа (200-300 не) и время программирования при использовании внутреннего усовершенствования алгоритма) сравнимы с показателями стандартного РПЗУ. ЭРПЗУ, как и РПЗУ, допускают ограниченное число циклов чтения записи. Хотя производители избегают называть конкретные цифры, можно встретить упоминание о 100000 циклах чтения записи при .

Замечание. Хотя ЭРПЗУ уникальны в том отношении, что допускают репрограммирование в рабочей схеме, их также можно запрограммировать и отдельно от места использования, в программаторе для РПЗУ. Это делает их очень удобными для разработки встроенного программного обеспечения, так как вам не надо ждать полчаса, пока РПЗУ со старой программой прожарится под ультрафиолетовым облучателем.

Имеются два любопытных варианта ЭРПЗУ. Фирмы National, Xicor и др. выпускают маленькие микросхемы ЭРПЗУ в с 8 выводами. Емкость этих схем может составлять от до бит; они работают в режиме последовательного доступа и оснащаются тактовым входом и единственной линией данных. Эти микросхемы трудно использовать без микропроцессора; однако в приборах с микропроцессорным управлением они очень удобны для хранения небольшого количества установочных параметров и проч. Та же фирма Xicor выпускает «электрически стираемый потенциометр , остроумное применение электрически стираемой памяти, в которой хранится положение «цифрового контакта». В эту микросхему встроена цепочка из 99 равных по величине резисторов, причем положение отвода от них, устанавливаемое программно, сохраняется в энергонезависимой памяти, входящей в ту же микросхему. Нетрудно представить себе прикладные задачи, в которых желательна автоматическая или дистанционная калибровка некоторого инструмента без механической настройки ручек управления.

Недавно появившаяся модификация ЭРПЗУ, называемая моментальной (flash), сочетает высокую плотность РПЗУ с репрограммированием в рабочей схеме, присущим ЭРПЗУ. Однако моментальные РПЗУ, как правило, не позволяют стирать отдельные байты, как это можно делать с обычными ЭРПЗУ. Так, моментальное ЭРПЗУ Intel допускает только полное стирание (как и РПЗУ), в то время как в микросхеме фирмы Seeq предусмотрено стирание либо посекторное (512 байт), либо целиком. Далее, большинство доступных сейчас моментальных ЭРПЗУ требуют дополнительного отключаемого источника питания +12 В на время стирания/записи, что является слишком дорогой ценой, если вспомнить, что обычные ЭРПЗУ питаются от единственного источника + 5 В.

Моментальные ЭРПЗУ могут выдерживать от 100 до 10000 программных циклов.

Технология производства ППЗУ продолжает развиваться, и мы с любопытством ожидаем, что она нам еще преподнесет; ждите и вы!

Энергонезависимые ОЗУ.

РПЗУ удобны для применения в качестве энергонезависимых ПЗУ, однако часто возникает необходимость иметь энергонезависимую оперативную память. Для этого можно использовать ЭРПЗУ, однако для них характерен очень длинный ) цикл записи (и ограниченное число циклов чтения/записи). Имеются две возможности достичь характерного для ОЗУ времени чтения записи ) при неограниченном числе циклов чтения записи: использовать либо статическое КМОП ОЗУ с резервным батарейным питанием, либо необычную микросхему фирмы Xicor, в которой объединены статическое ОЗУ и ЭРПЗУ.

Ранее уже обсуждался вопрос о резервном батарейном питании ОЗУ, которое убивает двух зайцев разом: низкая цена и высокая скорость чтения записи ОЗУ сочетаются с энергонезависимостью ПЗУ. Разумеется, в этом случае следует использовать КМОП ОЗУ с известным значением критического тока. Некоторые фирмы выпускают «энергонезависимые ОЗУ», размещая в обычном -корпусе вместе с микросхемой КМОП ПЗУ литиевую батарейку и логические схемы переключения питания. В качестве примера можно указать микросхемы фирмы Dallas Semiconductor эта фирма также выпускает линейку «интеллектуальных разъемов», содержащих батарейку и логические схемы, с помощью которых обычные ОЗУ как по мановению волшебной палочки становятся энергонезависимыми. Учтите, что образованное таким образом энергонезависимое ОЗУ, строго говоря, не бессмертно; срок службы батарейки, а следовательно, и данных, около 10 лет. Как и для обычного статического ОЗУ, здесь нет ограничений на выдерживаемое памятью число циклов чтения записи. в ОЗУ.

Если сравнивать два описанных варианта энергонезависимых ОЗУ, то вариант с резервной батарейкой представляется в общем предпочтительным, поскольку позволяет использовать любое наличное ОЗУ, если только в нем предусмотрен режим отключения при нулевом токе. Это значит, что вы можете использовать большие ОЗУ последних выпусков, а также, например, выбрать наиболее быстродействующие ОЗУ, если это для вас важно. Хотя батарейки имеют конечный срок эксплуатации, для большинства приложений он достаточен. Для кратковременного (сутки или менее) хранения информации вы можете заменить литиевую батарейку двухслойным конденсатором большой емкости; такие конденсаторы в очень маленьких корпусах с емкостью до фарады и более предлагаются фирмами Panasonic, Sohio и др.

Запоминающие устройства: общая сводка.

Рис. 11.35 подытоживает важнейшие характеристики различных типов ЗУ. Из показанных на рисунке мы рекомендуем динамические ОЗУ шириной 1 бит для больших матриц памяти с возможностью чтения и записи, статические ОЗУ шириной 1 байт для небольших матриц памяти микропроцессорных систем, РПЗУ для хранения программ и параметров, не требующих перезаписи, и либо ЭРПЗУ (если длительность процесса записи не имеет значения), либо статические ОЗУ с резервным батарейным питанием (для достижения максимального быстродействия по чтению / записи) для энергонезависимого хранения модифицируемых данных.

Рис. 11.35. Типы запоминающих устройств.

Динамическая оперативная память

Динамическая оперативная память (DRAM – Dynamic Random Access Memory) – энергозависимая полупроводниковая память с произвольным доступом. На данный момент – это основной тип оперативной памяти, используемый в современных персональных компьютерах и обеспечивающий наилучший показатель отношения цена-качество по сравнению с другими типами оперативной памяти. Однако, требования к быстродействию, энергопотреблению и надежности оперативной памяти постоянно растут, и динамическая оперативная память уже с трудом соответствует современным потребностям, так что в ближайшие годы стоит ожидать появления серийно выпускаемых конкурирующих типов оперативной памяти, таких как магниторезистивная оперативная память.

1. Устройство динамической оперативной памяти.

Динамическая оперативная память (DRAM – Dynamic Random Access Memory) – энергозависимая память с произвольным доступом, каждая ячейка которой состоит из одного конденсатора и нескольких транзисторов. Конденсатор хранит один бит данных, а транзисторы играют роль ключей, удерживающих заряд в конденсаторе и разрешающих доступ к конденсатору при чтении и записи данных.

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

На практике существуют разные способы реализации динамической памяти. Упрощенная структурная схема одного из способов реализации приведена на рисунке 1.

Как видно из рисунка, основным блоком памяти является матрица памяти, состоящая из множества ячеек, каждая из которых хранит 1 бит информации.

Каждая ячейка состоит из одного конденсатора (С) и трех транзисторов. Транзистор VT1 разрешает или запрещает запись новых данных или регенерацию ячейки. Транзистор VT3 выполняет роль ключа, удерживающего конденсатор от разряда и разрешающего или запрещающего чтение данных из ячейки памяти. Транзистор VT2 используется для считывания данных с конденсатора. Если на конденсаторе есть заряд, то транзистор VT2 открыт, и ток пойдет по линии AB, соответственно, на выходе Q1 тока не будет, что означает – ячейка хранит бит информации с нулевым значением. Если заряда на конденсаторе нет, то конденсатор VT2 закрыт, а ток пойдет по линии AE, соответственно, на выходе Q1 ток будет, что означает – ячейка хранит бит информации со значением “единица”.

Заряд в конденсаторе, используемый для поддержания транзистора VT2 в открытом состоянии, во время прохождения по нему тока, быстро расходуется, поэтому при чтении данных из ячейки необходимо проводить регенерацию заряда конденсатора.

Для работы динамической памяти на матрицу должно всегда поступать напряжение, на схеме оно обозначено, как Uп. С помощью резисторов R напряжение питания Uп равномерно распределяется между всеми столбцами матрицы.

Также в состав памяти входит контроллер шины памяти, который получает команды, адрес и данные от внешних устройств и ретранслирует их во внутренние блоки памяти.

Команды передаются в блок управления, который организует работу остальных блоков и периодическую регенерацию ячеек памяти.

Адрес преобразуется в две составляющие – адрес строки и адрес столбца, и передается в соответствующие дешифраторы.

Дешифратор адреса строки определяет, с какой строки надо провести чтение или запись, и выдает на эту строку напряжение.

Дешифратор адреса столбца при чтении данных определяет, какие из считанных бит данных были запрошены и должны быть выданы в шину памяти. При записи данных дешифратор определяет, в какие столбцы надо подать команды записи.

Блок работы с данными определяет, какие данные, в какую ячейку памяти требуется записать, и выдает соответствующие биты данных для записи в эти ячейки.

Блоки регенерации определяют:

  • когда происходит чтение данных и надо провести регенерацию ячейки, из которой данные были считаны;
  • когда происходит запись данных, а, следовательно, регенерацию ячейки производить не надо.

Буфер данных сохраняет всю считанную строку матрицы, так как при чтении всегда считывается вся строка целиком, и позволяет потом выбрать из считанной строки требуемые биты данных.

Рассмотрим принцип работы динамической памяти на примере структурной схемы, приведенной на рисунке 1. Рассматривать будем работу с первой ячейкой (M11). Работа остальных ячеек памяти полностью идентична.

1.1. Работа динамической памяти в состоянии покоя.

И так, первое что мы рассмотрим – этот состояние покоя, когда к памяти отсутствуют обращения, и она не в стадии регенерации данных.

DRAM – память энергозависимая, поэтому работа с ней возможна только при подаче питания. На схеме подаваемое на плату питание обозначено, как Uп. Подаваемое питание распределяется между всеми столбцами матрицы памяти с помощью транзисторов R.

Если память бездействует (от контроллера шины памяти не приходит никаких команд), то от дешифратора адреса строки не выдается сигнал ни на одну линию строк (S1-Sn) матрицы памяти. Соответственно, транзисторы VT1 и VT3 ячейки памяти M11 закрыты, также как и аналогичные транзисторы всех остальных ячеек памяти.

Следовательно, ток от подаваемого питания проходит по линии AE для первого столбца и аналогично для всех остальных столбцов матрицы памяти. Далее попадает на выходы Q1-Qm, на которых устанавливается «высокий» уровень напряжения, соответствующий значению логической «1». Но так как никаких команд от блока управления нет, то «Буфер данных» игнорирует получаемые сигналы.

Тут становится понятно, зачем нужен транзистор VT3. Он защищает конденсатор от разряда, когда к данной ячейки памяти нет обращения.

Ток по линии AE также попадает на «Блок регенерации 1», а именно, на нижний вход элемента L3 (логическое «И»), то есть на нижний вход элемента L3 подается логическая единица.

Рассмотрим, как в этом случае будет работать блок регенерации.

Так как от контроллера памяти нет никаких сигналов, то на входе элемента L1 (логическое «НЕ») будет логический ноль, а, соответственно, на выходе – логическая «1». Таким образом, на верхнем входе элемента L3 (логическое «И») будет логическая единица.

Имея на входах элемента L3 (логическое «И») две логические единицы, на выходе получим так же логическую единицу.

На выходе элемента L2 (логическое «И») будет логический ноль, так как на обоих его входах напряжение отсутствует, так как от контроллера памяти нет никаких команд и данных.

В результате, на входах элемента L4 (логическое «ИЛИ-НЕ») будет логический ноль и логическая единица, а, соответственно, на его выходе будет логический ноль, то есть напряжение будет отсутствовать. Так как напряжение отсутствует, то ни один конденсатор первого столбца матрицы памяти подзаряжен не будет. Хотя, даже если бы напряжение и присутствовало, все равно подзарядка была бы невозможна, так как транзисторы подзарядки (доля ячейки М11 – это VT1) были бы закрыты, ведь ни на одну строку матрицы памяти (S1-Sn) напряжение не подается.

Точно такая же ситуация будет со всеми столбцами матрицы памяти.

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

1.2. Работа динамической памяти при чтении данных и регенерации.

Будем рассматривать принцип чтения данных из динамической памяти на примере считывания данных из ячейки памяти М11:

1. Процессор запрашивает порцию данных (размер зависит от разрядности процессора, для 32-разрядного процессора минимальной единицей обмена, обычно, являются 32 бита) и выдает их адрес.

2. Контроллер шины памяти преобразует адрес в номер строки и номер столбца и выдает номер строки в дешифратор адреса строки. Дешифратор адреса строки выдает сигнал в соответствующую строку матриц памяти. Мы договорились, что в примере данные будем читать из первой ячейки памяти. Поэтому дешифратор адреса строки подаст напряжение на первую строку (S1).

3. Напряжение, поданное на строку S1, откроет транзисторы VT1 и VT3 первой ячейки памяти и соответствующие транзисторы всех остальных ячеек первой строки.

4. Дальнейшая работа памяти зависит от наличия или отсутствия заряда на конденсаторе. Рассмотрим отдельно два случая, когда на конденсаторе ячейки М11 есть заряд, и когда нет.

4.1 . В начале рассмотрим случай, когда заряд в конденсаторе есть (ячейка памяти содержит бит со значением ноль):

Так как на конденсаторе С ячейки памяти М11 есть заряд, то транзистор VT2 будет открыт, а, соответственно, ток, создаваемый входным напряжением Uп, пойдет по линии AB. В результате, на выходе Q1 первого столбца тока не будет. А это означает, что с ячейки памяти М11 считан ноль. Соответствующая информация о считанном бите с первого столбца будет записана в «Буфер данных».

Для поддержания транзистора VT2 в открытом состоянии и протекания тока по линии AB расходуется заряд конденсатора С. В результате, конденсатор очень быстро разрядится, если не провести его регенерацию.

Так как на выходе Q1 тока нет, то он не будет поступать и в «Блок регенерации 1», а, соответственно, на нижнем входе элемента L3 (логическое «И») будет логический ноль.

Так как мы рассматриваем случай чтения данных, то сигнал записи V1 и данные для записи D1 в «Блок регенерации 1» подаваться не будут. В остальные блоки регенерации соответствующие сигналы D1-Dm и V1-Vm также подаваться не будут.

В результате, на входе элемента L1 (логическое «НЕ») будет логический «0», а на выходе – логическая «1», поэтому на входах элемента L3 (логическое «И») будет логический «0» и логическая «1». Это значит, что на выходе этого элемента будет логический «0».

На выходе логического элемента L2 (логическое «И») будет логический ноль, так как на обоих его входах напряжение отсутствует, так как от контроллера шины памяти отсутствуют команды на запись и данные для записи.

Имея на обоих входах элемента L4 (логическое «ИЛИ-НЕ») логический «0», на его выходе будем иметь логическую «1», то есть с блока регенерации пойдет ток подзарядки конденсатора С. Так как транзистор подзарядки VT1 ячейки памяти М11 открыт, то ток подзарядки беспрепятственно пройдет в конденсатор С. Остальные ячейки памяти первого столбца имеют закрытый конденсатор подзарядки, а, следовательно, подзарядка их конденсаторов происходить не будет.

4.2 . Теперь рассмотрим случай, когда в конденсаторе нет заряда (ячейка памяти хранит бит со значением «1»):

Ток, создаваемый входным напряжением Uп, пойдет по линии AЕ, так как транзистор VT2 будет закрыт. Следовательно, на входе Q1 «Буфера данных» будет ток, что означает – с ячейки памяти считана единица. Информация о считанном бите с первого столбца будет записана в «Буфер данных».

Так как в конденсаторе заряда не было, то и подзаряжать его надобности нет. Следовательно, с блока регенерации ток пойти не должен.

Так как на выходе Q1 ток есть, то он поступает и в «Блок регенерации». Следовательно, на нижний вход элемента L3 (логическое «И») подается логическая единица.

Так как мы рассматриваем случай чтения данных, то сигнала записи V1 и данных для записи D1 в «Блок регенерации 1» подаваться не будет. Так же в остальные блоки регенерации, соответствующие сигналы D1-Dm и V1-Vm так же подаваться не будут.

Следовательно, на входе элемента L1 (логическое «НЕ») будет логический ноль, а на выходе – логическая «1». Таким образом, на входах элемента L3 (логическое «И») будут две логические единицы. В результате, на выходе получим так же логическую единицу.

На выходе логического элемента L2 (логическое «И») будет логический ноль, так как на обоих его входах напряжение отсутствует, так как от контроллера памяти нет команд на запись и данных для записи.

В результате, на входах элемента L4 (логическое «ИЛИ-НЕ») будет логический ноль и логическая единица, а, соответственно, на его выходе будет логический ноль, то есть напряжение будет отсутствовать. Так как напряжение отсутствует, то ни один из конденсаторов первого столбца матрицы памяти подзаряжаться не будет.

5. Параллельно с чтением и регенерацией данных первого столбца происходит по такому же алгоритму чтение данных с остальных столбцов. В результате, в буфер данных будет записано значение всех ячеек памяти первой строки.

6. С контроллера памяти на дешифратор адреса столбца выдаются номера столбцов для считывания. За один такт номера считываются сразу с нескольких столбцов. Количество столбцов для считывания определяется разрядностью процессора и способом его взаимодействия с памятью. Для 32-разрядных процессоров минимальной порцией является считывание данных с 32 столбцов.

7. С дешифратора адреса столбцов номера столбцов передаются в «Буфер данных», откуда соответствующие данные считываются и передаются в процессор.

На этом цикл чтения данных заканчивается. Как вы заметили, при чтении данных считываются значения сразу со всей строки памяти данных, а потом из нее в «Буфере данных» выбираются нужные данные. Поэтому минимальной порцией чтения данных с динамической оперативной памяти является строка.

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

Поэтому «Блок управления» с определенной частотой, в моменты простоя памяти или между обращением к памяти процессора (или других устройств), регенерирует данные во всех ячейках памяти.

1.3. Работа динамической памяти при записи данных.

Будем рассматривать принцип записи данных в динамическую память на примере записи данных в ячейку памяти М11:

1. Контроллер шины памяти получает команду на запись данных, данные и адрес, куда необходимо записать эти данные.

2. Контроллер шины памяти преобразует адрес на две составляющие – номер строки и номера столбцов, и передает полученные составляющие в «Дешифратор адреса строки» и в «Дешифратор адреса столбцов». А данные передает в «Блок работы с данными».

3. Дешифратор адреса строки выдает сигнал в соответствующую строку матрицы памяти. Мы договорились, что в примере данные будем записывать в первую ячейку памяти. Поэтому дешифратор адреса строки подаст напряжение на первую строку (S1).

4. Одновременно с «Дешифратора адреса столбцов» выдаются сигналы V в столбцы, соответствующие полученному адресу. В эти же столбцы подаются сигналы D с «Блока работы с данными», уровень которых определяется значением битов записываемого слова.

5. Напряжение, поданное на строку S1, откроет конденсаторы VT1 и VT3 первой ячейки памяти и соответствующие конденсаторы всех остальных ячеек первой строки.

6. Если в ячейке М11 хранится бит со значением «0» (в конденсаторе есть заряд), то ток, создаваемый входным напряжением Uп, пойдет по линии AB, иначе – по линии AE. Но нам это не важно, так как в ячейку М11 производится запись данных, а не их чтение, поэтому буфер данных будет игнорировать считанное с ячейки значение. А с выхода элемента L3 «Блока регенерации 1» будет всегда идти логический ноль, так как с дешифратора столбцов приходит сигнал (V1) на запись данных в первый столбец.

В результате, на входе элемента L1 будет логическая единица, а на выходе – логический ноль. Соответственно, на верхнем входе элемента L3 мы всегда имеем логический ноль, что означает – независимо от значений на нижнем входе, на выходе элемента L3 будет логический ноль.

На нижнем входе элемента L2 будет логическая единица, так как с дешифратора адреса столбцов выдается сигнал V1, а на верхнем входе будет либо ноль, либо единица, в зависимости от того, какое значение имеет бит записываемой информации.

Если бит имеет значение «1», то на верхнем входе элемента L2 будет «1». Имея две единицы на входе, мы получим на выходе так же логическую единицу. Соответственно, на входах элемента L4 будет получена логическая «1» и логический «0». В результате, на выходе будет логический «0», то есть ток будет отсутствовать, а, соответственно, зарядка конденсатора C идти не будет. Если до этого конденсатор С содержал заряд, то через несколько микросекунд он разрядится, пропуская ток по линии АВ. Таким образом в конденсатор С будет записан бит данных «1», соответствующий разряженному состоянию конденсатора.

Если бит имеет значение «0», то на верхнем входе элемента L2 будет «0». Имея на верхнем входе логический ноль, а на нижнем – логическую единицу, на выходе элемента L2 получим логический ноль. В результате, на верхнем и нижнем входах элемента L4 имеем логические нули, что означает – на выходе элемента L4 будет логическая единица, то есть пойдет ток зарядки конденсатора. Таким образом в конденсатор С будет записан бит данных «0», соответствующий заряженному состоянию конденсатора.

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

Запись данных во все требуемые ячейки строки матрицы памяти и чтение с регенерацией из оставшихся ячеек строки производятся параллельно.

Приведенная на рисунке 1 структурная схема памяти и описанный принцип работы соответствуют одной из самых простых организаций динамической памяти. На практике такую память уже давно не используют. Со временем, она претерпела ряд изменений, позволивших ей работать гораздо быстрее. Давайте рассмотрим эти улучшения.

2. Этапы модернизации динамической оперативной памяти.

Все усовершенствования в работе динамической памяти были направлены на увеличение скорости работы памяти, так как скорость оперативной памяти всю историю существования вычислительной техники являлась одним из факторов, сдерживающих рост производительности ЭВМ. Если обратиться к истории ЭВМ, то можно увидеть, что каждый прорыв в области организации оперативной памяти приводил к резкому скачку в быстродействии ЭВМ.

Естественно, скорость работы памяти увеличивалась, за счет повышения тактовой частоты и улучшения технологического процесса производства. Это был закономерный процесс, приводивший к плавному увеличению скорости работы. Но нас более интересуют изменения в принципиальном устройстве памяти, приводившие к появлению новых типов памяти. Именно о них я буду рассказывать в этой главе.

2.1. PM DRAM.

Один из первых видов оперативной памяти, используемой в персональных компьютерах, была простая динамическая оперативная память (PM DRAM – Page Mode DRAM), принцип работы которой описан выше. PM DRAM использовалась вплоть до середины 90-х годов.

Однако ее быстродействия катастрофически не хватало, поэтому на смену ей в 1995 году пришла память FPM DRAM.

2.2. FPM DRAM.

FPM DRAM (Fast Page Mode DRAM) – быстрая страничная память. Основное ее отличие от памяти FP DRAM заключалось в поддержке сохраненных адресов. То есть, если новое считываемое из памяти слово находилось в той же строке, что и предыдущее слово, то обращение к матрице памяти не требовалось, а выборка данных осуществлялась из «Буфера данных» (смотри рисунок 1) по номерам столбцов. Это позволяло в случае чтения из памяти массивов данных значительно сократить время чтения.

Однако запись данных в память осуществлялась точно так же, как и в памяти PM DRAM. Да и далеко не всегда считываемые данные располагались в одной строке. В результате, прирост производительности сильно зависел от типа программ, с которыми работала ЭВМ. Прирост мог быть, как существенный, так и вовсе могло быть замедление работы, из-за дополнительных накладных расходов на анализ номера строки предыдущей операции чтения.

Следующий тип памяти, заменивший FPM DRAM, появился через год (в 1996 году) и назывался EDO-DRAM.

2.3. EDO-DRAM.

EDO-DRAM (Extended Data Out DRAM) – динамическая память с усовершенствованным выходом. В этом типе памяти адрес следующего считываемого слова передавался до завершения считывания линии данных памяти, то есть до того, как считанные данные из памяти были переданы процессору.

Приступить к считыванию нового слова данных, до завершения чтения предыдущего, стало возможным, благодаря вводу, так называемых, регистров – защелок, которые сохраняли последнее считанное слово даже после того, как начиналось чтение или запись следующего слова.

Сочетая в себе также новшества памяти FPM RAM, новый тип памяти давал прирост производительности в пике, достигавший 15-20%.

Однако прогресс не стоял на месте, тактовые частоты работы процессоров, системной шины и естественно памяти росли. С повышением тактовой частоты все сложнее было добиваться стабильной работы памяти EDO-DRAM, так как из-за непредвиденных задержек чтение нового слова данных могло начаться прежде, чем предыдущее слово данных было сохранено с помощью регистров-защелок.

В результате, на смену EDO-DRAM пришла память SDRAM.

2.4. SDRAM.

SDRAM (Synchronous DRAM) – синхронная динамическая память с произвольным доступом. Как видно из названия, память работала синхронно, синхронно с контроллером памяти, что гарантировало завершение цикла чтения/записи строк в заданное время. Это позволяло выдавать новую команду на чтение до завершения считывания предыдущего слова данных, будучи уверенным, что считывание завершится верно, а чтение нового слова начнется с минимальной задержкой.

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

Также в SDRAM памяти было увеличено количество матриц памяти с одной до двух, иногда до четырех. Это позволило во время обращения к одной матрице памяти регенерировать строки другой матрицы, что, в свою очередь, позволило поднять тактовую частоту работы памяти, из-за уменьшения задержек на регенерацию.

Также это позволило считывать данные сразу из нескольких матриц памяти. То есть, пока идет считывание из одной матрицы памяти, в другую уже передается адрес нового слова для чтения/записи.

Со временем, развитие технологии производства и возможность работы сразу с несколькими матрицами памяти позволили значительно поднять внутреннюю скорость работы микросхем оперативной динамической памяти. Внешняя шина памяти стала узким местом и замедляла работу. В результате, был разработан новый тип памяти DDR SDRAM. С появлением DDR SDRAM предшествующую память SDRAM стали называть SDR SDRAM (Single Data Rate DRAM).

2.5. DDR SDRAM.

DDR SDRAM (Double Data Rate SDRAM) – синхронная динамическая память с произвольным доступом и удвоенной частотой передачи данных.

В этом типе оперативной памяти обмен данными по внешней шине идет не только по фронту тактового импульса, но и по спаду. В результате, без увеличения тактовой частоты внешней шины удваивается объем передаваемой информации.

Но подъема скорости работы внешней шины данных недостаточно, необходимо, чтобы и сама память поддерживала такую скорость. Так как увеличить частоту работы оперативной памяти довольно сложно, трудоемко и дорого, то производители пошли на хитрость. Вместо увеличения тактовой частоты памяти, они увеличили разрядность внутренней шины данных (от ячеек матриц памяти до буферов ввода-вывода) и сделали ее в два раза большей, чем разрядность внешней шины памяти (от контроллера памяти, встраиваемого в северный мост, или процессора до микросхемы памяти). То есть за 1 такт считывалось столько данных, сколько могло передаваться по внешней шине только за два такта. При этом ширина внешней шины данных составляла 64 бита, а внутренней – 128 бит.

В результате, по фронту тактового импульса из чипа памяти передавалась первая часть данных, а по спаду – вторая. Аналогичная ситуация была и при записи данных в память. Сначала принималась первая часть данных, а затем – вторая, после чего они обрабатывались одновременно.

Однако из-за накладных расходов и необходимости применять мультиплексор, для объединения двух частей данных, передаваемых в оперативную память, и демультиплексор, для разделения считываемых данных из памяти на две части, сильно выросла латентность памяти.

Латентность – это время между запросом данных из памяти и временем, когда оперативная память начнет выдавать требуемые данные.

В результате, реальная производительность DDR памяти, по сравнению с SDR, возросла всего лишь на 30-40 процентов.

Наиболее популярные модели памяти DDR работали на тактовой частоте 200 МГц, но имели маркировку DDR400. 400 означало количество транзакций (обменов) в секунду. Действительно, при тактовой частоте 200 МГц и передаче данных по фронту и спаду тактового импульса, в секунду будет совершаться 400 МТр. При этом внутренняя частота чипа памяти также будет 200 МГЦ.

С появлением DDR памяти, одним из актуальных параметров работы чипа памяти стала латентность. В результате, для примерной оценки производительности памяти ввели такое понятие, как тайминги памяти.

Тайминги, обычно, задаются набором из четырех чисел, определяющих основные задержки памяти в тактах работы чипа памяти. В таблице 1 приведен пример расшифровки таймингов памяти DDR266 (тайминги: 2.5-3-3-7) в порядке их расположения в строке.

Тайминги Значение Расшифровка
Tcl 2.5 CAS Latency – задержка в тактах между выдачей в память адреса столбца, когда нужная строка уже открыта, и началом выдачи данных из памяти.
Trcd 3 Row to CAS Delay – задержка в тактах между открытием строки и разрешением доступа к столбцам или, другими словами, задержка между подачей номера строки и номера столбца.
Trp 3 Row Precharge Time – время в тактах, требуемое на закрытие одной строки и открытие другой, или, другими словами, задержка между чтением последней ячейки памяти и подачей номера новой строки.
Tras 7 Tras (Active to Precharge Delay) – минимальное время между подачей номера строки и подачей команды подзарядки ячеек строки (PRECHARGE), то есть количество тактов, затрачиваемое памятью на чтение данных.

Таблица 1. Расшифровка таймингов оперативной памяти.

С помощью таймингов можно определить:

  • время, требуемое на чтение первого бита из памяти, когда нужная строка уже открыта, – Tcl тактов;
  • время, требуемое на чтение первого бита из памяти, когда строка неактивна, – Trcd+ Tcl тактов;
  • время, требуемое на чтение первого бита из памяти, когда активна другая строка, – Trp+Trcd+Tcl тактов;

Тайминги можно изменять (разгонять память), наряду с тактовой частотой, однако стабильность работы памяти при этом не гарантируется, поэтому надо быть крайне внимательными и осторожными при попытках заставить работать память с нестандартными настройками.

В таблице 2 приведены основные сертифицированные стандарты DDR SDRAM и их параметры.

Стандарт Частота внутренней шины, МГц Частота внешней шины, МГц Стандартные тайминги*
DDR200 100 100 200 2-2-2-5 1600
DDR266 133 133 266 2.5-3-3-7 2133
DDR300 166 166 333 2.5-3-3-7 2667
DDR400 200 200 400 2.5-3-3-8 3200

Таблица 2. Параметры стандартов памяти DDR SDRAM.

Поднять тактовую частоту чипа памяти выше 200 МГц на том этапе было крайне затруднительно. Естественно существовала память, работающая на тактовой частоте 233, 250 и даже 267 МГц, но это были несертифицированные стандарты, и стоили они дорого.

В результате, разработчики памяти продолжили развивать архитектуру памяти DDR SDRAM. Логическим результатом этого развития стала память DDR2 SDRAM.

2.6. DDR2 SDRAM.

В памяти DDR2 SDRAM ширина внутренней шины данных была увеличена еще в два раза и стала превосходить внешнюю шину данных в четыре раза. В результате, при одной и той же тактовой частоте внешней шины памяти у памяти DDR2 SDRAM внутренняя тактовая частота была в два раза меньше, по сравнению с памятью DDR SDRAM.

Для сравнения возьмем топовую память DDR (DDR400) и первую спецификацию памяти DDR2 (DDR2-400). Казалось бы, раз это новый тип памяти, то он должен работать быстрее, однако дело тут обстояло совсем не так. На практике память DDR2-400 была чуть ли не медленнее памяти DDR400.

Давайте разберемся почему. И так, первое – это тактовая частота внешней шины данных. Она была у обоих типов памяти одинаковая – 200 МГц, и ширина внешней шины данных тоже была одинаковая – 64 разряда. В результате, и быстродействие у памяти DDR2-400 заметно выше, чем у памяти DDR400, быть не могло.

К тому же в памяти DDR400 ширина внутренней шины была всего в 2 раза больше внешней, тогда как у DDR2-400 – в четыре. В результате, устройство мультиплексора и демультиплексора памяти DDR2-400 – сложнее. К тому же далеко не всегда считываемые/записываемые данные находятся в одной строке матрицы памяти, в результате, считать/записать все слова данных одновременно невозможно, эта особенность тем негативнее сказывается, чем больше ширина внутренней шины данных, а она, естественно, больше у памяти DDR2.

Так в чем же преимущество памяти DDR2-400. А преимущество – в тактовой частоте чипа памяти. Она была в два раза ниже, чем тактовая частота чипа DDR-400. Это давало огромный потенциал для увеличения производительности памяти и уменьшало энергопотребление.

В результате, очень быстро появилась память с внешней шиной, работающей на тактовой частоте 400 МГц. А позже у топовых моделей памяти DDR2 тактовая частота внешней шины достигла 533 МГц, при тактовой частоте чипа памяти – 266 МГц, и пиковой теоретической пропускной способности – 9.6 Гб/с, что, несмотря на увеличившуюся латентность, значительно превосходило возможности памяти DDR.

В таблице 3 приведены основные стандарты DDR2 SDRAM и их параметры.

Стандарт Частота внутренней шины, МГц Частота внешней шины, МГц Количество транзакций в секунду, МТр Стандартные тайминги* Теоретическая пропускная способность, Мб/с
DDR2-400 100 200 400 3-3-3-12 3200
DDR2-533 133 266 533 5-5-5-15 5300
DDR2-667 166 333 667 2.5-3-3-7 2667
DDR2-800 200 400 800 5-5-5-15 7100
DDR2-1066 266 533 1066 5-5-5-15 8500
DDR2-1200 300 600 1200 5-5-5-15 9600

* У различных производителей стандартные тайминги могут варьироваться и сильно зависят от качества элементной базы.

Таблица 3. Параметры стандартов памяти DDR2 SDRAM.

На этом был практически достигнут предел возможности усовершенствования DDR2 памяти по частоте и латентности. Дальнейшее увеличение производительности приводило к значительному росту энергопотребления и тепловыделений, и снижения стабильности и надежности работы памяти.

В результате, разработчики в 2005 году представили прототипы нового поколения DDR SDRAM памяти – DDR3 SDRAM. Однако массовое производство этой памяти и экспансия рынка начались только в 2009 году.

2.7. DDR3 SDRAM.

Основное направление развития памяти DDR3 SDRAM сохранилось таким же, как у DDR2 SDRAM. То есть снова была увеличена вдвое ширина внутренней шины данных памяти, что привело к снижению внутренней тактовой частоты памяти в два раза. К тому же при производстве памяти применялся новый технологический процесс, в начале – до 90 нм, затем – до 65 нм, 50 нм, 40 нм, и видимо это еще не предел.

Все это открыло разработчикам дальнейшие возможности по наращиванию тактовой частоты внешней шины памяти, тактовой чистоты самого чипа памяти, снижению рабочего напряжения и увеличению объема памяти.

Однако вместе с увеличением ширины внутренней шины данных увеличилась латентность памяти, усложнилось устройство мультиплексора/демультиплексора. В общем, все проблемы DDR и DDR2 памяти перешли в DDR3 память.

Но, благодаря улучшению технологического процесса и архитектуры памяти, удалось снизить время цикла чтения/записи, что позволило несколько снизить влияние увеличившейся латентности на производительность памяти.

В таблице 3 приведены существующие стандарты DDR3 SDRAM и их основные параметры.

Стандарт Частота внутренней шины, МГц Частота внешней шины, МГц Количество транзакций в секунду, МТр Стандартные тайминги* Теоретическая пропускная способность, Мб/с
DDR3-800 100 400 800 6-6-6-18 6400
DDR3-1066 133 533 1066 7-7-7-21 8533
DDR3-1333 166 667 1333 8-8-8-24 10667
DDR3-1600 200 800 1600 8-8-8-24 12800
DDR3-1866 233 933 1866 9-9-9-27 14930
DDR3-2000 250 1000 2000 9-9-9-27 16000
DDR3-2133 266 1066 2133 9-11-9-28 17066
DDR3-2200 275 1100 2200 10-10-10-30 17600
DDR3-2400 300 1200 2400 9-11-9-28 19200

* У различных производителей стандартные тайминги могут варьироваться и сильно зависят от технологического процесса производства и качества элементной базы.

Таблица 4. Параметры стандартов DDR3 SDRAM.

Память DDR3 сегодня (начало 2012 года) занимает главенствующие позиции на рынке, однако ей уже грядет замена в лице нового поколения памяти DDR – DDR4 SDRAM.

2.8. DDR4 SDRAM.

Стандарты нового поколения памяти были представлены еще в 2008 году в Сан-Франциско на форуме, организованном компанией Intel. В 2011 году компания Sumsung продемонстрировала свои первые прототипы памяти DDR4.Однако начало производства этого типа памяти планируется на 2012 год, а окончательное завоевание рынка закончится не ранее 2015 года. Такие поздние сроки начала массового производства, в основном, связаны с тем, что возможности памяти DDR3 еще полностью не исчерпаны и позволяют удовлетворить требования большинства пользователей. А, следовательно, выход на рынок с новым типом памяти будет коммерчески неоправдан.

Память DDR4 продолжит тенденции DDR памяти. Будет увеличена ширина внутренней шины, улучшена технология производства до 32-36 нм, подняты тактовые частоты внешней и внутренней шины, а также будет снижено напряжение.

Но поговорим о ней более подробно, когда появятся первые массово выпускаемые образцы памяти, а сейчас подведем итоги обзора динамической памяти и сформулируем ее основные достоинства и недостатки.

3. Достоинства и недостатки динамической памяти.

Преимущества динамической памяти:

  • низкая себестоимость;
  • высокая степень упаковки, позволяющая создавать чипы памяти большого объема.

Недостатки динамической памяти:

  • относительно невысокое быстродействие, так как процесс зарядки и разрядки конденсатора, пусть и микроскопического, занимает гораздо больше времени, чем переключение триггера;
  • высокая латентность, в основном, из-за внутренней шины данных, в несколько раз более широкой, чем внешняя, и необходимости использования мультиплексора/демультиплексора;
  • необходимость регенерации заряда конденсатора, из-за его быстрого саморазряда, ввиду микроскопических размеров.

Оперативная память (Random Access Memory – RAM), т.е. память с произвольным доступом, используется центральным процессором для совместного хранения данных и исполняемого программного кода. По принципам хранения информации ОЗУ можно разделить на статические и динамические.

Оперативную память можно рассматривать как некий набор ячеек, каждая из которых может хранить один информационный бит.

В статических ОЗУ ячейки построены на различных вариантах триггеров. После записи бита в такую ячейку она может сохранять его сколь угодно долго – необходимо только наличие питания. Отсюда и название памяти – статическая, т.е. пребывающая в неизменном состоянии. Достоинством статической памяти является ее быстродействие, а недостатками – высокое энергопотребление и низкая удельная плотность данных, поскольку одна триггерная ячейка состоит из нескольких транзисторов и, следовательно, занимает на кристалле немало места. К примеру, микросхема емкостью 4 Мбит состояла бы более чем из 24 млн. транзисторов, потребляя соответствующую мощность.

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

В настоящее время динамическая память (Dynamic RAM – DRAM) используется в качестве оперативной памяти компьютера, а статическая память (Static RAM – SRAM)- для создания высокоскоростной кэш – памяти процессора.

Микросхемы динамической памяти организованы в виде квадратной матрицы, причем пересечение строки и столбца матрицы задает одну из элементарных ячеек. При обращении к той или иной ячейке нужно задать адрес нужной строки и столбца. Задание адреса строки происходит, когда на входы микросхемы подается специальный стробирующий импульс RAS (Raw Address Strobe), а задание адреса столбца – при подаче импульса CAS (Column Address Strobe). Импульсы RAS и CAS подаются последовательно друг за другом по мультиплексированной шине адреса.

Регенерация в микросхеме происходит одновременно по всей строке матрицы при обращении к любой из ее ячеек, т.е. достаточно циклически перебрать все строки.

© 2024 Про уют в доме. Счетчики газа. Система отопления. Водоснабжение. Система вентиляции