Цифровая электроника. Основы цифровой техники

29.01.2019

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

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

1. Устройство триггера.

Для того чтобы понять принцип работы статической памяти, обратимся к истокам схемотехники. И начнем с описания принципа работы триггера, изображенного на рисунке 1.

Триггер – это элемент памяти с двумя стабильными состояниями – «0» и «1». В установленном состоянии триггер сохраняется, пока на него подается питание.

Обычно триггер имеет два входа:

  • R (Reset) – сбросить триггер (установить в состояние «0»),
  • S (Set) – установить триггер в состояние «1»,

и два выхода: Q и инвертированное Q ().

Входы R и S используются для установки состояния триггера. Если на вход S подать напряжение, соответствующее логической единице (далее просто логическую единицу), а на вход R – напряжение, соответствующее логическому нулю (далее просто логический ноль), то триггер перейдет в состояние единицы и сохранит это состояние даже, если на вход S перестать подавать сигнал.

Если на вход S подать логический ноль, а на вход R – логическую единицу, то триггер перейдет в состоянии сохранения нуля.

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

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

В таблице 1 приводится перечень всех возможных состояний триггера.

S R Q i Q i+1 i i+1
1 0 0 1 1 0
1 0 1 1 0 0
0 1 0 0 1 1
0 1 1 0 0 1
0 0 0 0 1 1
0 0 1 1 0 0
1 1 0 ? 1 ?
1 1 1 ? 0 ?

Таблица 1. Состояния триггера, в зависимости от сигналов на входе.

Рассмотрев логику работы триггера, давайте разберемся, как же он устроен. Структурная схема триггера приведена на рисунке 2.

Как видно из рисунка, состоит он из двух инвертеров (логических элементов «НЕ»), причем выход одного инвертера замкнут на вход другого.

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

Первый случай, на вход S подана логическая единица, а на вход R – логический ноль, то есть установка триггера в единичное состояние. И так, если на вход S подать логическую единицу, то, пройдя через инвертер D.D2, она примет значение логического нуля. Таким образом, на выходе будет логический ноль. На вход R был подан логический ноль, в результате, на выходе инвертера D.D1 будет логическая единица, а, соответственно, на выходе Q будет так же логическая единица.

Если сигналы с входов снять (на вход S и R подать логический ноль), то состояние триггера не изменится. Логическая единица с выхода инвертера D.D1 пойдет на вход инвертера D.D2, а логический ноль с выхода D.D2 пойдет на вход инвертера D.D1, в результате чего на выходе инвертера D.D1 будет логическая единица. То есть мы замкнули цикл, который будет продолжаться до тех пор, пока будет на триггер подводиться питание. Зачем нужно питание, рассмотрим чуть позже, когда будем разбирать принцип устройства инвертера.

Рассмотрим второй случай, когда на вход S подан логический ноль, а на вход R –логическая единица, то есть сброс триггера. И так, если на вход S подать логический ноль, то, пройдя через инвертер D.D2, он примет значение логической единицы. Таким образом, на выходе будет логическая единица. На вход R была подана логическая единица, в результате, на выходе инвертера D.D1 будет логический ноль, а, соответственно, на выходе Q будет тот же логический ноль.

Так же, как и в первом случае, при снятии сигналов с входов R и S состояние триггера не изменится.

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

На рисунке представлена простейшая схема реализации инвертера, состоящая из одного транзистора. Давайте рассмотрим, как он работает.

На элемент всегда подается питание Uп. В результате, создаваемый ток может пойти либо по линии AB, в этом случае на выходе инвертера ток будет отсутствовать (будет логический ноль), либо – по линии AC, в этом случае на выходе инвертера ток будет присутствовать (будет логическая единица).

По линии AB ток пойдет, если транзистор VT1 будет открыт, а для этого необходимо подать напряжение на вход инвертера.

По линии AC ток пойдет, если транзистор VT1 будет закрыт, а это произойдет при отсутствии напряжении на входе инвертера.

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

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

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

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


Как видите, она состоит из одного триггера и трех транзисторов, выполняющих роль ключей, открывающих и закрывающих доступ к ячейке памяти. Транзисторы VT1 и VT2 используются для разрешения и запрета записи в ячейку, а транзистор VT3 – для разрешения и запрета чтения.

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

В установленном состоянии триггер будет оставаться даже после снятия напряжения с линии строки и с линий D и до тех пор, пока на него будет подаваться питание Uп.

Для считывания данных необходимо на выходы D и подать напряжение, соответствующее логическому нулю, так как подача двух логических нулей на входы триггера не изменит его состояния, а затем подать напряжение на строку. В результате, транзистор VT3 откроется, и ток с триггера по линии Q пройдет в устройство считывания. Одновременно с транзистором VT3 откроются транзисторы VT1 и VT2. Но так как напряжение на линиях D и соответствует логическому нулю, то оно не повлияет на состояние транзистора.

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

3. Устройство микросхемы статической памяти.

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

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

В контроллер шины памяти от контроллера памяти, встроенного в северный мост материнской платы или в процессор , приходит адрес ячейки памяти и данные для записи. Адрес ячейки преобразуется на две составляющие – номер строки и номер столбца. Номер строки передается в «Дешифратор адреса строки», откуда на нужную строку подается напряжение.

Так как мы рассматриваем запись в ячейку М 11 , то напряжение с дешифратора адреса строки подается на первую строку. В результате, транзисторы VT1, VT2 и VT3 открываются. Аналогичные транзисторы других ячеек памяти, располагающихся в этой строке, также открываются.

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

Параллельно с подачей напряжения на строку матрицы памяти с «Блока работы с данными» будет выдано напряжение, соответствующее записываемым данным, в «Блоки записи 1 - m», а с «Блока дешифровки адреса столбца» на соответствующие столбцы будет выдано разрешение (напряжение, соответствующее логической единице) на запись данных.

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

В нашем случае, запись проводится в ячейку М 11 , и записывается единица. Соответственно, с «Блока работы с данными» будет выдана логическая единица в «Блок записи 1», и с «Блока дешифровки адреса столбца» будет выдана логическая единица в «Блок записи 1».

Рассмотрим работу «Блока записи 1» при таких входных сигналах. И так, на входе элемента D.D3 будет логическая единица, а на выходе – логический ноль, так как элемент D.D3 – инвертер (логический элемент «НЕ»). Соответственно, на входах элемента D.D4 (логический элемент «И») будут: логический ноль и логическая единица. В результате, на выходе этого элемента будет логический ноль.

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

Следовательно, на выходе D1 «Блока записи 1» будет напряжение, соответствующее логическому нулю, а на выходе 1 будет напряжение, соответствующее логической единице. Эти напряжения будут поданы на все ячейки памяти первого столбца. Однако у всех ячеек, кроме первой, транзисторы, разрешающие запись, закрыты, а, следовательно, подаваемое напряжение попадет только на триггер первой ячейки и переведет его в состояние хранения единицы.

После изменения состояния триггера первой ячейки напряжение с первой строки снимается, и транзисторы VT1, VT2 и VT3 закрываются, запрещая запись и чтение из ячейки.

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

В установленном состоянии триггер первой ячейки останется, пока на него будет подаваться питание Uп.

Чтение записи происходит еще проще. От контроллера памяти приходит адрес ячеек памяти, с которых требуется считать данные, и команда на чтение.

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

Рассмотрим случай, когда данные считываются из первой ячейки. В этом случае напряжение с «Дешифратора адреса строки» будет подано в первую строку, что приведет к открытию транзисторов VT1, VT2 и VT3 ячейки М 11 и всех остальных ячеек первой строки. Ток с триггера первой ячейки, через транзистор VT1, беспрепятственно пройдет в «Буфер данных». То же самое произойдет с остальными ячейками первой строки. Считанные с ячеек памяти первой строки данные сохранятся в «Буфере данных».

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

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

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

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

Достоинства:

Недостатки:

  • высокая цена;
  • низкая плотность упаковки;
  • небольшой объем;
  • высокое энергопотребление.

В связи с перечисленными выше достоинствами и недостатками, область применения статической памяти ограничивается, в основном, использованием ее в качестве КЭШ-памяти, что позволяет при небольшом увеличении стоимости уменьшить влияние недостатков динамической памяти на производительность ЭВМ. Однако, это все лишь компромисс, позволяющий несколько сгладить разрыв в производительности процессора и памяти, и все вытекающие отсюда последствия.

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


Лекция № 3 Система памяти ПК

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

3.1. Основная память

Основная память (ОП) предназначена для хранения и оперативного обмена информацией с прочими блоками машины.

ПЗУ (ROM - Read Only Memory) предназначено для хранения неизменяемой (постоянной) программной и справочной информации позволяет оперативно только считывать информацию, хранящуюся в нем (изменить информацию в ПЗУ нельзя).

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

Оперативное запоминающее устройство.

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

Все адресное пространство памяти компьютера разделяется на несколько областей, что связано, в первую очередь, с необходимостью обеспечения совместимости с первыми компьютерами семейства. В компьютере IBM PC XT на процессоре i8088 процессор мог адресовать 1 Мбайт памяти (20 адресных разрядов). Но все программные и аппаратные средства строились исходя из предположения, что доступное адресное пространство - только младшие 640 Кбайт (тогда это казалось вполне достаточным). Данная область памяти получила название стандартной памяти (Conventional memory). Именно в пределах этих 640 Кбайт (адреса 0…9FFFF) работает операционная система MS DOS и все ее прикладные программы.

Первые 1024 байта (адреса 0…3FF) хранят таблицу векторов прерывания (Interrupt Vectors) объемом 256 двойных слов, формируемую на этапе начальной загрузки. Однако если процессор работает в защищенном режиме, таблица векторов может располагаться в любом другом месте памяти.

Адреса 400…4FF отводятся под область переменных BIOS (BIOS Data Area). Подробнее о BIOS будет рассказано в следующем разделе.

Адреса 500…9FFFF включают в себя область операционной системы DOS (DOS Area) и память пользователя (User RAM).

Оставшиеся от 1 Мбайта памяти 384 Кбайта (адреса A0000…FFFFF), зарезервированные под другие системные нужды, называются UMA (Upper Memory Area) - область верхней памяти или UMB (Upper Memory Blocks) - блоки верхней памяти или High DOS Memory.

Пространство видеопамяти (адреса A0000…BFFFF) содержит области для хранения текстовой и графической информации видеоадаптера.

Пространство памяти с адресами E0000…FFFFF отведено под системную постоянную память компьютера ROM BIOS.

В этой же области выделено окно размером в 64 Кбайта (page frame) с адресами D0000…DFFFF, через которое программы могли получать доступ к дополнительной (отображаемой) памяти (Expanded memory) объемом до 32 Мбайт, оставаясь в пределах того же 1 Мбайта адресуемой памяти. Это достигается путем поочередного отображения четырех страниц по 16 Кбайт из дополнительной памяти в выделенное окно. При этом положение страниц в дополнительной памяти можно изменять программным путем. Понятно, что работать с дополнительной памятью менее удобно, чем с основной, так как в каждый момент компьютер «видит» только окно в 64 Кбайт. Поэтому сейчас она применяется довольно редко.

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

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

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

По физическому принципу, заложенному в основу хранения информации, ОЗУ разделяются на статические и динамические.

Статические ОЗУ (Static RAM, SRAM) хранят информацию в неизменном виде с момента ее записи до стирания, перезаписи, или выключения питания. Элементом хранения информации в статических ОЗУ является аналог цифрового триггера (устройства с двумя устойчивыми состояниями).

Динамическое ОЗУ (Dynamic RAM, DRAM) требуем периодического обновления (регенерации) записанной в него информации. Это связано с тем, что принцип работы ячейки динамического ОЗУ подобен конденсатору (см. рис. 3.1.), который может некоторое время сохранять занесенную в него информацию (заряд), но со временем этот заряд уменьшается за счет утечек. Таким образом, чтобы не потерять информацию, конденсатор надо периодически подзаряжать.

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

Объема не пугайтесь -внимательно прочитайте!!

Классификация запоминающих устройств

Запоминающие устройства (ЗУ)-это важнейшая составная часть любого вычислительного устройства, в том числе и построенного на микропроцессорных БИС.

По функциональному назначению все ЗУ, используемые в микропроцессорных системах, можно разделить на следующие группы:

сверхоперативные ЗУ, представляющие собой на­бор регистров, содержимое которых непосредственно используется при обработке информации в микропро­цессоре;

оперативные ЗУ, хранящие оперативную информа­цию (операнды, части программы), требующуюся в процессе работы;

постоянные ЗУ, предназначенные для длительно­го хранения неизменяемой в процессе работы микро- ЭВМ информации (программ, микропрограмм, кон­стант);

полупостоянные ЗУ, которые по выполняемым функциям полностью соответствуют постоянным ЗУ, но отличаются от последних возможностью относи­тельно быстрой смены хранимой в них информации, при необходимости изменения программ или кон­стант, за ограниченное время внешние ЗУ, предназначенные для хранения боль­ших объемов информации с небольшой удельной стои­мостью бита хранимой информации;

буферные ЗУ, предназначенные для согласования различных уровней системы памяти микроЭВМ меж­ду собой и внешних устройств с системой памяти.

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

По способу организации обмена ин­формацией между отдельными ЗУ и микропро­цессорами различают ЗУ: с произвольной выборкой (ЗУПВ); с последовательным обращением (ЗУПО); с последовательно-параллельной организацией об­мена.

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

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

    Емкость ЗУ определяется максимально воз­можным количеством битов хранимой информации.

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

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

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

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

    Надежность, а для систем специального назна­чения- массогабаритные показатели и потребляемая мощность являются для ЗУ существенными характе­ристиками.

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

Для микропроцессорных систем наиболее харак­терно использование оперативных запоминающих устройств на МОП-транзисторах. Существует два способа построения интегральных схем памяти по МОП-технологии, в зависимости от которых память на МОП-структурах может быть статической или ди­намической. Статическая память проще с точки зрения организации, что особенно явно при запоминающих устройствах небольшого объема. Управлять ста­тической памятью легче. Интегральные схемы, применяемые для построения динамической памяти, относительно дешевы, но для организации ее работы необходимы дополнительные микросхемы. Кроме то­го, содержимое микросхем динамической памяти не­обходимо периодически регенерировать. На динами

ческом принципе строятся запоминающие устройства большого объема.

В некоторых микропроцессорных системах нахо­дят применение еще два вида полупроводниковой па­мяти: на приборах с зарядовой связью (ППЗС) и на цилиндрических магнитных доменах (ПЦМД). Оба ти­па памяти ориентированы на последовательный до­ступ. Как и другие устройства последовательного до­ступа, они имеют невысокое быстродействие, однако, позволяют реализовать запоминающие устройства значительно большего объема, чем устройства памяти на биполярных и МОП-транзисторах.

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

Для ПЦМД требуется гораздо большее число вспомогательных схем, чем для памяти на приборах с зарядовой связью, но она является энергонезависи­мой. Таким образом, этот тип памяти позволяет реа­лизовать энергозависимые запоминающие устройства большого объема, для которых не требуются сложные механические лентопротяжные механизмы и диско­воды.

В последующих параграфах рассматриваются ос­новные типы запоминающих устройств микропроцес­сорных систем и их характеристики.

§ 3.2. Оперативные запоминающие устройства

По принципу хранения информации полупровод­никовые оперативные ЗУ делятся на динамические и статические.

Динамические запоминающие уст­ройства строятся на основе запоминающего элемента, сохраняющего свое состояние только опреде­ленный промежуток времени и поэтому требующего периодического восстановления. Запоминающим эле­ментом динамических полупроводниковых ЗУ служит конденсатор, в котором информация хранится в фор­ме наличия или отсутствия заряда. Из-за утечек по­степенно уменьшается заряд на запоминающем конденсаторе; для восстановления заряда запоминающий конденсатор периодически подключают к источнику питания.

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

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

Схемы управления ЗУ (мультиплексор, управ­ление регенерацией) могут быть выполнены на стан­дартных или специализированных ИС.

Недостаток динамических ЗУ - необходимость ре­генерации- компенсируется большей, чем в статиче­ских ЗУ, информационной емкостью.

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

Ячейка памяти статического ЗУ представляет со­бой обычный триггер. Он может быть установлен ли­бо в состояние «1», либо в состояние «О». Если триг­гер установлен в «1», то это состояние сохраняется до тех пор, пока не будет произведен сброс триггера или не будет выключено питание.

Часто разрядность шины адреса микроЭВМ боль­ше разрядности ее шины данных. Так, в 8-разрядной микроЭВМ применение 16-разрядного адреса обеспе­чивает адресацию 65536 байт памяти. Два байта на­зывают младшим и старшим байтами адреса. Млад­шие разряды адреса А( > ...А^ называют адресом слова (байта), а старшие разряды А 8 ...А ]5 называют адре­сом страницы Таким образом, можно адресовать 256 страниц по 256 слов (байт) в каждой.

Типичные БИС динамического ОЗУ: КР565РУ6 - емкость 16384X1 бит; К565РУ5 - емкость 65536x1 бит.

Типичные БИС статического ОЗУ: КР537РУ14 - емкость 4096Х 1 бит; КР132РУ6А - емкость 16384Х XI бит; К537РУ9 - емкость 2048x8 бит;

Введение

Статические ЗУ

Статическая память

Статические оперативные запоминающие устройства

Заключение

Введение

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

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

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

Иногда для характеристики ЗУ пользуются обобщающим параметром - информационной мощностью

МF(в лучших современных ЗУ она достигает 1013 байт/сек).

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

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

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

Для хранения больших массивов информации чаще всего применяют т. н. внешние ЗУ с записью на магнитных носителях: магнитные ленты, барабаны, диски. Путём параллельного подключения нескольких блоков ЗУ можно хранить теоретически неограниченные объёмы информации. Ёмкость современных внешних ЗУ на магнитных лентах достигает 108 байт (с подключением до 256 блоков), на магнитных дисках - до 6-108 байт; скорость ввода (вывода) 3,2-105 байт/сек для ЗУ на магнитных лентах и 2-106 байт/сек для ЗУ на магнитных дисках.

В ЦВМ для хранения данных, необходимых на ближайших этапах решения задачи, служат оперативные ЗУ, которые, как правило, строятся на тороидальных ферритовых сердечниках (до 95% всех оперативных ЗУ), реже - на др. ферромагнитных элементах (например, многоотверстных ферритовых пластинах, магнитных тонких плёнках. Весьма перспективными считаются интегральные полупроводниковые ЗУ. Ёмкость оперативных ЗУ в современных крупных ЦВМ достигает 16-106 байт; время записи и считывания (выборки) составляет от сотых долей мксек до нескольких мксек.

В больших ЦВМ в отдельный блок часто выделяют буферное ЗУ, выполняющее функции промежуточного звена при обмене информацией между устройствами с различным быстродействием (например, между оперативным и внешним ЗУ), а иногда и сверхоперативное ЗУ небольшой ёмкости (порядка нескольких сотен байт). Сверхоперативные ЗУ выполняются на запоминающих элементах повышенного быстродействия (например, тонких магнитных плёнках, туннельных диодах, триггерах). Для хранения данных, состав которых в процессе обработки определённого типа информации или решения одного класса задач не меняется (например, табличные данные, стандартные подпрограммы, неизменные программы управляющих вычислительных машин), применяют постоянные запоминающие устройства.

ЗУ адресного типа включают собственно накопитель 1, числовую часть 2, адресную часть 3 и блок местного управления или синхронизации 4. Накопитель состоит из запоминающих ячеек и выполняет функции хранения информации. Числовая часть или схема записи - считывания представляет собой промежуточное звено, в котором происходит обмен информацией между накопителем и внешними по отношению к ЗУ устройствами. Она состоит из регистра числа для временного хранения записываемых или считываемых слов (чисел); формирователей записи, преобразующих код числа в серию сигналов, фиксируемых ячейками накопителя; усилителей считывания для усиления, отделения от помехи и формирования считанных сигналов. В адресной части ЗУ заданный код адреса преобразуется в совокупность сигналов, однозначно определяющих требуемую ячейку накопителя. Блок синхронизации формирует внутренние команды, обеспечивающие управление последовательностью работы всех узлов ЗУ в соответствии с поступающими извне командами. Совокупность всех блоков ЗУ, за исключением накопителя, называется электронной схемой управления, периферийным оборудованием или электронным обрамлением ЗУ.

1. Статические ЗУ

Статическими называются такие ЗУ, в которых состояния носителя, соответствующие записанному коду, неподвижны относительно носителя информации.

В статических ЗУ (Static Random Access Memory - SRAM) в качестве элемента памяти используется триггер, что, конечно, сложнее, чем конденсатор с транзисторным ключем динамического ЗУ. Поэтому статические ЗУ обладают меньшей плотностью хранения информации: емкость типовых микросхем статических ЗУ начала 2000-х годов не превосходила 16 Мбит.

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

Главными недостатками статической памяти являются ее относительно высокие стоимость и энергопотребление.

Конечно, в зависимости от используемой технологии, память будет обладать различным сочетанием параметров быстродействия и потребляемой мощности. Например, статическая память, изготовленная по КМОП-технологии (CMOS память), имеет низкую скорость доступа, со временем порядка 100 нс, но зато отличается очень малым энергопотреблением. В ПЭВМ такую память применяют для хранения конфигурационной информации компьютера при выключенном напряжении сети (в этой же микросхеме размещают и часы, отсчитывающие реальное время). Питание такой памяти осуществляется от небольшой батарейки, которая может служить несколько лет.

Основными разновидностями статической памяти (SRAM) с точки зрения организации ее функционирования являются асинхронная (Asynchronous), синхронная пакетная (Synchronous Burst) и синхронная конвейерно-пакетная (Pipeline Burst) память.

Первой появилась асинхронная память, Интерфейс этой памяти включает шины данных, адреса и управления. В состав сигналов последней входят: CS# (Chip Select) - сигнал выбора микросхемы; WE# (Write Enable) - сигнал разрешения записи; OE# (Output Enable) - сигнал включения выходов для выдачи данных.

Все сигналы управления инверсные, т.е. их активный (вызывающий соответствующее действие) уровень низкий. При единичном значении сигнала OE# выход микросхемы переходит в состояние высокого выходного сопротивления.

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

Время доступа tAC у типовых микросхем составляет порядка 10 нс. Поэтому реально такие микросхемы могут работать на частотах, близких к частоте системной шины, только если эти частоты не превышают 66 МГц.

Несколько позже появилась синхронная пакетная статическая память (SBSRAM), ориентированная на выполнение пакетного обмена информацией, который характерен для кэш-памяти. Эта память включает в себя внутренний счетчик адреса, предназначенный для перебора адресов пакета, и использует сигналы синхронизации CLK, как и синхронная DRAM память.

Для организации пакетного обмена, помимо имеющихся у асинхронной памяти управляющих сигналов CS#, OE# и WE#, в синхронную память также введены сигналы ADSP# (Address Status of Processor) и CADS# (Cache Address Strobe), сопровождающие передачу адреса нового пакета, а также сигнал ADV# (Advance) продвижения на следующий адрес пакета. Пакетный цикл всегда предусматривает передачу четырех элементов, так как внутренний счетчик имеет всего 2 бита, причем перебор адресов в пределах пакета может быть последовательным или с расслоением (чередованием) по банкам (при использовании процессоров семейства x86).

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

Статическая память

Следующим шагом в развитии статической памяти явилась конвейерно-пакетная память PBSRAM, обеспечивающая более высокое быстродействие, чем SBSRAM. В нее были введены дополнительные внутренние буферные регистры данных (здесь можно провести аналогию с EDO DRAM памятью) адреса, а в ряде модификаций предусмотрена возможность передачи данных на двойной скорости по переднему и заднему фронтам синхросигнала и используются сдвоенные внутренние тракты записи и чтения. Это позволило получить время обращения порядка 2-3 нс и обеспечить передачу данных пакета без задержек на частотах шины более 400 Мгц.

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

Структурная схема такой памяти приведена на следующем рисунке, где ФАП - блок формирования адресов пакета, МП - мультиплексоры, переключающие внутренние тракты чтения и записи в соответствии со значением младшего разряда адреса A0.


Временная диаграмма, приведенная на следующем рисунке, показывает запись и чтение как на одиночной (SDR - Single Data Rate), так и на двойной скорости (DDR - Double Data Rate) передачи. Сигналы CQ и CQ# - дифференциальные выходные сигналы синхронизации, близкие по времени к моменту появления данных на шине при чтении и используемые для синхронизации принимающих устройств. Сигналы SA и B - адресные и управляющие сигналы соответственно, причем последние используются для задания типа цикла. В режиме чтения с двойной скоростью передачи формируются два набора данных, начиная со второго переднего и заднего фронтов синхросигнала, если по его первому переднему фронту передается начальный адрес пакета. Первый набор данных (DOUT-A) формируется для заданного адреса, а второй (DOUT-A") - для следующего адреса пакета, в соответствии с определенным для пакета порядком.

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

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

Переключение из режима двойной скорости в режим одиночной (и наоборот) производится при подаче соответствующего управляющего сигнала.

Статические оперативные запоминающие устройства

В радиоаппаратуре часто требуется хранение временной информации, значение которой не важно при включении устройства. Такую память можно было бы построить на микросхемах EEPROM или FLASH -памяти, но, к сожалению, эти микросхемы дороги, обладают малым количеством перезаписей и чрезвычайно низким быстродействием при считывании и особенно записи информации. Для хранения временной информации можно воспользоваться параллельными регистрами. Так как запоминаемые слова не нужны одновременно, то можно воспользоваться механизмом адресации, который применяется в ПЗУ.

Схемы, в которых в качестве запоминающей ячейки используется параллельный регистр называются статическим оперативным запоминающим устройством - статическим ОЗУ (RAM - random access memory - память с произвольным доступом), т.к. информация в нем сохраняется все время, пока к микросхеме ОЗУ подключено питание. В отличие от статической ОЗУ в микросхемах динамического ОЗУ постоянно требуется регенерировать их содержимое, иначе информация будет испорчена.

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

Структурная схема статического ОЗУ приведена на рисунке 1. Вход и выход ОЗУ в этой схеме объединены при помощи шинного формирователя. Естественно, что схемы реальных ОЗУ будут отличаться от приведенной на этом рисунке. Тем не менее, приведенная схема позволяет понять как работает реальное ОЗУ. Условно-графическое обозначение ОЗУ на принципиальных схемах приведено на рисунке 2.

Рисунок 1. Структурная схема ОЗУ (RAM).

Рисунок 2. Условно-графическое обозначение ОЗУ (RAM)

Сигнал записи WR позволяет записать логические уровни, присутствующие на информационных входах во внутреннюю ячейку ОЗУ (RAM). Сигнал чтения RD позволяет выдать содержимое внутренней ячейки памяти на информационные выходы микросхемы. В приведенной на рисунке 1 схеме невозможно одновременно производить операцию записи и чтения, но обычно это и не нужно.

Конкретная ячейка ОЗУ выбирается при помощи двоичного кода - адреса ячейки. Объем памяти ОЗУ (RAM) зависит от количества ячеек, содержащихся в ней или, что то же самое, от количества адресных проводов. Количество ячеек в ОЗУ можно определить по количеству адресных проводов, возводя 2 в степень, равную количеству адресных выводов в микросхеме:

Вывод выбора кристалла CS микросхем ОЗУ позволяет объединять несколько микросхем для увеличения объема памяти ОЗУ. Такая схема приведена на рисунке 3.

Рисунок 3. Схема ОЗУ, построенного на нескольких микросхемах памяти.

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

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

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

Рис. 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. Типы запоминающих устройств.