THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

Динамические оперативные запоминающие устройства (ОЗУ)

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

Схема запоминающего элемента динамического ОЗУ и его конструкция приведена на рисунке 1.

Схема запоминающего элемента динамического ОЗУ и его конструкция.

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

Рисунок 2. Графики изменения напряжения на линии считывания при считывании информации с запоминающей ячейки.

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

Рисунок 3. Схема регенерирующего каскада.

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

Особенностью динамических ОЗУ является мультиплексирование шины адреса. Адрес строки и адрес столбца передаются поочередно. Адрес строки синхронизируется стробирующим сигналом RAS# (Row Address strobe), а адрес столбца - CAS# (Column Adress Strobe). Мультиплексирование адресов позволяет уменьшить количество ножек микросхем ОЗУ. Изображение микросхемы динамического ОЗУ приведено на рисунке 4, а временные диаграммы обращения к динамическому ОЗУ на рисунке 5.

Рисунок 4. Изображение динамического ОЗУ на принципиальных схемах.

Рисунок 5. Временная диаграмма обращения к динамическому ОЗУ

Приведенные на рисунке временные диаграммы предполагают при обращении к ячейке памяти дважды выставлять на шине адреса код обращения к ячейке памяти ОЗУ. Обычно обращение ведется к данным, лежащим в соседних ячейках памяти, поэтому не обязательно при считывании каждый раз передавать адрес строки. Такой режим обращения к динамическому ОЗУ называется быстрый страничный режим доступа FPM (Fast Page Mode). Длина считываемого блока данных равна четырем словам. Для того, чтобы оценить время такого режима доступа к памяти время измеряют в тактах системной шины процессора. В обычном режиме доступа к памяти время доступа одинаково для всех слов. Поэтому цикл обращения к динамической памяти можно записать как 5-5-5-5.

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

Рисунок 6. Временная диаграмма обращения к динамическому ОЗУ в режиме FPM.

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

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

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

Рисунок 7. Структурная схема конвейерной обработки данных.

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

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

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

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

На рисунке 1 показана структура статического запоминающего устройства.

Рис.1. Структура статического ОЗУ

ЭП - это элемент памяти. Еще его называют запоминающим элементом (ЗЭ ). Все элементы памяти заключены в матрице накопителя. Число элементов равно 2 n . Каждый конкретный ЭП хранит один бит информации и имеет свой, задаваемый n- разрядным двоичным кодом.

Адрес разбивают на две части (обычно одинаковые) - адрес строки и адрес столбца. Получается прямоугольная матрица, содержащая 2 k строк и 2 m столбцов. Всего элементов памяти будет 2 k+m .

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

Рассмотрим один из вариантов исполнения элемента памяти статического ОЗУ. Вот схема:

Рис. 2. Элемент памяти статического ОЗУ

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

При уровнях лог. 1 на линиях i и j и при подаче сигнала разрешения записи WR=1 (от write - записывать), в триггер записывается информация, которая поступает на вход D . При этом шина Вход/Выход оказывается подключенной к D входу триггера через электронный ключ SW и выполняет функции входа, при снятии сигнала WR ключ подключает к шине Вход/Выход выход триггера, и эта шина выполняет функции выхода.

Если ОЗУ одноразрядное, то шина Вход/Выход будет общей для всех элементов памяти. Но чаще ОЗУ многоразрядные и в этом случае на каждой паре линий строка-столбец располагается по n триггеров и n ключей, где n -число разрядов, а элемент "И" при этом остается один. И каждый из ключей подключается к своей шине Вход/Выход .

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

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

Во-вторых, в режиме хранения данных энергопотребление намного меньше, чем в режиме записи и считывания (рабочий режим ). Для перевода ОЗУ в режим хранения используется сигнал CS, по-английски crystal selection - выбор кристалла. Обычно для перевода в режим хранения на вход CS подается уровень лог. 1 , для перевода в рабочий режим - лог. 0 .

Динамическое ОЗУ

Как говорилось ранее, в динамическом ОЗУ функции элемента памяти выполняет конденсатор . Информация представлена электрическим зарядом, к примеру, если есть заряд на конденсаторе, значит в элемент памяти записана лог. 1 , нет заряда - лог. 0 .

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

Для реализации элемента памяти динамического ОЗУ широко применяется схема, показанная на рисунке 3 .

Рис. 3 - Элемент памяти динамического ОЗУ

Выбор элемента памяти производится сигналом лог. 1 на шине строки. Транзистор VT2 открывается и соединяет конденсатор С1 с шиной столбца. РШ - разрядная шина . Предварительно через транзистор VT1 , который открывается сигналом "Такт (С)" , заряжается емкость С ш до напряжения U 0 . Емкость С ш должна значительно превышать емкость С1 .

Элемент памяти динамического ОЗУ проще, чем статического, поСо, этому объем памяти в динамических ОЗУ выше, чем в статических. При большой разрядности адреса его делят на две части. Первая называется RAS , что по-английски означает row access signal - сигнал выборки строки, вторая - CAS , на английском означающая column access signal - сигнал выборки столбца.

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

Обозначение сигналов микросхем памяти (для сведения)

1. Адрес: А

2. Тактовый сигнал: С

3. Строб адреса столбца: CAS

4. Строб адреса строки: RAS

5. Выбор микросхемы: CS

6. Разрешение: CE

7. Запись: WR

8. Считывание: RD

9. Запись-считывание: W/R

10.Разрешение записи: WE

11.Разрешение по выходу: OE

12.Данные (информация): D

13.Входные данные: DI

14.Выходные данные: DO

15.Адрес, данные; вход, выход: ADIO

16.Данные вход, выход: DIO

17.Регенерация: REF

18.Программирование: PR

19.Стирание: ER

22.Общий вывод: OV

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

г - BEDO DRAM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


Ячейки памяти в микросхеме DRAM - это крошечные конденсаторы, которые удерживают заряды. Именно так (наличием или отсутствием зарядов) и кодируются биты. Проблемы, связанные с памятью этого типа, вызваны тем, что она динамическая, т.е. должна постоянно регенерироваться, так как в противном случае электрические заряды в конденсаторах памяти будут “стекать” и данные будут потеряны. Регенерация происходит, когда контроллер памяти системы берет крошечный перерыв и обращается ко всем строкам данных в микросхемах памяти. Большинство систем имеют контроллер памяти (обычно встраиваемый в набор микросхем системной платы, однако он может быть встроен и в процессор, как в процессорах Athlon 64 и Opteron), который настроен на соответствующую промышленным стандартам частоту регенерации, равную 15 мс. Это означает, что каждые 15 мс прочитываются все строки в памяти для обеспечения регенерации данных.


Регенерация памяти, к сожалению, отнимает время у процессора. Каждый цикл регенерации по длительности занимает несколько тактов центрального процессора. В старых компьютерах циклы регенерации могли занимать до 10% (или больше) процессорного времени, но в современных системах эти расходы составляют менее 1%. Некоторые системы позволяют изменить параметры регенерации с помощью программы настройки BIOS. Интервал между циклами обновления называется tREF и задается не в миллисекундах, а в тактах. Очень важно понимать, что увеличение значения интервала между циклами обновления для повышения быстродействия системы может привести к случайным произвольным ошибкам.


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


В устройствах DRAM для хранения одного бита используются только один транзистор и пара конденсаторов, поэтому они более вместительны, чем микросхемы других типов памяти. В настоящее время уже выпускаются микросхемы динамической оперативной памяти емкостью 4 Гбайт и больше. Это означает, что подобные микросхемы содержат более миллиарда транзисторов! А ведь процессор Core 2 Duo имеет только 230 млн. транзисторов. Откуда такая разница? Дело в том, что в микросхеме памяти все транзисторы и конденсаторы размещаются последовательно, обычно в узлах квадратной решетки, в виде очень простых, периодически повторяющихся структур, в отличие от процессора, представляющего собой более сложную схему различных структур, не имеющую четкой организации.


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


Типы ОЗУ и производительность

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


Наносекунда - это одна миллиардная доля секунды, т.е. очень короткий промежуток времени. В частности, скорость света в вакууме равна 299 792 км/с, т.е. за одну миллиардную долю секунды световой луч проходит расстояние, равное всего 29,98 см, т.е. меньше длины обычной линейки.


Быстродействие микросхем памяти и систем в целом выражается в мегагерцах (МГц), т.е. в миллионах тактов в секунду, или же в гигагерцах (ГГц), т.е. в миллиардах тактов в секунду. Современные процессоры имеют тактовую частоту от 2 до 4 ГГц, хотя гораздо большее влияние на их производительность оказывает их внутренняя архитектура (например, многоядерность).


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


К 2000 году скорость шины процессора и памяти увеличилась до 100 и даже 133 МГц (эти модули назывались PC100 и PC133 соответственно). В начале 2001 года быстродействие памяти удвоилось и стало равным 200 и 266 МГц; в 2002 году выпускались модули памяти DDR со скоростью 333 МГц, а в 2003 году - 400 и 533 МГц. В 2005 и 2006 годах рост быстродействия памяти соответствовал росту скорости шины процессора - от 667 до 800 МГц. В 2007 году скорость памяти DDR2 была доведена до 1066 МГц, и одновременно с этим была выпущена память DDR3 с такой же и более высокой частотой. В таблице ниже перечислены основные типы модулей памяти и их быстродействие.


Тип памяти Пик популярности Тип модуля Напряжение Макс. частота, МГц Одноканальная, Мбайт/с Двухканальная, Мбайт/с
FPM DRAM 1987-1995 30/72-контактный SIMM 5 В 22 177 -
EDO DRAM 1995-1998 72-контактный SIMM 5 В 33 266 -
SDR DRAM 1998-2002 168-контактный DIMM 3,3 В 133 1066 -
Rambus DRAM 2000-2002 184-контактный RIMM 2,5 В 1066 2133 4266
DDR SDRAM 2002-2005 184-контактный DIMM 2,5 В 400 3200 6400
DDR2 SDRAM 2005-2008 240-контактный DDR2 DIMM 1,8 В 1066 8533 17066
DDR3 SDRAM 2008+ 240-контактный DDR3 DIMM 1,5 В 1600 12800 25600

EDO. Extended Data Out (расширенные возможности вывода данных).

DIMM. Dual Inline Memory Module (модуль памяти с двухрядным расположением выводов).

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

FPM. Fast Page Mode (быстрый постраничный режим).

SIMM. Single Inline Memory Module (модуль памяти с однорядным расположением выводов).

RIMM. Rambus Inline Memory Module (модуль памяти стандарта Rambus).


Быстродействие памяти

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


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


Чтобы акцентировать внимание на проблемах синхронизации и надежности, Intel и JEDEC создали стандарты для высокоскоростных модулей памяти, определяющие их типы, удовлетворяющие определенным уровням быстродействия. Согласно этим стандартам и выполняется классификация модулей памяти по временным характеристикам.


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


Контроль четности и коды коррекции ошибок (ECC)

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


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


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


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

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


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


Эксперимент по проверке степени влияния космических лучей на появление ошибок в работе микросхем показал, что соотношение “сигнал–ошибка” (Signal-to-Error Ratio - SER) для некоторых модулей DRAM составило 5950 единиц интенсивности отказов (Failure Units - FU) на миллиард часов наработки для каждой микросхемы. Измерения проводились в условиях, приближенных к реальным, с учетом длительности в несколько миллионов машино-часов. В среднестатистическом компьютере это означало бы появление программной ошибки памяти примерно каждые шесть месяцев. В серверных системах или мощных рабочих станциях с большим объемом установленной оперативной памяти подобная статистика указывает на одну ошибку (или даже более) в работе памяти каждый месяц! Когда тестовая система с теми же модулями DIMM была размещена в надежном убежище на глубине более 15 метров под слоем каменной породы, что полностью устраняет влияние космических лучей, программные ошибки в работе памяти вообще не были зафиксированы. Эксперимент продемонстрировал не только опасность влияния космических лучей, но и доказал, насколько эффективно устранять влияние альфа-лучей и радиоактивных примесей в оболочках модулей памяти.


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


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


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

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

Использование памяти с некорректным типом или характеристиками. Тип памяти должен поддерживаться конкретным набором микросхем и обладать определенной этим набором скоростью доступа.

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

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

Тепловыделение. Скоростные модули памяти характеризуются более высокими рабочими температурами, чем модули устаревших типов. Первыми модулями, оснащенными теплорассеивателями, оказались модули RDRAM RIMM; сейчас теплорассеивателями оснащены многие производительные модули DDR2 и DDR3, так как это единственный способ борьбы с повышенным уровнем тепловыделения.


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

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


Системы без контроля четности вообще не обеспечивают отказоустойчивость. Единственная причина, по которой они используются, - их минимальная базовая стоимость. При этом, в отличие от других технологий, не требуется дополнительная оперативная память. Байт данных с контролем четности включает в себя 9, а не 8 бит, поэтому стоимость памяти с контролем четности выше примерно на 12,5%. Кроме того, контроллеры памяти, не требующие логических мостов для подсчета данных четности или ECC, обладают упрощенной внутренней архитектурой. Портативные системы, для которых вопрос минимального энергопотребления особенно важен, выигрывают от уменьшенного энергоснабжения памяти благодаря использованию меньшего количества микросхем DRAM. И наконец, шина данных памяти без контроля четности имеет меньшую разрядность, что выражается в сокращении количества буферов данных. Статистическая вероятность возникновения ошибок памяти в современных настольных компьютерах составляет примерно одну ошибку в несколько месяцев. При этом количество ошибок зависит от объема и типа используемой памяти.


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


Контроль четности

Это один из введенных IBM стандартов, в соответствии с которым информация в банках памяти хранится фрагментами по 9 бит, причем восемь из них (составляющих один байт) предназначены собственно для данных, а девятый является битом четности. Использование девятого бита позволяет схемам управления памятью на аппаратном уровне контролировать целостность каждого байта данных. Если обнаруживается ошибка, работа компьютера останавливается, а на экран выводится сообщение о неисправности. Если вы работаете на компьютере под управлением Windows или OS/2, то при возникновении ошибки контроля четности сообщение, возможно, не появится, а просто произойдет блокировка системы. После перезагрузки система BIOS должна идентифицировать ошибку и выдать соответствующее сообщение.


Модули SIMM и DIMM поставляются как с поддержкой битов четности, так и без нее.

Первые ПК использовали память с контролем четности для регулировки точности осуществляемых операций. Начиная с 1994 года на рынке ПК стала развиваться тревожная тенденция. Большинство компаний начали предлагать компьютеры с памятью без контроля четности и вообще без каких бы то ни было средств определения или исправления ошибок. Применение модулей SIMM без контроля четности сокращало стоимость памяти на 10–15%. В свою очередь, память с контролем четности обходилась дороже за счет применения дополнительных битов четности. Технология контроля четности не позволяет исправлять системные ошибки, однако предоставляет пользователю компьютера возможность их обнаружить, что имеет следующие преимущества:

контроль четности защищает от последствий неверных вычислений на базе некорректных данных;

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


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


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

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


Рассмотрим конкретный пример (имейте в виду, что разряды в байте нумеруются с нуля, т.е. 0, 1, 2, ..., 7).

Значение бита: 1 0 1 1 0 0 1 1 0

В данном случае общее число единичных битов данных нечетное (5), поэтому бит четности должен быть равен нулю.


Рассмотрим еще один пример.

Разряд данных: 0 1 2 3 4 5 6 7 бит чётности

Значение бита: 0 0 1 1 0 0 1 1 1

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

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

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


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


Такие мошеннические действия были вызваны дороговизной микросхем памяти, и производители были готовы переплатить пару лишних долларов на генератор, чтобы не платить за более дорогую микросхему, хранящую биты четности. К сожалению, определить наличие в модуле памяти такого генератора было достаточно сложно. Поддельный генератор четности внешне отличался от обычных микросхем памяти и имел маркировку, отличную от других микросхем модуля. Большинство из генераторов имели логотип “GSM”, который указывал на изготовителя логического устройства проверки четности, часто отличавшегося от компании, выпустившей сам модуль памяти.


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


Код коррекции ошибок

Коды коррекции ошибок (Error Correcting Code - ECC) позволяют не только обнаружить ошибку, но и исправить ее в одном разряде. Поэтому компьютер, в котором используются подобные коды, в случае ошибки в одном разряде может работать без прерывания, причем данные не будут искажены. Коды коррекции ошибок в большинстве ПК позволяют только обнаруживать, но не исправлять ошибки в двух разрядах. В то же время приблизительно 98% сбоев памяти вызвано именно ошибкой в одном разряде, т.е. она успешно исправляется с помощью данного типа кодов. Данный тип ECC получил название SEC_DED (эта аббревиатура расшифровывается как “одноразрядная коррекция, двухразрядное обнаружение ошибок”).


В кодах коррекции ошибок этого типа для каждых 32 бит требуется дополнительно семь контрольных разрядов при 4-байтовой и восемь - при 8-байтовой организации (64-разрядные процессоры Athlon/Pentium). Реализация кода коррекции ошибок при 4-байтовой организации, естественно, дороже обычной проверки четности, но при 8-байтовой организации их стоимости равны, поскольку требуют одного и того же количества дополнительных разрядов.


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


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


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


Вывод

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

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

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама