PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Оперативная память

Оперативная память

Память FPM

Чтобы сократить время ожидания, стандартная память DRAM разбивается на страницы. Обычно для доступа к данным в памяти необходимо выбрать строку и столбец адреса, на что затрачивается некоторое время. Разбиение на страницы обеспечивает более быстрый доступ ко всем данным в пределах некоторой строки памяти, т.е. если изменяется не номер строки, а только номер столбца. Такой режим доступа к данным в памяти называется быстрым постраничным режимом (Fast Page Mode), а сама память — памятью FPM. Другие варианты постраничного режима называются Static Column и Nibble Mode.

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

Для повышения скорости доступа к памяти были разработаны и другие схемы. Одним из наиболее существенных изменений было внедрение пакетного режима доступа в процессоре 486 и более поздних. В большинстве случаев доступ к памяти является последовательным. Если же установить строку и столбец адреса в пакетном режиме, можно обращаться к следующим трем смежным адресам без дополнительных состояний ожидания. И в этом несомненное преимущество использования данного режима. Однако доступ в пакетном режиме обычно ограничивается четырьмя операциями. Чтобы объяснить это, обратимся к схеме синхронизации по количеству циклов для каждой операции доступа. Схема синхронизации типичного доступа в пакетном режиме для стандартной динамической оперативной памяти выглядит следующим образом: x-y-y-y, где x — время выполнения первой операции доступа (продолжительность цикла плюс время ожидания), а y — число циклов, необходимых для выполнения каждой последующей операции доступа.

Схема синхронизации в пакетном режиме для стандартной DRAM со временем доступа 60 нс обычно выглядит так: 5-3-3-3. Это означает, что первая операция доступа длится пять циклов на системной шине с частотой 66 МГц, что приблизительно равно 75 нс (5×15 нс; 15 нс — длительность одного цикла), в то время как последующие операции длятся по три цикла (3×15 нс = 45 нс). Без применения пакетной технологии схема синхронизации имела бы вид 5-5-5-5, так как для каждой операции выборки из памяти требовалось бы полное время ожидания. 45-наносекундный цикл при пакетной выборке и 64-разрядной шине данных обеспечивает пропускную способность 177 Мбайт/с (22,2 МГц×8 байт).

Память DRAM, поддерживающая разбиение на страницы и пакетный режим, называется памятью с быстрым постраничным режимом (Fast Page Memory — FPM). Этим подчеркивается, что для доступа к данным в памяти без смены страницы требуется меньше циклов ожидания. В большинстве компьютеров 386, 486 и Pentium, увидевших свет в 1987–1995 годах, используется память FPM, имеющая форму модулей с 30 или 72 контактами.

Другой метод ускорения FPM называется чередованием. Он совместно использует два отдельных банка памяти, распределяя между ними четные и нечетные байты. Когда происходит обращение к одному банку, в другом банке выбираются строка и столбец адреса. К моменту окончания выборки данных в первом банке во втором заканчиваются циклы ожидания, и он готов к выборке данных. Когда данные выбираются из второго банка, в первом идет процесс выборки строки и столбца адреса для следующей операции доступа. Это совмещение (перекрытие по времени) операций доступа в двух банках сокращает время ожидания и обеспечивает более быстрый поиск данных. Единственная проблема состоит в том, что для использования данного метода необходимо устанавливать идентичные пары модулей, а при этом удваивается количество микросхем SIMM или DIMM. Чередование широко использовалось в 32-разрядных запоминающих устройствах для процессора 486, но малоэффективно в случае 64-разрядной памяти в процессоре Pentium. Чтобы использовать чередование памяти в Pentium, необходимо установить 128разрядную память, т.е. четыре модуля SIMM с 72 контактами.

Модули SIMM, DIMM и RIMM

Изначально оперативная системная память устанавливалась в виде отдельных микросхем, которые благодаря своей конструкции получили название “микросхемы с двухрядным расположением выводов” (Dual Inline Package — DIP). Системные платы оригинальных систем IBM XT и АТ содержали до 36 разъемов, предназначенных для подключения микросхем памяти. В дальнейшем микросхемы памяти устанавливались на отдельных платах, которые, в свою очередь, подключались в разъемы шины. Я до сих пор помню, сколько времени отнимала эта утомительная и однообразная работа.

Нельзя обойти стороной еще один важный недостаток такой организации памяти — микросхемы постепенно “выползали” из своих гнезд. Виной тому был жесткий температурный режим. Компьютеры постоянно включались и выключались, в результате чего микросхемы нагревались и охлаждались. Изменение длины контактов микросхем приводило к тому, что микросхемы постепенно сами выталкивали себя из гнезд. Когда в конце концов контакт обрывался, это приводило к ошибке памяти. Устранить проблему можно, более плотно вставив микросхему в гнездо, однако представьте себе, сколько лишней работы предполагало обслуживание нескольких десятков компьютеров в компании.

Альтернативой этому подходу служило только припаивание контактов микросхем к материнской плате или карте расширения. Однако такое постоянное прикрепление вызывало другую проблему — в случае выхода из строя одного из модулей памяти его приходилось выпаивать или вырезать кусачками, одновременно припаивая новую микросхему. Этот подход был более дорогостоящим; к тому же существовал дополнительный риск повреждения микросхем. Получалось так, что микросхемы должны быть одновременно и припаянными, и легко заменяемыми. Этот принцип нашел свое применение в модулях SIMM. В качестве альтернативы установке отдельных микросхем памяти в абсолютном большинстве настольных систем используют модули SIMM, DIMM или RIMM. Это небольшие платы с микросхемами памяти, которые вставляются в специальные разъемы материнской платы. Отдельные микросхемы припаяны к плате модуля, так что их индивидуальное удаление и замена невозможны. Если какая-либо микросхема модуля выходит из строя, приходится заменять весь модуль. Таким образом, модуль памяти можно рассматривать как одну большую микросхему.

Сегодня существует два основных типа модулей SIMM, три — модулей DIMM и только один тип модулей RIMM. Все они используются в настольных системах. Типы модулей различаются количеством выводов, шириной строки памяти или типом памяти.

К основным типам модулей SIMM относятся 30-контактный (8 бит плюс 1 дополнительный бит контроля четности) и 72-контактный (32 бит плюс 4 дополнительных бита контроля четности), обладающие различными свойствами. 30-контактный модуль SIMM имеет меньшие размеры, чем 72-контактный, причем микросхемы памяти в обоих случаях могут быть расположены как на одной стороне платы, так и на обеих. Модули SIMM широко использовались с конца 1980-х до конца 1990-х годов, однако сейчас их можно найти только в устаревших системах.

Как уже отмечалось, существует три типа модулей DIMM, которые обычно содержат стандартные микросхемы SDRAM или DDR SDRAM и отличаются друг от друга физическими характеристиками. Стандартный модуль DIMM имеет 168 выводов, по одному радиусному пазу с каждой стороны и два паза в области контакта. Модуль DDR DIMM имеет 184 вывода, по два паза с каждой стороны и только один паз в области контакта. Модуль DDR2 DIMM имеют 240 выводов, два разъема на правой и левой сторонах модуля и один — в центре контактной области. Длина тракта данных модулей DIMM может достигать 64 бит (без контроля четности) или 72 бит (с контролем четности или поддержкой кода коррекции ошибок ЕСС). На каждой стороне платы DIMM расположены различные выводы сигнала. Именно поэтому они называются модулями памяти с двухрядным расположением выводов. Эти модули примерно на один дюйм (25 мм) длиннее модулей SIMM, но благодаря своим свойствам содержат гораздо больше выводов.

Примечание!

Многие пользователи, в том числе профессионалы, неверно трактуют термины ‘‘односторонний’’ и ‘‘двухсторонний’’ в контексте модулей памяти. На самом деле эти термины не имеют ничего общего с местом расположения микросхем памяти (на одной или на двух сторонах модуля), а также не указывают, соответствует этот модуль типу SIMM или DIMM (т.е. расположены ли контактные выводы на одной стороне модуля или на обеих). На самом деле данные термины используются для обозначения модулей с одним или двумя банками микросхем памяти. Двухбанковый модуль DIMM имеет два 64-разрядных банка логически объединенных микросхем, т.е. оснащен в два раза большим количеством 64-разрядных рядов памяти, чем односторонний модуль. Как правило, микросхемы при этом размещаются по обе стороны модуля; таким образом, термин ‘‘двухсторонний’’ часто применяется для указания того, что модуль оснащен двумя банками памяти, но это неверно с технической точки зрения. Модули с одним банком памяти (неправильнообозначаемые как односторонние) также могут иметь микросхемы памяти, установленные с обеих сторон модуля, в то время как модули с двумя банками (неверно обозначаемые как двухсторонние) могут представлять собой модуль с микросхемами, установленными лишь на одной стороне. Таким образом, вместо терминов ‘‘односторонний’’ и ‘‘двухсторонний’’ имеет смысл использовать более адекватные и технически обоснованные термины ‘‘однобанковый’’ и ‘‘двухбанковый’’.

Сигнальные выводы, расположенные на разных сторонах платы RIMM, также различны. Существует три физических типа модулей RIMM: 16/18-разрядная версия со 184 выводами, 32/36-разрядная версия, имеющая 232 вывода, и 64/72-разрядная версия, содержащая 326 выводов. Размеры разъемов, используемых для установки модулей памяти, одинаковы, но расположения пазов в разъемах и платах RIMM различны, что позволяет избежать установки несоответствующих модулей. Любая системная плата поддерживает только один тип модулей памяти. Вначале наиболее распространенным типом являлась 16/18-разрядная версия; 32-разрядная версия модулей памяти была представлена в конце 2002 года, а 64-разрядная появилась в 2004 году.

Стандартный 16/18-разрядный модуль RIMM имеет 184 вывода, по одному пазу с каждой стороны и два симметрично расположенных паза в области контакта. Для приложений, не поддерживающих код коррекции ошибок (ЕСС), используются 16-разрядные версии, в то время как 18-разрядные включают в себя дополнительные биты, необходимые для поддержки ЕСС.

На рисунках показаны 30-контактный (8 бит) модуль SIMM, 72-контактный (32 бит) модуль SIMM, 168-контактный модуль SDRAM DIMM, 184-контактный модуль DDR SDRAM (64 бит) DIMM, 240-контактные модули DDR2 и DDR3 DIMM и 184-контактный модуль RIMM. Контакты пронумерованы слева направо и расположены с обеих сторон модуля SIMM. Контакты с каждой стороны модуля DIMM отличаются, а у модуля SIMM обе стороны идентичны. Обратите внимание, что размеры указаны как в миллиметрах, так и в дюймах (в скобках), а модули выпускаются как с проверкой четности ECC (используется один дополнительный бит ECC, или четности, на каждые 8 бит данных, в результате чего ширина шины данных составляет 9 бит), так и без нее (в результате ширина шины данных составляет 8 бит).

Модуль SIMM

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

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

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

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

Примечание!

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

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



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

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

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

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

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

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

Память типа DRAM

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

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

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

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

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

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

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

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



Память EDO

Начиная с 1995 года в компьютерах на основе Pentium используется новый тип оперативной памяти — EDO (Extended Data Out — память с расширенным выводом). Это усовершенствованный тип памяти FPM; его иногда называют Hyper Page Mode. Память типа EDO была разработана и запатентована компанией Micron Technology (позже лицензии приобрели многие другие изготовители).

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

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

Для оперативной памяти EDO схема синхронизации в пакетном режиме имеет вид 5-2-2-2, а не 5-3-3-3, как для стандартной памяти FPM. Это означает, что четыре передачи данных из памяти EDO занимают 11 полных системных циклов (сравните с 14-ю полными циклами для FPM). Благодаря этому при проведении специальных тестов быстродействие увеличилось на 22%. При этом время выборки снижается с 45 нс (FPM) до 30 нс (EDO). В системах с 64-разрядной шиной данных (8 байт) пропускная способность увеличивается до 266 Мбайт/с (33,3 МГц×8 байт). Благодаря наличию кэш-памяти общая производительность системы повышается только на 5%. Хотя увеличение может показаться совсем небольшим, главное преимущество EDO состоит в том, что в запоминающих устройствах подобного типа используются те же микросхемы динамической оперативной памяти, что и в FPM. При этом стоимость таких запоминающих устройств равна стоимости FPM, но EDO обладает более высокой эффективностью, чем FPM.

Память EDO обычно выпускается в виде 72-контактных модулей SIMM.

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

Оперативная память EDO идеальна для систем с быстродействием шины до 66 МГц. Такие шины использовались до 1997 года включительно; однако в течение 1998 года память EDO была заменена более новой и быстрой памятью SDRAM (Synchronous DRAM — синхронное динамическое ОЗУ). Эта новая архитектура стала новым стандартом оперативной памяти ПК.

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

Подкатегории