КомпьютерМастер КомпьютерМастер
Программы

  Услуги   Цены   Гарантии Вызов мастера Всё о компьютерах   Полезные ссылки

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


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

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

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

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

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

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

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

Во время выполнения программы в оперативной памяти хранятся ее данные. Микросхемы оперативной памяти (RAM) иногда называют энергозависимой памятью: после выключения компьютера данные, хранимые в них, будут потеряны, если они предварительно не были сохранены на диске или другом устройстве внешней памяти. Чтобы избежать этого, некоторые приложения автоматически делают резервные копии данных.

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

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

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

В современных компьютерах используются запоминающие устройства трех основных типов:

  • ROM (Read Only Memory). Постоянное запоминающее устройство — ПЗУ, не способное выполнять операцию записи данных.
  • DRAM (Dynamic Random Access Memory). Динамическое запоминающее устройство с произвольным порядком выборки.
  • SRAM (Static RAM). Статическая оперативная память.

    Память типа ROM

    В памяти типа ROM (Read Only Memory), или ПЗУ (постоянное запоминающее устройство), данные можно только хранить, изменять их нельзя. Именно поэтому такая память используется только для чтения данных. ROM также часто называется энергонезависимой памятью, потому что любые данные, записанные в нее, сохраняются при выключении питания. Поэтому в ROM помещаются команды запуска персонального компьютера, т.е. программное обеспечение, которое загружает систему.

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

    Основной код BIOS содержится в микросхеме ROM на системной плате, но на платах адаптеров также имеются аналогичные микросхемы. Они содержат вспомогательные подпрограммы базовой системы ввода-вывода и драйверы, необходимые для конкретной платы, особенно для тех плат, которые должны быть активизированы на раннем этапе начальной загрузки, например видеоадаптер. Платы, не нуждающиеся в драйверах на раннем этапе начальной загрузки, обычно не имеют ROM, потому что их драйверы могут быть загружены с жесткого диска позже — в процессе начальной загрузки.

    Память типа DRAM

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

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

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

    В устройствах DRAM для хранения одного бита используется только один транзистор и пара конденсаторов, поэтому они более вместительны, чем микросхемы других типов памяти. В настоящее время имеются микросхемы динамической оперативной памяти емкостью до 256 Мбит и больше. Это означает, что подобные микросхемы содержат 256 млн (и даже больше) транзисторов! А ведь Pentium II имеет только 7,5 млн транзисторов. Откуда такая разница? Дело в том, что в микросхеме памяти все транзисторы и конденсаторы размещаются последовательно, обычно в узлах квадратной решетки, в виде очень простых, периодически повторяющихся структур, в отличие от процессора, представляющего собой более сложную схему различных структур, не имеющую четкой организации. Сейчас разрабатываются микросхемы емкостью 256 Гбит; их производство планируется начать в 2001 или 2002 году. В таких микросхемах ширина строки будет равна 0,05 микрона.

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

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

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

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

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

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

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

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

    Эффективность кэш-памяти выражается коэффициентом совпадения, или коэффициентом ус­пеха. Коэффициент совпадения равен отношению количества удачных обращений в кэш к общему количеству обращений. Попадание — это событие, состоящее в том, что необходимые процессору данные предварительно считываются в кэш из оперативной памяти; иначе говоря, в случае попада­ния процессор может считывать данные из кэш-памяти. Неудачным обращением в кэш считается такое, при котором контроллер кэша не предусмотрел потребности в данных, находящихся по указанному абсолютному адресу. В таком случае необходимые данные не были предварительно считаны в кэш-память, поэтому процессор должен отыскать их в более медленной оперативной памяти, а не в быстродействующем кэше. Когда процессор считывает данные из оперативной памяти, ему приходится какое-то время "ждать", поскольку тактовая частота оперативной памяти значительно ниже, чем процессора.

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

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

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

    Первоначально кэш-память проектировалась как асинхронная, т.е. не была синхронизирована с шиной процессора и могла работать на другой тактовой частоте. При внедрении набора микросхем системной логики 430FX в начале 1995 года был разработан новый тип синхронной кэш-памяти. Она работает синхронно с шиной процессора, что повышает ее быстродействие и эффективность. В то же время был добавлен режим pipeline burst mode (конвейерный монопольный режим). Он позволил сократить время ожидания за счет уменьшения количества состояний ожидания после первой передачи данных. Использование одного из этих режимов подразумевает наличие другого. Оба режима позволяют повысить производительность компьютера на 20%.

    Контроллер кэш-памяти для современной системы содержится в микросхеме North Bridge набора микросхем системной логики в PC на основе Pentium и более простых или на плате процессора, как в случае с Pentium Pro, Pentium II/III и более новыми системами. Возможности контроллера кэш-памяти предопределяют эффективность и возможности кэш-памяти. Важная особенность состоит в том, что большинство контроллеров кэш-памяти имеют ограничение на объем кэшируемой памяти. Часто этот предел может быть очень низок, как в случае набора микросхем системной логики 430TX для компьютеров на основе Pentium. Этот набор микросхем может кэшировать данные только первых 64 Мбайт оперативной памяти системы. Если установлен больший объем памяти, работа компьютера значительно замедляется, потому что все данные вне первых 64 Мбайт никогда не попадут в кэш и при обращении к ним будут всегда необходимы все состояния ожидания, определяемые более медленной динамической оперативной памятью. Снижение эффективности зависит от программного обеспечения и от адресов, по которым хранятся данные в памяти. Например, 32-разрядные операционные системы типа Windows 9х и Windows NT загружаются сверху вниз, так что если установлена оперативная память емкостью 96 Мбайт, то и операционная система, и прикладные программы будут загружаться в верхние 32 Мбайта, которые не кэшируются. Это значительно замедлит работу компьютера в целом. В данном случае можно удалить дополнительную память, чтобы уменьшить емкость до 64 Мбайт. Другими словами, неблагоразумно устанавливать большую емкость памяти, чем позволяет кэшировать набор микросхем системной логики.

    Быстродействие запоминающих устройств

    Быстродействие процессора выражается в мегагерцах (МГц), а быстродействие запоминающего устройства и его эффективность — в наносекундах (не). Наносекунда — это одна миллиардная доля секунды, т.е. очень короткий промежуток времени. Заметьте, что скорость света в вакууме равна 299792 километра в секунду. За одну миллиардную долю секунды, световой луч проходит расстояние, равное всего лишь 29,98 сантиметра, т.е. меньше длины обычной линейки!

    Зависимость между тактовой частотой в мегагерцах
    и продолжительностью цикла в наносекундах
    ---------------------------------------------------------------------------
    Тактовая     Цикл, нс      Тактовая     Цикл, нс      Тактовая    Цикл, нс  
     частота                    частота                    частота
    ---------------------------------------------------------------------------
     4,77           210           133          7,5           500         2,0
     6              167           150          6,7           533         1,9
     8              125           166          6,0           550         1,8
    10              100           180          5,6           600         1,7
    12               83           200          5,0           650         1,5
    16               63           225          4,4           667         1,5
    20               50           233          4,3           700         1,4
    25               40           250          4,0           733         1,4
    33               30           266          3,8           750         1,3
    40               25           300          3,3           800         1,3
    50               20           333          3,0           850         1,2
    60               17           350          2,9           866         1,2
    66               15           366          2,7           900         1,1
    75               13           400          2,5           933         1,1
    80               13           433          2,3           950         1,1
    100              10           450          2,2          1000         1,0
    120               8,3         466          2,1
    ---------------------------------------------------------------------------
    

    Как можно заметить, при увеличении тактовой частоты продолжительность цикла уменьшается, а быстродействие, соответствующее 60 нс памяти DRAM, используемой в обычном компьютере, мизерно по сравнению с процессором, работающим на частоте 400 МГц и выше. Заметьте, что до недавнего времени большинство микросхем DRAM, используемых в персональных компьютерах, имели время доступа 60 нс, которое равнозначно тактовой частоте 16,7 МГц! Поскольку эта медленная память устанавливается в системы, в которых процессор работает на частоте 300 МГц и выше, возникает несоответствие между эффективностью оперативной памяти и процессора. В современные системы устанавливается память PC 100 или PC133, которая работает на частоте 100 или 133 МГц соответственно.

    Поскольку транзисторы для каждого бита в микросхеме памяти размещены в узлах решетки, наиболее рационально адресовать каждый транзистор, используя номер столбца и строки. Сначала выбирается строка, затем столбец адреса и, наконец, пересылаются данные. Начальная установка строки и столбца адреса занимает определенное время, обычно называемое временем задержки или ожиданием. Время доступа для памяти равно времени задержки для выборки столбца и строки адреса плюс продолжительность цикла. Например, память со временем доступа 60 нс обычно имеет время задержки 25 нс (чтобы выбрать строку и столбец адреса) и продолжительность цикла 35 нс (чтобы фактически передать данные). Таким образом, истинная тактовая частота памяти со временем задержки 60 нс составляла бы порядка 28,5 МГц (35 не = 28,5 МГц). Даже в этом случае для одной-единственной передачи данных требуется 60 нс, так что последовательные передачи данных могли бы осуществляться только на частоте 16,7 МГц из-за дополнительного времени ожидания.

    Что же происходит, когда процессор, работающий на частоте 300 МГц, многократно считывает байты данных из памяти, работающей на частоте 16 МГц? Возникает огромная серия состояний ожидания! Состояние ожидания — это дополнительный "пустой" цикл, в котором процессор должен ожидать поступления данных. Если длительность цикла памяти равна 60 нс (16 МГц), а длительность цикла процессора — Знс (300 МГц), то процессор должен находиться в состоянии ожидания приблизительно 19 циклов — до 20-го цикла, т.е. до поступления данных. Таким образом, состояния ожидания замедляют работу процессора настолько, что он вполне может функционировать на частоте 16 МГц.

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

    Сравнение быстродействия системной платы и оперативной памяти
    ---------------------------------------------------------------------------
    Системная  Процессор,  Тип памяти        Быстродействие памяти,   Дата,гг.
    плата,МГц      МГц                              МГц 
    ---------------------------------------------------------------------------
    5-66       5-200        FPM/EDO                   5-16          1981-1996
                       (Fast Page Mode/Extended Data Out) 
    66-100    200-600  PC66 SDRAM (Synchronous DRAM)   66           1997-2000
    100        500+   PC100 SDRAM                     100           1998-2000
    133        600+   PC133 SDRAM/РС800 RDRAM(Rambus) 133/800       1999-2000
    ---------------------------------------------------------------------------
    

    Как видно из таблицы, один тип памяти использовался на протяжении 15 лет, в то время как процессоры за это же время совершили гигантский рывок в производительности — от 5 до 200 МГц. В настоящее время этот недостаток начинает исправлять память RDRAM (Rambus DRAM).

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

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

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

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

    Схема синхронизации в пакетном режиме для стандартной DRAM со временем доступа 60 нс обычно выглядит так: 5-3-3-3. Это означает, что первая операция доступа занимает пять циклов на системной шине с частотой 66 МГц, что приблизительно равно 75 нс (5*15 нс; 15 нс — длительность одного цикла), в то время как последующие операции занимают по три цикла каждая (3*15 нс = 45 нс). Заметьте, что без разбивки на страницы схема доступа к памяти выглядела бы как 5-5-5-5, потому что для каждой передачи данных запоминающему устройству потребовалось бы одно и то же время ожидания. DRAM, поддерживающая разбивку на страницы и пакетный режим, называется памятью с быстрым постраничным режимом (Fast Page Memory — FPM). Этим подчеркивается, что для доступа к данным в памяти без смены страницы требуется меньшее количество циклов ожидания. В большинстве компьютеров 486 и более новых используется память FPM, а в более старые компьютеры устанавливали обычную динамическую оперативную память.

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

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

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

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

    Для оперативной памяти EDO схема синхронизации в пакетном режиме имеет вид 5-2-2-2, а не 5-3-3-3, как для стандартной памяти Fast Page Mode. Это означает, что четыре передачи данных из памяти EDO занимают 11 полных системных циклов (сравните с 14-ю полными циклами для памяти FPM). Благодаря этому при проведении специальных тестов быстродействие увеличилось на 22%, однако в фактических испытаниях памяти EDO на эталонных тестах быстродействие всей системы обычно увеличивается примерно на 5%. Хотя такое увеличение может показаться совсем небольшим, главное преимущество EDO состоит в том, что в запоминающих устройствах подобного типа используются те же самые микросхемы динамической оперативной памяти, что и в FPM. И стоимость таких запоминающих устройств равна стоимости памяти FPM. Но при этом EDO обладает более высокой эффективностью, чем FPM.

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

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

    Burst EDO

    Память Burst Extended-Data-Out Dynamic Random Access Memory (Burst EDO, BEDO DRAM) является разновидностью памяти EDO. Это в основном та же память, что и EDO, но с еще более быстрой передачей данных. К сожалению, только один набор микросхем системной логики (Intel 440FX Natoma) поддерживал ее, и она была быстро заменена памятью SDRAM, которая поддерживается в подавляющем большинстве наборов микросхем. Память BEDO в настоящее время не используется и не производится.

    SDRAM

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

    Как и для оперативной памяти EDO, для памяти этого типа требуется поддержка набором микросхем системной логики. Начиная с наборов 430VX и 430TX, выпущенных в 1997 году, все наборы микросхем системной логики фирмы Intel полностью поддерживают SDRAM; это самый популярный тип памяти для новых систем. SDRAM хорошо подходит для архитектуры Pentium ПЛП и новых высокоэффективных системных плат.

    Эффективность SDRAM значительно выше по сравнению с оперативной памятью FPM или EDO. Поскольку SDRAM — это тип динамической оперативной памяти, ее начальное время ожидания такое же, как у памяти FPM или EDO, но общее время цикла намного короче. Схема синхронизации пакетного доступа SDRAM выглядит так: 5-1-1-1, т.е. четыре операции чтения завершаются всего лишь за восемь циклов системной шины (сравните с 11-ю циклами для EDO и 14-ю для FPM).

    Кроме этого, память SDRAM может работать на частоте 100 МГц (10 не) и выше, что стало новым стандартом для системного быстродействия начиная с 1998 года. Фактически все новые персональные компьютеры, проданные в 1998 году, имеют память типа SDRAM. Последние обновления SDRAM поддерживают рабочую частоту 133 МГц (согласно спецификации PC133).

    Память SDRAM поставляется в виде модулей DIMM и, как правило, ее быстродействие оценивается в мегагерцах, а не в наносекундах.

    Быстродействие памяти SDRAM
    ------------------------------------------------------
    Длительность цикла, нс     Частота, МГц   Спецификация
    ------------------------------------------------------
            15                     66            РС66	
            10                    100            РС66	
             8                    125            РС100	
             7,5                  133            РС133	
    ------------------------------------------------------
    

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

    RDRAM

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

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

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

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

    Для увеличения производительности было предложено еще одно конструктивное решение: передача управляющей информации отделена от передачи данных по шине. Для этого предусмотрены независимые схемы управления, а на адресной шине выделены две группы контактов: для команд выбора строки и столбца и для передачи информации по шине данных шириной 2 байта. Шина памяти работает на частоте 400 МГц; однако данные передаются по фронтам тактового сигнала, т.е. дважды в тактовом импульсе. Правая граница тактового импульса называется четным циклом, а левая — нечетным. Синхронизация осуществляется с помощью передачи пакетов данных в начале четного цикла. Максимальное время ожидания составляет 2,5 нс.

    В настоящее время существуют двух- и четырехканальные RDRAM, которые позволяют увеличить скорость передачи данных до 3,2 или 6,4 Гбайт/с соответственно.

    В памяти RDRAM используются низковольтные сигналы: логический нуль — 1,0 В и логическая единица — 1,8 В. Этот режим пониженного энергопотребления, а также автоматическое переключение в режим резервирования на завершающей стадии транзакции приводят к тому, что мощность, потребляемая модулем SDRAM, оказывается ниже мощности других модулей памяти в настольных компьютерах и приближается к мощности, потребляемой па­мятью EDO для портативных компьютеров.

    Как упоминалось ранее, микросхемы RDRAM устанавливаются в модули RIMM, по размеру и форме подобные DIMM, но не взаимозаменяемые. В настоящее время доступны модули памяти RIMM емкостью 32, 64, 128, 256 Мбайт и более.

    Контроллер памяти RDRAM с одним каналом Rambus позволяет установить не более трех модулей RIMM. (При плотности упаковки 64 Мбит в кристалле модуль RIMM имеет емкость 256 Мбайт.) В будущем модули RIMM будут иметь емкость до 1 Гбайт и больше, появятся наборы микросхем системной логики (со встроенными контроллерами памяти Rambus), которые смогут поддерживать большее количество каналов Rambus, и тогда на системной плате появится больше разъемов RIMM. Для портативных систем разрабатывается мобильная версия RIMM, называемая SO-RIMM (Small Outline RIMM).

    Каждый модуль RIMM имеет 184 позолоченных контакта, разделенных на две группы по 92 контакта на каждой стороне модуля.

    Назначение выводов модуля RIMM
    ----------------------------------------------------------------------------
    Контакт Назначение Контакт Назначение Контакт Назначение Контакт Назначение
    ----------------------------------------------------------------------------
      А1      Общий      В1      Общий      А47       NC       B47       NC
      А2      LDQA8      В2      LDQA7      А48       NC       B48       NC
      A3      Общий      ВЗ      Общий      А49       NC       B49       NC
      А4      LDQA6      В4      LDQA5      А50       NC       B50       NC
      А5      Общий      В5      Общий      А51       Vref     B51       Vref
      А6      LDQA4      В6      LDQA3      А52       Общий    B52       Общий
      А7      Общий      В7      Общий      А53       SCL      B53       SA0
      А8      LDQA2      В8      LDQA1      А54       Vdd      B54       Vdd
      А9      Общий      В9      Общий      А55       SDA      B55       SA1
     А10      LDQA0      В10     LCFM       А56       SVdd     B56       SVdd
     А11      Общий      В11     Общий      А57       SWP      B57       SA2
     А12      LCTMN      В12     LCFMN      А58       Vdd      B58       Vdd
     А13      Общий      В13     Общий      А59       RSCK     B59       RCMD
     А14      LCTM       В14     NC         А60       Общий    B60       Общий
     А15      Общий      B15     Общий      A61       RDQB7    В61       RDQB8
     А16      NC         B16     LROW2      A62       Общий    В62       Общий
     А17      Общий      B17     Общий      A63       RDQB5    В63       RDQB6
     А18      LROW1      B18     LROWO      A64       Общий    В64       Общий
     А19      Общий      B19     Общий      A65       RDQB3    В65       RDQB4
     А20      LCOL4      B20     LCOL3      A66       Общий    В66       Общий
     А21      Общий      B21     Общий      A67       RDQB1    В67       RDQB2
     А22      LCOL2      B22     LCOL1      A68       Общий    В68       Общий
     А23      Общий      B23     Общий      A69       RCOL0    В69       RDQB0
     А24      LCOL0      B24     LDQB0      A70       Общий    В70       Общий
     А25      Общий      B25     Общий      A71       RCOL2    В71       RCOL1
     А26      LDQB1      B26     LDQB2      A72       Общий    В72       Общий
     А27      Общий      B27     Общий      A73       RCOL4    В73       RCOL3
     А28      LDQB3      B28     LDQB4      A74       Общий    В74       Общий
     А29      Общий      B29     Общий      A75       RROW1    В75       RROW0
     АЗО      LDQB5      B30     LDQB6      A76       Общий    В76       Общий
     А31      Общий      B31     Общий      A77       NC       В77       RROW2
     А32      LDQB7      B32     LDQB8      A78       Общий    В78       Общий
     АЗЗ      Общий      B33     Общий      A79       RCTM     В79       NC
     А34      LSCK       B34     LCMD       A80       Общий    В80       Общий
     А35      Vcmos      B35     Vcmos      A81       RCTMN    В81       RCFMN
     А36      SOUT       B36     SIN        A82       Общий    В82       Общий
     А37      Vcmos      B37     Vcmos      A83       RDQA0    В83       RCFM
     А38      NC         B38     NC         A84       Общий    В84       Общий
     А39      Общий      B39     Общий      A85       RDQA2    В85       RDQA1
     А40      NC         B40     NC         A86       Общий    В86       Общий
     А41      Vdd        B41     Vdd        A87       RDQA4    В87       RDQA3
     А42      Vdd        B42     Vdd        A88       Общий    В88       Общий
     А43      NC         B43     NC         A89       RDQA6    В89       RDQA5
     А44      NC         B44     NC         A90       Общий    В90       Общий
     А45      NC         B45     NC         A91       RDQA8    В91       RDQA7
     А46      NC         B46     NC         A92       Общий    В92       Общий
    ----------------------------------------------------------------------------
    

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

    Параметры ключей модулей RIMM и их назначение
    ---------------------------------------------------
    Тип  Расстояние от ключа DATUM А, мм     Описание
    ---------------------------------------------------
     А           11,5                         2,5 В
     В           12,5                    Зарезервирован
     С           13,5                    Зарезервирован
    ---------------------------------------------------
    

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

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

    Интересно, что Rambus не производит ни микросхем RDRAM, ни микросхем RIMM; это делают другие компании. Rambus — это компания, специализирующаяся на разработке микросхем, а не на их производстве. Rambus позволяет другим компаниям использовать ее технологию при производстве устройств и модулей. Лицензию на производство памяти RDRAM получили по крайней мере 13 компаний, среди которых Fujitsu Ltd., Hitachi Ltd., Hyundai Electronics Industry Co. Ltd., IBM Microelectronics, LG Semiconductor Co. Ltd., Micron Technology Inc., Mitsubishi Electric Corp., NEC Corp., Oki Electric Industry Co. Ltd., Samsung Electronics Corp., Siemens AG и Toshiba Corp. Все они производят микросхемы RDRAM и модули RIMM.

    DDR SDRAM

    Память DDR (Double Data Rate — двойная скорость передачи данных) — это еще более усовершенствованный стандарт SDRAM, при использовании которого скорость передачи данных удваивается. Это достигается не за счет удвоения тактовой частоты, а за счет передачи данных дважды за один цикл: первый раз в начале цикла, а второй — в конце. Именно благодаря этому и удваивается скорость передачи (при том, что используются те же самые частоты и синхронизирующие сигналы).

    Память DDR предлагается выпускающими процессоры компаниями, такими как AMD и Cyrix, и изготовителями наборов микросхем системной логики, такими как VIA Technologies, ALi (Acer Labs, Inc.) и SiS (Silicon integrated Systems). Эта дешевая память (для производства которой не нужна лицензия) строится на основе микросхем RDRAM. Фирма Intel в своих новых высокопроизводительных компьютерах, выпускаемых в 1999 году, устанавливает только микросхемы RDRAM, а память DDR — в дешевых персональных компьютерах. Официально стандартизация DDR была предпринята Консорциумом DDR, в который входят фирмы Fujitsu, Ltd., Hitachi, Ltd., Hyundai Electronics Industries Co., Mitsubishi Electric Corp., NEC Corp., Samsung Electronics Co., Texas Instruments, Inc. и Toshiba Corp. В основном память DDR SDRAM используется в системах, оснащенных процессорами фирм AMD и Cyrix.

    Память DDR SDRAM выпускается в виде 184-контактных модулей DIMM. Память DDR SDRAM выпускается в соответствии с двумя спецификациями — PC200 (100 МГцх2) и PC266 (133 МГцх2); обычное напряжение 2,5 В. Модуль DIMM памяти DDR SDRAM имеет ключ, который указывает на используемое напряжение. Именно этот ключ помогает предотвратить неверное размещение модуля в разъеме.

    Физическая память

    Объем физической памяти компьютера зависит от типа используемого процессора и архитектуры системной платы. В процессорах 8086 и 8088 с двадцатью линиями адреса объем памяти не превышает 1 Мбайт (1 024 Кбайт). Процессоры 286 и 386SX имеют 24 линии адре­са и могут адресовать до 16 Мбайт памяти. Процессоры 386DX, 486, Pentium, Pentium MMX и Pentium Pro имеют 32 линии адреса и могут взаимодействовать с памятью объемом до 4 Гбайт. Процессор Pentium ПЛП имеет 36 линий адреса и в состоянии обрабатывать 64 Гбайт!

    Режим эмуляции процессора 8088 микропроцессорами 286 и выше называется реальным режимом работы системы. Это единственно возможный режим процессоров 8088 и 8086 в компьютерах PC и XT. В реальном режиме все процессоры, даже всемогущий Pentium, могут адресовать только 1 Мбайт памяти, при этом 384 Кбайт зарезервировано для системных нужд. Полностью возможности адресации памяти процессоров 286 и последующих могут быть реализованы только в защищенном режиме.

    Как уже отмечалось, процессор PentiumII/Celeron/PentiumIII может адресовать до 64 Гбайт памяти. Если у вас когда-нибудь возникнет идея нарастить память до этого объема, то имейте в виду, что при нынешней небольшой стоимости быстродействующих микросхем это обойдется вам в довольно кругленькую сумму!

    Даже если вам и удастся их купить, то уч­тите, что максимальная емкость 168-контактных модулей DIMM составляет 256 Мбайт. На большинстве современных системных плат предусмотрено от трех до шести разъемов для модулей DIMM. Это означает, что общий объем памяти при заполнении всех разъемов не превысит 1,5 Гбайт. К тому же следует учесть ограничения, накладываемые набором микро­схем (например, объем кэшируемой памяти). Так, в большинство компьютеров на основе Pentium П можно установить память емкостью не более 1 Гбайт, а в некоторых системах — не более 4 Гбайт.

    При использовании некоторых системных плат с процессорами 386 и 486 адресация памяти свыше 16 Мбайт вызывает сложности, связанные с контроллером прямого доступа к памяти. Если в разъем шины ISA установлен адаптер, который использует канал DMA, то при установке памяти объемом более 16 Мбайт могут возникнуть проблемы, поскольку архитектура шины ISA позволяет организовать канал DMA только в пределах первых 16 Мбайт. Попытка передать данные в область выше 16 Мбайт приведет к нарушению работы компьютера.

    Модули SIMM и DIMM

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

    В PC-совместимых компьютерах применяются в основном два типа модулей SIMM: 30-контактные (9 разрядов) и 72-контактные (36 разрядов). Первые из них меньше по размерам. Микросхемы в модулях SIMM могут устанавливаться как на одной, так и на обеих сторонах платы. Использование 30-контактных модулей неэффективно, поскольку для заполнения одного банка памяти новых 64-разрядных систем требуется восемь таких модулей. Поэтому в новых системах с процессорами Pentium MMX, Pentium Pro и Pentium II используются 168-контактные модули DIMM (64-разрядные без битов четности или 72-разрядные с битами чет­ности).

    Контакты нумеруются слева направо и располагаются с обеих сторон платы модуля.

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

    В принципе можно было бы превратить модуль SIPP в SIMM, обрезав штыревые контакты, а модуль SIMM — в SIPP, припаяв их. Некоторые компании выпускают специальные адаптеры, позволяющие использовать SIPP в качестве 30-контактных SIMM.

    Учитывая емкость модулей SIMM, можно сказать, что сделаны они весьма компактно. Емкости модулей могут быть различными.

    Модули с разной емкостью могут иметь различное быстродействие. Для микросхем динамической памяти (DRAM), устанавливаемых в модулях SIMM, оно варьируется от 50 до 120 нс. В первых компьютерах использовались модули с временем доступа 120 нс. Довольно быстро они были вытеснены более совершенными модулями (время доступа 100 нс и меньше). Сейчас чаще всего можно встретить модули SIMM с временем доступа 70 и 60 нс. Для микросхем DIMM оно варьируется от 10 до 60 нс. Можно отыскать модули как с менее, так и с более высоким быстродействием, но используются они реже и найти их труднее. Если вам нужны модули с конкретным временем доступа, используйте более быстродействующие. В одном компьютере можно устанавливать модули SIMM с разным быстродействием, но, конечно, не ниже минимально необходимого. Поскольку быстродействие модулей не очень сказывается на их стоимости, лучше установить более быстродействующие модули SIMM, чем требует ваш компьютер. Они могут пригодиться в будущем при его модернизации.

    Большинство модулей DIMM представляет собой память типа SDRAM. Это означает, что они передают данные в очень высокоскоростных пакетах, используя синхронизированный интерфейс. Память SDRAM поддерживает тактовую частоту шины до 133 МГц и выше.

    Некоторые различия между 30-контактными модулями могут сказаться на их работе (если они вообще смогут работать). Во-первых, существует два варианта разводки выводов модулей. В большинстве компьютеров применяются модули SIMM общего назначения, являющиеся промышленным стандартом. Однако в старых компьютерах IBM, начиная с XT-286 (1986 год) и заканчивая PS/2 моделей 25, 30, 50 и 60, применялись модули SIMM с несколько иной разводкой (на пяти контактах сигналы отличаются). Они назывались модулями типа IBM. В принципе модуль общего назначения можно модифицировать в модуль типа IBM и наоборот, но проще все же найти подходящий.

    Другое различие связано с количеством микросхем в модуле. Сам модуль SIMM функционирует как одна 9-разрядная (с контролем четности) микросхема памяти и, как правило, неважно, из какого количества частей она составлена. В старых модулях SIMM устанавливалось девять одноразрядных микросхем, а в новых — две четырехразрядные и одноразрядная микросхема для битов четности (всего три). Скорее всего, для работы с такими модулями придется настроить схему регенерации памяти, но это можно сделать не на всех старых системных платах. В большинстве новых системных плат небольшое различие в частоте регенерации для модулей с тремя и девятью микросхемами корректируется автоматически, и в такой ситуации предпочтение следует отдать модулям SIMM с тремя микросхемами. Они надежнее, потребляют меньшую мощность и как правило дешевле. Что касается старых компьютеров, то одни из них могут работать с модулями SIMM на трех микросхемах, а другие — нет. К сожалению, проверить это можно только экспериментально. Чтобы не создавать себе новых проблем, устанавливайте во все старые компьютеры модули SIMM с девятью микросхемами.

    Во всех 72-контактных модулях SIMM разводка выводов стандартная, и различаются они только емкостью и быстродействием. Количество микросхем в модуле не имеет значения. 72-контактные модули SIMM идеально подходят для 32-разрядных компьютеров, например с процессором 486, поскольку каждый из них представляет собой отдельный банк памяти (32 разряда данных и 4 разряда четности). Используя такие модули, можно наращивать или уменьшать объем памяти с шагом в один модуль (за исключением тех компьютеров, в кото­рых для сокращения состояний ожидания память строится по схеме с чередованием). В 64-разрядных системах (с процессорами Pentium и выше) для заполнения одного банка памяти 72-контактные модули SIMM необходимо устанавливать парами.

    Применять 30-контактные модули SIMM в 32-разрядных компьютерах неудобно, по­скольку устанавливать и снимать их приходится группами по четыре (каждый банк памяти состоит из четырех модулей). Для заполнения одного банка памяти 64-разрядной системы потребовалось бы восемь 30-контактных модулей SIMM. В компьютерах с процессорами 386SX или 286 каждый банк состоит только из двух 30-контактных модулей SIMM, и использование их в этом случае вполне оправданно.

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

    Банк — это минимальный объем памяти, которым может оперировать процессор при каждом обращении к ней; обычно разрядность банка равна разрядности шины данных процессора. При построении памяти с чередованием разрядность виртуального банка может вдвое превысить разрядность шины данных процессора. Не всегда бывает так, что модуль SIMM большой емкости после установки в компьютер работает нормально. Модули большой емкости можно использовать только в том случае, если их поддерживает системная плата. Допустимую емкость и необходимое быстродействие модулей SIMM можно выяснить в документации к компьютеру.

    Практически во всех современных системах используются модули DIMM, а в некоторых еще применяются модули SIMM. Эти модули стали промышленным стандартом. Уже упоминалось, что модули различаются расположением контактов, емкостью и временем доступа. Покупая новые модули, убедитесь, что они подходят для вашей системы.

    Назначение выводов модулей DIMM

    Сигналы на идентификационных выводах 168-контактных модулей DIMM
    ----------------------------------------------------------------------------
    Контакт                               Контакт 
    Без проверки четности (х64) С проверкой четности или ECC(х72)
    Без проверки четности (х64) С проверкой четности или ECC(х72)
    ----------------------------------------------------------------------------
    1     Общий             Общий             85    Общий          Общий
    2     Бит данных 0	Бит данных 0	86	Бит данных 32  Бит данных 32
    3     Бит данных 1	Бит данных 1	87	Бит данных 33  Бит данных 33
    4     Бит данных 2	Бит данных 2	88	Бит данных 34  Бит данных 34
    5     Бит данных 3	Бит данных 3	89	Бит данных 35  Бит данных 35
    6     +5 В              +5 В              90    +5 В           +5 В
    7     Бит данных 4	Бит данных 4	91	Бит данных 36  Бит данных 36
    8     Бит данных 5	Бит данных 5	92	Бит данных 37  Бит данных 37
    9     Бит данных 6	Бит данных 6	93	Бит данных 38  Бит данных 38
    10    Бит данных 7	Бит данных 7	94	Бит данных 39  Бит данных 39
    11    Бит данных 8	Бит данных 8	95	Бит данных 40  Бит данных 40
    12    Общий             Общий             96    Общий          Общий
    13    Бит данных 9	Бит данных 9	97	Бит данных 41  Бит данных 41
    14    Бит данных 10	Бит данных 10	98	Бит данных 42  Бит данных 42
    15    Бит данных 11	Бит данных 11	99	Бит данных 43  Бит данных 43
    16    Бит данных 12	Бит данных 12	100	Бит данных 44  Бит данных 44
    17    Бит данных 13	Бит данных 13	101	Бит данных 45  Бит данных 45
    18    +5 В              +5 В              102   +5 В           +5 В
    19    Бит данных 14	Бит данных 14	103	Бит данных 46  Бит данных 46
    20    Бит данных 15	Бит данных 15	104	Бит данных 47  Бит данных 47
    21    Не соединен	Контрольный бит 0	105	Не соединен	Контрольный бит 4
    22    Не соединен	Контрольный бит 1	106	Не соединен	Контрольный бит 5
    23    Общий             Общий             107   Общий          Общий
    24    Не соединен       Не соединен       108   Не соединен    Не соединен
    25    Не соединен       Не соединен       109   Не соединен    Не соединен
    26    +5 В              +5 В              110   +5 В           +5 В
    27    Write Enable	Write Enable	111	Column Address Strobe	Column Address Strobe	
    28    Byte Mask 0       Byte Mask 0       112   Byte Mask 4    Byte Mask 4
    29    Byte Mask 1       Byte Mask 1       113   Byte Mask 5    Byte Mask 5
    30    S0                S0                114   S1             S1
    31    Зарезервирован	Зарезервирован	115	Row Address Strobe	Row Address Strobe	
    32    Общий             Общий             116   Общий          Общий	
    33    Разряд адреса 0	Разряд адреса 0	117	Разряд адреса 1	Разряд адреса 1	
    34    Разряд адреса 2	Разряд адреса 2	118	Разряд адреса 3	Разряд адреса 3	
    35    Разряд адреса 4	Разряд адреса 4	119	Разряд адреса 5	Разряд адреса 5	
    36    Разряд адреса 6	Разряд адреса 6	120	Разряд адреса 7	Разряд адреса 7	
    37    Разряд адреса 8	Разряд адреса 8	121	Разряд адреса 9	Разряд адреса 9	
    38    Разряд адреса 10	Разряд адреса 10	122	Bank Address 0	Bank Address 0	
    39    Bank Address 1	Bank Address 1	123	Разряд адреса 11	Разряд адреса 11	
    40    +5 В              +5 В              124   +5 В             +5 В	
    41    +5 В              +5 В              125   Clock 1         Clock 1	
    42    Clock 0           Clock 0           126	Разряд адреса 12	Разряд адреса 12	
    43    Общий             Общий            127   Общий           Общий	
    44    Зарезервирован	Зарезервирован   128   Clock Enable 0  Clock Enable 0	
    45    S2                S2               129   S3              S3
    46    Byte Mask 2	Byte Mask 2	130	Byte Mask 6	Byte Mask 6	
    47    Byte Mask 3	Byte Mask 3	131	Byte Mask 7	Byte Mask 7	
    48    Зарезервирован	Зарезервирован	32	Разряд адреса 13	Разряд адреса 13	
    49    +5 В              +5 В             133   +5 В            +5 В
    50    Не соединен       Не соединен      134   He соединен	He соединен	
    51    Не соединен       Не соединен	     135   He соединен	He соединен	
    52    Не соединен Контрольный бит 2	     136   He соединен Контрольный бит 6
    53    Не соединен	Контрольный бит 3	137	He соединен	Контрольный бит 7	
    54    Общий             Общий             138   Общий          Общий	
    55    Бит данных 16	Бит данных 16	139	Бит данных 48  Бит данных 48
    56	Бит данных 1 7	Бит данных 1 7	140	Бит данных 49  Бит данных 49
    57	Бит данных 18	Бит данных 18	141	Бит данных 50  Бит данных 50
    58	Бит данных 19	Бит данных 19	142	Бит данных 51  Бит данных 51
    59	+5 В              +5 В              143   +5 В           +5 В	
    60	Бит данных 20	Бит данных 20	144	Бит данных 52  Бит данных 52
    61	Не соединен       Не соединен       145   Не соединен    Не соединен
    62	Voltage Reference	Voltage Reference	146	Voltage Reference	Voltage Reference
    63	Clock Enable 1	Clock Enable 1	147	Не соединен	   Не соединен
    64	Общий             Общий             148   Общий          Общий
    65	Бит данных 21	Бит данных 21	149	Бит данных 53  Бит данных 53
    66	Бит данных 22	Бит данных 22	150	Бит данных 54  Бит данных 54
    67	Бит данных 23	Бит данных 23	151	Бит данных 55  Бит данных 55
    68	Общий             Общий             152   Общий          Общий	
    69	Бит данных 24	Бит данных 24	153	Бит данных 56  Бит данных 56
    70	Бит данных 25	Бит данных 25	154	Бит данных 57  Бит данных 57
    71	Бит данных 26	Бит данных 26	155	Бит данных 58  Бит данных 58
    72	Бит данных 27	Бит данных 27	156	Бит данных 59  Бит данных 59
    73	+5 В              +5 В              157   +5 В           +5 В	
    74	Бит данных 28	Бит данных 28	158	Бит данных 60  Бит данных 60
    75	Бит данных 29	Бит данных 29	159	Бит данных 61  Бит данных 61
    76	Бит данных 30	Бит данных 30	160	Бит данных 62  Бит данных 62
    77	Бит данных 31	Бит данных 31	161	Бит данных 63  Бит данных 63
    78	Общий             Общий             162   Общий          Общий
    79	Clock 2           Clock 2           163   Clock 3        Clock 3
    80	Не соединен       Не соединен       164   Не соединен Не соединен
    81	Не соединен       Не соединен       165   Serial PD Address 0  Serial PD Address 0
    82  Serial Data I/O  Serial Data I/O      166	Serial PD Address 1  Serial PD Address 1	
    83  Serial Clock Input Serial Clock Input  167  Serial PD Address 2  Serial PD Address 2	
    84	+5 В              +5 В               168  +5 В            +5 В
    ----------------------------------------------------------------------------
    

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

    Конструкция и организация микросхем и модулей памяти

    В системных платах используется несколько типов микросхем памяти. Большинство из них одноразрядные, но емкость их различна. Ниже перечислены возможные варианты микросхем памяти в зависимости от их емкости.

  • 16 Кбайтх1 - Устанавливались на системной плате типа 1 первого IBM PC
  • 64 Кбайтх1 - Устанавливались на системной плате типа 2 стандартного компьютера IBM PC и на системных платах типов 1 и 2 компьютера XT. Использовались во многих дополнительных платах адаптеров (например, в AST)
  • 128 Кбайтх1 - Устанавливались на системной плате типа 1 компьютера IBM AT и часто представляли собой странную конструкцию из двух микросхем по 64 Кбайт (одна из них была приклеена к другой, и обе они впаивались в плату). Однокристальные микросхемы приме­нялись также в компьютере IBM XT-286 для хранения битов четности
  • 256 Кбайтх1 (или 64 Кбайтх4) - Некоторое время широко применялись в системных платах и платах памяти. Устанавли вались на системных платах типа 2 компьютеров IBM XT и AT, а также во многих совместимых с ними
  • 1 Мбайтх1 (или 256 Кбайтх4) - Использовались в модулях SIMM на 256 Кбайт-8 Мбайт
  • 4 Мбайтх1 (или 1 Мбайтх4) - Используются в модулях SIMM емкостью 4-16 Мбайт. Обычно входят в состав модулей SIMM на 4 или 8 Мбайт и отдельно не продаются
  • 16 Мбайтх1 (или 4 Мбайтх4) - Зачастую используются в модулях SIMM емкостью 16-32 Мбайт
  • 64 Мбайтх1 (или 16Мбайтх4) - Применяются в модулях памяти емкостью более 16 Мбайт, как правило в портативных компьютерах
  • 256 Мбайтх1 (или 64 Мбайтх4) - Появились на рынке недавно. Модули SIMM, построенные на основе таких микросхем, могут иметь емкость свыше 128 Мбайт! Поскольку стоимость этих микросхем высока, встретить их можно только в дорогих компьютерах

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

    Микросхемы SIMM и DIMM также имеют номера, но их иногда трудно расшифровать. К сожалению, нет никакого промышленного стандарта на нумерацию этих модулей, и для расшифровки этих чисел необходимо обратиться к их изготовителям. Иногда всю необходимую информацию можно найти на модуле памяти — найдите на корпусе его номер и обратитесь на Web-узел производителя за дополнительной информацией. Например, необходимую информацию о модуле памяти с номером HY57V651620-TC10 (HY — Hyundai, один из ведущих производителей модулей памяти) можно найти по адресу: http://kcs.hei.со.kr/models/dram/dramcomp/v651620.pdf.

    Банки памяти

    Расположенные на системной плате и платах памяти микросхемы (DIP, SIMM, SIPP и DIMM) организуются в банки памяти. Иметь представление о распределении памяти между банками и их расположении на плате необходимо, например, в том случае, если вы собираетесь установить в свой компьютер дополнительную микросхему памяти.

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

    Необходимую разрядность банка можно получить путем наращивания модулей SIMM или DIMM, которые применяются в большинстве современных компьютеров вместо отдельных микросхем. Если в компьютере используются 18-разрядные банки, скорее всего, каждый из них будет состоять из двух 30-контактных модулей SIMM. Все модули SIMM в одном банке должны быть одного типа и разрядности. Очевидно, что использовать 30-контактные модули SIMM в 32-разрядных компьютерах крайне неудобно, поскольку на каждый банк их нужно по четыре штуки. Кроме того, емкость таких модулей составляет 1 или 4 Мбайт, поэтому емкость каждого банка должна равняться 4 или 16 Мбайт без каких-либо промежуточных значений. Используя 30-контактные модули в 32-разрядных компьютерах, вы неизбежно ограничиваете выбор возможных вариантов конфигурации памяти, а потому лучше этого не делать. Если же в 32-разрядном компьютере использовать 72-контактные модули, то каждый из них будет представлять собой отдельный банк и их можно будет устанавливать или удалять по одному, а не группами по четыре. Это значительно проще, и к тому же повышается гибкость системы.

    Многие современные системы комплектуются 168-контактными модулями DIMM. Без контроля четности используется 64 бит, с контролем четности — 72 бит. Такие модули используются исключительно в системах на базе процессоров Pentium и выше, в которых один рассматриваемый модуль составляет один банк памяти.

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

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

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

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

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

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

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

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

    Другой, более коварный тип отказа — нерегулярная ошибка (сбой). Нерегулярная ошибка — это непостоянный отказ, который не происходит при повторении условий функционирования или через регулярные интервалы.

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

    В настоящее время производители памяти почти полностью устранили источники альфа-частиц. И многие стали думать, что проверка четности не нужна вовсе. Например, сбои в памяти емкостью 16 Мбайт из-за альфа-частиц случаются в среднем только один раз за 16 лет! Однако сбои памяти происходят значительно чаще.

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

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

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

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

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

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

    Модули SIMM и DIMM бывают как с битом четности, так и без него. До недавнего времени во всех PC-совместимых компьютерах для повышения надежности предусматривался контроль четности. Однако в компьютерах многих других фирм он никогда не использовался. Например, в компьютерах фирмы Apple применяются те же 30- и 72-контактные модули, что и в компьютерах IBM, но, поскольку в них практически никогда не устанавливаются схемы контроля четности, для них подходят более дешевые 30-контактные 8-разрядные модули SIMM, а не 9-разрядные, как для IBM-совместимых компьютеров. То же самое относится и к 72-контактным модулям SIMM. В компьютерах фирмы Apple можно применять и модули SIMM с битом четности ("лишний" разряд просто игнорируется). Однако если попытаться установить в компьютер IBM модуль SIMM без бита четности, то сообщения об ошибках будут поступать непрерывно и система окажется неработоспособной.

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

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

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

    Разряд данных: 01234567 Бит четности Значение бита: 10110011 0
    В данном случае общее число единичных битов данных нечетное (5), поэтому бит четности должен быть равен нулю, чтобы количество единиц во всех девяти разрядах было нечетным.

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

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

    В компьютере IBM PC:      PARITY CHECK x
    В компьютере IBM XT:      PARITY CHECK x  yyyyy (z)
    В компьютере IBM PC и последних моделях XT: PARITY CHECK x  yyyyy,
    

    Здесь x может принимать значения 1 (ошибка произошла на системной плате) или 2 (ошибка произошла в разъеме расширения). Символы yyyyy — это шестнадцатеричное число от 00000 до FFFFF, указывающее адрес байта, в котором произошла ошибка. Символ z может принимать значение S (ошибка четности в системном блоке) или e (ошибка четности в корпусе-расширителе).

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

    При обнаружении ошибки схема контроля четности на системной плате формирует немаскируемое прерывание (Non-maskable Interrupt — NMI), по которому основная работа прекращается и инициируется специальная процедура, записанная в BIOS. В результате ее выполнения экран очищается и в левом верхнем углу выводится сообщение об ошибке. Текст сообщения зависит от типа компьютера. В некоторых старых компьютерах фирмы IBM при выполнении указанной процедуры приостанавливается работа процессора, компьютер блокируется и пользователю приходится перезапускать его с помощью кнопки сброса или выключать и через некоторое время вновь включать питание. При этом, естественно, теряется вся несохраненная информация. (Немаскируемое прерывание — это системное предупреждение, которое программы не могут проигнорировать.)

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

    Memory parity interrupt at xxxx:xxxx
    Type (S)hut off NMI, Type (R)eboot, other keys to continue
    
    или:
    I/O card parity interrupt at xxxx:xxxx
    Type (S)hut off NMI, Type (R)eboot, other keys to continue
    
    Первое появляется при ошибке четности на системной плате (Parity Check 1), а второе — при ошибке четности в слоте расширения (Parity Check 2). Обратите внимание, что адрес па­мяти хххх :хххх выводится в формате [сегмент]:[смещение], а не в линейном виде, как в компьютерах IBM. Но в любом случае местоположение байта с ошибкой определяется однозначно.

    После появления сообщения об ошибке вы можете нажать клавишу [S]. При этом схема контроля четности отключается и программа продолжает выполняться с того места, где возникла ошибка (немаскируемое прерывание). Нажав клавишу [R], вы перезагрузите компьютер и потеряете всю несохраненную информацию. Нажатие любой другой клавиши позволит возобновить работу компьютера с включенным контролем четности.

    Если ошибка "хроническая", скорее всего, в ближайшее время произойдет следующее прерывание по контролю четности. Как правило, лучше всего нажать клавишу [S], отключив контроль четности, что позволит сохранить информацию. Запишите нужную вам информацию на дискету, чтобы ненароком не испортить жесткий диск. Не удаляйте старую версию сохраняемого файла (пока еще хорошую), поскольку при сбоях памяти ваша новая сохраненная информация может быть испорчена. Поскольку контроль четности отключен, операции сохранения будут выполнены без прерываний. После этого выключите компьютер, включите его снова и запустите программу диагностики памяти для выяснения причины ошибки. Иногда ошибка обнаруживается процедурой POST непосредственно при загрузке, но чаще приходится использовать более сложные диагностические программы.

    BIOS фирмы AMI выводит сообщение об ошибках четности:

    ON BOARD PARITY CHECK ADDR (HEX) = (xxxxx)
    
    или:
    OFF BOARD PARITY CHECK ADDR (HEX) = (xxxxx)
    

    Эти сообщения означают, что при выполнении процедуры POST обнаружена ошибка по указанному адресу памяти. Первое сообщение появляется при ошибке на системной плате, а второе — при ошибке на плате адаптера в слоте расширения. AMI BIOS может выдавать также сообщения об ошибках в памяти:

    Memory parity error at xxxxx
    
    или:
    I/O card parity error at xxxxx
    

    Эти сообщения появляются при возникновении ошибок в процессе работы (а не при выполнении процедуры POST); первое относится к памяти на системной плате, а второе — к памяти на плате адаптера в разъеме расширения.

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

    Если появляется сообщение об ошибке четности, значит, содержимое памяти искажено. Стоит ли записывать искаженные данные вместо данных, сохраненных в прошлый раз? Безусловно, нет! Прежде чем записывать файл, еще раз убедитесь, что вы изменили его имя. Кроме того, в случае ошибки четности постарайтесь сохранить работу только на дискете и избегайте записи на жесткий диск — не исключена вероятность (хотя и небольшая) повреждения жесткого диска при записи на него искаженного содержимого памяти.

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

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

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

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

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

    Увеличение объема памяти

    Увеличение существующего объема памяти — один из наиболее эффективных и дешевых способов модернизации, особенно если принять во внимание возросшие требования к объему памяти операционных систем Windows 9x, Windows NT, Windows 2000 и OS/2. В некоторых случаях увеличение объема в два раза приводит к такому же (а иногда и большему) повышению производительности системы.

    Ниже рассматривается процесс увеличения объема памяти, включая выбор микросхем памяти, их установку и последующее тестирование.

    Добавление памяти сравнительно недорогая операция. Кроме того, даже незначительное увеличение памяти может существенно повысить производительность компьютера. Каким образом можно добавить память в PC? Для этого существует три способа:

  • Добавление памяти в свободные разъемы системной платы.
  • Замена установленной памяти памятью большего объема.
  • Приобретение платы расширения памяти.

    Добавление дополнительной памяти в устаревшие PC- или XT-совместимые системы неэффективно, так как плата с двумя мегабайтами дополнительной памяти может стоить дороже всего компьютера. Кроме того, данный тип памяти бесполезен при использовании Windows, а компьютеры класса PC или XT не смогут работать под управлением OS/2. Лучше приобретите более мощный компьютер, например недорогой Pentium II, с большими возмож­ностями модернизации.

    Если вы решите собрать более мощную систему, память компьютеров классов PC или XT окажется ненужной. Восьмиразрядные платы памяти непригодны для систем с архитектурой ISA или MCA (быстродействие таких микросхем памяти обычно неадекватно скорости работы новых систем). Многие новые системы вместо микросхем используют быстродействующие модули SIMM или DIMM. Груда микросхем на 64 или 256 Кбайт с быстродействием 150 не будет бесполезной, если ваша следующая система, в которой используются модули SIMM, имеет время доступа меньше 70 нс.

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

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

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

    Если вы хотите расширить вычислительные возможности системной платы путем добавления памяти, строго следуйте указаниям фирмы — производителя микросхем памяти или модулей. В персональном компьютере могут использоваться модули памяти DIP, SIMM, SIPP и DIMM, причем можно устанавливать модули как одного типа, так и нескольких.

    Производитель системной платы компьютера определяет, какие микросхемы памяти будут в нем использоваться: DIP, SIMM или DIMM.

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

    В компьютерах на основе Pentium, Pentium Pro и Pentium П/Ш содержится от двух до че­тырех банков памяти, причем каждый состоит из двух 72-контактных (32- или 36-разрядных) модулей SIMM или одного 168-контактного модуля DIMM. Установка дополнительной памяти на системной плате — несложный способ увеличить объем памяти компьютера. Большинство систем имеет хотя бы один незанятый банк памяти, в который можно установить дополнительную память и таким образом повысить производительность компьютера.

    Установка микросхем памяти

    При установке или удалении памяти вы можете столкнуться со следующими проблемами:

  • накопление электростатических зарядов;
  • повреждение выводов микросхем;
  • неправильно установленные модули SIMM и DIMM;
  • неправильное положение перемычек и переключателей.

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

    Убедитесь, что вы используете именно промышленный заземляющий браслет, и не пытайтесь изготовить его самостоятельно. Промышленные браслеты имеют определенное сопротивление, которое защитит вас, если вы случайно прикоснетесь к токопроводящим частям компьютера. Сопротивление гарантирует, что вы не станете "проводником".

    Сломанные или согнутые выводы служат причиной другой потенциальной проблемы, связанной с установкой микросхем DIP или модулей памяти SIPP. Иногда выводы на новых микросхемах изогнуты буквой V и их очень трудно совместить с соответствующими отверстиями разъема. Положите чип на стол и мягко нажмите на него, стараясь изогнуть выводы так, чтобы они расположились под углом 90° к микросхеме. Для модуля SIPP можно попытаться выпрямить выводы тонкими круглогубцами. Выводы должны выступать за край модуля с равными промежутками между ними. После этого установите микросхемы в гнезда одну за другой.

    Выпрямление выводов на микросхемах DIP или модулях SIPP — простая задача, но если быть недостаточно аккуратным, можно легко отломить один из выводов и испортить микросхему или модуль памяти. Для выпрямления выводов можно использовать специальные устройства. Эти недорогие инструментальные средства сэкономят вам много времени.

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

    Установка модулей SIMM

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

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

    Установка модулей DIMM

    Подобно SIMM, микросхемы DIMM имеют по краю ключи-вырезы, которые смещены от центра так, чтобы микросхемы могли быть однозначно ориентированы (вставлены только в одном направлении).

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

    Как пояснялось ранее в этой главе, модули DIMM могут быть с буфером или без него, а напряжение питания для них может быть равным 3,3 или 5 В. Оснащенные буфером модули DIMM имеют дополнительные буферные микросхемы для связи с интерфейсом системной платы. К сожалению, эти буферные микросхемы замедляют работу DIMM. Поэтому во всех персональных компьютерах используются модули DIMM без буфера. Рабочее напряжение для модулей DIMM в персональных компьютерах почти всегда равно 3,3 В. Если бы можно было установить рассчитанный на 5 В модуль DIMM в рассчитанный на 3,3 В разъем, он мог быть поврежден, но, к счастью, ключ в разъеме и на DIMM не позволит сделать это. В современных PC используются только модули DIMM без буфера, рассчитанные на 3,3 В. В компьютерах Apple и других могут использоваться модули с буфером, рассчитанные на 5 В. К счастью, ключевые вырезы по краю разъема для модуля DIMM без буфера расположены иначе, чем для модулей RFU, DIMM с буфером и DIMM, рассчитанных на 5,0 В. Это предупреждает вставку модуля DIMM неподходящего типа в разъем.

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

    Установка модулей RIMM

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

    Устранение ошибок памяти

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

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

    При запуске компьютера POST не только проверяет память, но и вычисляет ее объем. Затем этот объем памяти сравнивается с записанным в параметрах BIOS, и в случае несоответствия генерируется сообщение об ошибке. Если в процессе работы POST при проверке памяти появляется ошибка, то BIOS генерирует звуковой сигнал, параметры которого указывают на причину ошибки.

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

    Чаще всего память служит причиной следующих ошибок:

  • ошибки четности, генерируемые системной платой;
  • ошибки типа general protection fault, вызванные повреждением данных запущенной программы в памяти, что приводит к остановке приложения;
  • ошибки типа fatal exception, возникающие при выполнении программой недопусти­мых инструкций;
  • ошибки деления, вызванные попыткой деления на нуль, которая приводит к ошибке записи результата в регистр памяти.

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

    Логическая организация памяти

    Адресное пространство первого PC составляло всего 1 Мбайт, верхние 384 Кбайт которо­го были зарезервированы для использования самой системой. Размещение зарезервированного пространства в верхней области (между 640 Кбайт и 1 Мбайт) вместо использования нижней области памяти (между 0 и 384 Кбайт) привело к появлению так называемого барьера основной памяти. Постоянная необходимость достижения совместимости системы и периферийного оборудования и сегодня не всегда позволяет разработчикам отступать от стандартной конфигурации первого PC. Вот почему вопросы распределения памяти в современных персональных компьютерах так и остались запутанными. Несмотря на то что со времени появления первого PC прошло более десяти лет, в новейших системах с процессором Pentium II используется то же распределение памяти, что и в первых компьютерах.

    Эволюция работы процессоров с памятью, а также средства управления памятью в Win­dows 9х, Windows NT/2000, Linux, OS/2 и UNIX описываются в специальной литературе по этим операционным системам.

    Процедуры локализации дефекта оперативной памяти

  • Запустите компьютер
  • Если POST завершается без ошибок, основные параметры памяти в норме
  • Если появляются ошибки, выполните процедуры локализации дефекта
  • Перезагрузите компьютер, запустите программу установки параметров BIOS.
  • Проверьте соответствие вычисленного объема памяти сохраненному
  • Отключите кэширование в BIOS, сохраните параметры и загрузите компьютер с системной дискеты
  • Протестируйте память с помощью диагностических программ
  • Если ошибок не возникает или не выявлено при тестировании памяти, перезагрузите компьютер и установите предыдущие параметры памяти в BIOS
  • Перезагрузите компьютер, запустите программу установки параметров BIOS и установите по умолчанию все временные параметры работы памяти.
  • Сохраните эти параметры и перезагрузите компьютер.
  • Начните тестирование памяти с начала
  • Установите самые медленные параметры памяти
  • Снимите крышку копуса. Проверьте надежность установки модулей SIMM/DIMM/RIMM: извлеките и заново установите все модули. При установке обратите особое внимание на их правильное размещение, соответствие системной плате, электрические параметры, тип и т.д.
  • Если после повторной установки модулей проблема не решена, прочистите контакты модуля памяти и разъема
  • Если ошибки повторяются, необходимо протестировать каждый модуль отдельно
  • Устанавливайте по одному модулю в первый банк для того, чтобы определить неисправный модуль
  • Необходимо тщательно протестировать системную плату

    Всякий, кто собирается серьезно разобраться в PC, рано или поздно столкнется с тем, что в системе существуют разные типы участков памяти. Одни из них имеют больший объем, другие — меньший, одни могут использоваться при работе прикладных программ, другие — нет. Ниже рассматриваются участки (блоки) памяти, используемые в современных компьютерах:

  • основная память (Conventional Memory);
  • верхняя память (Upper Memory Area — UMA);
  • область верхних адресов ( High Memory Area — HMA);
  • дополнительная память (eXtended Memory Specification — XMS);
  • расширенная память (Expanded Memory Specification — EMS); является устаревшей разновидностью;
  • видеопамять (Video RAM Memory); расположена в области верхней памяти;
  • область ROM адаптеров и RAM специального назначения; расположена в области верхней памяти;
  • ROM BIOS; также расположена в области верхней памяти.

    В последующих разделах речь идет о предотвращении конфликтов, возникающих при использовании различных областей памяти, о применении программ-диспетчеров для ее оптимизации и более эффективной эксплуатации. В компьютерах класса AT верхняя граница доступной памяти выходит за предел 1 Мбайт и достигает 16 Мбайт в компьютерах с процессорами 286, 4 Гбайт (4 096 Мбайт) в компьютерах с процессорами 386DX и 64 Гбайт в компьютерах с процессорами Pentium II.

    При работе процессора в реальном режиме доступен только 1 Мбайт памяти, а в защищенном режиме — все 16, 4096 или 65536 Мбайт. Каждая строка на рисунке соответствует сегменту в 64 Кбайт, а вся карта распределения системной памяти включает первые 2 Мбайт.

    На карте показаны только два первых мегабайта памяти, в действительности же карту распределения памяти можно составить для максимального объема.

    Основная память

    В первых компьютерах PC/XT рабочее пространство памяти составляло 1 Мбайт и называлось памятью с произвольным доступом (Random-Access Memory — RAM) или оперативной памятью. Это пространство было разделено на несколько областей, часть из которых предназначалась для специальных целей. DOS может обращаться ко всему пространству размером 1 Мбайт, но программы можно загружать только в область памяти, называемую основной памятью (conventional memory), емкость ее в первом PC была равна 512 Кбайт. Оставшиеся 512 Кбайт были зарезервированы для использования некоторыми компонентами компьютера, такими как системная плата и платы адаптеров, установленных в разъемах расширения. После выпуска первого PC фирма IBM пришла к выводу, что для обслуживания системы вполне достаточно области размером 384 Кбайт, поэтому в следующих компьютерах объем доступной для использования памяти был увеличен до 640 Кбайт. Эти 640 Кбайт стали стандартным объемом памяти, который DOS может использовать для выполнения программ (барьер в 640 Кбайт). Память свыше 640 Кбайт зарезервирована для графических плат и других адаптеров, а также для системной ROM BIOS.

    Впрочем, барьер в 640 Кбайт имеет значение только для 16-разрядных программ, таких как DOS и Windows 3.1. Что касается 32-разрядных программ, таких как Windows 9x и NT/2000, то на них он не оказывает существенного влияния.

    Верхняя память

    Верхняя память (Upper Memory Area — UMB) представляет собой 384 Кбайт, зарезервированных у верхней границы системной памяти для компьютеров класса PC/XT и у верхней границы первого мегабайта памяти для компьютеров AT. Адреса этой области находятся в пределах от A0000 до FFFFF.

    Логическая карта памяти первых двух мегабайтов
    ------------------------------------------------------------------
    . - память, доступная программам (стандартная память)
    G - область памяти для видеопамяти графического режима
    М - область памяти для видеопамяти монохромного текстового режима
    С - область памяти для видеопамяти цветного текстового режима
    V - область памяти для BIOS видеоадаптеров
    (для PS/2 должна быть обозначена как "а") а - область памяти плат адаптеров и памяти специального назначения
    (свободное пространство UMA)
    г - дополнительная область памяти системной BIOS в PS/2 (свободное пространство UMA для компьютеров не PS/2) R - область памяти системной BIOS b - область памяти для встроенного языка
    (в IBM-совместимых компьютерах должна быть обозначена как "R") h - область верхних адресов (НМА) при загруженном драйвере HIMEM.SYS Основная память:
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    000000: 	
    010000: 	
    020000: 	
    030000: 	
    040000: 	
    050000: 	
    060000: 	
    070000: 	
    080000: 	
    090000: 	
    Область верхней памяти:
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    ОАО 0 0 0: GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 0В0000: МШМШШМШШМШМШШМШМШШМШСССССССССССССССССССССССССССССССС
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0C0000: VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0D0000: аааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0E0000: rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 0F0000: RRRRRRRRRRRRRRRRRRRRRRRRbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbRRRRRRRR Дополнительная память:
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    100000: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh Дополнительная память (XMS):
    110000: 	
    120000: 	
    130000: 	
    140000: 	
    150000: 	
    160000: 	
    170000: 	
    180000: 	
    190000: 	
    1A0000: 	
    1B0000: 	
    1C0000: 	
    1D0000: 	
    1E0000: 	
    1F0000: 	
    

    Верхняя память разделена на несколько частей.

    Первые 128 Кбайт, расположенные сразу после основной памяти, являются областью видеопамяти и предназначены для использования видеоадаптерами. Когда на экран выводится текст или графика, в этой области хранятся образы изображений. Видеопамять занимает адреса A0000-BFFFF.

    Следующие 128 Кбайт отведены для программ BIOS адаптеров, которые записаны в микросхемах ROM на соответствующих платах, установленных в разъемы расшире­ ния. Большинство видеоадаптеров VGA и совместимых с ними адаптеров используют для своих программ BIOS первые 32 Кбайт из этой области, а оставшаяся ее часть доступна для других устройств. Некоторые сетевые адаптеры используют эту область в качестве памяти специального назначения. Для ROM адаптеров и специальной памяти отведены адреса C0000-DFFFF.

    Оставшиеся 128 Кбайт зарезервированы для системной BIOS, которая записана в микросхемах ROM или RAM. В этой же области хранятся программа POST и начальный системный загрузчик, который управляет компьютером до запуска операционной системы. В большинстве компьютеров используются только последние 64 Кбайт этого пространства (или меньше), а первые 64 Кбайт с помощью программ — диспетчеров памяти могут быть перераспределены для нужд операционной системы. В некоторых системах в этой области также размещена программа Setup CMOS. Для системной BIOS отведены адреса E0000-FFFFF.

    В большинстве компьютеров класса AT используются не все зарезервированные 384 Кбайт. Например, в соответствии со стандартом IBM зарезервированная видеопамять начинается с адреса A0000, т.е. сразу за границей основной памяти. Эта область используется стандартными режимами VGA, в то время как монохромные и цветные текстовые режимы используют соответственно диапазоны адресов B0000-B7FFF и B8000-BFFFF. В старых адаптерах (не VGA) используется только сегмент B000. Объем памяти зависит от типа и режима работы видеоадаптера. Однако процессор определяет видеопамять как одну область размером 128 Кбайт. При этом неважно, какой объем памяти установлен собственно видеоадаптером.

    Хотя верхние 384 Кбайт первого мегабайта вначале были названы резервной памятью, в незанятые участки этой области можно загрузить 16-разрядные драйверы (например, Ansi.sys) или резидентные программы (например, Mouse.com), что позволяет освободить часть основной памяти для других нужд. Объем свободного пространства верхней памяти может быть различным для разных компьютеров; все зависит от того, какие платы адаптеров установлены. Например, большинство сетевых адаптеров и адаптеров стандарта SCSI используют часть этой памяти в своих целях.

    Видеопамять

    Видеоадаптер, установленный в компьютер, использует часть нижней памяти для вывода графики или текстовой информации на дисплей. Правда, обычно это происходит только в основном режиме VGA. Видеоадаптер может иметь память емкостью 4 Мбайт, 8 Мбайт или более, но эта память используется набором микросхем на видеоадаптере и непосредственно процессору недоступна. Только в основном режиме VGA, например при подсказках DOS или при работе Windows в безопасном режиме, процессор может непосредственно обращаться к видеопамяти емкостью до 128 Кбайт в диапазоне адресов A0000-BFFFFh. Все современные видеоадаптеры также имеют расположенную на плате BIOS, обычно в пределах адресов от C0000 до C7FFFh; эта часть пространства памяти зарезервирована для базовой системы ввода-вывода видеоадаптера. Вообще, чем выше разрешающая способность и глубина цвета видеоадаптера, тем большее количество системной памяти использует видеоадаптер, но эта дополнительная память (свыше 128 Кбайт) обычно не доступна процессору. Система просто сообщает видеоадаптеру, что должно быть отображено, а он генерирует изображение, помещая данные непосредственно в видеопамять на плате.

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

    При стандартном распределении памяти для хранения выводимой на монитор информации резервируется область размером 128 Кбайт. Эта зарезервированная видеопамять располагается в сегментах A000 и B000. Для BIOS видеоадаптер использует дополнительный фрагмент верхней памяти в сегменте C000.

    Расположение ОЗУ видеоадаптера связано барьером основной памяти размером 640 Кбайт для DOS. Всю доступную непрерывную область памяти DOS может использовать в пределах первого мегабайта, т.е. до адреса начала ОЗУ видеоадаптера. При использовании таких адаптеров, как MDA и CGA, DOS может получить доступ к пространству системной памяти, превышающему 640 Кбайт. При использовании адаптеров EGA, MCGA и VGA барьер видеопамяти располагается по адресу А0000; для адаптеров MDA и CGA требуется гораздо меньше памяти, что позволяет освободить дополнительное пространство для DOS и программ-приложений.

    Память адаптера VGA

    Все VGA-совместимые платы, включая SVGA, почти идентичны EGA. Они полностью (но не одновременно) используют 128 Кбайт видеопамяти в диапазоне адресов A0000-BFFFF. Область видеопамяти разбита на три участка, каждый из которых используется только при работе адаптера в соответствующем режиме. Одно небольшое отличие от EGA состоит в том, что почти для всех плат VGA необходим полный диапазон размером 32 Кбайт (C0000-C7FFF), отведенный для встроенной BIOS адаптера.

    Как видно, обычная плата VGA использует для своей BIOS всю область раз­мером 32 Кбайт, в которой содержатся программы-драйверы. В редких случаях некоторые платы VGA занимают меньшую область. Как и для адаптера EGA, области видеопамяти активны только при работе в определенном режиме. Например, при работе в графическом режиме используется только сегмент A000, в цветном текстовом режиме занята только верхняя половина сегмента B000. Поскольку адаптер VGA почти никогда не работает в монохромном текстовом режиме, нижняя половина сегмента B 000 (адреса B0000-B7FFF) остается незанятой.

    Во многих современных компьютерах, например с системной платой и корпусом конструкции LPX или Slimline, видеоадаптер встроен в системную плату. В таких компьютерах BIOS видеоадаптера и системная BIOS всегда эмулируют стандартный режим VGA, даже если они разработаны одной фирмой. Это означает, что BIOS видеоадаптера располагается в первых 32 Кбайт сегмента C000, как и у автономной платы VGA, установленной в слоте расширения. Встроенный адаптер VGA в таких компьютерах можно отключить путем перестановки перемычки или переключателя на системной плате, а вместо него установить обычную отдельную плату видеоадаптера. Именно для этого встроенные адаптеры делаются по образу и подобию отдельных плат адаптеров, что позволяет при упомянутой замене избежать проблем совместимости, которые могли бы возникнуть, если бы программа-драйвер VGA была частью системной BIOS.

    Карта памяти адаптеров VGA и SVGA
    ---------------------------------------------------------------------
    . - свободная область памяти
    G - область памяти (видеопамять) графического режима адаптера VGA
    М - область памяти (видеопамять) монохромного текстового режима адаптера VGA
    С - область памяти (видеопамять) цветного текстового режима адаптера VGA
    V - область ROM BIOS адаптера VGA
    R - область системной ROM BIOS
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0A0000: GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG ОВ 0 0 0 0: ММММММММММММММММММММММММММММММММСССССССССССССССССССССССССССССССС
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0C0000:V VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV	
    0D0000: 	
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0E0000: 	
    0F 0 0 0 0: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
    ------------------------------------------------------------------------
    

    Микросхемы ROM адаптеров и память специального назначения

    За областью видеопамяти начиная с сегмента С000 следует 128 Кбайт верхней памяти, зарезервированных для специальных программ или BIOS адаптеров, которые установлены в разъемы на системной плате. Программы BIOS "зашиты" в специальные микросхемы ROM на платах адаптеров. В область памяти микросхем ROM записываются программы, которые не должны изменяться в процессе эксплуатации системы. Такой способ хранения программ используется в графических платах, контроллерах жестких дисков, коммуникационных платах и платах дополнительной памяти. Некоторые производители используют микросхемы EEPROM, данные в которых можно обновлять. Обновления микропрограмм поставляются производителем устройства.

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

    С помощью этих BIOS работает технология Plug and Play — операционная система Windows 9х или Windows 2000 считывает информацию об устройстве и автоматически устанавливает необходимые драйверы.

    BIOS видеоадаптеров

    Несмотря на то что для BIOS видеоадаптеров в верхней памяти зарезервировано 128 Кбайт начиная с сегмента C000, устанавливаемые в компьютерах видеоадаптеры не используют всю эту область.

    Объемы памяти, используемые для BIOS различных видеоадаптеров
    -------------------------------------------------------------
    Тип адаптера               Объем памяти, Кбайт
    -------------------------------------------------------------
        MDA             Нет (драйверы включены в системную BIOS)
        CGA             Нет (драйверы включены в системную BIOS)
        EGA             16 (C0000-C3FFF)
        VGA             32 (C0000-C7FFF)
        SVGA            32 (C0000-C7FFF)	
    -------------------------------------------------------------
    

    Для повышения скорости регенерации изображений в графических операционных системах применяются платы графических ускорителей, которые используют большую часть (или все) 128 Кбайт верхней памяти, начиная с сегмента С000. Кроме того, эти графические платы могут иметь собственные встроенные микросхемы памяти объемом свыше 8 Мбайт для временного хранения изображения и повышения скорости приема новых графических данных, передаваемых процессором для вывода на экран.

    BIOS контроллера жесткого диска и основного адаптера SCSI

    Адреса верхней памяти C0000-DFFFF используются также для размещения BIOS многих контроллеров жесткого диска.

    Диапазоны адресов и объемы памяти,
    используемые адаптерами жестких дисков
    ---------------------------------------------------
    Размер BIOS, Кбайт      Диапазон адресов BIOS
    ---------------------------------------------------
        8                        C8000-C9FFF
        0                   Драйверы — в системной BIOS
        0                   Драйверы — в системной BIOS
       16                        C8000-CBFFF
       16                   C8000-CBFFF или DC000-DFFFF
    ---------------------------------------------------
    

    Большинство XT-совместимых контроллеров Большинство контроллеров AT Большинство стандартных контроллеров IDE Большинство контроллеров EIDE

    Некоторые контроллеры SCSI

    Платы контроллера жесткого диска и адаптера SCSI в конкретном компьютере могут использовать различные объемы памяти, но чаще всего диапазон адресов начинается с сегмента С800, как принято в стандарте на PC фирмы IBM. Почти все современные контроллеры жесткого диска и адаптеры SCSI с микросхемой BIOS, установленной на плате, позволяют довольно просто перемещать начальный адрес своей памяти в сегмент С000 или D000. Если другие платы уже используют какие-либо адреса, выясните в документации, как изменить начальный адрес BIOS соответствующего адаптера для предотвращения возможных конфликтов.

    Память сетевых адаптеров

    Платы сетевых адаптеров также могут использовать область верхней памяти в сегментах С000 и D000. Размер и начальный адрес используемой памяти зависят от типа сетевой платы и ее изготовителя. Для некоторых из этих плат память вообще не нужна. Обычно сетевые платы используют две области верхней памяти:

  • область IPL ROM, в которой располагается программа начальной загрузки;
  • буфер обмена с сетью.

    В области ROM IPL (ее объем обычно равен 8 Кбайт) записана программа начальной загрузки, которая обеспечивает запуск компьютера непосредственно от файл-сервера по сети. При этом из него можно вынуть все дисковые накопители, превратив компьютер в бездисковую рабочую станцию. Поскольку в нем отсутствуют как жесткий, так и гибкий загрузочные диски, программа IPL должна скопировать операционную систему с файл-сервера и загрузить ее, как при загрузке с собственного диска. Если вы не используете компьютер в качестве бездисковой станции, отключите ROM IPL на плате адаптера. Правда, во многих сетевых адаптерах сделать это невозможно, и адресное пространство в 8 Кбайт, которое могло бы использоваться другими платами, теряется, даже если вынуть микросхему ROM из платы сетевого адаптера.

    Принятое no умолчанию распределение памяти
    для SCSI-адаптера AHA-2940 фирмы Adaptec
    ----------------------------------------------------------------------------
    . - свободная область памяти
    G - область памяти (видеопамять) графического режима адаптера VGA
    М - область памяти (видеопамять) монохромного текстового режима адаптера VGA
    С - область памяти (видеопамять) цветного текстового режима адаптера VGA
    V - ROM BIOS адаптера VGA
    S - ROM BIOS основного адаптера SCSI
    R - область системной ROM BIOS
    : 0—-1— -2— -3— -4— -5— -6— -7— -8— -9— -A— -B— -C— -D— -E— -F—
    0A0000: GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 0B 0 0 0 0: MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
    : 0—-1— -2— -3— -4— -5— -6— -7— -8— -9— -A— -B— -C— -D— -E— -F—
    0C0000: VVWVWWVWVWWVWWVWVWWW	
    0D0000: 	SSSSSSSSSSSSSSSS
    : 0—-1— -2— -3— -4— -5— -6— -7— -8— -9— -A— -B— -C— -D— -E— -F—
    0E0000: 	
    0F 0 0 0 0: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
    ----------------------------------------------------------------------------
    

    Память для буфера обмена — это небольшая микросхема памяти на сетевой плате, которая резервирует часть области верхней памяти. Эта память, используя сетевую плату компьютера, играет роль "окна" в сеть, через которое осуществляется быстрая передача и прием данных. Впервые ее применила IBM в сетевых адаптерах Token Ring, и теперь эта память стала почти непременным атрибутом всех сетевых адаптеров. Ее пришлось ввести потому, что на большинстве систем передача данных через канал прямого доступа к памяти оказалась недостаточно быстрой. Это было наиболее заметно в компьютерах с 16-разрядной шиной ISA из-за некоторых особенностей контроллера прямого доступа к памяти и архитектуры шины. В сетевых адаптерах, не оснащенных такой памятью, данные передаются либо по каналам прямого доступа к памяти, либо через программный ввод-вывод.

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

    Принимаемые по умолчанию адреса памяти для ROM IPL и памяти для буфера обмена сетевого адаптера Token Ring приведены ниже. Другие сетевые адаптеры, например Ethernet, могут иметь аналогичные адреса.

    Принятая по умолчанию карта памяти сетевого адаптера Token Ring
    ----------------------------------------------------------------------------
    . - свободная область памяти
    G - область памяти (видеопамять) графического режима адаптера VGA
    М - область памяти (видеопамять) монохромного текстового режима адаптера VGA
    С - область памяти (видеопамять) цветного текстового режима адаптера VGA
    V - ROM BIOS адаптера VGA
    I - IPL ROM сетевого адаптера Token Ring
    N - область памяти под буфер обмена адаптера Token Ring
    R - системная ROM BIOS
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0A0000: GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG OB 0 0 0 0: ММММММММММММММММММММММММММММММММСССССССССССССССССССССССССССССССС
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0C0000:V VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV	IIIIIIII	
    0D0000:  	NNNNNNNNNNNNNNNN	
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0E0000: 	
    0F 0 0 0 0: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
    ----------------------------------------------------------------------------
    

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

    Обратите внимание, что операционные системы Windows 9x, Windows ME и Windows 2000 сами по себе не пытаются оптимизировать использование памяти, а лишь устраняют конфликты. Дело в том, что при использовании 32-разрядных драйверов оптимизация малоэффективна.

    Системная BIOS

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

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

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

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

    Программа CMOS Setup используется при конфигурации системы. Она обычно акти­ визируется нажатием определенной клавиши (или комбинации клавиш) при начальной загрузке. Эта программа устанавливает основные параметры конфигурации системы и возможности базовой системы ввода-вывода, системной платы и набора микросхем системной логики, средств защиты (пароли), а в некоторых случаях выполняет простейшие программы диагностики. Не всегда программа CMOS Setup хранится в ROM; в некоторых компьютерах она загружается с гибкого или жесткого диска.

    Сегменты E000 и F000 в карте распределения памяти считаются зарезервированными для системной программы BIOS, но вся область используется только в некоторых компьютерах класса AT. В компьютерах класса PC/XT занят только сегмент F000, а сегмент E000 можно использовать для ROM или RAM адаптеров. Во многих компьютерах класса AT сегмент F000 полностью занят BIOS, а сегмент E000 считается занятым, но не используется. Захватывая этот сегмент, 16-разрядная системная плата берет на себя управление соответствующими адресами, что не позволяет использовать эту область для других целей. Иными словами, ни один из адаптеров не может воспользоваться адресами этого сегмента. Именно поэтому в большинстве адаптеров конфигурация сегмента E000 не предусмотрена. Пространство памяти объемом 64 Кбайт фактически оказывается потерянным, но процессоры 386 и последующие с помощью своих устройств управления памятью могут отобразить часть дополнительной памяти в сегмент E000 как блок верхней памяти и использовать его для загрузки программ. Лучше использовать этот сегмент таким образом, чем вообще его потерять! В DOS подобные функции реализуются драйвером ЕммЗ86.ехе.

    Отметим, что в стандартном компьютере область BIOS занимает только сегмент F000 (64 Кбайт). В большинстве случаев сегмент E000 полностью свободен, и его можно использовать в качестве блока верхней памяти.

    Карта памяти и размещение области системной ROM BIOS
    в большинстве компьютеров
    ---------------------------------------------------------------------------
    . - свободная область памяти R - системная ROM BIOS
    : 0—1—2—3—4—5—б—7—-8— -9—А—В—С—D—E—F—
    0E0000: 	
    0F0000: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
    ---------------------------------------------------------------------------
    

    Дополнительная (extended) память

    Как уже отмечалось, процессор 286 и последующие могут использовать память объемом более 1 Мбайт. В компьютерах с процессорами 286 и 386SX объем оперативной памяти может достигать 16 Мбайт, а с процессорами 386DX, 486, Pentium или Pentium MMX — 4 Гбайт (4 096 Мбайт). Для систем на базе новых процессоров Pentium П максимальный объем памяти составляет 64 Гбайт (65 536 Мбайт).

    Для адресации памяти за пределами первого мегабайта процессор должен работать в защищенном режиме (естественном для новых процессоров). В компьютерах с процессором 286 дополнительную память могут использовать только программы, предназначенные для работы в защищенном режиме. Однако в системах на основе процессоров 386 и последующих существует еще один режим, называемый виртуальным. Этот режим позволяет разбить дополнительную память на блоки по 1 Мбайт (каждый из которых используется для работы в своем реальном режиме) и одновременно выполнять несколько программ в защищенных областях памяти. Каждая из выполняющихся DOS-программ одновременно ограничивается барьером 640 Кбайт, поскольку в каждой области моделируется среда реального режима сосвоими экземплярами BIOS и области верхней памяти. Для одновременного выполнения нескольких программ в виртуальном режиме (называемом иногда многозадачным) необходима специальная программа, координирующая их работу. Такими функциональными возможностями обладают операционные системы Windows 9x, Windows NT и OS/2.

    Процессоры 286 и последующие могут работать и в реальном режиме, в котором обеспечивается полная совместимость компьютеров класса PC/XT с процессором 8088. В реальном режиме на компьютере класса AT можно выполнять только одну программу DOS, как и на компьютере класса PC/XT. Но на самом деле компьютеры класса AT (особенно с процессорами 386, 486, Pentium и P6) в реальном режиме функционируют несколько иначе. Процессор 286 может эмулировать 8086 или 8088, но не может одновременно работать в защищенном режиме. Процессоры 386 и выше поддерживают виртуальный режим одновременно с защищенным. Это позволяет выполнять программы в реальном режиме под управлением операцинных систем Windows 9x, Windows NT, Windows 2000 и OS/2, функционирующих в защищенном режиме.

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

    Спецификация XMS

    Спецификация дополнительной памяти XMS (eXtended Memory Specification) была разработана в 1987 году фирмами Microsoft, Intel, AST Corp. и Lotus Development. Она определяет способ, с помощью которого программы получают доступ к дополнительной памяти. Эта спецификация предназначена для компьютеров с процессорами 286 и последующими и позволяет программам, работающим в реальном режиме (например, выполняемым под управлением DOS), использовать дополнительную память и еще один блок, обычно недоступный для DOS.

    До появления XMS не было способа координации работы программ, которые переключали процессор в защищенный режим и использовали дополнительную память. Ни одна из программ не могла узнать, что делает с дополнительной памятью другая, поскольку она не "видела" этой памяти из своего реального режима. Главным арбитром стал драйвер Himem.sys. Сначала он забирает всю дополнительную память в свое распоряжение, а затем выделяет ее программам, соблюдающим протокол XMS. Благодаря этому некоторые программы, использующие XMS-память, могут работать под управлением DOS одновременно на одном компьютере, периодически переключая процессор в защищенный режим для получения доступа к памяти. Протокол XMS запрещает программе доступ к той области памяти, которая используется другой программой. Поскольку среда Windows 3.x является диспетчером программ, который при одновременном выполнении нескольких программ переключает процессор в защищенный режим и обратно, для функционирования Windows требуется XMS-память. Windows 95 в основном работает в защищенном режиме, однако переключается в реальный режим для получения доступа к системным ресурсам. Windows NT, Windows 2000 и OS/2 — операционные системы, работающие исключительно в защищенном режиме.

    Организовать дополнительную память по спецификации XMS можно, загрузив соответствующий драйвер в файле Config.sys. Наиболее распространенной является программа Himem.sys, которая входит в состав Windows и последних версий DOS (в том числе и DOS 6). Существуют и другие диспетчеры памяти, например QEMM, которые также загружаются как драйверы из файла Config.sys и организуют дополнительную память в соответствии со спецификацией XMS. Операционные системы Windows 9x и Windows NT/2000 при переключении режим MS DOS автоматически предоставляют дополнительную память по спецификации XMS.

    Предотвращение конфликтов и пересечения областей ROM BIOS

    Напомним, что сегменты C000 и D000 зарезервированы для ROM и RAM адаптеров. Если адреса ROM или RAM каких-нибудь двух адаптеров пересекаются, скорее всего, ни один из них работать не будет. Если вы снимете или отключите один из адаптеров, работоспособность второго восстановится, но использовать их совместно будет невозможно.

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

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

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

    Затенение ROM

    В компьютерах с процессорами 386 и последующими обмен данными с памятью осуществляется по 32- или 64-разрядным шинам, а обращение к ROM BIOS — только по 16-разрядным. Более того, адаптеры с собственными BIOS могут обращаться к системной памяти лишь по 8-разрядной шине. Очевидно, что 16- или 8-разрядный доступ к памяти становится основной причиной снижения производительности быстродействующих компьютеров. Кроме того, скорость работы микросхем ROM значительно ниже быстродействия существующих микросхем RAM.

    Установленная и доступная память

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

    Например, в большинстве компьютеров с объемом установленных микросхем памяти 16 Мбайт (16384 Кбайт) во время выполнения процедуры POST или программы установки параметров BIOS выводится сообщение только о 16000 Кбайт, а 384 Кбайт (16384-16000=384) памяти куда-то пропадает! В других компьютерах с таким же объемом установленной памяти (16 Мбайт) сообщается о наличии 16256 Кбайт, т.е. исчезает всего 128 Кбайт.

    Если запустить программу установки параметров BIOS и проверить основную и дополнительную память, то можно получить больше информации, чем приводится в кратком сообщении теста POST. В большинстве систем с объемом памяти 4 Мбайт будет обнаружено 640 Кбайт основной и 3 072 Кбайт дополнительной памяти. Иногда программа установки параметров BIOS сообщает о 640 Кбайт основной памяти и 3 328 Кбайт дополнительной, что уже несколько лучше. Другими словами, память большинства компьютеров оказывается "укороченной" на 384 Кбайт, а остальных — на 128 Кбайт.

    Объяснить это явление довольно трудно, хотя оно наблюдается в каждом компьютере. Предположим, что в компьютере с процессором 486 установлено два 72-контактных (36-разрядных) модуля SIMM по 1 Мбайт каждый. При этом общая память (2 Мбайт) разделяется на два отдельных банка, поскольку шина данных процессора 32-разрядная, а для каждых восьми разрядов данных необходим один дополнительный контрольный разряд четности (получается 36 разрядов). Каждый модуль SIMM представляет собой один банк. Отметим, что в самых дешевых компьютерах с процессором 486 используются 30-контактные (9-разрядные) модули SIMM, т.е. каждый банк состоит из четырех модулей. Первому банку (или модулю SIMM в рассматриваемом случае) присваиваются адреса, начиная с 0000000 (1-й мегабайт), а второму — с 1000000 (17-й мегабайт).

    Один из основополагающих принципов организации памяти заключается в том, что нельзя присваивать двум физическим устройствам одни и те же адреса. Это означает, что 384 Кбайт в первом банке памяти в нашей ситуации вступают в конфликт с видеопамятью (сегменты A000 и B000), областями ROM различных адаптеров (сегменты C000 и D000) и, естественно, с областью ROM системной платы (сегменты E000 и F000). Поэтому все области RAM модуля SIMM, которые располагаются по этим адресам, необходимо отключить, иначе компьютер не будет работать. Для решения проблемы разработчики системных плат исполь­зуют различные методы; три из них приведены ниже.

    Быстродействующие области RAM используются для хранения копий содержимого "медленных" областей ROM (т.е. для организации затененной памяти); сами области ROM при этом отключаются.

    Отключаются все области RAM, которые не используются для затененной памяти, что предотвращает все возможные конфликты в области верхней памяти. Области RAM, не используемые для затененной памяти, переадресуются таким образом, чтобы их можно было добавить к имеющейся дополнительной памяти. В большинстве компьютеров организуется затененная память только для ROM системной платы (64 Кбайт) и видеопамяти (32 Кбайт), а остальная область RAM отключается. Для некоторых областей ROM системной платы можно выделить дополнительную затененную па­мять в диапазоне адресов C8000-DFFFF (шаг приращения обычно равен 16 Кбайт).

    Напомним, что организовать затененную память можно только для области ROM, но не для области RAM. Ес­ли для какой-либо платы (например, сетевой) предусмотрена буферная область RAM в диапазоне С8000 DFFFF, то эти адреса должны быть исключены при создании затененной памяти, иначе плата работать не будет. По этой же причине нельзя организовать затененную память для области А0000 BFFFF, отведенной для видеопамяти.

    В большинстве системных плат переадресация RAM не выполняется, поэтому память, которая осталась от 384 Кбайт и не была использована для затененной памяти, просто теряется. Вот почему кажется, что создание затененной памяти не требует дополнительных ресурсов. В большинстве компьютеров память, не используемая в затенении, просто отключается, и доступный объем оказывается на 384 Кбайт меньше установленного. В рассматриваемом нами примере при отсутствии переадресации основная память окажется равной 640 Кбайт, а дополнительная — 1024 Кбайт, т.е. размер доступной области RAM составит всего 1664 Кбайт, что на 384 Кбайт меньше установленного.

    В более совершенных компьютерах в затененную память записывается что угодно, а все неиспользованные сегменты преобразуются в дополнительную память. Например, в компьютерах класса PS/2 формируется затененная память для системной BIOS (E0000-FFFFF, 128 Кбайт), а оставшаяся часть модуля SIMM первого банка (256 Кбайт в диапазоне A0000-DFFFF) используется по адресу, следующему за последним установленным банком. Отметим, что в компьютерах класса PS/2 BIOS видеоадаптера включена в системную BIOS (адреса E0000-FFFFF), поэтому отдельная затененная память для BIOS видеоадаптера, в отличие от других компьютеров, здесь не нужна. В первом примере (два 36-разрядных модуля SIMM по 1 Мбайт) те 256 Кбайт, которые не используются для затененной памяти, можно было бы переместить в диапазон адресов 2000000-203FFFF, т.е. в начало третьего мегабайта. Это скажется на диагностике, поскольку обнаруженная ошибка памяти по адресам 2000000-203FFFF будет означать неисправность первого модуля SIMM, хотя эти адреса и относятся к концу объема установленной памяти. Адреса 1000000-1FFFFFF соответствуют второму модулю SIMM, а основная память размером 640 Кбайт, расположенная по адресам 0000000-009FFFF, находится в первом модуле SIMM.

    Конфигурация и оптимизация памяти адаптеров

    В идеале платы адаптеров должны соответствовать стандарту Plug and Play (т.е. плату нужно просто вставить в разъем и воспользоваться ее возможностями). Однако зачастую платы адаптеров спроектированы так, как будто в компьютере больше ничего нет и быть не может. При установке в компьютер нового адаптера сначала нужно знать, какие адреса верхней памяти, линии IRQ и каналы DMA уже используются в системе, а затем настроить новый адаптер так, чтобы он не конфликтовал с установленными платами.

    Платы адаптеров используют верхнюю память для своих BIOS и в качестве рабочих областей RAM. Если две платы пытаются использовать одну и ту же область верхней памяти, возникает конфликт, который может препятствовать даже первоначальной загрузке компьютера. Ниже описано, как избежать потенциальных конфликтов и что делать, если они уже возникли. Рассмотрены способы перемещения памяти адаптеров для ликвидации конфликтов и приведены некоторые соображения по поводу оптимизации использования адаптерами системной памяти.

    Какие области верхней памяти используются адаптерами? Это можно определить двумя способами:

  • Прочесть документацию ко всем адаптерам и выяснить, какие адреса памяти они используют.
  • Запустить специальную программу диагностики.

    Второй способ несколько проще (и надежнее). Примером может служить программа Microsoft Diagnostic (MSD), которая входит в состав Windows 3.x и DOS 6 (а также в более поздние версии). Можно также использовать для анализа конфигурации компьютера диспетчер устройств Windows 9x, Windows ME, Windows 2000. С помощью этих средств можно определить не только используемые адаптерами области верхней памяти, но и используемые ими IRQ. После выполнения MSD или другой подобной программы распечатайте результаты ее работы. Решив установить новый адаптер, вы сможете определить, будет ли он конфликтовать с установленными устройствами.

    Перемещение областей памяти адаптеров для устранения конфликтов

    При возникновении конфликта вам придется изменить характеристики одного или нескольких адаптеров, переместив области используемой ими памяти. Для большинства плат адаптеров процедура перемещения памяти довольно проста и сводится к изменению положения перемычек или переключателей, предназначенных для этой цели. Для устройств, поддерживающих технологию Plug and Play, необходимо запустить конфигурационную программу или с помощью диспетчера устройств Windows 9x, Windows ME, Windows 2000 изменить используемые ресурсы. В остальных случаях для устранения конфликта выполните ряд действий.

  • Определите и запишите адреса верхней памяти, используемые платами адаптеров. Посмотрите, не пересекаются ли какие-нибудь из этих адресов, что всегда приводит к конфликту.
  • Выясните из документации, какие параметры плат можно изменить так, чтобы все платы использовали уникальные адреса памяти.
  • Измените параметры соответствующих адаптеров таким образом, чтобы не возникали конфликты из-за адресов памяти. Если, например, один из адаптеров использует адреса верхней памяти C8000-CBFFF, а другой — адреса CA000-CCFFF, возможно, возникнет конфликт и какие-то адреса придется изменить.

    КомпьютерМастер computermaster.ru


  • [Услуги] [Цены] [Гарантии] [Вызов мастера] [Всё о компьютерах] [Полезные ссылки]

    © КомпьютерМастер, 2004.
    Rambler's Top100 Rambler's Top100