Оперативная память 1. Оперативная память: основные понятия В этой статье память рассматривается как в логическом, так и в физическом аспекте. Здесь описаны микросхемы и модули памяти, которые можно установить в компьютере. Кроме того, речь идет о структуре памяти, ее разбивке на области и о назначении этих областей. Глава содержит много полезной информации, благодаря которой вы сможете использовать компьютер гораздо эффективнее. Оперативная память — это рабочая область для процессора компьютера. В ней во время работы хранятся программы и данные. Оперативная память часто рассматривается как временное хранилище, потому что данные и программы в ней сохраняются только при включенном компьютере или до нажатия кнопки сброса (reset). Перед выключением или нажатием кнопки сброса все данные, подвергнутые изменениям во время работы, необходимо сохранить на запоминающем устройстве, которое может хранить информацию постоянно (обычно это жесткий диск). При новом включении питания сохраненная информация вновь может быть загружена в память. Устройства оперативной памяти иногда называют запоминающими устройствами с произвольным доступом. Это означает, что обращение к данным, хранящимся в оперативной памяти, не зависит от порядка их расположения в ней. За несколько лет определение RAM (Random Access Memory) превратилось из обычной аббревиатуры в термин, обозначающий основное рабочее пространство памяти, создаваемое микросхемами динамической оперативной памяти (Dynamic RAM — DRAM) и используемое процессором для выполнения программ. Одним из свойств микросхем DRAM (и, следовательно, оперативной памяти в целом) является динамическое хранение данных, что означает, во-первых, возможность многократной записи информации в оперативную память, а во-вторых, необходимость постоянного обновления данных (т. е., в сущности, их перезапись) примерно каждые 15 мс (миллисекунд). Также существует так называемая статическая оперативная память (Static RAM — SRAM), не требующая постоянного обновления данных. Следует заметить, что данные сохраняются в оперативной памяти только при включенном питании. Термин оперативная память часто обозначает не только микросхемы, которые составляют устройства памяти в системе, но включает и такие понятия, как логическое отображение и размещение. Логическое отображение — это способ представления адресов памяти на фактически установленных микросхемах. Размещение — это расположение информации (данных и команд) определенного типа по конкретным адресам памяти системы. Новички часто путают оперативную память с памятью на диске, поскольку емкость устройств памяти обоих типов выражается в одинаковых единицах — мега- или гигабайтах. Попытаемся объяснить связь между оперативной памятью и памятью на диске с помощью следующей простой аналогии. Представьте себе небольшой офис, в котором некий сотрудник обрабатывает информацию, хранящуюся в картотеке. В нашем примере шкаф с картотекой будет выполнять роль жесткого диска системы, где длительное время хранятся программы и данные. Рабочий стол будет представлять оперативную память системы, которую в текущий момент обрабатывает сотрудник, — его действия подобны работе процессора. Он имеет прямой доступ к любым документам, находящимся на столе. Однако, прежде чем конкретный документ окажется на столе, его необходимо отыскать в шкафу. Чем больше в офисе шкафов, тем больше документов можно в них хранить. Если рабочий стол достаточно большой, можно одновременно работать с несколькими документами. Добавление к системе жесткого диска подобно установке еще одного шкафа для хранения документов в офисе — компьютер может постоянно хранить большее количество информации. Увеличение объема оперативной памяти в системе подобно установке большего рабочего стола — компьютер может работать с большим количеством программ и данных одновременно. Впрочем, есть одно различие между хранением документов в офисе и файлов в компьютере: когда файл загружен в оперативную память, его копия все еще хранится на жестком диске. Обратите внимание: поскольку невозможно постоянно хранить файлы в оперативной памяти, все измененные после загрузки в память файлы должны быть вновь сохранены на жестком диске перед выключением компьютера. Если измененный файл не будет сохранен, то первоначальная копия файла на жестком диске останется неизменной. Во время выполнения программы в оперативной памяти хранятся ее данные. Микросхемы оперативной памяти (RAM) иногда называют энергозависимой памятью: после выключения компьютера данные, хранимые в них, будут потеряны, если они предварительно не были сохранены на диске или другом устройстве внешней памяти. Чтобы избежать этого, некоторые приложения автоматически делают резервные копии данных. Файлы компьютерной программы при ее запуске загружаются в оперативную память, в которой хранятся во время работы с указанной программой. Процессор выполняет программно-реализованные команды, содержащиеся в памяти, и сохраняет их результаты. Оперативная память хранит коды нажатых клавиш при работе с текстовым редактором, а также величины математических операций. При выполнении команды Сохранить (Save) содержимое оперативной памяти сохраняется в виде файла на жестком диске. Физически оперативная память в системе представляет собой набор микросхем или модулей, содержащих микросхемы, которые обычно подключаются к системной плате. Эти микросхемы или модули могут иметь различные характеристики и, чтобы функционировать правильно, должны быть совместимы с системой, в которую устанавливаются. В настоящее время новые типы памяти разрабатываются значительно быстро, и вероятность того, что в новые компьютеры нельзя будет установить память устаревшего типа, как никогда велика. Поэтому при замене системной платы зачастую приходится заменять и память. ^ В связи с этим при выборе типа устанавливаемой памяти следует все хорошо обдумать и просчитать, чтобы минимизировать затраты на будущую модернизацию (или ремонт).В современных компьютерах используются запоминающие устройства трех основных типов.ROM (Read Only Memory). Постоянное запоминающее устройство — ПЗУ, не способное выполнять операцию записи данных. DRAM (Dynamic Random Access Memory). Динамическое запоминающее устройство с произвольным порядком выборки. SRAM (Static RAM). Статическая оперативная память.^ 2. Память типа ROM В памяти типа ROM (Read Only Memory), или ПЗУ (постоянное запоминающее устройство), данные можно только хранить, изменять их нельзя. Именно поэтому такая память используется только для чтения данных. ROM также часто называется энергонезависимой памятью, потому что любые данные, записанные в нее, сохраняются при выключении питания. Поэтому в ROM помещаются команды запуска персонального компьютера, т. е. программное обеспечение, которое загружает систему. Заметьте, что ^ ROM и оперативная память — не противоположные понятия. На самом деле ROM представляет собой часть оперативной памяти системы. Другими словами, часть адресного пространства оперативной памяти отводится для ROM. Это необходимо для хранения программного обеспечения, которое позволяет загрузить операционную систему. Основной код BIOS содержится в микросхеме ROM на системной плате, но на платах адаптеров также имеются аналогичные микросхемы. Они содержат вспомогательные подпрограммы базовой системы ввода-вывода и драйверы, необходимые для конкретной платы, особенно для тех плат, которые должны быть активизированы на раннем этапе начальной загрузки, например видеоадаптер. Платы, не нуждающиеся в драйверах на раннем этапе начальной загрузки, обычно не имеют ROM, потому что их драйверы могут быть загружены с жесткого диска позже — в процессе начальной загрузки. В настоящее время в большинстве систем используется одна из форм Flash-памяти, которая называется электронно-перепрограммируемой постоянной памятью (Electrically Erasable Programmable Read-only Memory — EEPROM). Flash-память является по-настоящему энергонезависимой и перезаписываемой, она позволяет пользователям легко модифицировать ROM, программно-аппаратные средства системных плат и других компонентов (таких, как видеоадаптеры, платы SCSI, периферийные устройства и т. п.).^ 3. Память типа DRAM Динамическая оперативная память (Dynamic RAM — DRAM) используется в большинстве систем оперативной памяти современных персональных компьютеров. Основное преимущество памяти этого типа состоит в том, что ее ячейки упакованы очень плотно, т. е. в небольшую микросхему можно упаковать много битов, а значит, на их основе можно построить память большой емкости. Ячейки памяти в микросхеме DRAM — это крошечные конденсаторы, которые удерживают заряды. Именно так (наличием или отсутствием зарядов) и кодируются биты. Проблемы, связанные с памятью этого типа, вызваны тем, что она динамическая, т. е. должна постоянно регенерироваться, так как в противном случае электрические заряды в конденсаторах памяти будут "стекать" и данные будут потеряны. Регенерация происходит, когда контроллер памяти системы берет крошечный перерыв и обращается ко всем строкам данных в микросхемах памяти. Большинство систем имеют контроллер памяти (обычно встраиваемый в набор микросхем системной платы), который настроен на соответствующую промышленным стандартам частоту регенерации, равную 15 мкс. Ко всем строкам данных обращение осуществляется по прохождении 128 специальных циклов регенерации. Это означает, что каждые 1,92 мс (128*15 мкс) прочитываются все строки в памяти для обеспечения регенерации данных. Регенерация памяти, к сожалению, отнимает время у процессора: каждый цикл регенерации по длительности занимает несколько циклов центрального процессора. В старых компьютерах циклы регенерации могли занимать до 10% (или больше) процессорного времени, но в современных системах, работающих на частотах, равных сотням мегагерц, расходы на регенерацию составляют 1% (или меньше) процессорного времени. Некоторые системы позволяют изменить параметры регенерации с помощью программы установки параметров CMOS, но увеличение времени между циклами регенерации может привести к тому, что в некоторых ячейках памяти заряд "стечет", а это вызовет сбои памяти. В большинстве случаев надежнее придерживаться рекомендуемой или заданной по умолчанию частоты регенерации. Поскольку затраты на регенерацию в современных компьютерах составляют менее 1%, изменение частоты регенерации оказывает незначительное влияние на характеристики компьютера. Одним из наиболее приемлемых вариантов является использование для синхронизации памяти значений по умолчанию или автоматических настроек, заданных с помощью Setup BIOS. Большинство современных систем не позволяют изменять заданную синхронизацию памяти, постоянно используя автоматически установленные параметры. При автоматической установке системная плата считывает параметры синхронизации из системы обнаружения последовательности в ПЗУ (serial presence detect — SPD) и устанавливает частоту периодической подачи импульсов в соответствии с полученными данными. В устройствах DRAM для хранения одного бита используется только один транзистор и пара конденсаторов, поэтому они более вместительны, чем микросхемы других типов памяти. В настоящее время имеются микросхемы динамической оперативной памяти емкостью 512 Мбайт и больше. Это означает, что подобные микросхемы содержат более 256 млн транзисторов! А ведь Pentium 4 имеет только 42 млн транзисторов. Откуда такая разница? Дело в том, что в микросхеме памяти все транзисторы и конденсаторы размещаются последовательно, обычно в узлах квадратной решетки, в виде очень простых, периодически повторяющихся структур, в отличие от процессора, представляющего собой более сложную схему различных структур, не имеющую четкой организации. Транзистор для каждого одноразрядного регистра DRAM используется для чтения состояния смежного конденсатора. Если конденсатор заряжен, в ячейке записана 1; если заряда нет — записан 0. Заряды в крошечных конденсаторах все время стекают, вот почему память должна постоянно регенерироваться. Даже мгновенное прерывание подачи питания или какой-нибудь сбой в циклах регенерации приведет к потере заряда в ячейке DRAM, а следовательно, и к потере данных. В работающей системе подобное приводит к появлению "синего" экрана, глобальным отказам системы защиты, повреждению файлов или к полному отказу системы.^ Динамическая оперативная память используется в персональных компьютерах; поскольку она недорогая, микросхемы могут быть плотно упакованы, а это означает, что запоминающее устройство большой емкости может занимать небольшое пространство. К сожалению, память этого типа не отличается высоким быстродействием, обычно она намного "медленнее" процессора. Поэтому существует множество различных типов организации DRAM, позволяющих улучшить эту характеристику.^ 4. Кэш-память — SRAM Существует тип памяти, совершенно отличный от других, — статическая оперативная память (Static RAM — SRAM). Она названа так потому, что, в отличие от динамической оперативной памяти (DRAM), для сохранения ее содержимого не требуется периодической регенерации. Но это не единственное ее преимущество. SRAM имеет более высокое быстродействие, чем динамическая оперативная память, и может работать на той же частоте, что и современные процессоры. Однако для хранения каждого бита в конструкции SRAM используется кластер из шести транзисторов. Использование транзисторов без каких-либо конденсаторов означает, что нет необходимости в регенерации. (Ведь если нет никаких конденсаторов, то и заряды не теряются.) Пока подается питание, SRAM будет помнить то, что сохранено. Почему же тогда микросхемы SRAM не используются для всей системной памяти? Ответ прост. По сравнению с динамической оперативной памятью быстродействие SRAM намного выше, но плотность ее гораздо ниже, а цена довольно высока. Более низкая плотность означает, что микросхемы SRAM имеют большие габариты, хотя их информационная емкость намного меньше. Большое число транзисторов и кластеризованное их размещение не только увеличивает габариты микросхем SRAM, но и значительно повышает стоимость технологического процесса по сравнению с аналогичными параметрами для микросхем DRAM. Например, емкость модуля DRAM может равняться 64 Мбайт или больше, в то время как емкость модуля SRAM приблизительно того же размера составляет только 2 Мбайт, причем их стоимость будет одинаковой. Таким образом, габариты SRAM в среднем в 30 раз превышают размер динамической оперативной памяти, то же самое можно сказать и о стоимости. Все это не позволяет использовать память типа SRAM в качестве оперативной памяти в персональных компьютерах. Несмотря на это, разработчики все-таки применяют память типа SRAM для повышения эффективности PC. Но во избежание значительного увеличения стоимости устанавливается только небольшой объем высокоскоростной памяти SRAM, которая используется в качестве кэш-памяти. Кэш-память работает на тактовых частотах, близких или даже равных тактовым частотам процессора, причем обычно именно эта память непосредственно используется процессором при чтении и записи. Во время операций чтения данные в высокоскоростную кэш-память предварительно записываются из оперативной памяти с низким быстродействием, т. е. из DRAM. Еще недавно время доступа динамической оперативной памяти было не менее 60 нс (что соответствует тактовой частоте 16 МГц). Для преобразования времени доступа из наносекунд в мегагерцы используется следующая формула:^ 1/наносекунды ? 1000 = МГц. В свою очередь, обратное вычисление осуществляется с помощью такой формулы:1/МГц ? 1000 = наносекунды. Когда процессор персонального компьютера работал на тактовой частоте 16 МГц и ниже, DRAM могла быть синхронизирована с системной платой и процессором, поэтому кэш был не нужен. Однако как только тактовая частота процессора поднялась выше 16 МГц, синхронизировать DRAM с процессором стало невозможно, и именно тогда разработчики начали использовать SRAM в персональных компьютерах. Именно в этих персональных компьютерах впервые нашла применение так называемая кэш-память, т. е. высокоскоростной буфер, построенный на микросхемах SRAM, который непосредственно обменивается данными с процессором. Поскольку быстродействие кэша может быть сравнимо с быстродействием процессора, контроллер кэша может предугадывать потребности процессора в данных и предварительно загружать необходимые данные в высокоскоростную кэш-память. Тогда при выдаче процессором адреса памяти данные могут быть переданы из высокоскоростного кэша, а не из оперативной памяти, быстродействие которой намного ниже. Эффективность кэш-памяти выражается коэффициентом совпадения, или коэффициентом успеха. Коэффициент совпадения равен отношению количества удачных обращений в кэш к общему количеству обращений. Попадание — это событие, состоящее в том, что необходимые процессору данные предварительно считываются в кэш из оперативной памяти; иначе говоря, в случае попадания процессор может считывать данные из кэшпамяти. Неудачным обращением в кэш считается такое, при котором контроллер кэша не предусмотрел потребности в данных, находящихся по указанному абсолютному адресу. В таком случае необходимые данные не были предварительно считаны в кэш-память, поэтому процессор должен отыскать их в более медленной оперативной памяти, а не в быстродействующем кэше. Когда процессор считывает данные из оперативной памяти, ему приходится какое-то время "ждать", поскольку тактовая частота оперативной памяти значительно ниже, чем процессора. Если процессор со встроенной в кристалл кэш-памятью работает на частоте 2 000 МГц (2 ГГц), то продолжительность цикла процессора и интегральной кэш-памяти в этом случае достигнет 0,5 нс, в то время как продолжительность цикла оперативной памяти будет в шесть раз больше, т. е. примерно 3 или 6 нс для памяти с удвоенной скоростью передачи данных (Double Data Rate — DDR). Таким образом, тактовая частота памяти будет всего лишь 333 МГц. Следовательно, в том случае, когда процессор с тактовой частотой 2 ГГц считывает данные из оперативной памяти, его рабочая частота уменьшается в шесть раз, что и составляет 333 МГц. Замедление обусловлено периодом ожидания (wait state). Если процессор находится в состоянии ожидания, то на протяжении всего цикла (такта) никакие операции не выполняются; процессор, по существу, ждет, пока необходимые данные поступят из более медленной оперативной памяти. Поэтому именно кэш-память позволяет сократить количество "простоев" и повысить быстродействие компьютера в целом. Чтобы минимизировать время ожидания при считывании процессором данных из медленной оперативной памяти, в современных персональных компьютерах обычно предусмотрены два типа кэш-памяти: кэш-память первого уровня (L1) и кэш-память второго уровня (L2). Кэш-память первого и второго уровня также называется встроенным или внутренним кэшем; она непосредственно встроена в процессор и фактически является частью микросхемы процессора. ^ 5. Быстродействие ОЗУ Быстродействие процессора выражается в мегагерцах (МГц), а быстродействие запоминающего устройства и его эффективность — в наносекундах (нс). Наносекунда — это одна миллиардная доля секунды, т. е. очень короткий промежуток времени. Заметьте, что скорость света в вакууме равна 299 792 км/с. За одну миллиардную долю секунды световой луч проходит расстояние, равное всего лишь 29,98 см, т. е. меньше длины обычной линейки! Быстродействие процессоров и микросхем выражается в мегагерцах (МГц), т. е. в миллионах циклов, выполняемых в течение одной секунды. Рабочая частота современных процессоров достигает 3000 и более МГц (3 ГГц, или 3 млрд циклов в секунду), а в следующем году, как ожидается, возрастет до 4 ГГц. Очень легко запутаться, сравнивая, например, процессор и модули памяти, быстродействие которых выражено в разных единицах. В 2000 году чаще всего применялась память PC 100 или PC 133, которая работает на частоте 100 или 133 МГц соответственно. Начиная с 2001 года, память стандартов DDR (200 и 266 МГц) и RDRAM (800 МГц) стала завоевывать все большую популярность. В 2002 году появились модули памяти стандарта DDR с частотой 333 и 400 МГц (на сегодня, DDR2 с частотой 800 МГц не неходка), а также стандарта RDRAM с частотой 1 066 МГц. Как правило, компьютер работает гораздо быстрее, если пропускная способность шины памяти соответствует пропускной способности шины процессора. Сравнивая скорость шины памяти с быстродействием шины процессора, можно заметить, что между этими параметрами существует определенное соответствие. Тип памяти, пропускная способность которой соответствует скорости передачи данных процессора, является наиболее приемлемым вариантом для систем, использующих соответствующий процессор.^ Если скорость шины памяти равняется частоте шины процессора, быстродействие памяти в такой системе будет оптимальным.6. SDRAM Это тип динамической оперативной памяти DRAM, работа которой синхронизируется с шиной памяти. SDRAM передает информацию в высокоскоростных пакетах, использующих высокоскоростной синхронизированный интерфейс. SDRAM позволяет избежать использования большинства циклов ожидания, необходимых при работе асинхронной DRAM, поскольку сигналы, по которым работает память такого типа, синхронизированы с тактовым генератором системной платы. Память SDRAM поставляется в виде модулей DIMM и, как правило, ее быстродействие оценивается в мегагерцах, а не в наносекундах.^ 7. DDR SDRAM Память DDR (Double Data Rate — двойная скорость передачи данных) — это еще более усовершенствованный стандарт SDRAM, при использовании которого скорость передачи данных удваивается. Это достигается не за счет удвоения тактовой частоты, а за счет передачи данных дважды за один цикл: первый раз в начале цикла, а второй — в конце. Именно благодаря этому и удваивается скорость передачи (причем используются те же самые частоты и синхронизирующие сигналы).^ Память DDR SDRAM выпускается в виде 184-контактных модулей DIMM. Поставляемые модули DIMM памяти DDR SDRAM отличаются своим быстродействием, пропускной способностью и обычно работают при напряжении 2,5 В.ЗамечаниеБанк (bank) — это наименьший объем памяти, необходимый для формирования одинарной строки памяти, адресуемой процессором. Это минимальное количество считываемой или записываемой процессором физической памяти, которое обычно соответствует ширине шины данных процессора. Если процессор имеет 64-разрядную шину данных, то ширина банка памяти также достигает 64 разрядов (бит). При использовании двухканальной или чередующейся памяти формируется виртуальный банк, ширина которого вдвое больше абсолютной ширины шины данных процессора.^ 8. Быстродействие памяти При замене неисправного модуля или микросхемы памяти новый элемент должен быть такого же типа, а его время доступа должно быть меньше или равно времени доступа заменяемого модуля. Таким образом, заменяющий элемент может иметь и более высокое быстродействие. Обычно проблемы возникают при использовании микросхем или модулей, не удовлетворяющих определенным (не слишком многочисленным) требованиям, например к длительности циклов регенерации. Вы можете также столкнуться с несоответствием в разводках выводов, емкости, разрядности или конструкции. Время выборки (доступа) всегда может быть меньше, чем это необходимо (т. е. элемент может иметь более высокое быстродействие), при условии, конечно, что все остальные требования соблюдены. При установке более быстродействующих модулей памяти производительность компьютера, как правило, не повышается, поскольку система обращается к ней с прежней частотой. Если память компьютера работает с предельным быстродействием, замена модулей может повысить его надежность.9. Увеличение объема памяти Увеличение существующего объема памяти — один из наиболее эффективных и дешевых способов модернизации, особенно если принять во внимание возросшие требования к объему памяти операционных систем Windows 9х/NT/2000/XP и OS/2. В некоторых случаях увеличение объема в два раза приводит к такому же (а иногда и большему) повышению производительности системы.