Память
Память является одним из основных элементов любой вычислительной системы. Элементы памяти в том или ином виде присутствуют в каждом конструктивном модуле PC.
В этой главе основное внимание уделено элементам оперативной памяти (рис. 7.1), характеристики которых определяют быстродействие всей системы. Без этих элементов работа PC просто невозможна. Оперативная память — временная память, т. е. данные хранятся в ней только до выключения PC. Для долговременного хранения информации служат дискеты, винчестеры, компакт-диски и т. п.
Конструктивно они выполнены в виде модулей, так что при желании можно сравнительно просто заменить их или установить дополнительные и тем самым изменить (скорее всего, увеличить) объем оперативной памяти PC.
Чтобы CPU мог выполнять программы, они должны быть загружены в оперативную рабочую память, т. е. в память, доступную для программ пользователя. К данным, находящимся в оперативной памяти {Random Access Memory, RAM — Память с произвольным доступом), CPU имеет непосредственный доступ, а к периферийной, или внешней памяти (гибким и жестким дискам) — через буфер, являющийся также разновидностью оперативной памяти, недоступной пользователю. Только после того, как программа будет загружена в RAM с внешнего носителя данных, возможна дальнейшая ее работа.
Время доступа к данным, находящимся в RAM, мало, поэтому скорость их обработки велика. Если бы информация считывалась/записывалась только с внешних носителей, то можно было выпить не одну чашку кофе в ожидании завершения выполнения той или иной операции.
Недостаток оперативной памяти состоит в том, что она временная, т. е. при отключении питания оперативная память полностью очищается, и данные, не записанные на внешний носитель, будут потеряны.
Основная задача RAM — предоставлять по требованию CPU необходимую информацию. Это означает, что данные в любой момент должны быть доступны для обработки.
Временный характер запоминания данных в оперативной памяти определяется не только наличием питания. Дело в том, что оперативная память относится к категории динамической памяти: ее содержимое остается неизменным в течение очень короткого промежутка времени, поэтому память должна периодически обновляться.
Запоминающим элементом динамической памяти является конденсатор, который может находиться в заряженном или разряженном состоянии. Если конденсатор заряжен, то в ячейку записана логическая 1, если разряжен — логический 0. В идеальном конденсаторе заряд может сохраняться неограниченное время. В реальном конденсаторе существует ток утечки, поэтому информация, записанная в динамическую память, со временем будет утрачена, так как конденсаторы запоминающих элементов полностью разрядятся.
Чтобы пояснить этот процесс, представим элемент памяти как ведро с водой, которое может быть либо пустым (состояние 0, соответственно Out), либо полным (состояние 1, соответственно In). Однако в этом ведре имеются такие маленькие дырки, что вода (информация) вытекала бы по капле, если бы "водоносу" (специальной логической схеме) не было поручено компенсировать убыток воды (данных) так, чтобы уровень ее оставался неизменным. Этот процесс называется регенерацией памяти {Refresh). Деятельность "водоноса" имеет огромное значение, поэтому ему нельзя мешать. Это означает, что CPU имеет доступ к данным, находящимся в RAM, только в течение циклов, свободных от регенерации.
Единственным способом регенерации хранимой в памяти информации является выполнение операции чтения/записи данных. Если информация заносится в динамическую память, а затем в течение нескольких миллисекунд остается невостребованной, она будет утрачена, так как конденсаторы запоминающих элементов полностью разрядятся.
Регенерация памяти происходит при выполнении каждой операции чтения или записи. Однако нет гарантии, что при выполнении любой программы произойдет обращение ко всем ячейкам памяти, поэтому имеется специальная схема, которая через определенные промежутки времени (например, каждые 2 мс) будет осуществлять доступ (для считывания) ко всем строкам памяти. В эти моменты CPU находится в состоянии ожидания. За один цикл схема регенерирует все строки динамической памяти.
Принцип работы
Ячейки памяти организованы в матрицу, состоящую из строк и столбцов. Полный адрес ячейки данных включает два компонента — адрес строки (row Адрес, бит) и адрес столбца (column Адрес, бит). На рис. 7.2 представлена матрица, состоящая из 32 строк и 32 столбцов, то есть из 1024 ячеек.
Рис. 7.2. Структурная схема динамической памяти
Когда CPU (или устройство, использующее канал DMA) обращается к памяти для чтения информации, на входы микросхемы поступает строб вывода данных ОЕ (Output Enabled), затем подается адрес строки и одновременно с ним (или с задержкой) сигнал RAS (Row Адрес, бит Strobe). Это означает, что каждая шина столбца соединяется с ячейкой памяти выбранной строки. Адрес ячейки поступает по адресным линиям (в нашем случае их десять) на дешифратор, который преобразует поступивший набор нулей и единиц в номер строки. Емкость конденсатора очень мала (доли пикофарады) и его заряд тоже мал, поэтому используется усилитель, подключенный к каждой шине столбца динамической памяти. Информация считывается со всей строки запоминающих элементов одновременно и помещается в буфер ввода/вывода. С незначительной задержкой после сигнала RAS на входы динамической памяти подается адрес столбца и сигнал CAS (Column Адрес, бит Strobe). При чтении данные выбираются из буфера ввода/вывода и поступают на выход динамической памяти в соответствии с адресом столбца. При считывании информации из ячеек памяти происходит ее разрушение, поэтому производится перезапись считанной информации: выходы регистра строки снова соединяются с общими шинами столбцов памяти, чтобы перезаписать считанную информацию из строки. Если ячейка имела заряд, то она снова будет заряжена еще до завершения цикла чтения. На ячейки, которые не имели заряда, напряжение не подается.
Если выполняется запись в память, то подается строб записи WE (Write Enable) и информация поступает на соответствующую шину столбца не из буфера, а с входа памяти в соответствии с адресом столбца. Таким образом, прохождение данных при записи задается комбинацией сигналов, определяющих адрес столбца и строки, а также сигналом разрешения записи данных в память.
Основные характеристики микросхем памяти
Основными характеристиками элементов (микросхем) памяти являются:
□ Тип
□ Емкость
□ Разрядность
□ Быстродействие
□ Временная диаграмма
На рис. 7.2 представлена структура микросхемы памяти, имеющая одну линию ввода/вывода. Из такой микросхемы CPU может одновременно считать (записать) только один бит данных. Для повышения скорости обмена данными между CPU и памятью были разработаны микросхемы, имеющие 4, 8 и 16 линий ввода/вывода. Подобные микросхемы имеют соответственно 4, 8 или 16 одинаковых матриц ячеек памяти. Таким образом, при поступлении на входы микросхемы адреса ячейки производится одновременное чтение (запись) всех ячеек, находящихся по данному адресу, но в различных матрицах (рис. 7.3). В этом случае одновременно считывается, записывается сразу несколько бит информации. Например, если микросхема имеет 8 линий ввода/вывода (соответственно 8 матриц), то CPU может считывать (записывать) информацию побайтно.
Количество линий ввода/вывода определяет разрядность шины ввода/вывода микросхемы.
Рис. 7.3. Структурная схема микросхемы памяти 1x4
Количество бит информации, которое хранится в ячейках каждой матрицы, называется глубиной адресного пространства {Depth Адрес, бит) микросхемы памяти.
Таким образом, общая емкость микросхемы памяти определяется произведением глубины адресного пространства на количество линий ввода/вывода (разрядов). Например, емкость микросхемы памяти, имеющей глубину адресного пространства 1 Мбайт и 4 линии ввода/вывода (четырехразрядную шину ввода/вывода), составляет 1 Мбайтх4 = 4 Мбайт. Такая микросхема обозначается 1x4, 1Мх4, хх4400 либо хх4401.
В табл. 7.1 приведены основные характеристики некоторых микросхем памяти и области их применения.
Производительность микросхемы динамической памяти характеризуется временем выполнения элементарных действий между двумя операциями чтения либо записи данных. Последовательность этих операций называют рабочим циклом (или циклом обращения). Он включает указание адреса данных (RAS, выбор строки, CAS, выбор столбца), чтение (запись).
Время, необходимое для чтения (записи) данных, хранящихся по случайному адресу, называется временем доступа (Access time). Для современных микросхем оно составляет 40—60 не, что соответствует частоте появления данных 16,7—25 МГц на выходе микросхемы.
В реальных условиях обращение к памяти чаще происходит не по случайному адресу, поэтому рабочий цикл короче.
По мере усовершенствования микросхем DRAM (EDO DRAM, BEDO DRAM, SDRAM) длительность рабочего цикла стала показателем их быстродействия. Поскольку архитектура микросхем динамической памяти не изменилась, время выполнения действий между двумя произвольными операциями чтения или записи (время доступа) осталось прежним (табл. 7.2). Однако если первый цикл обращения к DRAM длится 50, 60 или 70 не, то последующие циклы значительно короче.
Таблица 7.2. Основные характеристики DRAM
Примечание
Время доступа для внешних носителей данных (таких как гибкий или жесткий диск) составляет миллисекунды, а для элементов памяти — наносекунды.
Вообще говоря, на материнскую плату можно устанавливать элементы памяти различных фирм, причем эти элементы могут иметь разное время доступа. Тем не менее, следует избегать смешения неоднородных элементов памяти. Время доступа не должно различаться более, чем на 10 не. В противном случае могут возникнуть серьезные проблемы. Опыт подсказывает, что в одном банке лучше использовать элементы памяти одной фирмы-производителя.
Между CPU и элементами памяти не должно быть временного рассогласования, обусловленного различным быстродействием этих компонентов. Однако, даже современные асинхронные микросхемы EDO DRAM, имеющие время рабочего цикла 20 не, не могут работать с частотой более 50 МГц, поэтому CPU вынужден простаивать.
Временная диаграмма показывает зависимость тактовой частоты системной шины от типа памяти. Она характеризует количество тактов, которые необходимы CPU для выполнения четырех последовательных операций считывания данных. Например, если имеется 8-разрядная микросхема памяти типа EDO, то диаграмма 5-2-2-2 означает, что для считывания первого байта необходимо пять тактов CPU, а для считывания трех последующих байтов — два такта.
В табл. 7.3 приведены типичные временные диаграммы для памяти различных типов.
Таблица 7.3. Временные диаграммы памяти различных типов
Забегая немного вперед, отметим, что обмен данными между CPU и RAM осуществляется по 32- (для CPU 80486) или 64-разрядной (для Pentium) системной шине, а микросхемы памяти организованы в 32- или 64-разрядные модули памяти, поэтому обмен данными осуществляется путем передачи удвоенных или учетверенных слов. Именно в связи с этим в PC на базе CPU 80486 или Pentium должны устанавливаться элементы памяти, обеспечивающие время доступа менее 60 не.
Использование медленных элементов может привести к зависанию системы. Для согласования скорости работы процессора и памяти необходимо установить соответствующие параметры в CMOS Setup (см. главу ЗГ).
Каким образом 4-разрядная микросхема памяти может работать с 32-разрядной системной шиной CPU 80486 или 64-разрядной шиной CPU Pentium? Дело в том, что CPU взаимодействует через контроллер памяти не с одной, а в данном случае сразу с восемью микросхемами памяти, организованными в банки памяти.
Внимание!
Банки памяти всегда должны быть заполнены, иначе PC не загрузится.
Количество микросхем памяти в одном банке определяется соотношением разрядности системной шины и разрядности микросхемы памяти. На рис. 7.4 в качестве примера показана 16-разрядная шина памяти и подключенные к ней четыре 4-разрядные микросхемы памяти.
Рис. 7.4. Пример организации банков памяти 16-разрядной системной шины
Примечание
Контроллер памяти (Memory controller) является промежуточным устройством между системной шиной и модулями памяти. Он определяет тип установленных элементов памяти, организует обмен данными между CPU и RAM и задает различные режимы работы памяти. В современных Chipset контроллер интегрирован в одной из двух микросхем.
В настоящее время отдельные микросхемы памяти не устанавливаются на материнскую плату. Они объединяются на специальных печатных платах, образуя вместе с некоторыми дополнительными элементами модули памяти (SIMM-модули и DIMM-модули). Разрядность модулей памяти определяется разрядностью микросхем памяти, установленных на плате. 30-контактные SIMM-модули — 8-разрядные, 72-контактные SIMM-модули — 32-разрядные, а DIMM-модули — 64-разрядные.
Для модулей памяти, как ранее и для микросхем памяти, действует правило диктующее полностью заполнять банки памяти.
Количество модулей памяти, необходимых для заполнения банков, определяется отношением разрядности системной шины к разрядности модуля памяти. Например компьютеры на базе процессора 80386 имели 16-разрядную системную шину, поэтому банки заполнялись двумя 8-разрядными SIMM-модулями (см. рис. 7.4). Поскольку PC с CPU 80486 имеют 32-разрядную системную шину, достаточно одного 32-разрядного SIMM-модуля памяти. Системная шина PC с CPU Pentium и Pentium II 64-разрядная, поэтому 32-разрядные SIMM-модули устанавливаются в банки только попарно, либо необходим один DIMM-модуль.
Повышение скорости обмена данными
Для повышения скорости обмена данными между CPU и микросхемами памяти разработаны специальные режимы работы памяти и технологии:
□ Пакетный режим
□ Чередование памяти
□ Разбиение памяти на страницы
□ Кэширование памяти
Как уже отмечалось, CPU запрашивает данные из памяти не побайтно, а в виде пакетов, состоящих из 32 или 64 бит. Такой порядок обмена данными с памятью был впервые реализован на PC с CPU 80486 и назван пакетным режимом (Burst Mode).
В этом режиме, кроме одного слова CPU считывает еще три, расположенные рядом.
Чередование памяти
Метод управления памятью с чередованием адресов {Interleaving mode) основан на том, что логически связанные байты чаще всего располагаются в памяти друг за другом. Как уже отмечалось, в микросхеме памяти осуществляется периодическая регенерация данных, в процессе которой микросхема не доступна для записи и чтения. Чтобы не было пауз в работе памяти, осуществляется ее чередование, т. е. помещение следующих друг за другом ячеек памяти в различные банки, из которых CPU должен считывать данные попеременно. Пока в одном из чипов памяти происходит регенерация данных, CPU может считывать следующий байт из другого банка.
Организацию и управление чередованием памяти осуществляет контроллер памяти, который логически объединяет два банка в один и распределяет адресное пространство так, чтобы соседние адреса находились в разных банках.
При использовании SIMM-модулей чередование памяти возможно лишь в том случае, когда в различные банки установлены SIMM-модули одинаковой емкости. В микросхемах SDRAM этот режим реализуется аппаратно не контроллером памяти, а на уровне микросхемы.
Примечание
Более подробную информацию о возможностях использования режима Interleave можно найти в описании конкретной материнской платы.
Метод разбиения памяти на страницы (Pacing mode) основан на том факте (уже упоминавшемся при описании чередования памяти), что каждый поступающий в CPU байт расположен рядом с байтом, уже считанным из памяти и логически связанным с ним. Следовательно, не нужно повторять сигнал RAS, если адреса строк выбираемых ячеек памяти находятся в пределах одной страницы, т. е. адрес строки неизменен.
Обычно память делится на страницы размером 512 байт и более.
Кэширование памяти используется для ускорения доступа к данным, находящимися в RAM. Это достигается за счет применения промежуточной (буферной между CPU и RAM) быстродействующей памяти небольшой емкости (256 Кбайт—2 Мбайт). Эта кэш-память работает на частоте CPU, поэтому при обращении к ней не требуются циклы ожидания.
За последние 10 лет производительность CPU увеличилась в 100 раз, в то время как пропускная способность элементов памяти — лишь в 10—12 раз (рис. 7.5).
Примечание
Под пропускной способностью памяти понимают объем информации (в мегабайтах), пересылаемых по системной шине за 1 с между CPU и банком DRAM. Измеряется в Мбайт/с, Гбайт/с.
Часто для характеристики элементов памяти используют так называемую пропускную способность вывода памяти. Под которой понимают объем информации (в мегабитах), пересылаемых по одной линии данных системной шины за 1 с между CPU и выводом DRAM. Измеряется в Мбит/с/контакт (Mbit/sec/pin).
Рис. 7.5. Изменение производительности CPU и DRAM
Таким образом, элементы памяти стали тормозить работу системы в целом. Современный CPU с его высокой тактовой частотой, предвыборкой данных, конвейерной архитектурой и другими техническими достижениями, вынужден простаивать, ожидая готовности памяти. При работе в многозадачных операционных системах и обработке больших массивов данных не помогает даже увеличение объема кэш-памяти. Кроме того, многие современные устройства общаются с RAM напрямую, минуя CPU (например, карты AGP, HDD в режиме Bus Mastering).
Специалисты корпорации Intel считают, что для обработки видеоизображений в реальном масштабе времени при работе с ЗD- изображениями и использовании DVD пропускной способности модулей памяти на элементах SDRAM (800 Мбайт/с) явно недостаточно.
Для повышения пропускной способности памяти можно увеличить разрядность системной шины с 64 до 128 бит или повысить тактовую частоту системной шины.
Однако увеличение разрядности системной шины сопряжено с техническими сложностями, обусловленными значительным увеличением количества выводов микросхемы контроллера памяти (до 200—300) и, соответственно, увеличения количества проводников на материнской плате между контроллером и слотами памяти.
Просто повысить тактовую частоту системной шины также невозможно, т. к. при существующей технологии считывания информации из ячейки памяти длительность цикла обращения составляет порядка 10 не.
Поэтому в последнее время был найден альтернативный вариант (рис. 7.6) — 16-разрядная системная шина памяти с тактовой частотой 400 МГц, а также были усовершенствованы микросхемы DRAM, которые (сохранив без изменения ядро) стали напоминать сложное конвейерное микропроцессорное устройство с собственной скоростной шиной.
Рис. 7.6. Шина памяти 64-разрядная (слева) и 16-разрядная (справа)
Ниже рассмотрены характеристики различных типов элементов динамической памяти, начиная от тех, которые применялись в первых PC до самых современных.
DRAM
Буква "D" в аббревиатуре "DRAM" означает "динамическая", т. е. для сохранения данных, записанных в микросхеме памяти, необходима их периодическая регенерация. Все микросхемы DRAM имеют матричную организацию, причем каждый элемент матрицы (миниатюрный конденсатор) хранит один бит данных и адресуется с помощью следующих сигналов: RAS, адрес строки, CAS и адрес столбца.
Примечание
Цикл регенерации происходит при фиксации адреса столбца и циклическом изменении адреса строки. Следовательно, чем меньше строк в матрице микросхемы, тем короче цикл регенерации.
Часто в описании микросхем можно встретить следующую характеристику: 2k refresh, 4k refresh и т. п. Число nk означает длину строки, т. е. количество столбцов. Дело в том, что "нормальное" количество столбцов и строк для чипа организации 4x4 численно равно 2 Кбит (4 Мбит = 1024x1024x4 = 104 8576x4 = = 4 194 304 бит, л/4 194 304 = 2048 бит). Однако с целью повышения быстродействия были разработаны микросхемы с "неквадратной" матрицей, имеющие 1 Кбит строк и, соответственно, столбцов, что позволило сократить время регенерации.
В процессе совершенствования технологии изготовления DRAM были разработаны другие типы памяти: РМ, FPM, EDO и SDRAM.
FPM DRAM
Память типа DRAM, реализующая страничный режим, называется FPM DRAM {Fast Page Mode DRAM).
В микросхемах FPM DRAM сигнал CAS используется не только для адресации столбца, но и для указания "срока годности" адреса, т. е. времени, в течение которого будет выполняться считывание данных (рис. 7.7).
Рис. 7.7. Структура микросхемы FPM DRAM
Память этого типа появилась в последних моделях PC с CPU 80486 и получила широкое распространение. Время доступа процессора к памяти при использовании микросхем FPM DRAM (60 не) сократилось на 40% по сравнению с временем доступа к обычным DRAM. Время рабочего цикла последних чипов составило 35 не. Тем не менее, микросхемам FPM DRAM удавалось "угнаться" за процессором, если частота системной шины прев: шала 28 МГц. Временная диаграмма работы FPM DRAM представлена на рис. 7.8.
В компьютерах на базе CPU Pentium широко применяется память типа EDO DRAM (Extended Data Output).
Структурная схема EDO DRAM похожа на схему FPM DRAM. Отличие состоит в том, что для FPM DRAM линии ввода/вывода данных отключались от системной шины, как только начиналось задание адреса следующего бита, а в режиме EDO линии остаются подключенными до окончания ввода нового адреса и, соответственно, начала вывода следующего бита. Вместо сигнала CAS для указания конца операции чтения используется сигнал ОЕ (Output Enable). Таким образом, память EDO позволяет одновременно считывать данные и задавать адрес следующих данных, что, в свою очередь, сокращает длительность рабочего цикла (см. рис. 7.8).
Модули памяти EDO работают на 10—15% быстрее, чем FPM DRAM. Они работают без задержки с системными шинами, работающими на тактовой частоте 50 МГц (1: 20 не = 50 МГц). Тем не менее, преимущество EDO перед FPM проявляется лишь при чтении данных — одновременное выполнение операций записи и адресации невозможно.
BEDO DRAM
Микросхемы BEDO DRAM (Burst EDO) — это разновидность EDO DRAM. В отличие от EDO в микросхему BEDO добавлен специальной генератор номера столбца. После первого поступления на вход микросхемы адреса ячейки и сигналов RAS и CAS, для последующих четырех столбцов сигнал CAS генерируется внутри микросхемы.
Это приводит к тому, что если при тактовой частоте системной шины 66 МГц временная диаграмма для FPM составляет 6-3-3-3, для EDO — 5-2-2-2, то для BEDO — 4-1-1-1. Как видно, временная диаграмма BEDO сопоставима с диаграммой SDRAM, но BEDO не может работать на тактовой частоте 100 МГц. Кроме того, в то время, когда появились микросхемы BEDO DRAM, корпорация Intel усиленно продвигала на рынок SDRAM.
В PC с CPU 80486 память типа EDO и BEDO, как правило, не поддерживается.
CDRAM, EDRAM
Микросхемы CDRAM (Cache DRAM) и EDRAM (Enhanced DRAM) содержат немного ячеек быстрой памяти SRAM, имеющих время доступа 10—15 не. Например, на одном кристалле могут находиться 4 Мбайт DRAM и 16 Кбайт SRAM. Интегрированные элементы SRAM в данном случае можно рассматривать как встроенную кэш-память.
SDRAM
До 1997 г. производились только асинхронные микросхемы DRAM, т. е. такие, работа которых не синхронизирована с частотой работы системной шины.
Примечание
Асинхронные элементы имеют только информационные входы и срабатывают непосредственно после изменения сигнала на входах. Сигнал на выходе появляется через некоторое время. Оно не регламентируется и может изменяться в зависимости от температуры и от старения полупроводниковых элементов. Основным недостатком асинхронных элементов является их низкая помехоустойчивость, проявляющаяся в сбоях при работе PC.
Для срабатывания синхронных элементов смены сигналов на входах недостаточно. Необходим дополнительный тактирующий сигнал, который подается на соответствующий вход. В качестве такого сигнала выбран тактовый сигнал системной шины. Этот сигнал задает частоту смены информации в определенные моменты времени. В эти же моменты обновляется информация на выходах элементов. Таким образом, процессы записи и считывания информации в память строго привязаны к тактам CPU или шины.
Все рассмотренные выше элементы памяти (FPM, EDO, BEDO DRAM) работают асинхронно с тактовой частотой системной шины. Поэтому для передачи данных из памяти в CPU необходимо подтверждение связи между CPU и контроллером памяти.
Процесс чтения данных организован следующим образом. CPU сообщает контроллеру памяти с помощью сигнала ADS, что ему необходимы данные, располагающиеся по определенному адресу. Затем осуществляется цикл чтения данных из DRAM. Когда данные прочитаны и находятся на выходных линиях DRAM, контроллер памяти посылает процессору сигнал BRDY и только тогда данные поступают на CPU. Если данные еще не готовы, то CPU вынужден осуществлять холостые циклы (Weitstate) в ожидании данных. Память типа BEDO-DRAM может поставлять данные CPU и без цикла ожидания, но только при тактовой частоте системной шины до 66 МГц. В 1997 г. для синхронизации работы памяти и системной шины использовалась микросхема синхронной динамической памяти SDRAM (Sychronous DRAM). Метод доступа к строкам и столбцам данных в микросхемах SDRAM и стандартной DRAM реализован одинаково. Отличие заключается в следующем: все операции в микросхемах SDRAM синхронизированы с тактовой частотой CPU, т. е. память и CPU работают синхронно без циклов ожидания (рис. 7.9).
Примечание
Первоначально SDRAM была предложена в качестве более дешевой по стоимости альтернативы дорогой видеопамяти VRAM (Video RAM), используемой в видеоадаптерах.
За счет исключения циклов ожидания сократилось время выполнения команд и передачи данных. Современные микросхемы SDRAM могут работать на тактовых частотах CPU 66, 75, 83, 100, 125 и 133 МГц.
Кроме того, для сокращения времени выборки данных в микросхеме SDRAM предусмотрено чередование адресов, а также пакетный режим; используется трехступенчатая конвейерная адресация, которая позволяет осуществить доступ к запрошенным данным до завершения обработки предыдущих.
Все это позволило сократить время рабочего цикла микросхемы до 8—10 не (Г. 10 не = 100 МГц) и повысить скорость передачи данных до 800 Мбайт/с при тактовой частоте системной шины 100 МГц.
Внутренняя архитектура SDRAM предполагает два или более банка. Структурная схема SDRAM, имеющая 4 банка емкостью по 4 Мбайт и 4 линии ввода/вывода, представлена на рис. 7.10.
Модули памяти, на которых установлены микросхемы SDRAM, поддерживают все материнские платы, оборудованные Chipset, начиная с Intel 82430VX/HX. В настоящее время SDRAM вытеснила широко распространенные еще недавно FPM DRAM и EDO DRAM.
РС100/133 SDRAM
При тактовой частоте системной шины 100 МГц многие микросхемы SDRAM работали неустойчиво, поэтому для такой системной шины корпорация Intel разработала спецификацию микросхем памяти, получившую название PC 100.
Микросхемы памяти РС100 SDRAM выпускаются в корпусе TSOP, а количество выводов зависит от глубины адресного пространства микросхемы.
С увеличением тактовой частоты системной шины до 133 МГц появились микросхемы SDRAM, поддерживающие данную тактовую частоту. Они получили название PC 133 SDRAM.
ESDRAM
Микросхемы ESDRAM являются расширением микросхем SDRAM. В микросхеме интегрированы элементы SDRAM, позволяющие работать на частоте системной шины 66, 100 и 166 МГц. Время рабочего цикла сократилось до 8 не. Микросхемы полностью совместимы с PC 100 SDRAM.
DDR SDRAM (SDRAM II)
DDR SDRAM {Double Date Rate — Удвоенная скорость передачи данных) или SDRAM II является следующим поколением SDRAM. DDR SDRAM состоит из четырех независимых банков, в которых команды могут обрабатываться параллельно.
В отличие от SDRAM, память этого типа имеет ряд усовершенствований, позволяющих повысить ее быстродействие в 2 раза.
При использовании технологии DDR можно читать данные по фронту и спаду тактового сигнала системной шины, что дает возможность выполнять два обращения за время одного цикла обращения к стандартной SDRAM.
При передаче данных по фронту и спаду импульса сигнала синхронизации критичным является время задержки распространения сигнала. Поэтому в отличие от "обычных" SDRAM для синхронизации пересылки данных используется не только тактовый сигнал системной шины, но и дополнительный строб-сигнал — DQS, поступающий параллельно с данными (рис. 7.11). За счет этого достигается более четкая синхронизация данных.
Рис. 7.11. Временная диаграмма DDR SDRAM
При использовании микросхем DDR SDRAM скорость передачи данных составляет 1600 и 2100 Мбайт/с (при тактовой частоте шины памяти соответственно 100 и 133 МГц). В отличие от спецификаций РС66, РС100, РС133 SDRAM, в название которых входит тактовая частота шины памяти, в названии микросхем DDR SDRAM разработчики предложили использовать максимальную пропускную способность. Поэтому микросхемы DDR, используемые при тактовой частоте шины памяти 100 МГц, называются РС1600, а 133 МГц - РС2100.
Первые образцы микросхем DDR SDRAM появились в 1998 г. и широко использовались в качестве памяти, устанавливаемой на видеоадаптерах.
К сожалению, Chipset не поддерживали модули DDR SDRAM. Положение должно измениться в конце 2000 — начале 2001 г.г., когда корпорация VIA представит на рынке свой Chipset VIA Apollo Pro 266 и VIA Apollo KX-266, a AMD - Chipset AMD 760.
По предварительным оценкам производительности, память DDR SDRAM не уступает памяти Direct DRAM, которую усиленно продвигает на рынок корпорация Intel. По стоимости и простоте модернизации имеющихся Chipset память DDR SDRAM превосходит своего конкурента.
В 2003 г. планируется выход следующего поколения DDR SDRAM — DDR II, когда за один такт будут передаваться четыре пакета данных. Таким образом, пропускная способность памяти при тактовой частоте 100 МГц и 64-разрядной шине составит 3,2 Гбайт/с. Тем не менее, к тому времени разрядность шины памяти и тактовая частота могут увеличиться вдвое, поэтому пропускная способность может составить 12,8 Гбайт/с.
Direct RDRAM
Небольшая американская фирма Rambus начала разработку нового типа памяти в 1992 г. Уже спустя 3 года она анонсировала принципиально новую технологию — Rambus. Новая технология подразумевала наличие усовершенствованных микросхем памяти Base RDRAM и так называемого Rambus-канала, включающего высокоскоростную 8-разрядную шину (700 МГц) и специальный контроллер памяти. Пропускная способность памяти составила 600 Мбайт/с, что превосходит аналогичный показатель некоторых современных модулей памяти.
В 1995 г. фирма заключила соглашение с корпорацией Intel, которая поддержала перспективные разработки фирмы Rambus, и приступила к разработке и выпуску Chipset, поддерживающих технологию Rambus.
Рис. 7.12. Планы корпорации Intel
Примечание
Следует отметить, что микросхемы Base RDRAM и Concurent RDRAM (1997 г.) были разработаны не как элементы RAM для PC, а как память для игровых приставок и графических адаптеров.
Корпорация Intel планирует к 2000 г. полностью перейти на производство микросхем памяти типа Direct DRAM и отказаться от SDRAM (рис. 7.12).
В микросхеме Direct DRAM сохранились старые принципы записи и считывания данных в ячейки матрицы, изменилась лишь организация банков выборки данных из памяти.
Шина данных Rambus-канала 16-разрядная (18-разрядная для микросхем, поддерживающих ЕСС), а шина управления — 8-разрядная. Тактовая частота шин составляет 400 МГц. Поскольку данные пересылаются по переднему и заднему фронту синхроимпульса, пропускная способность памяти составляет 16 бит х 400 МГцх2 = 1,6 ГГц/с.
Передача адреса ячейки происходит (из-за высокой тактовой частоты) по отдельным шинам: одна — для адреса строки, другая — для адреса столбца. Передача адресов осуществляется последовательными пакетами.
В процессе работы Direct RDRAM выполняется конвейерная выборка из памяти, причем адрес может передаваться одновременно с данными.
Микросхемы Direct RDRAM имеют емкость 16, 32, 64, 128 и 256 Мбайт. Планируется наладить выпуск микросхем емкостью 512 Мбайт и 1 Гбайт.
Как заявляют специалисты фирмы Rambus, эта технология также применима и к другим типам памяти (SDRAM, EEPROM, ROM Flash и др.).
Стандарт Rambus DRAM закрытый. Основным недостатком микросхем Rambus DRAM является их высокая стоимость. В 1999 г. корпорация Intel представила на рынке первый Chipset, ориентированный только на Rambus DRAM — i810 (позднее i810E, i820 и i840). Однако под давлением производителей материнских плат корпорация была вынуждена разрабатывать специальный хаб, позволяющий использовать модули SDRAM.
SLDRAM
В январе 1997 г. несколько фирм объединились, чтобы создать более дешевую, чем Direct RDRAM, быстродействующую память, ориентированную, в первую очередь, на установку в PC стоимостью до 1000 USD. Память нового типа получила название SLDRAM (SyncLinc DRAM). Стандарт SLDRAM изначально планировался как открытый, что по замыслу членов консорциума SLDRAM Inc. могло способствовать его быстрому развитию и обеспечить долгую "жизнь".
Помимо изготовителей DRAM, новый стандарт был поддержан и их клиентами — Apple, Hewlett-Packard, IBM и др.
Технология SLDRAM представляет собой следующий шаг в развитии DRAM от fpm Dram до ddr dram (рис. 7.13).
В микросхемах SLDRAM также используется классическое ядро DRAM.
Стандарт SLDRAM имеет преимущества стандартов SDRAM и DDR SDRAM. Кроме того, стандарт SLDRAM предусматривает протокол пакетной передачи адреса.
Рис. 7.13. Этапы развития DRAM
По заявлению разработчиков микросхемы типа SLDRAM совместимы с предыдущими элементами DRAM.
В первом поколении SLDRAM (как и в Direct RDRAM), используется 16-разрядная шина данных, работающая на тактовой частоте 400 МГц. Подобно DDR SDRAM и RDRAM, передача данных осуществляется по фронту и спаду тактового сигнала. Таким образом, пропускная способность SLDRAM составляет 16 бит х 400 МГцх2 = 1,6 ГГц/с. В дальнейшем разработчики планируют увеличить пропускную способность SLDRAM за счет повышения тактовой частоты системной шины (рис. 7.14).
Какая из технологий — DDR, Rambus, или SLDRAM — возьмет верх, покажет время, а пока производители микросхем памяти еще не пришли к однозначному решению. Несмотря на то, что корпорация Intel упорно продвигает технологию Rambus, производители DDR DRAM и SLDRAM продолжают бороться за свое существование и лидерство в области производства недорогих PC. Samsung Semiconductor и Hitachi Semiconductor начали производить DDR DRAM. Они также готовы к выпуску Direct Rambus, a Siemens и Micron — к выпуску SLDRAM. Компании Micron и VIA Technologies разрабатывают чипсеты (Chipsets), способные поддерживать RDRAM, SLDRAM, DDR DRAM.
Некоторые характеристики элементов памяти различных типов представлены в табл. 7.5.
Появление планируется в 2003 г.
Тип корпуса
Первые микросхемы памяти выпускались в так называемых DIP-корпусах. (Dual In-line Package — Корпус с двухрядным расположением выводов). У таких микросхем выводы (Pins) расположены по бокам корпуса (рис. 7.15).
Сам кристалл, на котором размешены ячейки памяти, значительно меньше по размеру чем корпус. Такая конструкция корпуса удобна для печатного монтажа и установки микросхемы в панельки на материнской плате, а также для соблюдения температурного режима работы элементов. В настоящее время на модули памяти устанавливаются микросхемы в корпусе SOJ {Small Outline J-shaped) и TSOP (Thin Small Outline Package).
Рис. 7.15. Корпуса типа DIP, SOJ и TSOP
Корпус SOJ похож на корпус DIP, только выводы микросхемы изогнуты и напоминают букву "J", что позволяет их с успехом использовать как при пайке, так и для установки в специальные панельки (гнезда). Микросхемы памяти в корпусах SOJ устанавливаются на SIMM-модули и применяются для расширения памяти на видеокартах.
Корпус TSOP плоский и имеет горизонтально расположенные выводы, пригодные только для пайки. Такие микросхемы устанавливаются на DIMM-модули с питанием 3,3 В.
Маркировка
На каждую микросхему памяти нанесена маркировка, которая содержит информацию о фирме-производителе, характеристиках элемента памяти, материале, из которого изготовлена микросхема, и другую служебную информацию.
К сожалению, маркировка, наносимая на микросхему различными производителями, не стандартизована. Как правило, без труда удается определить по аббревиатуре или логотипу производителя микросхемы, а также время доступа по последним цифрам маркировки. На рис. 7.16 представлена расшифровка маркировок микросхем фирм LG и Vitelic.
В табл. 7.5 показаны логотипы и аббревиатуры основных производителей микросхем памяти, приведены примеры маркировки и адреса сайтов производителей, где можно получить информацию о любой микросхеме памяти.
В соответствии с требованиями корпорации Intel микросхемы памяти спецификации PC 100 SDRAM должны иметь специальную гравировку (или наклейку), на которой содержится информация о микросхеме (рис. 7.17).
Рис. 7.17. Маркировка на микросхеме PC 100 SDRAM
Данная информация представляется в следующем виде:
PC100-ABC-DEF
Расшифровка информации представлена в табл. 7.6.
Таким образом, на рис. 7.17 изображена микросхема SDRAM, которая при тактовой частоте 100 МГц имеет следующие параметры: CL = 3, trd = 2, trcd = 2, trp = 2, tac = 6 нc, данные о спецификации SPD отсутствуют.
Параметр CL = 3 указывает, что на частотах выше 100 МГц данная микросхема будет работать неустойчиво, даже если вы попытаетесь установить через CMOS Setup значение CL = 2.
Оптимальные параметры для памяти стандарта PC 100, приведенные в спецификации Intel, представлены в табл. 7.7.
Таблица 7.7. Оптимальные параметры для памяти стандарта PC 100
С увеличением объема памяти ее микросхемы стали занимать много места на материнской плате. С целью уменьшения размеров компонентов PC, в том числе и элементов оперативной памяти, были разработаны микросхемы памяти в планарном корпусе (SOJ, TSOP и др.)- Эта конструкция получила название модуль памяти.
Отказ от использования микросхем в DIP-корпусах вызван необходимостью увеличения плотности печатного монтажа. Дело в том, что интегральные микросхемы в DIP-корпусе, во-первых, большие по размеру и, во-вторых, устанавливаются на печатную плату в отверстия, что не позволяет осуществлять монтаж с двух сторон платы. Интегральные микросхемы в планарном корпусе устанавливаются на поверхность печатной платы и припаиваются к печатным проводникам. Таким образом, в одном месте печатной платы можно установить две интегральные микросхемы с двух сторон. Такая технология получила название SMT (Surface Mounting Technology — Технология поверхностного монтажа).
Примечание
Так как существует тенденция увеличения емкости и разрядности микросхем памяти, возможно, скоро необходимость в модулях памяти отпадет и будет достаточно всего одной микросхемы DRAM.
Уже ведутся работы по совмещению в одном корпусе CPU и DRAM.
Каждый модуль устанавливается в специальный разъем (слот) на материнской плате. Таких разъемов может быть несколько. Они организуются в группы (по 2 или по 4 в зависимости от разрядности системной шины и модулей памяти), называемые банками. Как уже отмечалось, банк должен быть всегда заполнен. На рис. 7.18 представлена материнская плата для CPU Pentium, работающего с 64-разрядной системной шиной. Четыре 32-разрядных слота, предназначенных для установки 72-контактных SIMM-модулей, организованы в два банка. Поскольку банк памяти должен быть заполнен, для функционирования системы необходимо установить, как минимум, два SIMM-модуля или один DIMM-модуль.
SIP-модули
SIP-модули (Single In-line Package — Модули, имеющие однорядное расположение выводов) представляли собой небольшую плату с установленными на ней микросхемами DRAM (рис. 7.19). Такая плата имела 30 выводов; ее размеры: длина около 8 см и высота — примерно 1,7 см.
SIP-модули устанавливались в соответствующие разъемы на материнские платы с процессором 80386. Иногда помимо них дополнительно устанавливались элементы DRAM.
Рис. 7.19. SIP-модули, имеющие время доступа 70 не
Однако при установке и извлечении таких модулей тонкие выводы часто обламывались, контакт между выводом и разъемом был ненадежен, поэтому были разработаны SIMM-модули.
SIMM-модули
SIMM-модуль (Single In-Line Memory Module) имеет примерно такой же размер, как и SIP-модуль. Различие, прежде всего, заключается в конструкции контактов. Кроме того, выводы SIMM-модуля выполнены в виде так называемых контактов типа PAD (вилка). Это луженые или позолоченные печатные контакты. Они расположены с обеих сторон платы и попарно соединены. SIMM-модули (рис. 7.20) устанавливаются в специальные слоты на материнской плате. Благодаря такой конструкции SIMM-модулей существенно повышается надежность электрического контакта в разъеме и прочность модуля в целом, тем более что все контакты изготовлены из высококачественного материала и позолочены.
Отказы в работе оперативной памяти чаще всего происходят не из-за повреждения SIMM-модулей, а вследствие некачественной обработки контактов разъемов на материнской плате.
Рис. 7.20. SIMM-модули, имеющие время доступа 60 не
Кроме того, удобная конструкция SIMM-модулей позволяет пользователям самостоятельно изменять конфигурацию памяти, не опасаясь повредить выводы.
Первые SIMM-модули имели 30 выводов (короткие), позже появились 72-контактные (длинные) модули. Назначение выводов 72-контактного SIMM-модуля приведено в табл. 7.8.
Таблица 7.8. Назначение выводов 72-контактного SIMM-модуля
Организация
Емкость и время доступа SIMM-модуля определяются суммарной емкостью и временем доступа установленных на нем микросхем памяти, а его разрядность — количеством линий ввода/вывода данных (суммарной разрядностью установленных микросхем памяти). На SIMM-модуле с контролем четности устанавливается дополнительная микросхема памяти.
30-контактные SIMM-модули без контроля четности (поп Parity) — 8-разрядные, с контролем четности (Parity) — 9-разрядные. 72-контактные SIMM-модули без контроля четности — 32-разрядные, с контролем четности или контролем и коррекцией ошибок {ЕСС) — 36- и 40-разрядные.
Примечание
Для проверки сохраняемых в памяти данных на предмет отсутствия ошибок используется метод контроля четности. Суть метода заключается в том, что при записи данных в память для каждых младших 8 бит вычисляется контрольная сумма, которая сохраняется вместе с данными в виде бита четности. При считывании данных вновь вычисляется контрольная сумма и сравнивается со значением бита четности.
В современных системах подобная схема встречается крайне редко. На смену ей пришел более прогрессивный метод — ЕСС (Error Cheking and Correction), который позволяет не только фиксировать, но и исправлять ошибки в памяти без остановки системы.
Необходимо, чтобы Chipset поддерживал ЕСС.
В технических описаниях и прайс-листах часто можно встретить описание модуля памяти в виде 4x32—60, которое расшифровывается следующим образом:
Глубина адресного пространства измеряется в килобитах или мегабитах. Для перевода этого значения в привычные килобайты или мегабайты необходимо значение глубины адресного пространства разделить на 8.
В табл. 7.9 представлена организация некоторых распространенных SIMM-модулей.
Компоненты
Кроме микросхем DRAM, на SIMM-модуле, как правило, располагаются миниатюрные конденсаторы, предназначенные для сглаживания кратковременных скачков напряжения и предотвращения выхода из строя микросхем. Эти конденсаторы могут находиться либо около каждого элемента DRAM, либо под ним, а также могут быть установлены 1—2 конденсатора, "обслуживающие" все микросхемы.
На некоторых SIMM-модулях установлены так называемые резисторы PRD (Presense Detect), комбинация которых определяет "электронную" маркировку модуля, считываемую контроллером памяти. Для 72-контактных модулей под PRD зарезервированы контакты 67—70. Первая пара контактов отвечает за информацию о емкости модуля, а вторая — за время доступа.
Отсутствие резисторов PRD не опасно, т. к. большинство контроллеров памяти способно при тестировании памяти самостоятельно определить рабочие характеристики модуля.
На некоторых SIMM-модулях может быть установлена микросхема генератора логической четности. Дело в том, что некоторые системы ориентированы на работу только с модулями, обеспечивающими контроль четности. Для того чтобы в подобных системах можно было использовать более дешевые модули без контроля четности, были разработаны так называемые логические модули. В таких модулях вместо отдельной микросхемы DRAM устанавливается дешевая микросхема генератора логической четности, которая постоянно "обманывает" контроллер памяти, сообщая, что контрольные суммы совпадают с исходными.
Обычно SIMM-модули оборудованы микросхемами памяти общей емкостью 8, 16 и 32 Мбайт. Сравнительно недавно на рынке появились SIMM-модули, имеющие емкость 128 Мбайт и выше.
В PC с CPU 80386 и ранних моделях с CPU 80486 использовались 30-контактные SIMM-модули памяти (DRAM), при этом на материнской плате могло быть от 4 до 8 слотов. В настоящее время найти в продаже подобные модули не просто. В более поздних моделях PC с CPU 80486 стали использоваться 72-контактные SIMM-модули с микросхемами FPM DRAM, а в PC с CPU Pentium — с микросхемами EDO DRAM.
SIMM-модули длительное время являлись стандартом в современных вычислительных системах, однако в 1997 г. им на смену пришли новые — DIMM-модули.
DIMM-модули
В отличие от SIMM-модулей в DIMM-модулях {Dual In-line Memory Module) контакты с двух сторон электрически независимы. Наиболее распространенными являются 168-контактные 64-разрядные модули DIMM, имеющие по 84 контакта с каждой стороны (рис. 7.21).
Рис. 7.21. 168-контактный DIMM-модуль
В табл. 7.10 показано назначение выводов 64-разрядного (без проверки четности) DIMM-модуля. Выводы 1—42 расположены с левой стороны лицевой части модуля, выводы 43—84 — с правой, а выводы 85—169 расположены на тыльной стороне модуля: 85—126 с левой стороны, а 127—168 — с правой.
Таблица 7.10. Назначение выводов модуля 64-разрядного DIMM-модуля
DIMM-модули имеют внутреннюю архитектуру, схожую с архитектурой 72-контактных SIMM-модулей, но благодаря более широкой шине их можно устанавливать по одному на материнские платы с 64-разрядной системной шиной (для CPU класса Pentium).
Для установки в портативные PC (notebook) разработан DIMM-модуль малого размера (Small Outline DIMM — SO DIMM). Наиболее распространены 72- и 144-контактные SO DIMM-модули.
На DIMM-модули, как правило, устанавливаются микросхемы SDRAM (реже EDO DRAM). Кроме микросхем памяти, на модули, работающие на тактовой частоте более 66 МГц, должны быть установлены микросхемы буфера ввода/вывода и SPD.
Микросхема SPD {Serial Presense Detect) — это микросхема энергонезависимой памяти EEPROM (объемом 2 Кбит), в которой записаны характеристики микросхем памяти, необходимые BIOS для правильной конфигурации системы. Кроме того, в SPD находится информация о производителе.
Дешевые DIMM-модули "безымянных" производителей обычно не имеют микросхем SPD. Это приводит к тому, что некоторые материнские платы отказываются с ними работать.
Некоторые модули (как правило, 168-контактные с микросхемами EDO DRAM) снабжаются специальной микросхемой (буфером), в которой сохраняются поступившие данные, освобождая контроллер. Буферизованный DIMM-модуль, как правило, несовместим с небуферизованным, поэтому эти два типа модулей имеют разное положение одного из ключей (рис. 7.22).
В конструкции модулей предусмотрены два ключа для правильного позиционирования DIMM-модулей в слоты на материнской плате.
□ Первый ключ расположен между контактами 10 и 11; он служит для определения типа памяти модуля (EDO DRAM или SDRAM).
□ Второй ключ расположен между контактами 40 и 41; он служит для определения напряжения питания модуля (5 В или 3,3 В).
Рис. 7.22. Расположение ключей DIMM-модуля
В настоящее время большинство материнских плат оборудовано слотами для установки DIMM-модулей. На некоторых материнских платах предусмотрено совместное использование модулей SIMM и DIMM.
РС100
Как уже отмечалось, для устойчивой работы системы с тактовой частотой системной шины 100 МГц корпорацией Intel была разработана спецификация РС100 на элементы SDRAM и DIMM-модули.
В этой спецификации для модулей PC 100 DIMM (в отличие от "обычных" DIMM-модулей) оговаривается следующие моменты:
□ Строго регламентирована длина сигнальных проводников на печатной плате модуля памяти, ширина и зазоры между проводниками.
□ Печатная плата должна иметь шесть слоев с обязательным выделением отдельных слоев под питание и корпус (ранее было 4).
□ На концах сигнальных проводников должны быть установлены резисторы, уменьшающие переотражение сигналов.
□ Каждый модуль памяти должен быть оборудован микросхемой SPD.
□ Толщина золотого покрытия контактов должна быть не менее 0,8 мкм (ранее 0,1—0,3 мкм).
Все модули памяти спецификации РС100 должны иметь не более 24 микросхем. В противном случае материнские платы не будут с ними работать. На модули памяти должна быть нанесена соответствующая маркировка.
Существуют два класса модулей PC 100: так называемые небуферизованные (РС100 SDRAM Unbufferd DIMM) и буферизованные (РС100 SDRAM Regis-tred DIMM - RDIMM).
DIMM-модули PC 100 SDRAM Unbufferd DIMM применяются в системах, где не требуется объем памяти более 512 Мбайт (табл. 7.11). РС100 SDRAM Registred DIMM применяются в системах, где требуется объем оперативной памяти от 768 до 1024 Мбайт (описание данных модулей приведено ниже).
Таблица 7.11. Конфигурация модулей PC 100 SDRAM Unbufferd DIMM
VC SDRAM
В конце 1997 г. японская корпорация NEC представила DIMM-модули, работающие с тактовой частотой 100 и 133 МГц, которые получили название VCM (Virtual Channel Module). На данных модулях установлены микросхемы SDRAM, они имеют 168 контактов и могут устанавливаться в "стандартный" слот DIMM. Таким образом, нет необходимости в изменении дизайна слота и материнской платы, однако необходимо, чтобы Chipset поддерживал данные модули памяти. Отличие от обычного модуля DIMM заключается в его новой архитектуре (рис. 7.23).
В современном PC доступ к оперативной памяти осуществляется различными устройствами. Программы, которые выполняются параллельно в много-заданной операционной системе (Windows 95/98/2000/NT и др.), бронируют для себя определенные области памяти, а многие устройства (IDE- и SCSI-контроллеры, звуковые карты и видеокарты AGP обращаются напрямую к оперативной памяти. При одновременном обращении к памяти нескольких устройств (Memory Master) происходит задержка. Для устранения этой задержки и рассредоточения запросов по различным областям оперативной памяти была разработана специальная архитектура модуля памяти, включающая в себя 16 независимых каналов памяти. Каждому устройству (программе), которые обращаются к оперативной памяти, выделен отдельный канал.
Конструктивно канал выполнен в виде микросхемы SRAM емкостью 1024 бит. Каждый канал располагается между линией ввода/вывода памяти и матрицей ячеек памяти. В виртуальном канале осуществляется временное хранение данных. Таким образом, регенерация памяти и циклы чтения/записи данных протекают одновременно.
Обмен данными между виртуальным каналом и ячейками памяти происходит блоками по 1024 бита.
Рис. 7.24. Обмен данными через виртуальные каналы
Многие современные Chipset поддерживают модули DIMM VCM SDRAM. Наряду с NEC данные модули памяти выпускаются Hyndai, Siemens и Micron.
DDR
DIMM-модуль с микросхемами DDR SDRAM не совместим со стандартными DIMM-модулями. При сохранении тех же размеров, количество контактов увеличилось до 184. Изменилось и положение ключа, который не позволит установить DIMM DDR SDRAM в "стандартный" слот (рис. 7.25).
Рис. 7.25. Внешний вид модуля DDR DIMM
RDIMM-модуль
Registered DIMM-модули (RDIMM) предназначены для систем, требующих более 1 Гбайт оперативной памяти. RDIMM-модули 72-разрядные. Они отличаются от модулей PC 100 SDRAM Unbufferd большим размером печатной платы, а также наличием специальной микросхемы (Registers), обеспечивающей страничную организацию памяти.
Конфигурация RDIMM-модулей приведена в табл. 7.12.
Таблица 7.12. Конфигурация модулей РС100 SDRAM Registered DIMM
RIMM-модуль
RIMM-модуль (Rambus In-line Memory Module) — это новый высокоскоростной модуль оперативной памяти PC, разработанный компанией Rambus совместно с Intel.
Внешне модуль RIMM напоминает модуль DIMM (рис. 7.26), однако они различаются, во-первых, количеством контактов и их расположением (RIMM-модуль имеет 184 контакта), а во-вторых, RIMM-модуль с обоих сторон закрыт металлическим экраном, защищающим его от наводок и взаимного влияния модулей, работающих на больших частотах.
Рис. 7.26. Внешний вид RI ММ-модуля: (а) — без чехла, (б) — в металлическом чехле
Согласно специфике архитектуры Rambus на плате не может оставаться пустых слотов RIMM, они должны быть заполнены специальными модулями CRIMM (Continuity RIMM), которые будут поставляться в комплекте с системными платами (рис. 7.27).
Рис. 7.27. Внешний вид CRIMM-модуля
По замыслу корпорации Intel на материнской плате может размещаться до трех RIMM-модулей (рис. 7.28), однако Chipset i810/810Е/820 поддерживают только два модуля, что обусловлено техническими проблемами.
Модули предназначены для установки на материнские платы, поддерживающие канал Direct Rambus, т. е. имеющие соответствующий контроллер и высокоскоростную 16-разрядную шину памяти, работающую на тактовой частоте 400 МГц. Поскольку данные передаются с тактовой частотой 800 МГц (по фронту и спаду синхроимпульса), то пропускная способность RIMM-модуля в три раза превышает аналогичную характеристику РС66 DIMM и в два раза — PC 100 DIMM:
Рис. 7.28. Размещение RIMM-модуля на материнской плате
В настоящее время корпорация Intel определила три типа RDRAM:
□ РС800 RDRAM с частотой 400 МГц и пропускной способностью 1,6 Гбайт/с.
□ РС700 RDRAM с частотой 356 МГц и пропускной способностью 1,4 Гбайт/с.
□ РС600 RDRAM с частотой 300 МГц и пропускной способностью 1,2 Гбайт/с.
РС600 RDRAM не может функционировать с процессорами, использующими частоту системной шины 133 МГц.
Как и DIMM-модули, RIMM-модули оборудованы микросхемой SPD.
На модуле могут располагаться от 1 до 16 элементов DRAM. Однако одновременно может быть активна только одна микросхема, таким образом, уменьшается потребление питания модуля. Напряжение питания RIMM-модуля — 2,5 В.
Таблица 7.13. Организация RIMM-модулей
Как правило, на модулях RIMM устанавливаются микросхемы Direct RDDRAM, однако могут быть установлены и SDRAM и EDO. В последнем случае на модуле устанавливается специальный конвертер (рис. 7.22).
Рис. 7.29. RIMM-модули с различными элементами
Южно-корейская компания Samsung Electronics уже приступила к массовому производству RIMM-модулей на основе микросхем SDRAM емкостью 64 Мбит. С 1999 г. начались поставки крупных партий новых модулей компаниям Intel, Compaq и Dell. Стоимость модулей RIMM достаточно высока.
Маркировка модулей памяти
Если микросхемы памяти в мире выпускает около двух десятков производителей, то производителей модулей памяти гораздо больше. Как правило, дешевые модули вообще не маркируются: часто вместо маркировки на корпусе микросхемы имеется лишь логотип производителя, страна-производитель или номер партии (рис. 7.30).
Рис. 7.30. Пример маркировки модулей памяти
Если на корпус модуля памяти нанесена маркировка, то это вовсе не значит, что вы сможете ее прочитать. Обычно по первым буквам маркировки можно
определить фирму — изготовителя модуля (см. табл. 7.5), а последние цифры обозначают время доступа, однако расшифровать информацию об организации модуля, напряжении питания и т. п. удается далеко не всегда.
Поэтому следует либо воспользоваться информацией, имеющейся на микросхеме DRAM, либо обратиться за дополнительной на сайт производителя.
В качестве примера на рис. 7.31 представлена маркировка SIMM-модулей (FPM/EDO) фирм LG и Micron.
На модулях VC SDRAM и PC 100 SDRAM наносится соответствующая маркировка (рис. 7.32) согласно спецификации Intel.
Рис. 7.32. Пример маркировки модулей памяти PC 100 SDRAM (a) и VC SDRAM (б)
Модули памяти на материнской плате
Рассмотрим примеры установки элементов памяти на материнских платах, предназначенных для различных CPU.
Как было отмечено выше, элементы памяти всегда организованы в так называемые банки (Banks) — один или несколько разъемов, объединенных в логическую единицу.
Речь пойдет о DIP-, SIP-, SIMM- и DIMM-элементах, будут представлены примеры конфигурации различных материнских плат. Модели материнских плат могут немного отличаться друг от друга в зависимости от конфигурации. Если различия существенны, это будет специально оговорено.
Материнская плата с процессором 8088
В материнских платах класса XT для построения оперативной памяти применялись так называемые DIP-элементы памяти. Сообразно типам обозначения эти элементы имеют различное количество выводов (Pins), также называемых ножками.
Имеет значение, какой стороной устанавливать в разъем DIP-элемент памяти. Правда, перевертывание не ведет к повреждению, а лишь к нарушению функционирования PC. На рис. 7.33 показано, как идентифицировать переднюю и заднюю стороны элемента памяти и разъема. Варианты заполнения банков памяти приведены в табл. 7.14.
Внимание!
Банк всегда должен быть полностью укомплектован элементами памяти.
При установке или извлечении таких DIP-элементов следует обратить внимание на то, чтобы ножки не обломились и не погнулись. В последнем случае можно попробовать осторожно выправить ножку с помощью пинцета.
Время доступа к элементам памяти на материнской плате класса XT должно находиться в интервале 100—120 не.
XT-плата, к сожалению, самостоятельно не распознает, сколько оперативной памяти на ней установлено. На этой плате находятся соответствующие джамперы или DIP-переключатели (табл. 7.15). В нашем примере материнской платы, как во многих XT-платах, используются DIP-переключатели. За область оперативной памяти отвечают DIP-переключатели З и 4. Таким образом, почти всю XT-плату конфигурируют вручную. Пример материнской платы показан на рис. 7.34.
Таблица 7.15. Конфигурирование XT-платы с помощью DIP-переключателей
Материнская плата с процессором 80286
В отличие от материнской платы с процессором 8088 материнская плата с CPU 286 обычно оборудована CMOS Setup, где регистрируется объем памяти. Для очень старых плат программа конфигурирования поставлялась на отдельной дискете. Тем не менее еще могут встретиться такие материнские платы, для которых память необходимо конфигурировать вручную с помощью джамперов или DIP-переключателей.
Материнская плата, показанная на рис. 7.35, относится к моделям, на которых имеются DIP-разъемы для элементов памяти 44256, 41256, 4464 и 4164. На таких платах можно установить элементы памяти емкостью 1 Мбайт (411000).
Рис. 7.35. Пример материнской платы с CPU 80286
Варианты заполнения банков памяти на материнской плате представлены в табл. 7.16.
Таблица 7.16. Варианты заполнения банков памяти на материнской плате с CPU 80286
Если тактовая частота процессора составляет 12 МГц, то элементы памяти со временем доступа 100 не функционируют нормально. Однако, если тактовая частота работы процессора составляет 20 МГц, следует применять микросхемы памяти со временем доступа 80 не.
Материнская плата с процессором 80386 или 80486
Интересен следующий пример (рис. 7.36). На этой плате можно беспрепятственно устанавливать DIP- и SIMM-модули памяти, вследствие чего появляются дополнительные возможности.
Так как руководство, к сожалению, умалчивает о последовательности банков, приведенные на рис. 7.36 банки определены вручную с помощью джамперов. Разъемы памяти при этом перечисляются от U1 до U4 (для SIMM), от U5 до U40 (для элементов памяти DIP 41256 и 411000) от U41 до U48 (для элементов памяти DIP 44256). Варианты заполнения банков памяти на материнской плате представлены в табл. 7.17.
Таблица 7.17. Варианты заполнения банков памяти на материнской плате с CPU 80386
Вы видите, что хотя эта плата предоставляет довольно много вариантов комплектации памяти, тем не менее, для пользователя она не совсем удобна.
Пример конфигурации, изображенный на рис. 7.37, скорее всего, вам хорошо знаком. Здесь применяются лишь SIMM-модул и. Правда, на этой плате можно устанавливать три типа модулей: на 256 Кбайт, 1 Мбайт и 4 Мбайт. Более новые платы позволяют применять так называемые модули PS/2. Однако здесь имеется одна тонкость. Обычно банк состоит из двух (для плат до 32 Мбайт), а иногда из 4 (для плат до 64 Мбайт) SIMM-модулей памяти. На рассматриваемой плате разъемы, составляющие банк, лежат не прямо друг возле друга, а переставлены. При оснащении материнской платы элементами памяти следует учитывать это обстоятельство.
Рис. 7.37. Схема типичной материнской платы с CPU 80486
Для материнской платы, оборудованной CPU 80486 с тактовой частотой до 33 МГц, следует применять элементы памяти со временем доступа 70 не.
Более быстрые платы должны иметь модули памяти, время доступа к которым составляет 60 не. Варианты заполнения банков памяти на материнской плате представлены в табл. 7.18.
Таблица 7.18. Варианты заполнений банков памяти на материнской плате с CPU 80486
Материнская плата с процессором Pentium
Материнские платы с CPU Pentium (рис. 7.38) в части организации памяти имеют два существенных отличия от всех плат, рассмотренных выше:
□ На многих материнских платах появились специальные слоты для установки 168-контактных DIMM-модулей, выполненных на элементах SDRAM.
□ Преодолен рубеж 128 Мб для размера оперативной памяти; теперь максимальный размер оперативной памяти на материнской плате с соответствующим Chipset (например, Intel 430 Tritin 430HX) может достигать 512 Мбайт.
Варианты заполнения банков на материнской плате представлены в табл. 7.19. Обратите внимание, что банк 1 предназначен для 168-контактного D1MM-модуля со временем доступа 10—12 не.
Материнская плата с процессором Athlon
Постепенно в течение 1999 г. SIMM-модули были вытеснены более производительными DIMM-модулями. Это привело к тому, что многие производители материнских плат перестали устанавливать на платах слоты для SIMM-модулей, хотя Chipset и поддерживал этот вид памяти. С увеличением тактовой частоты системной шины выше 66 МГц появились DIMM-модули спецификации РС100, РС125, РС133 SDRAM. На многих материнских платах появилась "угрожающая" надпись "PC 100 ONLY", которая означала, что пользователь не может устанавливать на данной материнской плате стандартные DIMM-модули (РС66 SDRAM). При установке подобных модулей система их "не видит" и отказывается работать.
В качестве примера рассмотрим конфигурацию памяти (рис. 7.39) на материнской плате для CPU Athlon (Chipset AMD-750). На данной материнской плате можно установить один, два или три DlMM-модуля спецификации РС100, причем организация модулей должна соответствовать данным (табл. 7.20), содержащимся в паспорте на плату (сравните с табл. 7.11).
Логическое распределение оперативной памяти
Логическое распределение оперативной памяти (рис. 7.40) определяется не только применяемой операционной системой, но и особенностями аппаратной реализации IBM-совместимых компьютеров.
Знание строения RAM необходимо для программной оптимизации системы (см. главу 31). Оптимизация системы не всегда пропорциональна денежным вложениям в новейшие быстродействующие программные продукты. Используя простые уловки и хитрости, можно повысить производительность PC внутрисистемными методами.
Можно выделить пять важнейших логических областей оперативной памяти:
□ Стандартная оперативная память (Conventional Memory)
□ EMS (Expanded Memory Specification)
□ UMA (Upper Memory Area)
□ НМА (High Memory Area)
□ XMS (Extended Memory Specification)
Стандартная оперативная память
С уверенностью можно сказать, что с точки зрения аппаратной спецификации стандартная память является наиважнейшей. Как правило, в ней располагается большая часть прикладных программ и данных.
В то время как внутри PC обычно все выражается в двоичной системе счисления (0 или 1), для адресации памяти применяется шестнадцатеричная, характеризующаяся наличием символа "h" после значения.
Примечание
Шестнадцатеричная система счисления — это система с базой 16, в отличие от десятичной системы с базой 10. К 10 цифрам от 0 до 9, используемым в десятичной системе, добавляются еще и буквы от А до F. Значение шестнадцате-ричного F соответствует значению десятичного числа 15. В двоичной системе F (соответственно 15) выражается как 00001111. В шестнадцатеричной системе байт (состоящий из 8 бит) всегда можно выразить через два шестнадцатерич-ных числа. Чтобы числу F "не было одиноко" (не перепутать его с буквой F), впереди него ставят ноль. Совершенно корректная запись десятичного числа 15 в шестнадцатеричной системе— OFh. Чтобы усложнить дело еще больше, адреса ячеек памяти обозначают не просто шестнадцатеричными цифрами, а составляют из двух конструкций, разделенных двоеточием. Эти части адреса называются сегментами (номер шестнадцатибайтного блока памяти) и смещением (относительно начала сегмента). Таким образом, запись 1000h:0112h соответствует адресу 10112h.
Стандартная память начинается от адреса 0000:0000 и продолжается до адреса АОООЮООО. Верхний предел был установлен процессорами 8088 и 8086. Эти процессоры имели 20-разрядную адресную шину и поэтому могли адресовать только 1 Мбайт памяти (220 = 1048 576 байт). В пределах этой памяти выше уровня 640 Кбайт фирмой IBM были зарезервированы 384 Кбайт для выполнения внутренних функций, которые будут рассмотрены далее. Распределение памяти для PC с CPU 80386 и выше показано на рис. 7.41.
Рис. 7.41. Распределение памяти для PC с CPU 80386 и выше
Таблица векторов прерываний
Само название говорит, что речь идет о таблице (состоящей из 256 элементов по 4 байта), в которой находятся вектора прерываний — адреса сервисных программ, входящих в состав операционной системы и BIOS. При этом речь идет о таких базовых функциях, как отображение символа на экране монитора, организация доступа к дисководу или жесткому диску и т. п. Но так как существуют различные операционные системы и версии BIOS, эти программы обработки прерываний могут располагаться в различных местах стандартной оперативной памяти. В таблице векторов прерываний указано их реальное местоположение. Таблица начинается с адреса 0000h:0000h и занимает 1024 байта (1 Кбайт).
Область данных BIOS
Вслед за таблицей прерываний расположена область данных BIOS объемом 768 байт. Здесь размещены счетчик таймера, буфер клавиатуры и другая внутренняя информация.
Область для операционной системы
После области для данных BIOS в стандартной оперативной памяти располагается область для загрузки операционной системы. Конечно, система загружается в RAM не полностью, а только частично (например, ядро DOS, Windows). Часть ядра операционной системы — процессор команд, более известный под именем C0MMAND.COM. Ядро операционной системы не имеет постоянного адреса памяти. Его местоположение и размер занимаемой им памяти зависят от версии операционной системы. Впрочем, имеется возможность перераспределить стандартную память, поместив ядро системы в другие области памяти.
Основная область памяти
Далее до адреса AOOOh:OOOOh все принадлежит только программам и данным. Этот адрес известен как граница 640 Кбайт.
После первых 640 Кбайт оперативная память становится "аппаратной". Здесь находится информация, которая служит для сопряжения прикладных программ с различными картами расширений, установленными в PC, а поскольку иногда карты расширения, например видеокарту, называют адаптером {Adapter), эту область памяти коротко называют сегментом адаптера или, т. к. речь идет об области памяти с более высокими адресами, UMA {Upper Memory Area). Верхняя память {Upper Memory) располагается по адресам в диапазоне AOOOOh—FFFFFh (от 640 Кбайт до 1 Мбайт), ее размер составляет 384 Кбайт.
Рассматриваемая область памяти неоднородна. В UMA размещается видеопамять и ROM BIOS, а также могут находиться модули постоянной и оперативной памяти, конструктивно расположенные на картах расширения, подключенных к PC. Поэтому среди этих блоков некоторые зарезервированы, другие — свободны. Свободные блоки называются UMB (Upper Memory Block).
Область памяти графической карты находится в пределах адресов от AOOOh:OOOOh до C000h:0000h и занимает 128 Кбайт. Конструктивно она располагается на видеокарте, а логически помещена в адресное пространство памяти PC.
С видеопамятью работают сразу два компонента PC: процессор и монитор. Процессор помещает в нее данные, а монитор обращается к видеопамяти для вывода этих данных на экран. Процессор обращается к видеопамяти только при необходимости изменить выводимые данные, а монитор считывает данные из нее непрерывно для отображения их на экране.
Современные видеокарты поставляются с видеопамятью объемом от 2 до 8 Мбайт. В этой памяти хранится изображение. Соответствующая программа обращается к нему через "окно" размером 64 Кбайт, адрес которого приходится на начало блока A000h:0000h или блока B000h:0000h. При этом программа управляет значением в специальном индексном регистре, которое показывает, какие 64 Кбайт видеопамяти отображаются в окне. Этот способ несколько напоминает ситуацию с памятью EMS, о которой расскажем ниже.
Выше адреса C000h:0000h вплоть до C800h:0000h находится VGA BIOS (размером 32 Кбайт), где записаны основные функции для представления изображений. Некоторые прикладные программы охотно обращаются к VGA BIOS, потому что доступ к программам BIOS в области памяти сегмента адаптера намного быстрее, чем к соответствующим программам, находящимся в ROM BIOS видеокарты.
Выше адреса C800h:0000h все по-настоящему запутано. Здесь находятся несколько свободных блоков, которые могут быть использованы различным образом. Большинство изготовителей плат пользуются этим с целью ускорения доступа и располагают здесь информацию, например, SCSI-Host-адаптера или сетевой карты. При отсутствии таких карт вы можете использовать эту память для размещения в ней операционной системы (это можно сделать с помощью драйвера EMM386.EXE, входящего в поставку DOS или Windows). Кроме того, 64 Кбайт резервируются для страниц дополнительной памяти (EMS), если она будет использоваться. Как это сделать, описано ниже.
В последних 64 Кбайт сегмента адаптера выше адреса F000h:0000h располагается ROM BIOS. Здесь, например, находится информация, внесенная в CMOS Setup при конфигурировании PC. Предположительно в вашем CMOS Setup имеется опция System bios shadow ram, которую стоит активизировать (об этом будет написано далее).
Как уже упоминалось ранее, в верхней памяти имеются изрядные "дыры", которые представляют собой свободную память, самостоятельно не идентифицируемую системой. Пустуют, как правило, область расширения системного ROM BIOS или часть области под дополнительные модули ROM. Использовать эту память позволяет метод EMS (Expanded Memory Specification), появившийся прежде всего потому, что программы, использующие большой объем памяти, не могут разместиться в оперативной памяти емкостью 640 Кбайт. Возможно, вы уже встречались с типичным сообщением на экране монитора:
Insufficient Memory
Чтобы преодолеть этот барьер, фирмы Lotus, Intel и Microsoft (отсюда название LIM) создали стандарт, который основывается на так называемом переключении банков (Bank Switchings) или блоков (страниц) памяти. В области UMB между видеобуфером и системной ROM BIOS выделяется незанятое окно (Page frame) размером 64 Кбайт, разделенное на 4 логические страницы по 16 Кбайт каждая. С помощью специального драйвера, например EMM386.EXE, строятся "отображения" до четырех произвольных физических страниц в логические из дополнительной (Expanded) памяти, расположенной на специальной карте расширения. Поэтому эту память часто называют отображаемой памятью. При необходимости обращения к данным, расположенным в дополнительной памяти, с помощью драйвера выбирается соответствующее ранее построенное "отображение" физических страниц в логические.
Когда CPU обращается к области памяти, входящей в окно (адрес памяти которого ниже 1 Мбайт), аппаратно происходит обращение к соответствующим страницам дополнительной памяти на плате расширения. Таким образом, посредством адресации, реализуемой драйвером EMS, можно обращаться к 8 Мбайт (стандарт LTM 3.2) или к 32 Мбайт (стандарт LIM 4.0) дополнительной памяти, которая конструктивно расположена на отдельной карте расширения. На PC с процессорами 80386 и выше такая отдельная карта не нужна. EMS здесь может эмулироваться с помощью соответствующих драйверов.
Для того чтобы использовать EMS-память, необходимо выполнение двух условий:
□ Прикладные программы должны уметь обращаться к драйверу EMS-памяти.
□ Необходим специальный менеджер (Expanded Memory Manager, EMM), который организует страницы памяти и управляет ими.
Ранее для старых материнских плат драйвер управления памятью поставлялся на отдельной дискете. В настоящее время этот драйвер входит в стандартные поставки DOS и Windows, в этом случае он соответствует последнему стандарту LIM и называется EMM386.EXE. Этот драйвер позволяет программно эмулировать дополнительную (Expanded) память в расширенной (Extended) памяти. В CONFIG.SYS этот драйвер определяется, как правило, следующим образом:
Device = C:\DOS\EMM386.EXE хххх
ИЛИ
Device = C:\Windows\EMM386.EXE хххх
Параметр хххх определяет в килобайтах величину эмулируемой Expanded-памяти.
Командная строка C:\dos\emm386.exe 1024 файла CONFIG.SYS резервирует 1 Мбайт дополнительной памяти, что можно проверить, например, с помощью утилиты Syslnfo, входящей в пакет Norton Utilities (рис. 7.42). Посмотреть распределение памяти можно с помощью команды MEM (рис. 7.43).
Рис. 7.42. Информация о EMS-памяти, представленная с помощью утилиты Syslnfo из пакета Norton Utilities
Рис. 7.43. Распределение памяти PC, показанное с помощью команды MEM DOS
Эмулировать дополнительную память необходимо только в том случае, если выполняются соответствующие программы. Такие программы, как AutoCad или Windows, нуждаются скорее в памяти XMS, которая будет рассмотрена ниже.
Так как драйвер EMM386.EXE служит для идентификации и управления блоками верхней памяти (UMB), рекомендуется использовать его всегда. В CONFIG.SYS запишите следующую командную строку:
Device = C:\DOS\EMM386.EXE NoEms
Параметр NoEms обозначает, что в области памяти свыше 1 Мбайт под дополнительную память не выделяется ни одного байта (что очень ценно для Windows).
Первый блок величиной 64 Кбайт непосредственно выше границы 1 Мбайт оперативной памяти обозначают НМА (High Memory Area). Своему существованию эта область целиком обязана несколько "ущербной" эмуляции процессора i8088 процессором 80286. Дело состоит в следующем. Вся стандартная память, помимо того, что может быть представлена в виде 16 непересекающихся блоков размером 64 Кбайт каждая (О—F), также может быть представлена и в виде перекрываемых областей по 64 Кбайт каждая, называемых сегментами, которые, вообще говоря, могут начинаться через каждые 16 байт.
Максимальный полный адрес в виде сегмент:смешение, по которому может обратиться процессор i8088, — это FFFF:000Fh (20 адресных линий). Если увеличить это значение хотя бы на единицу, то произойдет циклический перенос (Wrap around) и значение адреса станет 0000:0000. Для CPU 80286 и выше в общем случае этого не произойдет, т. к. адресная шина этих процессоров имеет больше 20 разрядов, но адрес памяти при этом превысит границу 1 Мбайт. Чтобы исправить эту ошибку, фирма IBM предусматривает на материнских платах PC специальные аппаратные средства, заставляющие процессор 80286 выполнять переход на низшие адреса, как это было при работе процессора i8088. Однако такой переход может быть отменен чисто программным путем.
Таким образом, PC с CPU не ниже 80286 в реальном режиме может дополнительно адресовать память в пределах FFFF:0010—FFFF:FFFFh, то есть практически целый сегмент размером 64 Кбайт минус 16 байт. Особенно важным для понимания является тот факт, что область НМА доступна, по сути, в реальном режиме работы процессора. Необходимую программную поддержку выполняет специальный драйвер HIMEM.SYS, соответствующий спецификации XMS, о которой речь пойдет ниже.
Если вы не совсем разобрались во всем вышеизложенном и вас мало интересует, какое управление адресами обеспечивает доступ к НМА, запомните только, что в файле CONFIG.SYS должна содержаться следующая строка:
Device = C:\DOS\HIMEM.SYS
XMS
Это последний тип памяти, но с помощью аппаратных средств едва ли можно сделать что-то большее. XMS (eXtended Memory Specification) обозначает всю память выше границы 1 Мбайт, включая также НМА. Правда, следует отметить, что спецификация XMS дает возможность одновременного доступа к НМА только одной программе DOS, например для загрузки в НМА ее резидентной части.
Информацию о XMS-памяти можно получить с помощью утилиты Syslnfo, входящей в пакет Norton Utilities (рис. 7.44).
Чтобы иметь доступ к этой памяти, необходим специальный драйвер, с помощью которого данные пересылаются из стандартной памяти в расширенную и обратно. Выполнение программ, размещенных в расширенной памяти, не предусмотрено. Драйвер, реализующий XMS, переводит CPU в защищенный режим, т. е. режим, в котором можно адресовать всю память.
Рис. 7.44. Информация о XMS-памяти, представленная с помощью утилиты Syslnfo
Этот драйвер мы уже упомянули в предыдущем разделе. Он, как и EMM386.EXE, поставляется вместе с DOS и Windows и называется HIMEM.SYS. Определяется в файле CONFIG.SYS в командной строке типа:
Device = C:\DOS\HIMEM.SYS
Дальнейшие сведения, касающиеся распределения оперативной памяти с помощью файлов CONFIG.SYS и AUTOEXEC.BAT, представлены в главе 31.
Объем оперативной памяти системы определяется объемом модулей памяти, установленных на материнской плате. Программы в процессе их работы и данные располагаются в ячейках этой памяти, откуда могут быть востребованы процессором по мере необходимости.
Для увеличения объема памяти системы была разработана концепция виртуальной памяти. Суть этой концепции заключается в том, что на жестком диске создается файл размером несколько десятков мегабайт (Swap-файл — Файл обмена), являющийся как бы расширением оперативной памяти.
Когда все ячейки реальной оперативной памяти заняты, а для работы программ необходима память, менеджер виртуальной памяти освобождает физическую память, перенося часть информации, которая давно не использовалась, в файл обмена.
Предположим, что операционной системе необходимо 80 Мбайт памяти, чтобы загрузить все запушенные программы, но на PC установлено только 32 Мбайт RAM. В этом случае запускается менеджер виртуальной памяти, который создает на жестком диске файл обмена размером 80-32 = 48 Мбайт. Процессор будет обращаться к 80 Мбайт памяти, "не подозревая", что не все из этих ячеек памяти располагаются в модулях памяти, что часть их находится на жестком диске.
Концепция виртуальной памяти широко применяется в многозадачных операционных системах (Windows 95/98, Windows NT и др.). Без виртуальной памяти мы не смогли бы, например, готовя итоговый отчет, одновременно работать с большой таблицей Exel, набирать текст в текстовом редакторе, работать с базой данных и получать сообщения по E-mail. Для этого необходима оперативная память очень большого объема, которой, как правило, всегда не хватает.
Не следует забывать, что жесткий диск работает в тысячи раз медленнее, чем оперативная память, поэтому попытка загрузить одновременно большое количество программ приведет к непрерывному обращению к жесткому диску и в конечном счете к зависанию системы.
Необходимый объем оперативной памяти
Максимальное количество памяти, поддерживаемое системой, определяется следующими факторами:
□ Разрядностью адресной шины процессора.
□ Возможностями Chipset (каждый Chipset может управлять оперативной памятью определенного объема).
Примечание
Chipset большинства современных материнских плат, предназначенных для рядового пользователя, может управлять памятью объемом от 128 до 512 Мбайт. Chipset материнских плат для серверов и рабочих станций обеспечивает управление блоками памяти значительно большего объема.
□ Количеством разъемов для установки модулей памяти на материнской плате.
□ Финансовыми возможностями пользователя.
От объема памяти, установленной в PC, во многом зависит производительность всей системы, хотя объем памяти никак не влияет ни на скорость обмена данными, ни на скорость работы процессора и других компонентов системы.
Все многозадачные операционные системы используют виртуальную память, которая "вводит в заблуждение" PC. Она "считает", что на материнской плате установлено гораздо больше памяти, чем имеется на самом деле.
Когда количество используемой виртуальной памяти превышает количество реальной памяти, операционная система тратит много времени на постоянное обращение к жесткому диску, что очень замедляет выполнение программ.
PC с процессором Pentium 133 МГц, оборудованный 8 Мбайт, будет работать медленнее, чем PC с CPU 80486DX2-66, имеющий 32 Мбайт RAM, потому что большую часть времени будет тратить на обмен данными с жестким диском.
Какой же объем оперативной памяти является достаточным для нормальной работы вашего PC? Ответ на этот вопрос зависит от задач, решаемых с помощью PC. Как правило, в документации на программные приложения и компьютерные игры указан объем оперативной памяти, необходимой для их нормальной работы. Если памяти не достаточно, многие приложения отказываются работать, выдавая соответствующие сообщения. Некоторые сведения о требуемом объеме оперативной памяти PC (в зависимости от операционной системы и приложений) представлены в табл. 7.21.
Таблица 7.21. Объем оперативной памяти
Внимание!
Если при переключении от одного приложения к другому начинает мерцать индикатор HDD, расположенный на корпусе PC, значит не хватает оперативной памяти и операционная система вынуждена использовать виртуальную память. В этом случае вам необходимо увеличить RAM компьютера.
В процессе работы многие приложения создают на жестком диске временные файлы. Если на вашем PC установлено большое количество оперативной памяти, вы можете зарезервировать часть ее под виртуальный диск, например, с помощью утилиты RAMDRAV.SYS в Windows 95/98. Поскольку в этом случае вы освобождаете систему от обращения к медленному жесткому диску, то ее производительность возрастет.
Кэш-память (Cache — Убежище, склад) влияет на быстродействие материнской платы и винчестера. Физически кэш-память объемом 64—512 Кбайт обычно состоит из элементов SRAM с малым временем доступа.
Рабочий цикл CPU с тактовой частотой, например 33 МГц, равнялся приблизительно 33 не. А модули RAM имели время доступа от 60 до 100 не. Следовательно, процессор вынужден простаивать 2—3 цикла в ожидании, пока информация из соответствующих элементов памяти появится на системной шине. Такая ситуация обычно ведет к существенному снижению производительности системы, что, естественно, крайне нежелательно. Для согласования работы сравнительно медленных устройств, таких как DRAM, а также для уменьшения времени вынужденного простоя процессора создается отдельная область сверхоперативной памяти, выполненная на микросхемах SRAM со временем доступа 15—20 не.
Примечание
Своеобразие SRAM заключается в отсутствии регенерации, так что время доступа к данным кэш-памяти определяется в основном тактовой частотой процессора. Благодаря малому времени доступа к элементам SRAM параметр Wait State, как правило, не используется или равен нулю, что приводит к значительному повышению быстродействия системы в целом.
Обмен данными между процессором и памятью (оперативной и внешней) осуществляется через кэш-память, т. е. данные, например, из оперативной памяти сначала пересылаются в кэш-память и только из нее считываются процессором. Такой способ обмена данными имеет то преимущество, что при повторном обращении к памяти уже нет необходимости считывать данные из медленной оперативной памяти, поэтому информация предоставляется в распоряжение CPU без задержки. Координацию потока этих данных осуществляет кэш-контроллер, который сообщает CPU, имеются ли еще в кэш-памяти необходимые данные.
Кэш-память состоит из трех основных элементов:
□ Контроллера кэш-памяти
□ Кэш-памяти данных (DataRAM)
□ Кэш-памяти адресов (TagRAM)
DataRAM представляет собой кэш-память, в которой находятся данные. TagRAM содержит информацию о местоположении этих данных в кэш-памяти. Если нужно получить данные, процессор обращается первоначально не к оперативной памяти (RAM), а к TagRAM. Если на основании анализа адресов данных CPU обнаружит, что требуемой информации в DataRAM нет, он обращается к более медленной оперативной памяти (рис. 7.45).
Рис. 7.45. Архитектура внешней кэш-памяти (L2)
Впервые внешняя кэш-память появилась на материнской плате с процессором 80386. Емкость ее для процессоров этого класса составляла в среднем 128 Кбайт. Для CPU 80486DX объем кэш-памяти уже был 256 Кбайт, реже — 512 Кбайт. Процессоры взаимодействовали с внешней кэш-памятью через системную шину.
Однако с увеличением тактовой частоты работы CPU скорость обмена данными между процессором и внешней кэш-памятью стала "тормозить" производительность системы. Была разработана отдельная шина для внешней кэш-памяти, названная двойной независимой шиной {Dual Independent Bus, DIB), которая работала с большей тактовой частотой, чем системная шина.
В компьютерах с процессором Pentium Pro внешняя кэш-память помешена не на материнской плате, а непосредственно в ядро процессора. Поэтому обмен данными между CPU и внешней кэш-памятью стал осуществляться на частоте процессора. Понятие "внешняя кэш-память" утратило смысл и появился новый термин — кэш-память второго уровня (L2).
В компьютерах с процессором Pentium II кэш-память второго уровня размещена в картридже на плате процессора и работает на тактовой частоте, равной половине тактовой частоты процессора.
Вместо элементов SRAM стали использоваться более быстрые элементы памяти BSRAM и CSRAM. Объем кэш-памяти второго уровня увеличился. Например, в для процессора Pentium II Xeon (Deschutes) он составляет уже 2 Мбайт.
Примечание
Заметьте, что обмен информацией между кэш-памятью второго уровня и оперативной памятью осуществляется по системной шине.
Размещение кэш-памяти второго уровня непосредственно в ядре (или на плате) процессора очень удобно в многопроцессорных системах, т. к. нет необходимости в разделении кэш-памяти, расположенной на материнской плате. Материнские платы, предназначенные для установки процессоров, оборудованных кэш-памятью второго уровня, не имеют кэш-памяти.
Объем кэшируемой памяти определяется возможностями Chipset. Например, Chipset Intel 430HX поддерживает 128 Мбайт оперативной памяти, из которой может быть кэшировано только 64 Мбайт.
Для повышения производительности систем на базе процессоров 80486 и Pentium в состав этих процессоров помимо описанной выше внешней кэшпамяти включают еще внутреннюю кэш-память емкостью от 8 или 64 Кбайт — кэш-память первого уровня. Ее назначение — согласование скорости работы процессора и внешней кэш-памяти (кэш-памяти второго уровня).
Кэш-память винчестера
Принцип кэширования обмена данными применяется также и при чтении/записи данных с винчестера. В этом случае кэш-память винчестера обеспечивает синхронизацию времени доступа к данным на диске (несколько миллисекунд) с быстродействием шины данных. В процессе кэширования диска данные записываются в кэш-память, элементы которой размешены на самом винчестере, так что при повторном обращении к нему уже нет необходимости в механическом считывании этих данных. Емкость кэш-памяти винчестера обычно составляет от 256 до 2048 Кбайт.
Примечание
Не путайте аппаратное кэширование диска с программным, которое только эмулирует принцип кэширования. Конечно же, такие программы, как Smart Drive (из MS-DOS или Windows) или PC-Cache (из утилит PC Tools), повышают производительность вычислительной системы. Об этих программах кэширования речь пойдет в главе 16.
SRAM
Организация элементов SRAM идентична организации элементов памяти DRAM, за исключением того, что SRAM не нуждается в регенерации памяти.
Буква S в названии означает Static (статический). Если бы SRAM устанавливалась в качестве оперативной памяти, это обеспечило бы значительное повышение быстродействия PC. Однако при этом существенно изменилась бы и стоимость PC, поскольку стоимость микросхем SRAM намного выше стоимости DRAM. Время доступа к DRAM составляет от 60 до 100 не, а время доступа к SRAM — от 10 до 15 не. Поэтому элементы SRAM устанавливают только для выполнения специальных задач, важнейшей из которых можно назвать кэширование, и микросхемы используются в качестве
кэш-памяти второго уровня (L2) и памяти для сохранения параметров BIOS. Использование SRAM в качестве кэш-памяти рассмотрено в главе 6. Как и DRAM, элементы SRAM являются "временной" памятью. Для того чтобы данные оставались неизменными, должно быть обеспечено гарантированное питание от аккумулятора. При этом ток, потребляемый элементами SRAM, настолько мал, что содержимое памяти (при наличии аккумулятора) остается неизменным около двух лет, даже если компьютер в течение этого времени ни разу не включался.
Существуют следующие разновидности статической памяти:
□ Async SRAM
□ Sync Burst SRAM
□ Pipelend Burst SRAM
Микросхемы типа Async SRAM (Asynchronous SRAM — Асинхронная SRAM) имеют простейший асинхронный интерфейс, подобный интерфейсу DRAM, включающий шины адреса, данных и управления. До недавнего времени микросхемы этого типа были стандартом для статической памяти. Время доступа у подобных микросхем составляет 12, 15 или 20 не. Это позволяет CPU читать данные в пакетном режиме без тактов ожидания (2-1-1-1) лишь на тактовой частоте системной шины до 33 МГц. На более высоких частотах временная диаграмма будет 3-2-2-2.
Sync Burst SRAM (Synchronous Burst SRAM— Синхронная пакетная SRAM) обеспечивает временную диаграмму 2-1-1-1 на частотах работы системной шины 50, 60 и 66 МГц и имеет время доступа 8,5, 10 и 13,5 не соответственно. Этот тип статической памяти лучше всего подходит для выполнения пакетных операций и синхронизирован с системной шиной. На частотах 75 МГц и выше временная диаграмма будет 3-2-2-2.
РВ Burst SRAM (Pipelined Burst SRAM— Конвейерная пакетная SRAM) представляет собой усовершенствованную Sync Burst SRAM. Интерфейс РВ Burst SRAM (рис. 7.46) аналогичен интерфейсу Sync Burst SRAM. Конвейерная архитектура позволяет получать данные без тактов ожидания на частотах более 75 МГц. Память этого типа обеспечивает временную диаграмму 3-1-1-1 на частотах 66, 75 и 83 МГц (время доступа 15, 13 и 12 не соответственно).
Память для долговременного хранения
NVRAM используется для долговременного хранения данных, которые ни при каких обстоятельствах не должны быть утеряны. Буквы NV в названии обозначают Non Volatile (не временная). Элементы NVRAM не нуждаются в электропитании и сохраняют данные в течение длительного времени. Энергонезависимая память используется для хранения кода BIOS компьютера, BIOS карт расширения, конфигурации периферийных устройств, скэн-кодов клавиатуры и др.
Существует несколько типов энергонезависимой памяти. Они различаются по способу перезаписи информации и применяются в разных областях.
ROM
Микросхемы ROM (Read Only Memory) в настоящее время практически не применяются, поскольку не позволяют изменять записанную в них информацию. Программирование этих микросхем осуществляется на этапе их разработки. При изменении кода необходимо было разрабатывать новую микросхему.
Микросхемы PROM (Programmable Read Only Memory) нашли более широкое применение. Эти микросхемы программируются специальными программаторами однократно после изготовления. Кроме того, микросхемы PROM практически не чувствительны к электромагнитным полям.
EPROM
Стираемые и многократно перепрограммируемые микросхемы EPROM (Erasable Programmable Read Only Memory) до недавнего времени были самыми распространенными носителями BIOS системы и карт расширения. Кроме того, микросхемы EPROM применяются в качестве знакогенератора принтера. В отличие от PROM, которая программируется только один раз, микросхемы EPROM можно перепрограммировать с помощью специального программатора, подключаемого к PC через СОМ- или LPT-порт.
Стирание записанной информации осуществляется путем применения ультрафиолетового излучения через специальное окно, имеющееся в корпусе микросхемы. Некоторые микросхемы не имеют окна; стирание информации в них происходит с помощью рентгеновского излучения. Под воздействием излучения вся информация стирается одновременно несколько минут.
Запись может производиться побайтно в любую ячейку микросхемы с помощью электрических сигналов. После записи окно заклеивается с целью защиты записанной информации.
EEPROM, Flash memory
В отличие от EPROM информация в микросхеме EEPROM (Electrically Erasable Programmable Read Only Memory) удаляется с помощью электрического сигнала.
Flash EEPROM (Flash Memory) может быть перезаписана без помощи специального программатора, а непосредственно в PC: Основные ее преимущества по сравнению с EEPROM — малое время доступа и малая длительность процесса стирания информации. Работа запоминающей ячейки этого типа памяти основана на физическом эффекте Фаули-Нордхайма (Fowler-Nordheim).
Большинство микросхем BIOS относятся к типу Flash EEPROM. Для. установки новой версии BIOS необходима специальная программа (прошивальщик), которая, как правило, поставляется вместе с материнской платой (на дискете или компакт-диске), и файл с новой системой BIOS.
В настоящее время микросхемы флэш-памяти выпускают практически все крупные фирмы-производители микросхем памяти.
Флэш-память широко используется не только в PC, но и в сотовых телефонах, сетевом оборудовании, принтерах, факсах и т. д.
Несмотря на неисчерпанные возможности совершенствования флэш-памяти, многие аналитики склонны считать, что на рынке портативных устройств ее вскоре сможет потеснить память нового типа — ферроэлектрическая память (Ferroelectric RAM, FRAM).
Первые микросхемы FRAM (Ferroelectric RAM) были созданы корпорацией Ramtron еще в 1984 г. Лицензию на производство этих микросхем приобрели такие крупнейшие производители памяти, как Hitachi, Toshiba, Fujitsu и Samsung.
В отличие от традиционной кремниевой технологии производства элементов памяти в FRAM применяется сегнетоэлектрическая пленка на основе сплавов оксидов металлов (титана, циркония, свинца и т. п.).
Изображенный на рис. 7.47 кристалл — это кристалл идеальной архитектуры памяти Ramtron. "Черный" атом, расположенный в центре кристаллической
решетки, под воздействием электрического заряда может перемещаться вверх или вниз, оставаясь в этом положении, пока не будет подан электрический сигнал. Смещение атома от центра решетки в одну сторону соответствует логической 1, в другую — 0.
В ферроэлектрической памяти со случайным доступом информация сохраняется даже после того, как отключено напряжение питания. FRAM имеет преимущества динамической DRAM (возможность многократной перезаписи) и статической SRAM (высокая скорость), а также памяти ROM (энергонезависимость). За счет комбинации этих свойств можно создать идеальное запоминающее устройство — быструю долговременную память.
В ноябре 1998 г. корпорация Samsung Electronics объявила о поставке партии пробной микросхемы FRAM емкостью 64 Кбайт. К производству ферро-электрической памяти также готовы компании, как Siemens AG, Hyundai, Motorola, NEC.
Специалисты считают, что микросхемы FRAM емкостью от 1 Мбит и выше попадут на рынок уже в 1999 г. и постепенно начнут вытеснять SRAM и Flash EEPROM. Характеристики представлены в табл. 7.22.
Таблица 7.22. Характеристики энергонезависимой памяти различных типов
MRAM (Magnetic RAM) — это новое поколение энергонезависимой магнитной памяти, разработанной в исследовательском центре IMEC (Бельгия) и корпорацией Toshiba. Основой запоминающей ячейки микросхемы является многослойный "магнитный вентиль", выполненный в виде полупроводникового кристалла. Согласно имеющейся информации, цикл чтения/записи для MRAM не превышает 6 не.