Синхронные динамические озу. Цифровая электроника

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

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

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

Большинство из применяемых в настоящее время типов микросхем оперативной памяти не в состоянии сохранять данные без внешнего источника энергии, т.е. являются энергозависимыми (volatile memory). Широкое распространение таких устройств связано с рядом их достоинств по сравнению с энергонезависимыми типами ОЗУ (non-volatile memory): большей емкостью, низким энергопотреблением, более высоким быстродействием и невысокой себестоимостью хранения единицы информации.

Энергозависимые ОЗУ можно подразделить на две основные подгруппы: динамическую память (DRAM - Dynamic Random Access Memory) и статическую память (SRAM - Static Random Access Memory).

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

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

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

Рис. 5.7. Запоминающий элемент статического ОЗУ

Запоминающий элемент динамической памяти значительно проще. Он состоит из одного конденсатора и запирающего транзистора (рис. 5.8).

Рис. 5.8. Запоминающий элемент динамического ОЗУ

Наличие или отсутствие заряда в конденсаторе интерпретируются как 1 или 0 соответственно. Простота схемы позволяет достичь высокой плотности размещения ЗЭ и, в итоге, снизить стоимость. Главный недостаток подобной технологии связан с тем, что накапливаемый на конденсаторе заряд со временем теряется. Даже при хорошем диэлектрике с электрическим сопротивлением в несколько тераом (10 12 Ом) используемом при изготовлении элементарных конденсаторов ЗЭ, заряд теряется достаточно быстро. Размеры у такого конденсатора микроскопические, а емкость имеет порядок 1СГ 15 Ф. При такой емкости на одном конденсаторе накапливается всего около 40 000 электронов. Среднее время утечки заряда ЗЭ динамической памяти составляет сотни или даже десятки миллисекунд, поэтому заряд необходимо успеть восстановить в течение данного отрезка времени, иначе хранящаяся информация будет утеряна. Периодическое восстановление заряда ЗЭ называется регенерацией и осуществляется каждые 2-8 мс,

В различных типах ИМС динамической памяти нашли применение три основных метода регенерации:

Одним сигналом RAS (ROR - RAS Only Refresh);

Сигналом CAS, предваряющим сигнал RAS (CBR - CAS Before RAS);

Автоматическая регенерация (SR - Self Refresh).

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

Особенность метода CBR в том, что если в обычном цикле чтения/записи сигнал RAS всегда предшествует сигналу CAS, то при появлении сигнала CAS первым начинается специальный цикл регенерации. В этом случае адрес строки не передается, а микросхема использует свой внутренний счетчик, содержимое которого увеличивается на единицу при каждом очередном CBR-цикле. Режим позволяет регенерировать память, не занимая шину адреса, то есть более эффективен.

Автоматическая регенерация памяти связана с энергосбережением, когда система переходит в режим «сна» и тактовый генератор перестает работать. При отсутствии внешних сигналов RAS и CAS обновление содержимого памяти методами ROR или CBR невозможно, и микросхема производит регенерацию самостоятельно, запуская собственный генератор, который тактирует внутренние цепи регенерации.

Область применения статической и динамической памяти определяется скоростью и стоимостью. Главным преимуществом SRAM является более высокое быстродействие (примерно на порядок выше, чем у DRAM). Быстрая синхронная SRAM может работать со временем доступа к информации, равным времени одного тактового импульса процессора. Однако из-за малой емкости микросхем и высокой стоимости применение статической памяти, как правило, ограничено относительно небольшой по емкости кэш-памятью первого (L1), второго (L2) или третьего (L3) уровней. В то же время самые быстрые микросхемы динамической памяти на чтение первого байта пакета все еще требуют от пяти до десяти тактов процессора, что замедляет работу всей ВМ. Тем не менее благодаря высокой плотности упаковки ЗЭ и низкой стоимости именно DRAM используется при построении основной памяти ВМ.

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

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

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

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

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

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

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

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

Возможны три различных метода регенерации данных.

Регенерация одним RAS (RAS Only Refresh - ROR). Этот метод использовался еще в первых микросхемах DRAM. Адрес регенерируемой строки передается на шину адреса и выдается сигнал RAS (точно так же, как при чтении или записи). При этом выбирается строка ячеек, и данные из них поступают на внутренние цепи микросхемы, после чего записываются обратно. Так как далее сигнал CAS не следует, цикл чтения/записи не начинается. Затем передается адрес следующей строки и так далее, пока не будет пройдена вся матрица памяти, после чего цикл регенерации повторяется. К недостаткам этого метода можно отнести то, что занимается шина адреса, и в момент регенерации блокируется доступ к другим подсистемам компьютера.
CAS перед RAS (CAS Before RAS - CBR) - стандартный метод регенерации. При нормальном цикле чтения/записи сигнал RAS всегда приходит первым, за ним следует CAS. Если же CAS приходит раньше RAS, то начинается специальный цикл регенерации - CBR. При этом адрес строки не передается, а микросхема использует свой внутренний счетчик, содержимое которого увеличивается на 1 при каждом CBR-цикле (т.н. инкрементирование адреса строки). Этот режим позволяет регенерировать память, не занимая шину адреса, что, безусловно, более экономично.
Автоматическая регенерация памяти (Self Refresh - SR, или саморегенерация). Этот метод обычно используется в режиме энергосбережения, когда система переходит в состояние "сна" ("suspend"), и тактовый генератор перестает работать. В таком состоянии обновление памяти по вышеописанным методам невозможно (попросту отсутствуют источники сигналов), и микросхема памяти выполняет регенерацию самостоятельно. В ней запускается свой собственный генератор, который тактирует внутренние цепи регенерации. Такая технология работы памяти была внедрена с появлением EDO DRAM. Необходимо отметить, что в режиме "сна" память потребляет очень малый ток.
В классической реализации PC AT запросы на регенерацию DRAM генерировал канал 1 системного таймера 8254. К его выходу подключен триггер, работающий в счетном режиме и меняющий свое состояние на противоположное при каждом запросе. Состояние этого триггера можно программно считывать через бит 4 порта 61h. Проверка Refresh Toggle заключалась в проверке того факта, что этот триггер переключается с заданной частотой. Но со временем стали применяться другие алгоритмы регенерации памяти (что и изложено выше), и несмотря на то, что Refresh Toggle сохраняется для совместимости, по нему уже нельзя проверить формирование запросов на регенерацию. Циклы регенерации выполняет входящий в состав чипсета контроллер регенерации, который для выполнения своей задачи должен получать управление магистралью каждые 15,6 мкс. Во время цикла регенерации производится чтение одной из N ячеек памяти.

Burst Refresh

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

CAS Before RAS Refresh

Метод регенерации памяти, когда сигнал CAS устанавливается раньше сигнала RAS. В отличие от стандартного способа регенерации, этот метод не требует перебора адресов строк извне микросхем памяти - используется внутренний счетчик адресов. Однако, этот способ регенерации должен поддерживаться микросхемами памяти. Если раньше можно было встретить фразы, что большинство модулей памяти поддерживает такой метод регенерации, то сейчас это уже стандартное аппаратное решение. Использование этого метода позволяет заметно снизить потребляемую модулями памяти энергию. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Опция может называться "CAS Before RAS".

CAS-to-RAS Refresh Delay

Действие этой опции возможно при включенном состоянии предыдущей (или аналогичной), так как в данном случае устанавливается время задержки между стробирующими сигналами (в тактах системной шины). Естественно, что установка меньшего значения приводит к снижению времени, затрачиваемого на регенерацию. Большее же значение повышает надежность, т.е. достоверность данных, находящихся в памяти. Оптимальный вариант для данной системы выбирается опытным путем. Может принимать значения: "1T", "2T" (по умолчанию).

Concurrent Refresh

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

Decoupled Refresh

- (раздельная регенерация). Поскольку ISA-шина имеет невысокую скорость работы, то включение этой опции ("Enabled") позволит чипсету разделить регенерацию для основной памяти и ISA-шины. При этом процесс регенерации для ISA-шины может быть завершен во время выполнения процессором других инструкций. Использование этой опции заметно увеличивает производительность всей системы. Опция эта играла заметную роль во времена 486-х машин.
Но могла возникнуть и проблема, которая заключалась в том, что некоторые карты расширения (обычно, видеокарты) требовали к себе внимания процессора во время начального цикла регенерации шины. Естественно, что это могло привести к нежелательным сбойным ситуациям. Отключение опции могло потребоваться также, если при работе с графическими режимами высокого разрешения на экране монитора появлялись какие-то символы или "снег". При этом необходимо было отключать и такой метод работы с памятью, как "Memory Relocation" (см. выше). Сказанное выше было характерно, например, для видеокарт на чипе S3 801 (таких, как SPEA V7 Mirage), работающих совместно с некоторыми картами-контроллерами производства "Adaptec" с расширенной ROM-памятью, необходимой для обслуживания жестких дисков объемом свыше 1 ГБ.
Опция может называться "Decoupled Refresh Option".

Distributed Refresh

- (распределенная регенерация). Не совсем ясно, что "прячется" под этой опцией, хотя есть предположение, что это аналог "раздельной регенерации". В свое время данную опцию можно было встретить в системах на чипсетах от "VIA Technologies". Значения опции: "Disabled" и "Enabled".

DRAM Ahead Refresh

Опция, позволяющая включать ("Enabled") режим "предвидения" для цикла регенерации. Суть этого "предвидения" станет более понятна из следующей опции, которая становится активной при включении разрешения.
x DRAM Ahead Refresh Timing
- данная же опция по сути позволяет "отодвинуть" начало цикла регенации на 10 или 40 системных тактов. Небольшое, но все же повышение производительности. Столь уникальные опции были реализованы в системах на наборе SIS540 и более пока нигде не встречались.

DRAM Burst at 4 Refresh

Эта опция также связана с пакетной регенерацией, но суть ее иная. Разрешение опции ("Enabled") включает регенерацию по 4 строки в пакете. Такой метод заметно повышает производительность. При этом шина освобождается намного быстрее, чем в случае с опцией "Burst Refresh".

DRAM CAS# Precharge

- (время предварительного заряда CAS). Эта функция применяется при наличии в системе синхронной динамической памяти, и с ее помощью устанавливается (в тактах системной шины) время для формирования сигнала CAS (накопления заряда по CAS) до начала цикла регенерации памяти (см. ниже дополнительно "DRAM RAS# Precharge Time"). Уменьшение этого значения увеличивает быстродействие, но возможны проблемы со стабильностью системы, если в то же время установлены "пограничные" значения для RAS-строба. Если установлено слишком малое значение (время), также и регенерация может оказаться незавершенной, что в итоге приведет к потере данных, находящихся в памяти.
Опция может иметь наименования: "CAS# Precharge", "CAS# Precharge Time", "FPM CAS# Precharge", "FPM DRAM CAS Precharge", "EDO/FPM CAS Precharge Time", "EDO CAS# Precharge", "EDO DRAM CAS Precharge".
Большим разнообразием значений все перечисленные опции не отличаются. "1T", "2T" или такой ряд: "1T", "1T/2T", "2T". Некоторое разнообразие внесла опция "CAS Precharge Period": "1T", "2T", "3T", "4T".

DRAM RAS Only Refresh

Включение/отключение метода обновления DRAM, альтернативного методу "CAS-before-RAS". Если BIOS содержит другие возможности по регенерации памяти, то эту опцию необходимо отключить. В противном случае придется использовать этот устаревший метод обновления памяти.

DRAM RAS# Precharge Time

- (время предварительного заряда RAS). Эта функция применяется при наличии в системе синхронной динамической памяти и она позволяет устанавливать время (в тактах системной шины) для формирования сигнала RAS (иногда говорят о накоплении заряда по RAS) до начала цикла регенерации памяти. Фактически, тем самым устанавливается минимальный интервал между двумя последовательными циклами чтения или записи. Уменьшение этого значения увеличивает быстродействие. Но если установлено недостаточное время, регенерация может быть некомплектной, что в итоге приведет к потере данных, находящихся в памяти. Естественно, что за повышением частоты, на которой работает память, следует и выбор большего значения, что важно при разгоне памяти. Возможные значения могут быть представлены в различном виде: в виде цифровых значений - "3", "4" и т.д.; с указанием системных тактов - "3 Clocks" или "1T". А обобщенный ряд значений имеет следующий вид: 0T, 1T, 2T, 3T, 4T, 5T, 6T, хотя в каждом конкретном варианте может быть представлено 2-4 значения.
Опция может иметь множество названий: "DRAM RAS# Precharge Period", "RAS# Precharge Time", "RAS Precharge Timing", "RAS# Precharge Period", "FPM DRAM RAS# Precharge", "FPM RAS Precharge", "RAS# Precharge", "DRAM RAS Precharge", "EDO RAS Precharge", "EDO RAS# Precharge Time", "EDO RAS Precharge Timing", "FPM/EDO RAS# Precharge Time", "EDO/FPM RAS Precharge Time".
Как видим, опция не потеряла своей актуальности с появлением EDO-памяти и, что интересно, затем также BEDO- и SDRAM- модулей, поскольку данный параметр является одной из важнейших характеристик чипов памяти: "BEDO RAS Precharge", "SDRAM RAS Precharge Time".
Правда, кроме привычных параметров типа "3T" или "2 Clks" (эти значения и характерны для SDRAM-модулей) в различных версиях BIOS стали "встречаться" новые виды значений, таких как: "Same as FPM" и "FPM-1T", "Fast" и "Normal", "Fast" и "Slow". Для последней пары параметров "Slow" (медленно) равносильно увеличению количества тактов, что повышает стабильность работы системы, поэтому значение "Fast" следует устанавливать в случае уверенности в качестве модулей памяти. Что же касательно первой пары, то для опций вида "FPM DRAM RAS# Precharge" ряд значений мог иметь вид: 2T, 3T, 4T, 5T, 6T, а отсюда и возможный результат для SDRAM-памяти, хотя совершенно не очевидный.
Вполне возможна и ситуация, когда версия BIOS предоставляет возможность установки каких-либо параметров для каждого банка памяти в отдельности. Поскольку речь идет о "предзаряде" для RAS#-строба, то опция (опции!) может называться "Bank 0&1 (2&3)(4&5): EDO/SDRAM Precharge" со значениями: "3T/2T", "4T/3T".
"AMI BIOS" для "своей" опции "SDRAM RAS# Precharge" предложил дополнительное значение "Auto". Правда, один из вариантов опции "SDRAM RAS Precharge" представил и значения "Disabled"/"Enabled". Запрещать опцию можно только в случае абсолютной уверенности в модулях памяти, иначе неприятностей не избежать. Раз коснулись возможности запрещать/разрешать механизм предзаряда, то нужно отметить и возможность включать ("Enabled") оптимизацию предзаряда - "SDRAM: Optimal RAS# Prech.".
Для данной опции (опций!) необходимо отметить пару важных моментов. Нельзя путать данную опцию с опциями типа "Refresh RAS Active Time", которые отвечают за длительность сигнала RAS#. В нашем случае речь идет как бы о подготовительном процессе. И второе! Данную опцию совершенно правильно было бы разместить и в разделе, посвященном стандартной оптимизации памяти (см. ниже). Процедуры выставления сигнала RAS# и при регенерации, и при операциях чтения/записи идентичны.
В завершение вышесказанного опция "RAS# Precharge/Refresh" со значениями "3T/4T" и "4T/5T". Данной опцией устанавливаются одновременно и время подготовительной фазы, и общее время активности сигнала RAS# для цикла регенерации.

DRAM Refresh Method

Опция установки метода регенерации. Опция может называться также "Refresh Type", "DRAM Refresh Type", "DRAM Refresh Mode" или "Refresh Type Select". При любых вариациях опция, как правило, среди возможных параметров содержит только два параметра. Приводим весь возможный ряд: "CAS before RAS" (или "CAS-RAS"), "RAS only", "RAS# Before CAS#", "Normal", "Hidden".

DRAM Refresh Period

Установка периода (частоты повтора), требуемого для регенерации памяти, в соответствии со спецификацией модулей памяти. В новейших версиях BIOS такая опция может и не присутствовать, хотя ее наличие в современной системе по прежнему позволяет оптимизировать процесс регенерации. Ранее такая опция предлагала пользователю широкий простор для творчества: в зависимости от версии BIOS и его производителя, чипсета, модулей памяти. Опция могла также носить название "Refresh Cycle Time (us)", "DRAM Refresh Cycle Time", "Memory Refresh Rate", "DRAM Refresh Rate Select", "DRAM Refresh Rate","SDRAM Refresh Rate" или просто - "DRAM Refresh". Вот неполный перечень значений, с которыми мог встретиться пользователь:
"For 50 MHz Bus", "For 60 MHz Bus", "For 66 MHz Bus", "Disabled" (такой необычный вариант встретился в системе на i430FX),
"50/66 MHz", "60/60 MHz", "66/66 MHz",
"15 us", "30 us", "60 us", "120 us",
"Disabled" (или "No Refresh"), "15.6 us", "31.2 us", "62.4 us", "124.8 us", "249.6 us",
"15.6 us", "31.2 us", "62.4 us", "125 us", "250 us",
"15.6 us", "62.4 us", "124.8 us", "187.2 us",
"1040 Clocks", "1300 Clocks",
"15.6 us", "7.9 us", "FR 128 CLKs" (понятно, что речь идет о частоте - "frequency"),
"Disabled", "Normal",
"Fast", "Slow",
"Faster", "Slower",
"Disabled" (устанавливаются стандартные 15,6 мкс), "Enabled" (соответствует удвоению частоты).
Остается отметить, что чем реже производится регенерация памяти, тем эффективнее работает система. Но если явно наблюдаются нарушения в работе системы, то частоту обновления необходимо повысить. Значение "Disabled", появляющееся в некоторых версиях, не должно использоваться. В противном случае следует ожидать потери информации в памяти. И наконец, если пользователь видит на экране перед собой целый ряд значений для выбора, то это может означать, что в состав чипсета входит специальный конфигурационный регистр, в котором три разряда (или менее) "отданы" под возможные комбинации устанавливаемой частоты.
Как дополнение к изложенному рассмотрим еще некоторые опции и чипсеты, для которых они были реализованы:
"DRAM Refresh Ratery Time" (SIS530) - "15.6 us", "7.8 us", "3.9 us",
"Refresh Rate" (AMD751) - "20.4 us", "15.3 us", "10.2 us", "5.1 us".
Опция "Refresh Mode Select", несмотря на некоторое несоответствие в названии, предложила значения "7.8 ?sec", "15.6 ?sec", "64 ?sec", а опция "Refresh Interval" - "7.8 ?sec", "15.6 ?sec", "31.2 ?sec", "64 ?sec", "128 ?sec".
Вот тут и может возникнуть, с одной стороны, мнимое несоответствие, а с другой, некоторое непонимание сути представленных опций. Ведь в названиях опций упоминаются и "частота", и "период", и "интервал", и "время цикла". Поэтому требуется дополнительное разъяснение.
Понятно, что одновременно регенерировать всю динамическую память невозможно. Допустимо также говорить о построчной регенерации матрицы памяти (об этом см. выше). Тогда можно ввести сразу два понятия. Первое - временной интервал между регенерацией, например, соседних строк. Второе - время полного цикла регенерации, т.е. время, через которое необходимо будет снова регенерировать условную начальную строку. "Обычный" чип памяти содержит 4096 строк. Можно утверждать, что общее время цикла регенерации составляет 64 мсек (один из стандартов JEDEC). И тогда упомянутый интервал (период) регенерации составляет:
64000: 4096 = 15.6 ?sec.
Это означает, что каждые 15,6 мкс контроллер памяти инициирует цикл регенерации отдельной строки памяти. И это значение характерно для тех же модулей DIMM емкостью 128 Mbit или меньше. Если же речь идет о модулях емкостью 256 Mbit и более, то количество строк составит 8192 и интервал регенерации 7.8 ?sec, обусловленный сохранением времени общего цикла в 64 мсек. Если же в системе используются модули различной емкости, то временная характеристика регенерации устанавливается по модулю большей емкости, т.е. с более высокой частотой.
Необходимо отметить, что применявшиеся ранее модули памяти во многих случаях позволяли удлинить цикл регенерации, т.е. увеличить ее интервал, тем самым несколько повышая производительность системы.
И, конечно же, картина была бы неполной, если бы мы не вспомнили о RAMBUS DRAM . Мы не будем детально останавливаться на архитектуре этого типа памяти, напомним только, что структура и организация банков памяти носит многоканальный характер. Причем каждый канал данных представляет собой шину шириной всего в один (!) байт. Но за счет высокопроизводительного конвейера, высокоскоростной внутренней магистрали, синхронизируемой собственным тактовым генератором, пропускная способность шины памяти уже доведена до 3,2 ГБ/сек. Ну а теперь опция - "RDRAM Refresh Rate, Channel N", и ее значения: "No refresh", "1.95 us", "3.9 us", "7.8 us".

DRAM Refresh Queue

Этот параметр во включенном состоянии допускает использование более эффективного метода обновления памяти. Дело в том, что чипсет способен формировать последовательность нескольких запросов обновления памяти, пока шина процессора не будет готова к выполнению следующей операции. Речь здесь идет об использовании режима конвейеризации запросов на регенерацию памяти. "Enabled" разрешает постановку в очередь, как правило, 4 запросов регенерации памяти. Установка в "Disabled" означает отключение конвейеризации, что естественно снижает эффективность и приводит к проведению всех циклов регенерации либо по приоритету запросов, либо в соответствии с методами, изложенными в других опциях.
Данный режим должен быть всегда включен. "Enabled" устанавливается и по умолчанию. Одно условие! Установленные модули памяти должны поддерживать это свойство, большинство современных типов памяти поддерживают этот метод. Более того! Использование столь эффективного метода регенерации зависит и от реализации чипсетом таких функций, и от версии BIOS. В таком явном, "пользовательском", виде такая опция повстречалась в "AMI BIOS".
Опция может называться также "DRAM Refresh Queing".

DRAM Refresh Queue Depth

Данная опция позволяет установить степень ("глубину") конвейеризации, т.е. количество возможных ступенек конвейера. Чем выше это число, тем большее количество запросов на регенерацию в данное время находится в обработке. Возможные значения, что естественно зависит от указанных выше реализаций и возможностей, имеют вид:
"0" (равносильно "Disabled"), "4", "8", "12" (по умолчанию).
Опция может называться также "Refresh Queue Depth".

Extended Refresh

- (расширенная регенерация). Введение (в свое время) этой опции в BIOS предполагало использование специальных EDO-чипов. Регенерация содержимого ячеек EDO DRAM при этом стала производиться через 125 мкс, а не через каждые 15,6 мкс, как при стандартной регенерации. Это несколько повысило общее быстродействие памяти.

Fast DRAM Refresh

- (быстрая регенерация DRAM). Контроллер памяти предоставляет два режима регенерации памяти: стандартный (Normal) и скрытый (Hidden). В каждом из режимов CAS-строб выставляется перед RAS-сигналом, однако в режиме "Normal" для каждого строб-импульса выделяется дополнительный такт процессора. Это старый метод обновления памяти, и поэтому имеет смысл установить значение данного параметра в "Hidden", который обеспечивает и повышенное быстродействие, и большую эффективность (см. ниже), также и по причине того, что CAS-строб может и не выставляться - быть "скрытым".

Hidden Refresh

- (скpытая pегенеpация). Когда установлено значение "Disabled", память регенерируется по IBM AT методологии, используя циклы процессора для каждой регенерации. Когда опция "Hidden Refresh" установлена в "Enabled", контроллер памяти "ищет" наиболее удобный момент для регенерации, независимо от циклов CPU. При этом регенерация происходит одновременно с обычным обращением к памяти. Алгоритм регенерации памяти при этом многовариантен: разpешаются циклы pегенеpации в банках памяти, не используемых центральным процессором в данный момент, взамен или вместе с ноpмальными циклами регенерации, выполняемыми всякий pаз (каждые 15 мс) пpи опpеделенном пpеpывании (DRQ0), вызванном таймеpом и инициируемом схемой регенерации.
Для регенерации каждый pаз тpебуется до 4 мс. В течение этих 4 мс один цикл pегенеpации пpимеpно каждые 16 мкс pегенеpиpует по 256 стpок памяти (здесь и выше приведены характеристики для модулей памяти малой емкости). Каждый цикл pегенеpации занимает столько же или чуть меньше вpемени, чем один цикл чтения памяти, т.к. сигнал CAS для pегенеpации при этом не тpебуется.
"Hidden refresh" отличается максимальной скоростью и эффективностью, наименьшими нарушениями активности системы и наименьшими потерями производительности, также позволяя поддерживать состояние памяти во время нахождения системы в режиме "suspend". Этот режим более быстрый, чем "Burst Refresh". Но наличие в BIOS этой функции еще не означает ее реализации. После установки опции в "Enabled" стоит тщательно проверить работоспособность компьютера. Некотоpые модули памяти позволяют использовать "Hidden Refresh", некотоpые - нет. В большинстве случаев pекомендуется установить в "Enabled".

Hi-Speed Refresh

С помощью этой опции чипсет быстрее проведет регенерацию основной памяти. Правда, эффект от этой установки значительно меньше, чем от включения "Slow Refresh". Последний режим регенерации предпочтительнее. К тому же эта функция поддерживается не всеми чипами памяти.

ISA Refresh

Опция разрешения/запрещения проведения регенерации памяти для ISA-шины. В таком виде эта опция уже не встречалась даже в последние годы существования ISA-шины.

ISA Refresh Period

Установка периодичности для регенерации ISA-шины. Возможный ряд значений: "15 us", "30 us", "60 us", "120 us".

ISA Refresh Type

Опция с установкой метода регенерации памяти для ISA-шины. Возможные значения параметра: "Normal" и "Hidden". Аналогичная опция с названием "ISA Bus Refresh Mode" могла предложить другие значения: "Slow" и "Fast".

PCI-to-DRAM RAS# Precharge

Тема "предзаряда" уже достаточно нами освоена, поэтому стоит лишь сказать кратко о назначении данной опции - установка времени "предзаряда" строба RAS# при циклах записи PCI-шины в основную динамическую память. Значения опции: "2T", "3T".

RAS Precharge @Access End

Когда выбрано "Enabled", RAS#-строб остается в активном состоянии в конце процесса "предзаряда". Если же установлено "Disabled", RAS# переводится в пассивное состояние (высокий уровень).

RAS Timeout

Когда установлено значение "Disabled", цикл регенерации динамической памяти производится в стандартном режиме, т.е. каждые 15,6 мкс. Дополнительный цикл регенерации памяти вставляется при выборе значения "Enabled".

Ref/Act Command Delay

- (установка задержки для цикла чтения/записи). Параметром выбирается время задержки между окончанием цикла регенерации и началом цикла чтения или записи. Опция может принимать значения: "5T", "6T" (по умолчанию), "7T", "8T".
Система на наборе SIS530 предложила опцию под названием "DRAM Refresh/Active Delay" с чуть более консервативными значениями: "9T", "8T", "7T", "6T". Более развитый чипсет (SIS540) представил уже две опции: "DRAM REF/ACT Delay" ("10T", "9T") и "DRAM ACT/REF Delay" ("10T", "9T", "8T"). Понятно, что последняя опция предназначена для выбора задержки для режима регенерации после окончания цикла чтения/записи. Меньшие значения, конечно, более предпочтительны. Данная опция уже не встречается в современных системах.

Refresh During PCI Cycles

Опция, разрешающая/запрещающая проведение регенерации памяти во время циклов чтения/записи на шине PCI. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.

Refresh RAS# Assertion

- (установка периода активности сигнала RAS). Этим параметром устанавливается длительность сигнала RAS (в тактах системной шины) для цикла регенерации. Меньшее значение увеличивает производительность системы. Но поскольку принимаемые значения определяются качеством памяти и чипсетом, то к их установке необходимо подходить осмотрительно. Может принимать значения: "4T" (или "4 Clks"), "5T" (или "5 Clks"). Могут быть и другие значения.
Опция может называться также "Refresh Assertion", "Refresh RAS Active Time" или "RAS Pulse Width Refresh".

Refresh Value

Данной опцией устанавливался множитель частоты регенерации. Меньшее значение увеличивало производительность системы за счет снижения частоты регенерации. Но при этом также оптимальный вариант мог быть достигнут только опытной проверкой. Значения опции могли быть выбраны из ряда: 1, 2, 4, 8, 16. Иногда можно было встретить и значение 0,5. Опция эта давно уже не встречается.
Опция может называться "Refresh Divider".

Refresh When CPU Hold

Довольно устаревшая опция, предлагавшая производить регенерацию ("Enabled") или не делать этого ("Disabled") во время пауз процессора.

SDRAM Idle Limit

Данная опция устанавливает количество "пустых" тактов ожидания перед перезарядкой SDRAM-модулей. Оптимальная установка позволяет улучшить производительность циклов чтения/записи путем настройки интервала времени, в течение которого банк памяти может оставаться "пустым" перед перезарядкой (recharging), т.е. перед перезаписью содержимого памяти обратно в ячейки. При этом данная установка не может функционировать как задержка цикла регенерации.
Уменьшение количества тактов с 8 (по умолчанию) до 0 означает, что банк SDRAM-памяти будет немедленно регенерироваться как только контроллер памяти выставит достоверный запрос. При увеличении "SDRAM Idle Limit" от 8 тактов и более перезарядка банка будет задержана на большее время, тем самым возрастет время "хранения" информации из памяти во внутренних цепях. Пришедшая в это время команда чтения/записи будет исполнена мгновенно. Тогда приходится признать, что эффективность памяти возрастет, когда банк более длительное время будет оставаться "пустым". Но всегда есть свое НО! Во внутренних цепях перезарядки не хранятся все строки банка памяти, а только регенерируемой строки. Поэтому пришедший запрос, например, на чтение некоторой строки наверняка не "попадет в точку", и системе придется ожидать завершения регенерации, особенно в случае завышенного значения параметра.
В основном приходится выбирать между значениями в пределах между 0 и 8-ю тактами, правда, насколько позволит это версия BIOS. Конечно, подобная настройка требует серьезной опытной проверки. Поэтому, если есть возможность управлять частотой регенерации, то данную опцию лучше заблокировать. Опытным специалистам можно порекомендовать "поиграть" с двумя характеристиками.
Опция может называться "DRAM Idle Timer". Указанные опции предложили два ряда значений:
"Disabled", "0 Cycle", "8 Cycles", "12 Cycles", "16 Cycles", "24 Cycles", "32 Cycles", "48 Cycles",
"0 clocks", "2 clocks", "4 clocks", "8 clocks", "10 clocks", "12 clocks", "16 clocks", "32 clocks".
Подобные опции достаточно редки. Но вот система на достаточно современном чипсете AMD751 предложила сразу две:
"Idle Precharge Limit" с рядом "0 cycles", "8 cycles", "12 cycles", "16 cycles", "24 cycles", "32 cycles", "48 cycles" и "No idle precharge" и "Extra High Idle Limit" со значениями "Disabled"/"Enabled". Последняя опция разрешает или запрещает вставку дополнительного такта ожидания.

SDRAM Precharge Control

- (управление предварительным зарядом SDRAM). Данная опция определяет, чем управляется "предзаряд" SDRAM - центральным процессором или самой SDRAM-памятью. В некоторых версиях BIOS такая опция может называться (трактоваться) как "SDRAM Page Closing Policy" ("метод закрытия страниц SDRAM" - см. дополнительно в следующем разделе). Если эта опция отключена ("Disabled"), то все циклы процессора к SDRAM завершаются командой "All Banks Precharge Command" в интерфейсе SDRAM-памяти, что улучшает стабильность, но понижает производительность памяти. Если же эта опция включена ("Enabled"), то предварительный заряд контролируется самими чипами памяти. Это уменьшает количество предзарядов SDRAM, значительно возрастает число циклов CPU-to-SDRAM до того момента, когда требуется регенерация памяти. Это однозначно ведет к повышению общей производительности системы, но может влиять на ее стабильность.

SDRAM Refresh

Опция выбора метода регенерации для SDRAM-памяти. Возможные варианты: "Serial" (последовательный перебор строк при регенерации) и "Simultaneous" (одновременная регенерация). При рассмотрении опции "Burst Refresh" уже отмечались недостатки пакетной регенерации, при которой в единый пакет собираются запросы на регенерацию. "Перезарядка" строк происходит мгновенно, но пока не завершится полная регенерация, доступ к шине памяти будет невозможен. Поэтому об оптимальной установке для конкретной системы можно будет говорить после экспериментальных тестов.
Данная опция была замечена в системах, построенных на чипсетах SIS620, SIS600 и некоторых других.

Self-Refresh

Опция включения режима "саморегенерации" основной памяти (если установлено "Enabled"). Этот режим подробно описан выше, в вводной статье.
Опция может называться также "EDO/FPM DRAM Self-Refresh".

Slow Refresh (1:4)

- (медленная pегенеpация). При включении этой опции ("Enabled") схема регенерации будет в 4 раза реже регенерировать память (64 мкс против 16), чем в обычном pежиме. При такой установке пpоизводительность системы повышается благодаpя уменьшению конкуpенции между CPU и схемой pегенеpации, однако не все типы динамических ОЗУ могут поддеpживать такие циклы (в этом случае будет получено сообщение об ошибке четности или о сбое системы). Тогда необходимо установить значение "Disabled". Опция в свое время получила распространение с развитием такого типа ПК, как "laptop" (дорожный ПК), в качестве энергосберегающей функции. В современных системах эта опция встречается все реже.
В свое время считалось также, что применение "медленной регенерации" будет достаточно эффективным при использовании 16-битных ISA-карт расширения, работающих в режиме "bus master". Поскольку сама ISA-карта может быть инициатором запроса на регенерацию, то понятно, что "медленная регенерация" в меньшей степени бы нарушала передачу данных по DMA-каналам.
Опция может называться также "DRAM Slow Refresh", "Slow Refresh" или "Slow Refresh Enable".
Опция может называться и "Slow Memory Refresh Divider". Но этой опцией устанавливался делитель для медленной регенерации: 1, 4, 16 или даже 64. Устанавливать самые большие значения, т.е. в максимальной степени снижать частоту регенерации, позволяла только специальная память.

Staggered Refresh

Трудно переводимый тип регенерации, что-то наподобие "регенерации с перекатыванием". Но этим непонятным термином обозначают "шахматную" регенерацию. Как известно, регенерация выполняется на банках памяти последовательно, с последовательным перебором строк. Но при наличии нескольких банков памяти и включении данной опции банки памяти регенерируются одновременно, но со сдвигом по перебору строк.
Данный тип регенерации позволяет сгладить броски потребления модулями памяти, выравнивая токи в процессе различных переключений. Так как уменьшаются броски тока, то такая регенерация эффективна с точки зрения снижения помех.
С помощью этой несколько устаревшей опции есть возможность установки временного интервала между регенерируемыми строками, измеряемого в системных тактах (0T, 1T, 2T, 3T, 4T, 5T, 6T, 7T). Установка в "0" позволяет регенерировать все строки в банках одновременно. Но опция может предложить и обычный набор значений: "разрешить применение"/"отказать" ("Enabled" и "Disabled").
Опция может называться также "Refresh Stagger" или "DRAM Refresh Stagger By".

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


Конструктивно любое ОЗУ состоит из двух блоков - матрицы запоминающих элементов и дешифратора адреса. По технологическим соображениям матрица чаще всего имеет двухкоординатную дешифрацию адреса - по строкам и столбцам. На рис. 9.45 показана матрица 16-битного статического ОЗУ. Матрица состоит из 16 ячеек памяти mem_i, схема которой приведена на рис. 9.46. Каждая ячейка памяти адресуется по входам X, Y путем выбора дешифраторами адресных линий по строкам АхО...АхЗ и по столбцам АуО...АуЗ (см. рис. 9.45) и подачи по выбранным линиям сигнала логической единицы. При этом в выбранной ячейке памяти срабатывает двухвходовой элемент И (U1), подготавливая цепи чтения-записи информации на входных DIO...DI3 или выходных DOO...D03 разрядных шинах. Разрешающим сигналом для выдачи адреса является CS (chip select - выбор кристалла), который подается на вход разрешения счетчика адреса (Addr_cnt) или такой же вход дешифраторов, подключенных к выходам счетчика.

При записи в ячейку памяти (см. рис. 9.46) на соответствующей разрядной шине устанавливается 1 или 0, на входе WR/RD" устанавливается сигнал 1 и после стробирования счетчика или дешифраторов адреса сигналом CS срабатывают элементы 2И U1, U2. Положительный перепад сигнала с элемента U2 поступает на тактовый вход D-триггера U4, в результате чего в нем записывается 1 или 0 в зависимости от уровня сигнала на его D-входе.



При чтении из ячейки памяти на входе WR/RD" устанавливается 0, при этом срабатывают элементы U1, U3, U5 и на вход РАЗРЕШЕНИЕ ВЫХОДА буферного элемента U6 поступает разрешающий сигнал, в результате чего сигнал с Q-выхода D-триггера передается на разрядную шину DOO...D03. Для проверки функционирования ячейки памяти используется генератор слова (рис. 9.47).

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

Кэш-память состоит из области данных, разбитой на блоки (строки), которые являются элементарными единицами информации при работе кэша, и области признаков (tag), описывающей состояние строк (свободна, занята, помечена для дозаписи и т.п.). В основном используются две схемы организации кэша: с прямым отображением (direct mapped), когда каждый адрес памяти может кэшироваться только одной строкой (в этом случае номер строки определяется младшими разрядами адреса), и га-связный ассоциативный (ra-way associative), когда каждый адрес может кэшироваться несколькими строками. Ассоциативный кэш более сложен, однако позволяет более гибко кэшировать данные; наиболее распространены четырехсвязные системы кэширования.

Микропроцессоры 486 и выше имеют также внутренний (Internal) кэш объемом 8...16 Кбайт. Он также обозначается как Primary (первичный) или LI (Level I - первый уровень) в отличие от внешнего (External), расположенного на плате и обозначаемого Secondary (вторичный) или L2. В большинстве процессоров внутренний кэш работает по схеме с прямой записью, а в 486 (процессор Intel P24D и последние DX4-100, AMD DX4-120, 5х86) и Pentium он может работать и с отложенной записью. Последнее требует специальной поддержки со стороны системной платы, чтобы при обмене по DMA (прямое обращение к памяти устройств ввода-вывода) можно было поддерживать согласованность данных в памяти и внутреннем кэше. Процессоры Pentium Pro имеют также встроенный кэш второго уровня объемом 256 или 512 Кбайт.

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

В динамической памяти ячейки выполнены на основе областей с накоплением зарядов, занимающих гораздо меньшую площадь, нежели триггеры, и практически не потребляющих энергии при хранении информации. При записи бита в такую ячейку в ней формируется электрический заряд, который сохраняется в течение нескольких миллисекунд; для постоянного сохранения заряда ячейки необходимо регенерировать (перезаписывать) ее содержимое. Ячейки микросхем динамической памяти также организованы в виде прямоугольной матрицы; при обращении к микросхеме на ее входы вначале подается адрес строки матрицы, сопровождаемый сигналом RAS (Row Address Strobe - строб адреса строки), затем, через некоторое время - адрес столбца, сопровождаемый сигналом CAS (Column Address Strobe - строб адреса столбца). При каждом обращении к отдельной ячейке регенерируются все ячейки выбранной строки, поэтому для полной регенерации матрицы достаточно перебрать адреса строк. Ячейки динамической памяти имеют сравнительно малое быстродействие (десятки - сотни наносекунд), но большую удельную плотность (порядка нескольких мегабайт на корпус) и меньшее энергопотребление.

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

FPM DRAM (Fast Page Mode DRAM - динамическая память с быстрым страничным доступом), активно используется в последнее время. Память со страничным доступом отличается от обычной динамической памяти тем, что после выбора строки матрицы и удержания сигнала RAS допускает многократную установку адреса столбца, стробируемого сигналом CAS, а также быструю регенерацию по схеме "CAS прежде RAS". Первое позволяет ускорить блочные передачи, когда весь блок данных или его часть находятся внутри одной строки матрицы, называемой в этой системе страницей, а второе - снизить затраты времени на регенерацию памяти.

EDO (Extended Data Out - расширенное время удержания данных на выходе) фактически представляют собой обычные микросхемы FPM, на выходе которых установлены регистры-защелки данных. При страничном обмене такие микросхемы работают в режиме простого конвейера: удерживают на выходах данных содержимое последней выбранной ячейки, в то время как на их входы уже подается адрес следующей выбираемой ячейки. Это позволяет примерно на 15% по сравнению с FPM ускорить процесс считывания последовательных массивов данных. При случайной адресации такая память ничем не отличается от обычной.

BEDO (Burst EDO - EDO с блочным доступом) - память на основе EDO, работающая не одиночными, а пакетными циклами чтения/записи. Современные процессоры благодаря внутреннему и внешнему кэшированию команд и данных обмениваются с основной памятью преимущественно блоками слов максимальной ширины. При наличии памяти BEDO отпадает необходимость постоянной подачи последовательных адресов на входы микросхем с соблюдением необходимых временных задержек, до- " статочно стробировать переход к очередному слову отдельным сигналом.

SDRAM (Synchronous DRAM - синхронная динамическая память) - память с синхронным доступом, работающая быстрее обычной асинхронной (FPM/EDO/BEDO). Кроме синхронного доступа, SDRAM использует внутреннее разделение массива памяти на два независимых банка, что позволяет совмещать выборку из одного банка с установкой адреса в другом. SDRAM также поддерживает блочный обмен. Основное преимущество SDRAM состоит в поддержке последовательного доступа в синхронном режиме, где не требуется дополнительных тактов ожидания. При случайном доступе SDRAM работает практически с той же скоростью, что и FPM/EDO.

РВ SRAM (Pipelined Burst SRAM - статическая память с блочным конвейерным доступом) - разновидность синхронных SRAM с внутренней конвейеризацией, за счет которой примерно вдвое повышается скорость обмена блоками данных.

Кроме основного ОЗУ, устройством памяти снабжается и устройство отображения информации - видеодисплейная система. Такая память называется видеопамятью и располагается на плате видеоадаптера.

Видеопамять служит для хранения изображения. От ее объема зависит максимально возможное разрешение видеокарты - АхВхС, где А - количество точек по горизонтали, В - по вертикали, С- количество возможных цветов каждой точки. Например, для разрешения 640х480х16 достаточно иметь видеопамять 256 Кбайт, для 800х600х256 - 512 КБ, для 1024х768х65536 (другое обозначение - 1024x768x64k) - 2 Мбайт и т.д. Поскольку для хранения цветов отводится целое число разрядов, количество цветов всегда является целой степенью 2 (16 цветов - 4 разряда, 256 - 8 разрядов, 64k - 16 и т.д.).

В видеоадаптерах используются следующие типы видеопамяти.

FPM DRAM (Fast Page Mode Dynamic RAM - динамическое ОЗУ с быстрым страничным доступом) - основной тип видеопамяти, идентичный используемой в системных платах. Активно применялась до 1996 г. Наиболее распространенные микросхемы FPM DRAM - четырехразрядные DIP и SOJ, а также шестнадцатиразрядные SOJ.

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

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

SGRAM (Synchronous Graphics RAM - синхронное графическое ОЗУ) - вариант DRAM с синхронным доступом, когда все управляющие сигналы изменяются одновременно с системным тактовым синхросигналом, что позволяет уменьшить временные задержки.

WRAM (Window RAM - оконное ОЗУ) - EDO VRAM, в котором окно, через который обращается видеоконтроллер, сделано меньшим, чем окно для центрального процессора.

MDRAM (Multibank DRAM - многобанковое ОЗУ) - вариант DRAM, организованный в виде множества независимых банков объемом по 32 Кбайт каждый, работающих в конвейерном режиме.

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

Микросхемы памяти имеют четыре основные характеристики - тип, объем, структуру и время доступа. Тип обозначает статическую или динамическую память, объем показывает общую емкость памяти, а структура - количество ячеек памяти и разрядность каждой ячейки. Например, 28/32-выводные DIP-микросхемы SRAM имеют 8-разрядную структуру (8kx8, 16kx8, 32kx8, 64kx8, 128kx8), кэш объемом 256 Кбайт состоит из восьми микросхем 32kx8 или четырех микросхем 64kx8 (речь идет об области данных, дополнительные микросхемы для хранения признаков могут иметь другую структуру). Две микросхемы по 128kx8 поставить уже нельзя, так как нужна 32-разрядная шина данных, что могут обеспечить только четыре микросхемы. Распространенные РВ SRAM в 100-выводных корпусах PQFP имеют 32-разрядную структуру 32kx32 или 64kx32 и используются по две или по четыре в платах для Pentium.

30-контактные SIMM имеют 8-разрядную структуру и используются с процессорами 286, 386SX и 486SLC по две, а с 386DX, 486DLC и обычными 486DX - по четыре. 72-контактные SIMM имеют 32-разрядную структуру и могут использоваться с 486DX по одной, а с Pentium и Pentium Pro - по две. 168-контактные DIMM имеют 64-разрядную структуры и используются в Pentium и Pentium Pro по одной. Установка модулей памяти или микросхем кэша в количестве больше минимального для данной системной (материнской) платы позволяет ускорить работу с ними, используя принцип чередования (Interleave).

Время доступа характеризует скорость работы микросхемы и обычно указывается в наносекундах после тире в конце наименования. На более медленных микросхемах могут указываться только первые цифры (-7 вместо -70, -15 вместо -150), на более быстрых статических "-15" или "-20" обозначает реальное время доступа к ячейке. Часто на микросхемах указывается минимальное из всех возможных времен доступа, например, распространена маркировка 50 EDO DRAM вместо 70, или 45 - вместо 60, хотя такой цикл достижим только в блочном режиме, а в одиночном режиме микросхема по-прежнему имеет время доступа 70 или 60 нс. Аналогичная ситуация имеет место в маркировке РВ SRAM: 6 вместо 12, и 7 вместо 15. Микросхемы SDRAM обычно маркируются временем доступа в блочном режиме (10 или 12 нс).

ИМС памяти реализуются в корпусах следующих типов.

DIP (Dual In line Package - корпус с двумя рядами выводов) - классические микросхемы, применявшиеся в блоках основной памяти IBM PC/XT и ранних PC/AT, сейчас применяются в блоках кэш-памяти.

SIP (Single In line Package - корпус с одним рядом выводов) - микросхема с одним рядом выводов, устанавливаемая вертикально.

SIPP (Single In line Pinned Package - модуль с одним рядом игольчатых выводов) - модуль памяти, вставляемый в панель наподобие микросхем DIP/SIP; применялся в ранних IBM PC/AT.

SIMM (Single In line Memory Module - модуль памяти с одним рядом контактов) - модуль памяти, вставляемый в зажимный разъем; применяется во всех современных платах, а также во многих адаптерах, принтерах и прочих устройствах. SIMM имеет контакты с двух сторон модуля, но все они соединены между собой, образуя как бы один ряд контактов. На SIMM в настоящее время устанавливаются преимущественно микросхемы FPM/EDO/BEDO.

DIMM (Dual In line Memory Module - модуль памяти с двумя рядами контактов) - модуль памяти, похожий на SIMM, но с раздельными контактами (обычно 2х84), за счет чего увеличивается разрядность или число банков памяти в модуле. Применяется в основном в компьютерах Apple и новых платах Р5 и Р6. На DIMM устанавливаются микросхемы EDO/BEDO/SDRAM.

CELP (Card Egde Low Profile - невысокая карта с ножевым разъемом на краю) - модуль внешней кэш-памяти, собранный на микросхемах SRAM (асинхронный) или РВ SRAM (синхронный). По внешнему виду похож на 72-контактный SIMM, имеет емкость 256 или 512 Кбайт. Другое название - COAST (Cache On A STick - буквально "кэш на палочке").

Модули динамической памяти кроме основных ячеек памяти могут иметь дополнительные ячейки для хранения битов четности (Parity) для байтов данных; такие SIMM иногда называют 9- и 36-разрядными модулями (по одному биту четности на байт данных). Биты четности служат для контроля правильности считывания данных из модуля, позволяя обнаружить часть ошибок (см. разд. 9.7). Модули с битами четности имеет смысл применять лишь там, где нужна очень высокая надежность. Для обычных применений подходят и тщательно проверенные модули без битов четности, однако при условии, что системная плата поддерживает такие типы модулей.

Проще всего определить тип модуля по маркировке и количеству микросхем памяти на нем: например, если на 30-контактном SIMM две микросхемы одного типа и еще одна - другого, то две первых являются основными (каждая - по четыре разряда), а третья предназначена для хранения битов четности (она одноразрядная).

В 72-контактном SIMM с двенадцатью микросхемами восемь из них хранят данные, а четыре - биты четности. Модули с количеством микросхем 2, 4 или 8 не имеют памяти для хранения битов четности.

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

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

В модулях DIMM в соответствии со спецификацией JEDEC технология PD реализуется при помощи перезаписываемого ПЗУ с последовательным доступом (Serial EEPROM) и носит название Serial Presence Detect (SPD). ПЗУ представляет собой 8-выводную микросхему, размещенную в углу платы DIMM, а его содержимое описывает конфигурацию и параметры модуля. Системные платы с набором микросхем (чипсетами) 440LX/BX могут использовать SPD для настройки системы управления памятью. Некоторые системные платы могут обходиться без SPD, определяя конфигурацию модулей обычным путем.

Контрольные вопросы и задания

1. Какие типы памяти существуют?

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

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

4. Где в современных компьютерах используется память статического типа?

5. Чем отличается динамическая память от статической?

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

7. Что такое видеопамять и как она связана с характеристиками отображаемой на дисплее информации?

8. Какие типы памяти используются в качестве видеопамяти?

9. Какое конструктивное оформление имеют микросхемы памяти?