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

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

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

3.3. Кэш-память - SRAM

Существует тип памяти, совершенно отличный от других, - статическая оперативная память (Static RAM - SRAM). Она названа так потому, что, в отличие от динамической оперативной памяти (DRAM), для сохранения ее содержимого не требуется периодической регенерации. Но это не единственное ее преимущество. SRAM имеет более высокое быстродействие, чем динамическая оперативная память, и может работать на той же частоте, что и современные процессоры.

Время доступа SRAM не более 2 нc, это означает, что такая память может работать синхронно с процессорами на частоте 500 МГц или выше! Однако для хранения каждого бита в конструкции SRAM используется кластер из шести транзисторов. Использование транзисторов без каких-либо конденсаторов означает, что нет необходимости в регенерации. (Ведь если нет никаких конденсаторов, то и заряды не теряются.) Пока подается питание, SRAM будет помнить то, что сохранено. Почему же тогда микросхемы SRAM не используются для всей системной памяти? Ответ можно найти в следующей таблице.1

Плотность

Быстродейст-

Стоимость

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

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

По сравнению с динамической оперативной памятью быстродействие SRAM намного выше, но плотность ее намного ниже, а цена довольно высокая. Более низкая плотность означает, что микросхемы SRAM имеют большие габариты, хотя их информационная емкость намного меньше. Большое число транзисторов и кластеризованное их размещение не только увеличивает габариты микросхем SRAM, но и значительно повышает стоимость технологического процесса по сравнению с аналогичными параметрами для микросхем DRAM. Например, емкость модуля DRAM может равняться 64 Мбайт или больше, в то время как емкость модуля SRAM приблизи­тельно того же размера составляет только 2 Мбайт, причем их стоимость будет одинаковой. Та­ким образом, габариты SRAM в среднем в 30 раз превышают размер динамической оператив­ной памяти, то же самое можно сказать и о стоимости. Все это не позволяет использовать па­мять типа SRAM в качестве оперативной памяти в персональных компьютерах.

Несмотря на это, разработчики все-таки применяют память типа SRAM для повышения эф­фективности PC. Но во избежание значительного увеличения стоимости устанавливается только небольшой объем высокоскоростной памяти SRAM, которая используется в качестве кэш-памяти. Кэш-память работает на тактовых частотах, близких или даже равных тактовым часто­там процессора, причем обычно именно эта память непосредственно используется процессором при чтении и записи. Во время операций чтения, данные в высокоскоростную кэш-память пред­варительно записываются из оперативной памяти с низким быстродействием, т.е. из DRAM.

Еще недавно время доступа динамической оперативной памяти было не менее 60 нc (что соответствует тактовой частоте 16 МГц). Когда процессор персонального компьютера рабо­тал на тактовой частоте 16 МГц и ниже, DRAM могла быть синхронизирована с системной платой и процессором, поэтому кэш был не нужен. Однако, как только тактовая частота про­цессора поднялась выше 16 МГц, синхронизировать DRAM с процессором стало невозмож­но, и именно тогда разработчики начали использовать SRAM в персональных компьютерах. Это произошло в 1986 и 1987 годах, когда появились PC с процессором 386, работающим на частотах 16 и 20 МГц. Именно в этих персональных компьютерах впервые нашла применение так называемая кэш-память, т.е. высокоскоростной буфер, построенный на микросхемах SRAM, который непосредственно обменивается данными с процессором. Поскольку быстро­действие кэша может быть сравнимо с быстродействием процессора, контроллер кэша может предугадывать потребности процессора в данных и предварительно загружать необходимые данные в высокоскоростную кэш-память. Тогда при выдаче процессором адреса памяти дан­ные могут быть переданы из высокоскоростного кэша, а не из оперативной памяти, быстро­действие которой намного ниже.

Эффективность кэш-памяти выражается коэффициентом совпадения , или коэффициентом успеха . Коэффициент совпадения равен отношению количества удачных обращений в кэш к общему количеству обращений. Попадание - это событие, состоящее в том, что необходимые процессору данные предварительно считываются в кэш из оперативной памяти; иначе говоря, в случае попадания процессор может считывать данные из кэш-памяти. Неудачным обращением в кэш считается такое, при котором контроллер кэша не предусмотрел потребности в данных, находящихся по указанному абсолютному адресу. В таком случае необходимые данные не были предварительно считаны в кэш-память, поэтому процессор должен отыскать их в более медлен­ной оперативной памяти, а не в быстродействующем кэше. Когда процессор считывает данные из оперативной памяти, ему приходится какое-то время "ждать", поскольку тактовая частота оперативной памяти значительно ниже, чем процессора. Если процессор работает на частоте 233 МГц, то продолжительность его цикла равна примерно 4 нс, в то время как продолжитель­ность цикла оперативной памяти может составлять 60 нс, что соответствует тактовой частоте 16 МГц. Таким образом, каждый раз, когда процессор считывает данные из оперативной памя­ти, его работа замедляется. Это настолько ощутимо, что кажется, будто он работает на тактовой частоте 16 МГц! Замедление обусловлено состоянием ожидания. Если процессор находится в состоянии ожидания, то на протяжении всего цикла (такта) никакие операции не выполняются; процессор, по существу, ждет, пока необходимые данные поступят из более медленной.опера­тивной памяти. Поэтому именно кэш-память позволяет сократить количество "простоев" и уве­личить быстродействие компьютера в целом.

Чтобы минимизировать время ожидания при считывании процессором данных из медленной оперативной памяти, в современных персональных компьютерах обычно предусмотрены два типа кэш-памяти: кэш-память первого уровня (L1) и кэш-память второго уровня (L2). Кэш-­память первого уровня также называется встроенным, или внутренним кэшем; он непосредст­венно встроен в процессор и фактически является частью микросхемы процессора. Во всех про­цессорах 486 и выше кэш-память первого уровня интегрирована в микросхему процессора.

Кэш-память второго уровня называется вторичным, или внешним кэшем; он устанавлива­ется вне микросхемы процессора. Первоначально она устанавливалась на системной плате. (Так было во всех компьютерах на основе процессоров 386, 486 и Pentium.) Если кэш-память второго уровня установлена на системной плате, то она работает на ее частоте. В этом случае кэш-память второго уровня обычно находится рядом с разъемом процессора.

Для повышения эффективности в более поздних компьютерах на основе процессоров фирмы Intel, в том числе в Pentium Pro и Pentium II/III, кэш-память второго уровня является частью про­цессора. Конечно же, он внешний по отношению к кристаллу центрального процессора, просто эта отдельная микросхема устанавливается внутри корпуса (картриджа) процессора. Поэтому на системных платах для процессоров Pentium Pro или Pentium II нет никакого кэша.

В табл.2 приведены параметры кэш-памяти первого (внутреннего) и второго уровней (внешнего) в современных компьютерах.

3.4. RDRAM

RDRAM, или Rambus DRAM, является радикально новым типом памяти, который исполь­зуется в высокопроизводительных персональных компьютерах с 1999 года. Такая память не­посредственно поддерживается в наборах микросхем системной логики. Аналогичный тип памяти уже использовался в игровых приставках - в популярной модели Nintendo 64.

Обычные типы памяти (FPM/RDO и SDRAM) иногда называют системами с широким каналом. Ширина канала памяти равна ширине шины данных процессора (в системах Pentium 64-бит). Максимальная производительность памяти SDRAM в исполнении DIMM составляет 100x8 (частота x количество передаваемых данных за один такт), или 800 Мбайт/с.

Микросхемы RDRAM увеличивают пропускную способность памяти - в них предусмот­рена "удвоенная" (16-разрядная) шина передачи данных, частота увеличена до 800 МГц, а пропускная способность равна 1,6 Гбайт/с. Для увеличения производительности можно ис­пользовать двух- и четырехканальные RDRAM, которые позволяют увеличить скорость пере­дачи данных до 3,2 или 6,4 Гбайт/с соответственно.

0дин канал памяти Rambus может поддерживать до 32 отдельных устройств RDRAM (микросхем RDRAM), которые устанавливаются в модули RIMM (Rambus Inline Memory Modules). Вся работа с памятью организуется между контроллером памяти и отдельным (а не всеми) устройством. Каждые 10нс (100МГц) одна микросхема RDRAM может передавать 16 байт.

Таблица 2 Параметры кэш-памяти первого (внутреннего) и второго уровней (внешнего) в современных компьютерах

Тип центрального процессора

Типичная тактовая частота центрального процессора, МГц

Быстродействие кэш-памяти первого уровня, нс (МГц)

Быстродействие кэш-второго уровня, нс (МГц)

Быстродействие системной платы, (МГц)

Быстродействие SIMM/DIMM, нс (МГц)

Pentium II (1997)

Pentium II (1998)

Pentium III Xeon

RDRAM работает быстрее SDRAM приблизительно в три раза.

Модули RIMM имеют посередине два ключа, которые, с одной стороны, предотвращают неправильную установку в разъем, а с другой - указывают рабочее напряжение. В настоящее время практически все модули RIMM имеют рабочее напряжение 2,5 В, однако вскоре долж­ны появиться устройства с пониженным энергопотреблением. Для новых типов модулей предназначены дополнительные ключи (рис. 4). Один из ключей в модуле имеет фиксиро­ванное положение (он называется DATUM А), а тип используемого модуля указывает другой ключ, который расположен на некотором расстоянии (с приращением 1 или 2 мм) от первого ключа DATUM А. В настоящее время используются модули типа А (2,5 В). Параметры клю­чей и их назначение приведены в табл. 3.

Рисунок 3

Рисунок 4

Таблица 3. Параметры ключей модулей RIMM и их назначение

Расстояние от DATUM A , мм

Описание

Зарезервирован

Зарезервирован

В каждом модуле RIMM устанавливается микросхема Serial Presence Detect (SPD), которая представляет собой перезаписываемое постоянное запоминающее устройство. В нем хранится информация о размере и типе RIMM, включая более детальные сведения для контрол­лера памяти. Контроллер считывает эту информацию и конфигурирует с ее помощью установленную память.

На рис. 5 показана схема установки модуля RIMM. Котроллер RDRAM и тактовый ге­нератор обычно устанавливаются на системной плате и являются частью компонента систем­ной логики North Bridge. Как видите, три модуля RIMM подключаются последовательно к контроллеру памяти. Каждый модуль содержит 4, 8 или 16 микросхем RDRAM, а также мик­росхему SPD. Каждый новый модуль RIMM необходимо подключать непосредственно за по­следним установленным. В каждый пустой разъем необходимо установить модуль согласова­ния (на рис. 5 он установлен в последний свободный разъем). Временные характеристики работы памяти накладывают ограничение на расстояние между первым модулем RIMM и контроллером памяти на системной плате - не более 6 дюймов (15,24мм). Общая длина шины не должна превышать расстояние, которое сигнал пройдет за четыре такта (около 5 нc).

    регенерация памяти - Регулярный циклический опрос ячеек памяти с регенерацией хранимой в них информации. Такая процедура обращения к памяти необходима в системах с запоминающими ячейками в виде конденсаторов, где время хранения данных ограничено. [Л.М. Невдяев.… …

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

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

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

    - (МПИ) стандарт, определяющий набор контактов и процедуры обмена по 16 разрядной шине с совмещением (мультиплексированием) адреса и данных. Стандарт не определяет физической реализации интерфейса. Содержание 1 Принцип работы 2 Реализации … Википедия

    Типы DRAM памяти FPM RAM EDO RAM Burst EDO RAM SDRAM DDR SDRAM DDR2 SDRAM DDR3 SDRAM DDR4 SDRAM Rambus RAM QDR SDRAM VRAM WRAM SGRAM GDDR2 GDDR3 GDDR4 GDDR5 … Википедия

    Типы DRAM памяти FPM RAM EDO RAM Burst EDO RAM DDR SDRAM DDR2 SDRAM DDR3 SDRAM QDR SDRAM WRAM SGRAM GDDR3 GDDR5 DRAM (Dynamic Random Access Memory) один из видов компьютерной памяти с произвольным доступом (RAM), наиболее широко используемый в… … Википедия

    Запрос «Повелители времени» перенаправляет сюда. О французском фантастическом мультфильме см. Властелины времени (мультфильм) Галлифрей … Википедия

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

    Тип Промышленная микроЭВМ Выпущен? Выпускался по … Википедия

    НЖМД объёмом 45 Мб 1980 х годов выпуска, и 2000 х годов выпуска Модуль оперативной памяти, вставленный в материнскую плату Компьютерная память (устройство хранения информации, запоминающее устройство) часть вычислительной машины, физическое… … Википедия

Типы оперативной памяти

Различают следующие типы оперативной памяти:

● DRDRAM и т. д.

FPM DRАМ

FPM DRAM (Fast Page Mode DRAM) - динамическая память с быстрым страничным доступом, активно используется с микропроцессорами 80386 и 80486. Память со страничным доступом отличается от обычной динамической памяти тем, что после выбора строки матрицы и удержании RAS допускает многократную установку адреса столбца, стробируемого CAS. Это позволяет ускорить блочные передачи, когда весь блок данных или его часть находятся внутри одной строки матрицы, называемой в этой системе страницей. Существуют две разновидности FPM DRAM, различающиеся временем обращения: 60 и 70 нс. Ввиду своей медлительности они не эффективны в системах с процессорами уровня Pentium II. Модули FPM DRAM в основном выпускались в конструктиве SIMM.

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

BEDO DRAM

ВЕDО DRАМ (Burst Extended Data OutPut, EDO с блочным доступом). Современные процессоры благодаря внутреннему и внешнему кэшированию команд

и данных обмениваются с основной памятью преимущественно блоками слов максимальной длины. Этот вид памяти позволяет обрабатывать данные пакетно (блоками) так, что данные считываются блоками за один такт. В случае памяти BEDO отпадает необходимость постоянной подачи последовательных адресов на входы микросхем с соблюдением необходимых временных задержек - достаточно стробировать переход к очередному слову блока. Этот метод позволяет BEDO DRAM работать очень быстро. Память BEDO РКАМ поддерживают некоторые чипсеты фирм VIA Apollo (580VP, 590VP, 680VP) и Intel (i480TX и т. д.) на частоте шины не выше 66 МГц. Активную конкуренцию этому виду памяти составляет память SDRAM, которая постепенно ее и вытесняет. BEDO DRAM представлена модулями и SIMM и DIMM.

SDRAM (Synchronous DRAM - синхронная динамическая память), память с синхронным доступом, увеличивает производительность системы за счет синхронизации скорости работы ОЗУ со скоростью работы шины процессора. SDRAM также осуществляет конвейерную обработку информации, выполняя внутреннее разделение массива памяти на два независимых банка, что позволяет совмещать выборку из одного банка с установкой адреса в другом банке. SDRAM также поддерживает блочный обмен. Основная выгода от использования SDRAM состоит в поддержке последовательного доступа в синхронном режиме, где удается исключить дополнительные такты ожидания. Память SDRAM может устойчиво функционировать на высоких частотах: выпускаются модули, рассчитанные на работу при частотах 100 МГц (спецификация РС100) и 133 МГц (РС133). В начале 2000 года фирма Samsung объявила о выпуске новых интегральных микросхем (ИС) SDRAM с рабочей частотой 266 МГц. Время обращения к данным в этой памяти зависит от внутренней тактовой частоты МП и достигает 5 - 10 нс, максимальная скорость передачи данных «процессор-память» при частоте шины 100 МГц составляет 800 Мбайт/с (фактически равна скорости передачи данных по каналу процессор-кэш). Память SDRAM дает общее увеличение производительности ПК примерно на 25%. Правда, эта цифра относится к работе ПК без кэш-памяти, - при наличии мощной кэш-памяти выигрыш в производительности может составить всего несколько процентов. SDRAM обычно выпускается в 168-контактных модулях типа DIMM и имеет 64-разрядную шину данных. Используется не только в качестве оперативной памяти, но и как память видео- адаптеров, где она полезна при просмотре живого видео и при работе с трехмерной графикой.

DDR SDRAM

DDR SDRAM (Double Data Rate SDRAM - SDRAM II). Вариант памяти SDRAM, осуществляющий передачу информации по обоим фронтам тактового сигнала. Это позволяет удвоить пропускную способность по сравнению с традиционной памятью SDRAM (до 1,6 Гбайт/с при частоте шины 100 МГц). Кроме того, DDR SDRAM может работать на более высокой частоте - в начале 2000 года были выпущены 143, 166 и 183 МГц 64-мегабитовые модули DDR

SDRAM. Модули DDR DRAM конструктивно совместимы с традиционными 168-контактными DIMM. Используются не только в качестве элементов оперативной памяти, но и в высокопроизводительных видеоадаптерах. Сейчас они ориентированы в первую очередь на рынок видеоадаптеров. В конце 2001 года компания Нуniх Semiconductor представила образец 128 Мбит DDR SDRAM (0,16 мкм). Его тактовая частота 375 МГц - самая высокая частота для DDR SDRAM на сегодняшний день (2003 год).

DRDRAM (Direct Rambus DRAM - динамическая память с прямой шиной для RAM) - перспективный тип оперативной памяти, позволивший значительно увеличить производительность компьютеров. Высокое быстродействие памяти Direct RDRAM достигается рядом особенностей, не встречающихся в других типах. В частности, применением собственной двухбайтовой шины Rambus с частотой 800 МГц, обеспечивающей пиковую пропускную способность до 1,6 Гбайт/с. Контроллер памяти Direct RDRAM управляет шиной Rambus и обеспечивает преобразование ее протокола с частотой 800 МГц в стандартный 64-разрядный интерфейс с частотой шины до 200 МГц. Фирма Intel выпустила чипсеты i820, i840, i850 с поддержкой DRDRAM. Модули Direct RDRAM - RIMM внешне подобны модулям DIM M.

В маркировке SDRAM и DRDRAM (часто именуемой также как RDRAM) обычно указывается рабочая частота модуля в виде, например, обозначения РС150, что для SDRAM означает пиковую пропускную способность 1200 Мбайт/с - такую же, как у PC600 для DRDRAM (ввиду малоразрядности шины последней). Правда, многие чипсеты (например i850) поддерживают двухканальный обмен с памятью DRDRAM, что удваивает ее пропускную способность.

Для DDRDRAM указание РС150 подразумевало бы пропускную способность 2400 Мбайт/с - в 2 раза большую, чем для SDRAM (ввиду передачи информации по двум фронтам импульса). Но для DDR принято в маркировке около букв РС указывать не рабочую частоту, а саму пропускную способность. То есть маркировка РС2400 для DDRDRAM означает DDR-память с рабочей частотой 150 МГц (возможное обозначение такой памяти, как DDR150).

Увеличение разрядности и частоты шины Rambus, обещанное в ближайшие годы, делает память DRDRAM, несмотря на ее высокую стоимость, весьма перспективной. Так, компания Samsung наметила в конце 2003 года выпустить 64-битовую память (с четырьмя 16-битовыми каналами), имеющую пропускную способность 8500 Мбайт/с (РС1066) и 9600 Мбайт/с (РС120 0). Ближайшие перспективы DDRDRAM ненамного скромнее: фирма Нуniх Semiconducta анонсировала 512-мегабитовые чипы DDR, изготовленные по 0,10 мкм-технологии с рабочими частотами 266, 333 и 400 МГц (скорость обмена до 6400 Мбайт/с). Характеристики отдельных видов памяти представлены в табл. 6.2. В конце 2002 года появилось сообщение о создании компаниями Toshiba и Infineon Technologies AG новой ферроэлектрической микросхемы энергонезависимой памяти (FeRAM - Ferroelectric Random Access non-volatile Memory) емкостью 32 Мбит, по пропускной способности сравнимой с ЯРКАМ.

Компании IBM и Infineon Technologies разработали технологию магнитной оперативной памяти с произвольной выборкой (MRAM). Работает MRAM аналогично флэш-памяти (Flash) и является энергонезависимой. IBM сообщила, что MRAM сможет заменить существующие разновидности DRAM уже к 2005 году. Компьютер с MRAM будет загружаться практически мгновенно.

*************************************

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

Пейджинг обеспечивает более быстрый доступ ко всем данным в заданной строке памяти, сохраняя тот же адрес строки и изменяя только столбец. Использующая этот метод память, называется «Page Mode» или «Fast Page Mode». Другие вариации называния режима Page Mode - Static Column или Memory Mode.

Пейджинговая память - это простая схема повышения производительности памяти, которая делит память на «page» размером от 512 байт до нескольких килобайт. Схема пейджинга позволяет доступ к ячейкам памяти с меньшим количеством состояний ожидания. Если нужная ячейка памяти находится за пределами текущей page, при выборе системой новой страницы, добавляются одно или несколько состояний ожидания.

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

Используя режим пакетной обработки, после настройки для заданного доступа адресов строк и столбцов, вы можете получить доступ к следующим трём соседним адресам без дополнительных состояний ожидания. Обычно доступ к пакету ограничен четырьмя полными доступами. Чтобы описать это, мы часто ссылаемся на тайминг в количестве циклов для каждого доступа. Типичный пакетный режим доступа стандартной DRAM выражается как x-y-y-y. Где x - время для первого доступа (время задержки плюс время цикла), а y - количество циклов, необходимых для каждого последовательного доступа.

Стандартная 60-разрядная DRAM - память обычно работает с частотой 5-3-3-3 импульсов. Это означает, что первый доступ занимает в общей сложности пять циклов (на системной шине 66 МГц, это около 75ns, или 5 × 15ns циклов), а последовательные циклы занимают три цикла каждый (3 × 15ns = 45ns). Как вы можете видеть, фактический системный тайминг несколько меньше, чем технически рассчитана память.

Без технологического прерывания доступ к памяти будет 5-5-5-5, потому что для каждой передачи памяти необходима полная латентность. Время цикла 45ns во время пакетных передач равно примерно 22,2 МГц эффективной тактовой частоты. В системе с 64-битной (8-байтной) шиной памяти это приведёт к максимальной пропускной способности 177 Мбит/с (22,2 МГц × 8 байтов = 177 Мбит/с).

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

Большинство систем 386, 486 и Pentium с 1987 по 1995 год использовали память FPM, которая включала в себя либо 30-контактную, либо 72-контактную форму SIMM.

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

Extended Data Out RAM

В 1995 году, для Pentium систем стал доступен новый тип DRAM - расширенный вывод данных (EDO) RAM. EDO, модифицированная форма памяти FPM, иногда упоминаемая как режим Hyper Page. EDO была изобретена и запатентована компанией Micron Technology, хотя Micron лицензировала производство для многих других производителей памяти.

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

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

EDO RAM, по сравнению с 5-3-3-3 стандартного режима быстрой памяти, обеспечивает циклический пакетный режим 5-2-2-2. Чтобы выполнить четыре передачи памяти, EDO, по сравнению с 14 полными циклами для FPM, потребуется 11 общих системных циклов. Это 22% -ное улучшение общего времени циклов.

Результирующее двухцикличное (30ns) время цикла во время пакетных передач, по сравнению с 45 ns/22 МГц для FPM, равно 33,3 МГц эффективной тактовой частоты. В системе с 64-битной (8-байтной) шиной памяти, это приведёт к максимальной пропускной способности 266 Мбит/с (33,3 МГц × 8 байтов = 266 Мбит/с).

Из-за кэша процессора, EDO обычно повышала общую скорость тестирования системы только на 5% или меньше.

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

EDO RAM обычно поставлялось в 72-контактной SIMM форме.

Чтобы на самом деле использовать память EDO, ваш чипсет должен был его поддерживать. Большинство, представленных на рынке с 1995 года (Intel 430FX) до 1997 года (Intel 430TX) чипсетов для материнских плат, предполагали поддержку EDO, сделав EDO самой популярной формой памяти на ПК с 1995 по 1998 год. Поскольку чипы памяти EDO стояли столько же, как и стандартные чипы, к тому же сочетали поддержку Intel для EDO в чипсетах материнских плат, рынок ПК выбрал EDO.

EDO RAM использовалось в системах с частотой шины до 66МГц, что идеально подходило для рынка ПК до 1998 года. Однако, начиная с 1998 года, с появлением 100-мегагерцовых и более быстрых системных шин, рынок для EDO быстро упал, стандартом стала более быстрая архитектура SDRAM.

Одна вариация EDO, которая совсем не стала известной, называлась burst EDO (BEDO). BEDO добавила возможности для передачи данных даже более быстрые, чем стандартный EDO. К сожалению, технология принадлежала Micron, а не свободному отраслевому стандарту, поэтому его поддерживал только один чипсет (Intel 440FX Natoma). BEDO быстро затмилась отраслевой SDRAM, которая стала популярной среди системных чипсетов ПК и системных дизайнеров проприетарных проектов. Таким образом, BEDO действительно никогда не вышел в производство, и нет систем которые его использовали.

SDRAM

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

Как и любому новому типу памяти, прежде чем его можно будет использовать в системах, требуется поддержка чипсета на материнской плате. Начиная с 1996 года с 430VX и 430TX, большинство чипсетов Intel начали поддерживать стандартную SDRAM, а в 1998 году внедрение чипсета 440BX заставило SDRAM затмить EDO как самый популярный тип на рынке.

Производительность SDRAM, по сравнению с производительностью ОЗУ FPM или EDO, значительно улучшена. Однако, поскольку SDRAM по-прежнему тип DRAM, начальная задержка одинакова, но время цикла в пакетном режиме намного быстрее, чем при использовании FPM или EDO. Тайминг SDRAM для доступа к пакету 5-1-1-1, что означает, четыре чтения памяти будут завершены всего в восьми циклах системной шины, по сравнению с 11 циклами для EDO и 14 циклами для FPM. Это делает SDRAM почти на 20% быстрее, чем EDO.

SDRAM, кроме возможности работать меньшими циклами, способен поддерживать циклическую системную шину до 133 МГц (7,5ns). В большинстве продающихся с 1998 по 2002 год системах PC включена память SDRAM.

SDRAM продаётся в форме DIMM и обычно оценивается тактовой частотой (МГц), а не временем цикла (ns). Это во время первоначального перехода от FPM и EDO DRAM сбивало с толку.

Чтобы удовлетворить строгие требования тайминга на свои чипсеты, Intel разработала для SDRAM спецификации, под названием PC66 и PC100. Например, кажется, что для работы на частоте 100 МГц, 10ns будет достаточно, но, предлагаемая Intel спецификация PC100, потребовала более быструю память 8ns. Гарантируя этим, что все временные параметры будут удовлетворены с достаточным запасом для ошибок.

В мае 1999 года JEDEC создала спецификации под названием PC133. Увеличение скорости до 33 MHz достигается за счёт спецификации PC100, ужесточения тайминга и параметров ёмкости. Более быстрый PC133 быстро попал на все системы с 133-мегагерцовой процессорной шиной. Исходные, используемые в модулях PC133 чипы, рассчитаны на 7,5ns или 133 МГц. Более поздние чипы имели разряд в 7,0ns, что технически составляет 143МГц. Эти более быстрые чипы по-прежнему использовались на модулях PC133, но они позволяли улучшать задержку стробирования по столбцам (сокращённо CAS или CL), что несколько улучшает общее время циклирования памяти.

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

SDRAM модуль стандарта JEDEC (168-контактный DIMM) "Скорости" и "Скорость передачи"

Тип модуля Тип чипа Тактовая частота Циклы в течение времени Скорость шины Ширина шины Скорость передачи данных
PC66 15ns\10ns 66MHz 1 66MTps 8 bytes 533MBps
PC100 8ns 100MHz 1 100MTps 8 bytes 800MBps
PC133 7.5ns\7ns 133MHz 1 133MTps 8 bytes 1.066MBps

МГц = миллион циклов в секунду
MTps = миллионов переводов в секунду
Мбит/с = миллион байт в секунду
NS = наносекунд (миллиардных долей секунды)

Некоторые производители продавали модули, которые, по их утверждению, были «PC150» или «PC166», хотя эти скорости не существовали как официальные стандарты JEDEC или Intel, и чипсеты или процессоры официально эти скорости не поддерживали. Эти модули фактически использовали собранные с частотой 133 МГц чипы, которые могли работать разогнанными на частотах 150 МГц или 166 МГц.

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

Внимание . В общем память PC133 считается обратно совместимой с памятью PC100. Однако некоторые чипсеты или материнские платы имели более конкретные требования для определённых типов 100 или 133 МГц чипов и конструкций модуля. Если вам необходимо обновить более старую, требующую памяти PC100 систему, но PC133 память не идентифицирована поставщиком как совместимая с вашей системой, приобретать её не стоит. Для покупки памяти, чтобы гарантировать её валентность для вашей системы, вы можете использовать предоставляемые большинством основных производителей памяти, онлайн-инструменты.

Как правило, вы обнаружите модули SDRAM с классом CL 2 или CL 3.


Динамическая оперативная память (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 не обойтись.