FAQ по подсистеме памяти
Существует ли связь между тактовой частотой процессора и временем доступа используемой в компьютере памяти?
Связь, безусловно, существует, но не столько с тактовой частотой процессора, сколько с частотой системной шины. В принципе, тактовая частота и тип процессора практически однозначно (за исключением особо экзотических вариантов разгона) определяют частоту шины, но этот вопрос, видимо, все же выходит за рамки данного FAQ. В приведенной ниже таблице даны времена доступа для памяти с различной организацией цикла, при которых память работает с оптимальной для данной частоты шины временной диаграммой (иными словами, применение памяти с худшим временем доступа замедлит работу подсистемы памяти, а с лучшим - не ускорит). В таблице рассмотрены частоты не ниже 50 МГц и времена доступа не хуже 70 нс, так как и более низкие частоты, и соответствующая им медленная память не представляют сейчас особого практического интереса.
Организация цикла | |||
Частота шины, МГц | fast page | EDO | SDRAM |
50 | 70 | 70 | - |
60 | 70 | 70 | 12 |
66 | 60 | 60 | 12 |
75 | - | 50 | 12 |
83 | - | 50 | 10 |
100 | - | - | 7 или 10 PC-100 |
В таблице указаны времена доступа в наносекундах для памяти fast page и EDO и длительность такта в наносекундах для SDRAM. Надо также иметь в виду, что реальные времена доступа могут быть как лучше (что бывает нередко), так и хуже промаркированных. Памяти, применяемой в 100-мегагерцовых системах, здесь посвящен отдельный вопрос.
Может ли "разгон" процессора повлиять на работу подсистемы памяти?
"Разгон" процессора, как, впрочем, и замена процессора на более мощный, иными словами, любые действия, связанные с увеличением тактовой частоты процессора, можно условно разделить на две категории. Напомним, что частота процессора (или внутренняя) является произведением частоты системной шины (или внешней), на которой работает и подсистема памяти, на коэффициент умножения частоты. При "разгоне" первого типа (например, Pentium 233MHz до 266MHz), когда изменяется только коэффициент умножения (c 3.5 до 4), а внешняя частота (66MHz) остается прежней, никаких серьезных изменений, а тем более сбоев, в работе подсистемы памяти ожидать не следует (хотя в принципе нагрузка на нее и может несколько возрасти из-за большего числа запросов от процессора). Если такой "разгон" вызовет сбои в работе компьютера, они с подавляющей вероятностью будут объясняться сбоями самого процессора.
"Разгон" же второго типа, когда увеличивается внешняя частота (например, Pentium 266MHz до 300MHz путем увеличения внешней частоты с 66 до 75MHz) чреват для подсистемы памяти разнообразными последствиями, так как вполне может оказаться, что имеющаяся память (например, 60нс EDO) не в состоянии работать при повышенной тактовой частоте. Примерное соответствие между временем доступа памяти и допустимой внешней частотой приводится в предыдущем вопросе, и надо иметь в виду, что при тактовой частоте выше, чем приведена в таблице, соответствующим образом маркированная память работать не обязана (хотя в принципе вполне может и заработать, кроме того не исключено, что достаточно умный BIOS просто добавит waitstate и подсистема опять-таки будет работать, хотя и с более низкой производительностью, что способно съесть весь эффект от разгона). Впрочем, даже если разгон такого рода и вызовет сбои, опять же не очевидно, что они вызваны именно памятью, а не процессором, кэшом или, скажем, шиной PCI.
Невозможно не упомянуть довольно комичную ситуацию со старыми процессорами Pentium, которые выпускались Intel одновременно в 60 и 66MHz разновидностях. Как результат, upgrade, скажем, со 100MHz (1.5x66) до 120MHz (2x60) при визуальном повышении тактовой частоты на 20% имел побочным эффектом понижение частоты памяти на 10%, что на определенного рода задачах могло даже привести к понижению общего быстродействия системы.
Я устанавливаю в свою систему дополнительную память. Какие установки необходимо изменить в BIOS Setup, чтобы она заработала?
Как правило - никаких. Подавляющее большинство компьютеров, а равно и других систем, распознает и конфигурирует установленную дополнительную память совершенно автоматически. Иными словами, если память НЕ заработала, то установки BIOS тут уже не помогут. Единственное исключение - если ваш BIOS позволяет выставлять время доступа либо другие временные параметры вручную и для уже установленной памяти были выставлены предельно высокие (в смысле - быстрые) параметры, то не исключено, что новая память работать столь быстро откажется и нужно "опустить планку" (подозреваю, впрочем, что вы предпочтете поменять память, а не параметры).
К системам, которые действительно требуют некоего ручного вмешательства (хотя обычно и не в Setup), относятся серверы, поддерживающие шину EISA, а также некоторые (обычно достаточно старые) ноутбуки. Такие системы для распознания новой памяти требуют запуска специальной конфигурационной утилиты.
Каким образом установка дополнительной памяти повлияет на быстродействие моей системы?
Парадоксальный ответ заключается в том, что на быстродействие "низкого" уровня (в частности, параметры, тестируемые с помощью программ типа sysinfo), установка дополнительной памяти не должна в большинстве случаев повлиять никак. Означает ли это, что все призывы к установке дополнительной памяти с целью ускорения производительности системы - грубая ложь? Как правило, нет - и вот почему.
Рискнем предположить, что на вашем компьютере установлена многозадачная операционная система типа Windows (хотя нижесказанное справедливо и для альтернативных ОС). Такого рода системы обычно поддерживают так называемую виртуальную память - а именно, объем памяти, доступный приложениям, заметно превышает объем физически установленной оперативной памяти и, очень грубо, является суммой последней и некоторого выделенного операционной системой объема жесткого диска, известного также как swap-файл или файл подкачки. Если суммарный объем памяти, запрошенной различными приложениями, превышает имеющийся (после загрузки самой ОС) объем оперативной памяти, наиболее "старые" (то есть неактивные) приложения и их данные просто перемещаются из оперативной памяти на жесткий диск, освобождая место для новых. Причем происходит это совершенно непрозрачно как для приложений, так и для пользователя. Явным достоинством такого способа является то обстоятельство, что пользователь, имеющий вообще говоря не особо ограниченные возможности запуска различных приложений, способен запустить большое (вернее, требующее много памяти) их количество, не будучи ограниченным сравнительно небольшим объемом оперативной памяти. Разумеется, исчерпать можно и виртуальную память, но это происходит заметно реже.
Обратная сторона медали - относительно низкая по сравнению с DRAM скорость доступа к жесткому диску. Сделанное выше утверждение о "непрозрачности" использования виртуальной памяти верно лишь теоретически. Опытному пользователю хорошо знакомо резкое замедление работы системы, сопровождающееся характерным жужжанием и миганием индикатора жесткого диска, которое может происходить, например, при переключении между активными приложениями - так называемый свопинг. Это и есть моменты, когда система вместо истинной оперативной памяти обращается к swap-файлу. Неприятный и сам по себе, свопинг может превратиться в серьезную проблему в ситуации, когда открыты очень большие (например, графические) файлы, слишком много приложений или просто когда система работает с минимально возможным количеством оперативной памяти - система при этом находится в состоянии практически перманентного свопинга, соответственно, производительность неприлично низкая, а вероятность "падения" программ очень велика.
Главное, что дает в подобных ситуациях расширение оперативной памяти - это избавление от свопинга (и всех связанных с ним неприятностей, из которых главная - замедление работы системы). В ряде ситуаций (например, когда до upgrade памяти едва хватало для загрузки самой системы) ускорение действительно получается, причем сравнимое по масштабом разве что с заменой процессора с 486SX25 на Pentium II. В других случаях (например, когда основное используемое приложение - Adobe Photoshop со 100-мегабайтными картинками) лишние 32MB не будут играть абсолютно никакой роли. В общем случае - если система постоянно свопирует (а тем более - "падает") хотя бы при переключении между обычно загруженными приложениями - дополнительная память должна заметно ускорить ее работу (хотя первым делом следовало бы проверить установки виртуальной памяти и наличие места для swap-файла на жестком диске). В следующем вопросе даны примерные рекомендации по поводу того, сколько памяти требуется для нормальной (без свопинга) работы различных ОС с более-менее стандартным набором офисных приложений.
Все вышесказанное относится и к DOS-программам, использующим оперативную память полностью и осуществляющим подкачку данных с жесткого диска. Заметим еще одно обстоятельство - дополнительная память далеко не всегда устанавливается именно с целью повышения быстродействия системы - целью может быть появление возможности запуска некоторых программ, которым памяти просто не хватало (тех же Windows, к примеру) или (особенно в серверах) для повышения, если можно так выразиться, конфигурации системы (например, объема дискового массива).
{mospagebreak}Какой объем оперативной памяти необходим для нормальной работы различных операционных систем?
Ответу на вопрос будет предшествовать небольшое предварительное обсуждение, поскольку формулировка его столь же неудовлетворительна, сколь часто встречается. Дело в том, что понятие "нормальной работы" (без сбоев приложений? без зависаний системы? без постоянного свопинга? без свопинга вообще?) довольно растяжимо. Кроме того, для ответа необходимо иметь представление о количестве обычно открытых приложений и их потребности в памяти (причем потребность эта, вообще говоря, может быть сколь угодно большой).
Еще одно обстоятельство, которое надо иметь в виду - что в качестве ответа приводятся объемы, являющиеся степенями двойки - что представляется вполне оправданным, если учесть как реальные возможности установки памяти, так и заведомо неточную формулировку вопроса.
Наконец, наличие указанного объема оперативной памяти само по себе не будет являться гарантией "нормальной" работы, так как операционные системы предъявляют также определенные требования к процессору, видеоподсистеме, объему жесткого диска и другим параметрам компьютера.
Таблица объемов оперативной памяти для различных OS приводится ниже. Данные количества памяти необходимы для нормальной (свопинг редок) работы сравнительно небольшого числа приложений и относительно небольших объемов открытых файлов. Пользователям, постоянно имеющим большое количество открытых приложений (например, активно использующим OLE при работе с MS Office) рекомендуются объемы вдвое больше. Пользователям, работающим со сверхбольшими файлами (например, в графических редакторах или при верстке) рекомендуется исходить из своих реальных потребностей - операционная система в данном случае особого значения не имеет.
Для справки приведены также "минимальные" объемы памяти, которые обычно приводятся поставщиком OS в качестве требований к системе. Реальная эксплуатация при таких размерах оперативной памяти обычно достаточно мучительна и рекомендована быть не может. Часто упоминают эмпирическое правило, согласно которому для определения реальной потребности OS в памяти необходимо округлить приведенное в мануале значение до ближайшей степени двойки (в сомнительных случаях округлять вверх), а потом удвоить.
Операционная система | Минимальный объем оперативной памяти, MB | Рекомендуемый объем оперативной памяти, MB |
Windows 3.x | 4 | 8 |
Windows 95 | 8 | 16 и выше |
Windows 98 | 16 и выше | 32 |
Windows NT 4.0 Workstation | 16 (рекомендуется 32) | 32 |
Windows NT 4.0 Server | 16 | 32 |
OS/2 Warp 4 | 12-16 без голосовых функций | 32 |
MacOS System 8 | 12 | 32 |
Какие меры безопасности следует соблюдать при установке в систему дополнительной памяти?
В принципе, применительно к безопасности модулей памяти вопрос уже обсуждался в FAQ по модулям. При этом единственное относительно нетривиальное правило заключается в том, что перед установкой рекомендуется заземлить (на корпус компьютера) запястье руки, которая держит устанавливаемый модуль, а по возможности также и поверхность, на которой модуль будет извлекаться из защищенного от статического электричества контейнера. Иногда комплекты для такого заземления можно встретить в продаже. По большому счету, то же самое имеет смысл делать при установке в компьютер любых устройств и плат расширения. По чуть меньшему счету, вероятность того, что неследование этому правилу приведет к каким-либо отрицательным последствиям, достаточно низка, хотя она может сильно зависеть, скажем, от одежды и обуви "оператора" или покрытия пола в помещении.
Вот еще несколько в общем-то очевидных правил, больше ориентированных на безопасность как самого устройства, так и лица, производящего операции:
- Перед установкой памяти внимательно прочитайте мануал и соблюдайте изложенные в нем рекомендации.
- Обязательно отключите энергопитание системы. Весьма желательно также отсоединить шнур энергопитания и сетевой кабель, а также другие кабели (скажем, принтерный), ведущие к включенным в электросеть устройствам.
- Никогда не выполняйте операций, смысл которых вам непонятен или которые производят впечатление опасных.
На этом список имеет смысл закончить. Хотя в действительности большинство "аварий" происходит по причине действий, которые сознательно никто и никогда бы не сделал (например, забыть отвертку внутри корпуса), перечисление подобных ситуаций и способов защиты от них, надо надеяться, вопросом не подразумевалось...
Мой компьютер поддерживает только память с четностью, но я не хотел бы лишних расходов при upgrade. Могу ли я использовать память с "логической четностью"?
Достаточно подробное обсуждение вопроса о применимости "логической четности" имеется в FAQ по модулям. Вкратце же ответ следующий:
- Если это сервер - не рекомендуется (хотя бы по причине возможной потери достоверности данных).
- Если это обычный настольный компьютер - теоретически возможно (во всяком случае именно для них и предназначена "логическая четность"), однако нужно иметь в виду, что не исключено возникновение проблем - иными словами, рекомендуется предварительное тестирование.
Я установил в свой компьютер новый модуль (новые модули) SIMM 72-пин, но система его (их) не видит (или не загружается). Чем это может быть вызвано и что следует делать?
Честно говоря, вопрос в такой постановке (особенно если убрать уточнение про 72-пиновые SIMM) сам по себе тянет на небольшую книгу, причем произвольного жанра - от руководства по эксплуатации до сборника детективных рассказов. Тем не менее ниже сделана попытка систематизировать ВСЕ возможные причины такого поведения компьютера с краткими рекомендациями относительно того, что следует делать в том или ином случае. Прошу заранее извинить, если среди ситуаций и рекомендаций будут встречаться тривиальные - именно такого рода ошибки иногда могут съесть уйму времени и нервов у всех, имеющих отношение к данному upgrade - от владельцев системы до продавца памяти, и в первую очередь - у непосредственного исполнителя.
По той же причине первые шаги, которые следует делать в описанной ситуации - это:
- проверить, правильно ли собрана система;
- еще раз свериться с системным мануалом - правильные ли действия производились;
- извлечь установленные модули и:
- убедиться, что система сохраняет работоспособность в конфигурации "до апгрейда" - в противном случае сначала следует определить, что нарушило работоспособность, и устранить проблему (если имел место не апгрейд, а первоначальная сборка, рекомендуется попробовать запустить компьютер с другими, заведомо работоспособными, модулями);
- изучить маркировку чипов и самих модулей и убедиться, что она не противоречит тому, что вы о них думали.
Теперь - несколько более подробная классификация причин:
- Неисправная память. От проблем такого рода не застрахован никто и никогда - в конце концов, наиболее вероятная ситуация, когда SIMM могли быть повреждены - именно сама инсталляция. Решение - замена памяти. Диагностика после "нулевого цикла" - удалить всю уже имеющуюся память и проверить, работает ли система только с новыми модулями (желательно в нулевом или первом - в зависимости от точки отсчета - банке). Если есть возможность - желательно также проверить модули в другой системе, где им заведомо следовало бы работать (почти идеальны в этом отношении системы на базе чипсета 430HX, позволяющие проверить модули fast page и EDO без четности, с четностью и ECC).
- Неправильная или незавершенная инсталляция. В эту группу входят достаточно разнообразные причины, которые объединяет только одно обстоятельство - данная память должна заработать в данной системе, как только будет инсталлирована должным образом. Что обычно и происходит после выполнения "нулевого цикла". Варианты:
- Модули фактически не установлены. Иногда, особенно если слоты расширения труднодоступны, модуль попросту не "садится" в гнездо, несмотря на полную иллюзию того, что он установлен.
- Неверное заполнение банка. Имеется в виду ситуация, когда предполагалось установить банк из двух или более модулей, но установлены они были по ошибке в разные банки. Это тоже бывает, причем иногда и в силу естественных причин - встречаются материнские платы, у которых слоты, относящиеся к одному банку, расположены "через один".
- Недопустимая конфигурация банков. Предполагается, что всего заполнено более одного банка. Некоторые платы (больше это характерно для 486-х компьютеров) предъявляют довольно нетривиальные требования к тому, как именно та или иная комбинация модулей должна быть распределена по банкам. Характерный признак - "по отдельности" модули прекрасно работают (хотя для очистки совести любые модули, не заработавшие в первом по счету банке, следует попробовать и в остальных). Рекомендуется внимательное прочтение мануала. При отсутствии или невнятности последнего можно попытаться поискать работоспособную комбинацию самостоятельно. Обычно чувствительные к порядку расположения банков системы желают видеть в первом банке либо самые медленные (по времени доступа либо режиму), либо самые большие модули, хотя бывают и абсолютно непредсказуемые капризы. При этом есть определенная вероятность, что вы столкнулись с более неприятным случаем:
- Взаимная несовместимость модулей. Редко, но встречаются ситуации, когда по отдельности SIMM или их пары прекрасно работают в системе, однако вместе они работать не будут никогда. Обычно это недопустимая комбинация емкостей или типов памяти, реже - организаций контроля четности. Особенно неприятно то, что если о подобной несовместимости явно не сказано в мануале, на экспериментальное ее подтверждение путем перебора всех возможных комбинаций может уйти уйма времени. Единственное решение - отказаться от планов использования данной конфигурации. (Тот же эффект может проявляться в ситуации, когда среди модулей есть "нестандартные", подробнее об этом ниже в разделе про несовместимость с системой.)
- Незаконченная или неверная сборка. Очень часто при обеспечении доступа к слотам SIMM приходится отсоединять различные шлейфы, карты расширения и т.п. Один забытый или неправильно присоединенный шлейф вполне может привести к отказу системы грузиться.
- Система не переконфигурирована. Иногда после установки дополнительной памяти требуется либо изменить установки в BIOS Setup (обычно в случае, когда они находились не в состоянии автоконфигурации), либо запустить специальную конфигурационнную утилиту (это в основном касается систем с шиной EISA).
- Модули несовместимы с системой. Речь о ситуации, когда модули работают в другом компьютере, но принципиально не желают работать в данном. Решение - замена модулей на те, которые будут работать (не считая ситуации с незаполненным банком). Примерный список встречающихся причин несовместимости:
- Незаполненный банк. Очень распространенная ошибка во времена перехода от 486-х процессоров к Pentium, когда постоянно делались попытки запустить Pentium-систему с одним SIMM. Также иногда пытаются расширить парой модулей некоторые серверы, у которых банк состоит из четырех SIMM. Решение - либо поменять SIMM на пару вдвое меньшей емкости, либо добавить еще один такой же.
- Время доступа. Устанавливаемые модули слишком медленны, чтобы система работала нормально. Иногда ее все же можно заставить функционировать путем принудительного снижения параметров, связанных со временем доступа, в BIOS Setup, но решение это особо удачным назвать нельзя.
- Неверная организация или отсутствие контроля четности. Система требует модули с контролем четности, а устанавливаемые SIMM либо не имеют битов четности, либо имеют, но неподходящей организации (например, 36-битные ECC SIMM или "логическая четность"). Необходимо либо, если это возможно, отключить контроль четности, либо (для серверов это единственный разумный путь) применять только память с "истинной" четностью.
- Неподдерживаемая емкость. SIMM 72-пин существуют в емкостях от 1 до 128MB, однако по существу единственная емкость, которую должны понимать любые системы, это 4MB. Современные системы могут не распознавать модулей меньшей емкости, а достаточно старые - большей (особенно это относится к 64 и 128MB модулям), в том числе и вплоть до отказа грузиться.
- Неподдерживаемая двухбанковость. Иногда, особенно в старых системах, двухбанковые SIMM не поддерживаются и даже не распознаются. То есть, к примеру, могут распознаваться SIMM 4 и 16MB, но не 8MB.
- Неподдерживаемый режим работы. Один из классических случаев несовместимости - ситуация, когда память EDO не работает в системах, созданных еще до появления этого стандарта. Нельзя исключить и возможности существования систем, не способных работать с fast page и требующих только EDO.
- Нестандартные модули. Устанавливаемые модули не являются JEDEC-совместимыми (по крайней мере по части соответствия общепринятым понятиям стандартного SIMM, хотя и претендуют на это соответствие). К модулям такого типа могут относиться композитные SIMM, "логическая четность", модули с необычным для своего класса параметром refresh или числом банков, имеющие чипы с напряжением питания 3.3В и ряд других более редких случаев. Многие из вышеуказанных модулей описаны в разных вопросах FAQ по модулям.
- Необъяснимая несовместимость. К сожалению, время от времени случается ситуация, когда некие модули памяти принципиально не желают работать в некоторых системах или материнских платах. Обычно в некоей партии материнских плат не работает ни один из некоей партии SIMM, причем сами по себе ни та, ни другая партии больше не проявляют никаких проблем (то есть SIMM, к примеру, прекрасно работают в любых системах, в том числе и более высокого класса, а платы прекрасно "понимают" абсолютно аналогичные модули). По всей видимости, проблема объясняется тем, что какой-нибудь рабочий параметр (возможно, очень тонкий временной или электрический) имеет отклонения (не исключено, что и допустимые стандартом) у данной партии чипов в одну сторону, а партии чипсетов - в другую. Ввиду большой редкости и относительно легкой решаемости (путем замены памяти на аналогичную из любой другой партии) случай не представляет особой общественной опасности.
Вышеприведенные причины в основном исчерпывают круг проблем, которые решаются просто применением "правильных" модулей из числа широко представленных на рынке. В отдельном вопросе рассмотрена ситуация, когда система не распознает никакие (или почти никакие) из "стандартных" представленнных на рынке модулей.
{mospagebreak}
Я установил в свой компьютер новый модуль DIMM 168-пин, но система его не видит (или не загружается). Чем это может быть вызвано?
Сразу же отметим, что если речь идет о SDRAM DIMM - то, возможно, ответ находится в отдельном вопросе. Если ваш модуль принадлежит к типу fast page или EDO - опять же сначала рекомендуется ознакомиться с отдельным вопросом, подробно рассматривающим описанную ситуацию на примере 72-пиновых SIMM. Если оставить в стороне некоторые проблемы, не свойственные DIMM, то практически все, сказанное там, применимо и к данному случаю. Ниже же приводятся некоторые проблемы, уникальные или особо характерные именно для DIMM, так что на них следует обратить особое внимание.
- Неправильная буферизованность. 168-пиновые DIMM существуют в буферизованной и небуферизованной разновидностях, которые не являются взаимозаменяемыми. В обычной ситуации модуль с неверной буферизованностью установить невозможно по причине несоответствия ключей, но иногда DIMM выпускаются с "универсальным" ключом, так что возможность установить неправильный модуль имеется.
- Неправильное напряжение питания. Применимо все сказанное выше про ключи. DIMM, рассчитанный на напряжение 3.3В, скорее всего будет работать в 5-вольтовом слоте, но обратное маловероятно.
- Неверный или отсутствующий SPD. В то время, как для SIMM вопрос PRD даже не рассматривался в общей группе по причине того, что читающие его системы встречаются крайне редко, SPD у DIMM читается довольно часто, и его отсутствие может играть роковую роль.
- Неверное число банков для 64MB модуля. 64-мегабайтные DIMM существуют в двух разновидностях - более ранней двухбанковой (32 или 36 чипов) и более современной однобанковой (8 или 9 чипов). Ситуация, когда система способна работать с DIMM только одной из этих двух разновидностей (обычно это однобанковая), встречается довольно часто, соответственно другая разновидность не заработает. Следует свериться с мануалом.
Моя система оснащена стандартными разъемами под SIMM (DIMM), однако приобретенную мной память физически невозможно туда установить. Чем это может быть вызвано и что следует делать?
Ситуация, когда SIMM невозможно установить в систему, встречается не так уж и редко. Причины тому могут быть самые разные, и для одних и тех же SIMM могут, например, находиться в зависимости от того, под каким углом они вставляются в конкретный разъем и под каким фиксируются в защелке (а углы эти в зависимости от конструкции платы и разъема могут быть в диапазоне 0-180o). Вот их примерный список:
- Необычно "толстая" печатная плата, так что модуль попросту "не влезает" в разъем до конца. В действительности практически всегда его все-таки можно установить, попросту приложив небольшое усилие, ничем особенным это не грозит.
- Модуль слишком высокий и упирается в другие устройства, находящиеся внутри корпуса компьютера. Проблема более чем известная, в том числе и для некоторых brand-name устройств. Решение относительно простое - нужно применять SIMM low-profile (так называются 72-пиновые модули высотой 1 дюйм, то есть 2.5 см) которые даже более распространены, чем "высокие", хотя для модулей с относительно большим числом чипов найти low-profile версию не всегда легко. Более того, SIMM на базе чипов 1х16 зачастую еще "ниже", больше напоминая по высоте 30-пиновые модули.
- Иногда в сильно наклоненные разъемы невозможно установить "двусторонние" SIMM (или SIMM с чипами, установленными на "необычной" стороне, но это уже само по себе крайне редкое явление), так как они не проходят "по толщине". Варианты решения проблемы - попробовать найти одностороннюю версию (впрочем, для 32MB это практически из области фантастики), найти SIMM, собранный из TSOP (хотя и это чрезвычайная экзотика, если не считать встречающихся иногда модулей из чипов с напряжением 3.3В, которые, увы, рекомендовать невозможно), наконец, попробовать набрать ту же конфигурацию "односторонними" модулями вдвое меньшей емкости (это тоже не всегда возможно по причине недостатка слотов, но зачастую это самое простое решение).
- Наконец, встречается также ситуация, когда чипы на модуле расположены слишком низко (то есть слишком близко к контактам, нормой являются примерно 3 мм от нижнего края SIMM, хотя некоторым разъемам и этого может не хватать) и упираются в разъем. Стандартное решение - найти другие модули, чипы на которых расположены "повыше" - обычно это несложно.
Что же касается DIMM (не столь важно, long или SO), то причина обычно более прозаическая. Дело в том, что ключи на этих модулях не позволяют им устанавливаться в системы, рассчитанные на использование модулей другого стандарта (речь обычно идет о напряжении питания, а в случае "длинных" DIMM также и о буферизованности). Соответственно проблемы как бы и не существует - следует просто применять другие модули с правильными ключами (и, как следствие, параметрами). Рекомендации по поводу того, как следует поступать в том редком, но все же встречающемся случае, когда "правильный" DIMM имеет "неправильный" ключ, содержатся в FAQ по модулям.
{mospagebreak}Правда ли, что японские компьютеры используют другой стандарт SIMM 72-пин, и в чем состоит отличие?
Как это ни удивительно, дела обстоят (или по крайней мере обстояли) именно так. Хотя системы, изготовленные непосредственно в Японии и/или для японского рынка, в наших краях встречаются крайне редко, практика показывает, что, хотя разъемы для установки памяти в этих системах и производят впечатление совершенно стандартных, стандартные же 72-пиновые SIMM установить в них невозможно. Весь фокус заключается в том, что ключ (см. FAQ по модулям) посередине разъема у японских систем заметно выше, чем у "остального мира", и это служит чисто механическим препятствием для установки "чужих" модулей (кстати, как нетрудно догадаться, японские модули при этом прекрасно устанавливаются в чужие гнезда).
Очень трудно сказать, чем именно вызвано такое расхождение. Часто встречающаяся версия, что все предпринято с целью защиты внутреннего рынка, представляется не слишком убедительной - в защите рынка подобным образом могут быть заинтересованы японские производители памяти, но уж никак не производители компьютеров, которые, собственно, и устанавливают в свои системы подобные разъемы. К тому же введение 72-пиновых SIMM происходило в условиях жесточайшего дефицита на DRAM, так что протекционизм (напомним - японские SIMM прекрасно устанавливаются в чужие системы) мог иметь только отрицательные последствия. Скорее всего, мы имеем дело просто со случайно установившейся разницей в стандартах.
Как бы то ни было, владельцам "японских" компьютеров нередко приходится сталкиваться с серьезными трудностями при попытке произвести upgrade памяти. Посоветовать им можно одно из двух. Первый путь - это терпеливо искать модули с "японским вырезом". В действительности встречаются они не так уж и редко, особенно среди модулей, сделанных японскими производителями (только надо иметь в виду, что особой связи между маркировкой чипов и производителем модуля нет, см. FAQ по модулям). Их несложно определить визуально - если стандартный SIMM имеет посередине вырез практически полукруглой формы (т.е. высотой 1.5 мм), то у "японского" SIMM к ключу больше подходит слово "прорезь" высотой около 5 мм. Второй метод, рекомендуемый с большими оговорками - вооружиться напильником и самостоятельно "японизировать" уже имеющийся модуль или, наоборот, подпилить выступ на разъеме. Кое-какие соображения по поводу того, как это следует делать и стоит ли делать вообще, содержатся в FAQ по модулям.
Моя система оснащена стандартными разъемами под SIMM 72-пин, однако мне, несмотря на многочисленные попытки, никак не удается подобрать SIMM, которые бы в ней работали. Что делать?
Для начала хотелось бы отметить, что все изложенное ниже имеет смысл читать только при условии, что попытки действительно были многочисленными и в них участвовал достаточно широкий ассортимент SIMM разных емкостей, организаций цикла и схем контроля четности (вариант - устанавливаемые модули по организации и характеристикам чипов визуально ничем не отличаются от уже установленных). Если неудачными были две-три попытки инсталляции случайных модулей, тем более если вы только что вставили первый SIMM и он вопреки светлым ожиданиям не заработал - ознакомьтесь сперва с вопросом, описывающим простейшие (и наиболее часто встречающиеся) случаи несовместимости.
Потенциальные причины несовместимости рассортированы по нескольким группам, а внутри каждой группы - по конкретным системам, для которых они характерны (там, где это возможно). Понятно, что гарантировать присутствие всех "проблемных" систем в этом списке невозможно. Поэтому даже если вы не нашли своего устройства - в любом случае (за очень редкими исключениями) воспользуйтесь общим рекомендуемым способом решения проблемы - а именно, закажите память либо у производителя системы (или его дилера), либо у профессионального продавца специфической памяти.
Представляется возможным выделить следующие группы причин:
- PRD. В отличие от хорошо известной ситуацией с SPD для 168-пиновых DIMM, системы, считывающие PRD 72-пиновых SIMM, относительно редки (хотя если рассматривать не только компьютеры, то редкость не столь уж велика). По сути, проблемы с PRD относительно легко решаются либо путем отыскания SIMM с правильным PRD (см. FAQ по модулям), либо даже самостоятельной доработкой модулей (другой вопрос в FAQ по модулям). Возможно, и проблем-то было бы намного меньше, если бы не ситуация, при которой целый ряд систем не признают PRD на 60нс - а у современных модулей если и есть PRD, то обычно именно шестидесятинаносекундное. Примеры систем:
- многие модели IBM, в основном серий PS/2 и PS/1 с процессорами класса 386 и 486. Наиболее неприятная ситуация, так как IBM использовала свой стандарт PRD, не всегда совпадающий с общепринятым (мало того, отдельные системы считывали также PRD с дополнительного пятого пина). Насколько можно судить, IBM-овский PRD также рапортовал емкость модуля (и в этой части полностью совпадал с JEDEC) и его время доступа (тут были расхождения), причем последнее предположительно выбиралось из 70 и 80нс. Известно, что этими компьютерами распознавались SIMM 1x36-80, 2x36-70 и 4x36-70 с корректным PRD, хотя и неясно, какое время доступа они имели согласно IBM-овской таблице PRD. Кстати, все эти модели обязательно требовали SIMM с четностью.
- платформа Intel Xpress и различные ее версии (Deskside MX, XXpress и т.п.), а также системы на ее основе (в частности, HP NetServer LM). Требуются SIMM с четностью и корректно выставленным PRD по емкости, а также с обязательно выставленным временем доступа 70нс (или 80нс для 4 и 8MB). Устанавливаются парами, официально обязаны иметь луженые контакты.
- принтеры и плоттеры HP, включая LaserJet серий 4, 5 и 6 (кроме младших моделей L), а также большинство DesignJet, некоторые DeskJet и ряд других. Требуются SIMM без четности (с четностью в некоторых более старых моделях, например, LaserJet 4 без буквенного индекса) с корректным PRD по емкости и соответствующим 70 или 80нс по времени доступа (надо также иметь в виду, что младшие модели могут не распознавать 32MB или даже 16MB SIMM).
- плоттеры NovaJet от ENCAD - требуется корректный PRD по емкости.
- Необычное количество или устройство контрольных бит. Имеются в виду системы, которые (как правило для поддержки ECC) требовали использования модулей с шириной шины более чем 36 бит (известны 39 и 40-битные разновидности) или ECC-on-SIMM. К первой группе относится целый ряд достаточно старых рабочих станций и серверов (например, некоторые системы IBM или ранние серверы AST Manhattan), к другим - некоторые hi-end Pentium-серверы (IBM, Digital, HP). Последние обычно способны работать со стандартной памятью х36, но только при условии, что модули ECC-on-SIMM в системе отсутствуют, а они традиционно входили в стандартную поставку.
- Необычный размер банка. Многие серверы и рабочие станции высокого уровня требовали заполнения банка как минимум четырьмя (или даже восемью) одинаковыми модулями одновременно. Как результат, попытка установки традиционнной "пары" SIMM результата дать не может. При установке памяти в такого рода системы рекомендуется обязательно ознакомиться с мануалом.
- Требуются не-JEDEC SIMM. Ряд систем, в частности некоторые принтеры Tektronix и NewGen, имеют стандартные 72-пиновые слоты расширения памяти, но то, что в них устанавливается, не является SIMM в привычном понимании этого слова и не распознается никакой системой или даже тестером. Вероятнее всего попросту применен нестандартный pinout, что в сочетании со сравнительно низким спросом (что делало бессмысленным реинжиниринг этих модулей generic-производителями) позволяло данным компаниям содрать с несчастных пользователей безумные деньги за расширения памяти (именно безумные - модуль может стоить раз в 10 больше, чем напаянные на нем чипы).
- Требуются не DRAM SIMM. Иногда в форм-факторе SIMM могут быть выполнены устройства, никакого отношения к DRAM не имеющие. Как результат, установка в предназначенные для них слоты обычных SIMM ничего не даст. Один из примеров - flash SIMM, используемые некоторыми роутерами Cisco для хранения операционной системы. Другой, более редкий - SRAM SIMM, применявшиеся некогда в материнских платах (кстати, фантастически быстрых для своего класса 486-х процессоров) производства некоей фирмы, название которой сейчас вспомнить уже не удается.
Ответ на вопрос "Что делать?" существенно зависит от того, в какую из групп попадает ваша система и смогли ли вы ее найти здесь вообще. Тем не менее, как уже упоминалось выше, в большинстве случаев проблема решается путем заказа памяти либо у производителя систем, либо у профессионального продавца специфической памяти. Это почти всегда возможно, так как нестандартные решения в области модулей памяти по плечу обычно лишь более или менее признанным брандам, которые имеют и соответствующую поддержку.
{mospagebreak}
После установки дополнительной оперативной памяти система стала работать заметно медленней, хотя естественно было бы ожидать обратного. Чем это может быть вызвано?
Для начала следует убедиться, что система "видит" БОЛЬШЕ памяти, чем это было до upgrade - чудеса с допустимыми конфигурациями (особенно в старых системах) могут дать и обратный результат. Далее - убедитесь, что вновь установленная память имеет параметры не хуже, чем уже имевшаяся (и чем те, которые требуются для нормальной работы системы). Сделать это можно как путем внешнего осмотра чипов, так и посмотрев на результаты автоконфигурации в BIOS setup (старой памяти, новой и обеих вместе). Если вам кажется, что вновь установленная память распознается контроллером как более медленная, чем это следует из маркировки - попробуйте выставить необходимые параметры (режим, время доступа или waitstate) вручную - хотя скорее всего контроллер все-таки был прав и это приведет к сбоям. Также (особенно это относится к контроллерам, позволяющим вручную выставлять waitstate) не исключено, что до upgrade подсистема памяти работала в более быстром, чем "по умолчанию", режиме, но вернулась в последний в результате переконфигурации.
Впрочем, нередко встречается и совершенно другая (причем, к сожалению, неизлечимая) причина - дело в том, что реально наблюдаемое быстродействие подсистемы памяти в значительной степени обусловлено применением кэша. Беда же заключается в том, что многие относительно недавние чипсеты позволяют кэшировать объем оперативной памяти, который сейчас многими воспринимается как лишь необходимый минимум (например, большинство Pentium-чипсетов не позволяют кэшировать более 64MB). Если суммарный объем памяти превышает это значение, очень может статься, что часть виртуальной памяти, выделенная под определенную программу, является некэшируемой - что действительно приведет к заметному невооруженным глазом падению производительности безо всяких признаков "свопирования".
Наконец, значительно реже, но все же встречается ситуация, когда после установки новых модулей система начинает работать с меньшим коэффициентом interleave (в том числе и меньшим единицы, то есть с неполным банком, см. вопрос). Это также может заметно уменьшить производительность.
После установки дополнительной оперативной памяти система стала работать нестабильно. Что делать?
Если под нестабильностью понимаются происходящие время от времени сбои, которых раньше не наблюдалось - с подавляющей вероятностью новая память имеет какие-то дефекты и нуждается в замене! На всякий случай следует убедиться, что при удалении "новой" памяти способность системы работать нормально восстанавливается. Не исключено, что принудительное ухудшение параметров подсистемы памяти в BIOS setup способно снять проблему, но в сущности описан типичный гарантийный случай.
Почему память EDO часто не работает в старых компьютерах и можно ли сделать, чтобы она работала?
Вскоре после появления на рынке памяти EDO одной из самых распространенных жалоб, которые доводилось слышать человеку, занимающемуся памятью, была: "Ну как же так, про EDO говорят, что она полностью совместима с fast page (тогда скорее говорили - "с обычной"), но почему-то она отказывается работать в моем компьютере!" Интуиция уже тогда подсказывала ответ - виноват не столько стандарт EDO, сколько контроллеры старых компьютеров, которые, работая с памятью типа fast page, используют процедуру доступа, не предписанную стандартом, а основанную на некоторых предположениях, верных для fast page, но не выполняющихся для EDO. В принципе, этот ответ вполне может оказаться достаточным, и нижеследующие технические подробности можно просто опустить.
Более подробный ответ хотелось бы начать с того факта, что память EDO имеет от памяти fast page одно-единственное отличие. Если для последней линии ввода-вывода данных немедленно закрывались, как только начиналось задание адреса следующего бита (зарядка CAS в fast page схеме), то EDO (Extended Data Out) режим позволяет держать эти линии открытыми практически вплоть до окончания ввода нового адреса и соответственно начала вывода следующего бита. Тем самым память EDO разрешает одновременно считывать данные и задавать адрес следующих данных, что в свою очередь позволяет сократить длительность цикла доступа путем использования конвейерной схемы.
Основная же неприятность происходит как раз из того факта, что память fast page автоматически закрывает шину данных при задании нового адреса. В результате для упрощения и ускорения работы большинство PC-контроллеров памяти (в том числе ВСЕ базирующиеся на форм-факторе 72-пиновых SIMM) отказались от использования линии Output Enable для контроля "открытости" линий ввода-вывода, предпочтя контроль посредством линии CAS. При этом системная шина, "свободная" с точки зрения памяти, открывалась для доступа другим подсистемам компьютера - таким, как кэш или контроллер жесткого диска, или, к примеру, другим "подбанкам" памяти, если использовался режим interleave.
С появлением же EDO предположение, что зарядка CAS закрывает линии ввода-вывода, перестало быть верным. Если же неосведомленные об этом контроллеры пытались открыть шину для других устройств, немедленно происходила порча данных, передаваемых этими устройствами, что естественно порождало остановку системы. Для нормального функционирования памяти EDO обязательно требовались контроллеры, об этом ее свойстве "осведомленные" (хотя и необязательно поддерживающие конвейерный EDO-режим). Такие контроллеры, что неудивительно, появились не ранее, чем стандарт EDO был официально признан. Забавно, что они по-прежнему не использовали линию Output Enable, поскольку ставшие к тому времени стандартом де-факто 72-пиновые SIMM этого не предусматривали.
Таким образом, неспособность многих разработанных "до EDO" систем работать с этой памятью является болезнью практически неизлечимой. Чисто теоретически можно предположить существование чипсетов, которые (хотя бы после апгрейда BIOS) допускали бы поддержку EDO путем изменения способа контроля открытости линий ввода-вывода с fast page на характерный для EDO, но на практике этого встречать не доводилось. Так же теоретически некоторые системы с interleave могли бы приобрести возможность распознавать EDO после принудительного отключения interleave (либо просто заполнения банков по исключающей interleave схеме), но особой практической ценности не имеет и это решение. Во-первых, отмена interleave может означать значительное падение производительности. Во-вторых, обычно interleave поддерживался системами серверного класса, для которых характерно применение памяти с четностью - соответствующие же модули EDO так и остались экзотикой.
К несчастью, память fast page в настоящее время близка к полному исчезновению с рынка, так что upgrade не поддерживающих EDO систем со временем будет становиться все более и более проблематичным. Единственная относительно хорошая новость для владельцев старых компьютеров заключается в том, что нередко высказывающиеся опасения, что память EDO, будучи установлена в их систему, может привести к сбоям в работе, не имеют под собой реальных оснований - EDO SIMM либо бесповоротно откажутся работать еще на стадии загрузки, либо будут работать, не порождая каких-либо специфических проблем.
{mospagebreak}Какие особенности следует иметь в виду при расширении памяти в ноутбуках?
Сам по себе процесс установки дополнительной оперативной памяти в некоторые ноутбуки может занимать около минуты - отщелкнуть малоприметную крышечку на корпусе, вставить модуль памяти, включить ноутбук и убедиться, что все работает. Тем не менее процесс целиком, включая время на приобретение дополнительной памяти, а также разрешение проблем, если таковые возникнут при установке, может оказаться очень длительным и трудоемким. В основном проблемы связаны с тем обстоятельством, что в портативных компьютерах, в частности для повышения компактности и длительности автономной работы, нередко используются нестандартные технические решения, причем это особенно характерно именно для подсистемы памяти. Поэтому прежде, чем принимать решение об upgrade памяти ноутбука, а равно и решение о приобретении ноутбука с тем или иным количеством памяти, и в особенности прежде, чем совершать конкретные шаги в этих направлениях, рекомендуется убедиться, известно ли вам, что:
- Ноутбуки, в отличие от настольных компьютеров, чаще всего расширяются нестандартными модулями памяти. Некоторые следствия этого обстоятельства:
- Цена памяти в пересчете на мегабайт может оказаться заметно выше, чем для традиционных SIMM или DIMM.
- Далеко не очевидно, что модуль удастся быстро купить на условиях "со склада" - нужно быть готовым к тому, что придется сделать предоплату и несколько недель ожидать прихода товара.
- Очень может быть, что для достаточно старых или малораспространенных ноутбуков, а также систем малоизвестных и вышедших из бизнеса производителей, приобрести память не удастся вообще. Как правило, generic-производители (см. соответствующий документ) все же имеют в каталогах память для основных brand-name ноутбуков, но существуют модели, которые не поддерживаются и ими (обычно по причине применения в модулях памяти совсем уж нестандартных комплектующих).
- Чаще всего ноутбуки имеют 1 или 2 слота (реже - банка из двух слотов) расширения памяти, причем даже единственный слот может быть уже занят модулем. С другой стороны, базовое количество памяти может быть напаяно на материнской плате (on-board) и, как следствие, неизвлекаемо. Поэтому количество возможных конфигураций памяти, которые вы могли бы получить, сильно ограничено, при этом весьма вероятно, что после апгрейда у вас останется "лишний" модуль, реализовать который будет нелегко. Рекомендуется озаботиться возможностью апгрейда еще в момент приобретения ноутбука, и уж во всяком случае прежде, чем приобретать память.
- В то время, как у некоторых ноутбуков слоты расширения памяти легко доступны и установка памяти очень проста, многие модели требуют довольно тонкой и аккуратной работы по разборке и последующей сборке.
- Многие ноутбуки, особенно старые модели, неспособны автоматически распознать установленную дополнительную память и/или переконфигурировать систему для ее использования. Обычно с такими системами поставлялась дискета со специальной конфигурационной утилитой. Она может вам понадобиться (чаще всего утилиты доступны на сайтах производителей).
- Маркировка производителями выпускаемых ими ноутбуков нередко крайне запутана - иногда модели, отличающиеся лишь одной буковкой в очень длинном названии, расширяются совершенно разными модулями. Поэтому вероятность по ошибке купить "не ту" память довольно велика (а ликвидность "не того" модуля крайне мала). По этой причине (особенно если вы делаете предоплату) рекомендуется сообщить продавцу как можно более подробные сведения о вашей модели.
- Нередко (особенно это касается ноутбуков, память которых расширяется посредством memory card) встречается ситуация, когда расширение оперативной памяти путают с PCMCIA-картами flash или SRAM. Надо иметь в виду, что последние функционально являются несколько более быстрыми аналогами дискеты (или, скажем, ZIP-drive) и никак не способны повлиять на производительность системы. Не следует также пытаться устанавливать memory card в слоты PCMCIA или наоборот.
Существуют ли ноутбуки, оперативная память которых расширяется посредством обычных SIMM 72-пин?
Да, существуют, доводилось встречаться по крайней мере с двумя моделями - ноутбуки Canon NoteJet (те, которые со встроенным принтером) и некая локализованная для японского рынка (и, возможно, вообще не имеющая аналога в остальном мире) модель IBM. Обе модели на базе 486 процессора, и относительно безболезненно можно было добавить разве что 4MB SIMM в Canon - стандартные 8MB не распознавались никакими системами (да толком туда и не устанавливались, будучи двусторонними), а IBM-овская модель еще и требовала "японского ключа" (см. вопрос). Так что всерьез рассчитывать на то, что ваш ноутбук (если это не упомянутый выше Canon NoteJet) расширяется стандартными SIMM 72-пин, не стоит. Не исключено, впрочем, что расширение памяти вашего ноутбука все же можно произвести стандартными модулями, а именно SO DIMM (об этом говорится в отдельном вопросе).
В свое время, кстати, существовали и ноутбуки, память которых расширялась посредством 30-пиновых SIMM.
Как мне узнать, чем расширяется память моего ноутбука - специфическими модулями или же стандартными SO DIMM, и какими именно?
Сразу же возникает встречный вопрос - а действительно ли вам нужна подобная информация? Дело в том, что даже если upgrade вашего ноутбука действительно производится посредством SO DIMM, это еще не означает, что случайно взятые модули, даже более или менее подходящие по описанию, будут в нем работать. Особенно это касается 8MB 72-пиновых DIMM, существующих в однобанковой и двухбанковой разновидностях, не обязательно взаимозаменяемых, но у определенных моделей ноутбуков могут быть и другие проблемы, связанные с емкостями, числом модулей в банке и т.п. Поэтому в случае, если вы не располагаете достаточным опытом в этой области, я бы рекомендовал в первую очередь рассмотреть возможность закупки модулей "под конкретную систему" - у самого бранда, поставщика ноутбука или фирмы, профессионально (а не "в ассортименте") торгующей памятью.
Можно также попытаться найти информацию на сайте производителя ноутбука.
В самом крайнем случае (например, ноутбук "безымянный" и SO DIMM - единственный шанс расширить память) полезным может оказаться внимательное изучение разъемов под модули памяти.
Объясните, почему моя система видит вновь установленный модуль памяти "не полностью"?
В общем ситуация довольно очевидная - модуль либо "недостаточно" исправен, либо "недостаточно" совместим. Более подробно:
- Неисправность. Эффект "неполной видимости" часто наблюдается в современных системах при "объемной" неисправности одного из чипов (например, не работает одна из линий ввода-вывода) или обрыве какой-либо из дорожек печатной платы, приводящем к невозможности функционирования одного из банков двухбанкового модуля. Есть довольно большая вероятность, что при постоянной невозможности считать записанное в банк слово контроллер попросту сочтет этот банк несуществующим и будет работать с модулем как с однобанковым. В этом случае будет видна только половина емкости модуля.
Более редок случай, когда неисправна "старшая" адресная линия модуля либо одного из чипов. Здесь есть шансы, что модуль будет распознан как имеющий на одну адресную линию меньше - то есть как модуль вчетверо меньшей емкости. Поломка любой другой адресной линии модуля скорее всего приведет к его полному отказу работать.
- Несовместимость. Эффекты, полностью аналогичные описанным выше, могут наблюдаться, если контроллер попросту не приспособлен к работе с "лишним" банком либо "старшей" адресной линией. Двухбанковые SIMM не распознавались многими системами класса 486, а 168-пиновые DIMM некоторых емкостей официально существуют в одно- и двухбанковой разновидностях, причем последняя распознается правильно далеко не всеми контроллерами. Что касается емкостей - достаточно старые системы могут не распознать модули с адресным пространством 4 мегабит (SIMM 4х32 и выше), а недостаточно новые - с адресным пространством 16 мегабит (SIMM 16x9, 16x32, DIMM 16x64 и выше).
Нередко бывает также, что на распознавание модуля влияет присутствие в системе какого-либо другого модуля (как правило, с другой конфигурацией банков). Некоторые частные случаи, когда упомянутые модули установлены в один банк материнской платы, описаны в соответствующем вопросе (в том числе и забавный случай, когда "не полностью" видны оба модуля). Тем не менее эффекты подобного рода могут наблюдаться и при взаимном влиянии модулей из разных банков, особенно для 486 устройств и особенно если один из модулей является отклонением от стандарта - например, "однобанковый 8MB SIMM" (см. FAQ по модулям) или относительно редко, но встречающиеся SIMM, у которых задействован не тот банк (то есть линия RAS), что обычно. Иногда проблему можно решить путем изменения распределения модулей по банкам (правильная конфигурация может быть указана в системном мануале).
Упомянутый выше "однобанковый 8MB SIMM" и сам по себе иногда может быть распознан, как 4MB. К другим экзотическим случаям можно отнести ситуацию, когда контроллер считывает PRD (см. FAQ по модулям), а на модуле почему-то выставлен PRD меньшей емкости.
В последнее время нередки сообщения о распознающихся не полностью SDRAM DIMM, подробности см. в отдельном вопросе.
{mospagebreak}
Можно ли устанавливать в одну систему модули памяти разного происхождения?
Безусловно. Более того, практически любой upgrade памяти, возможность которого изначально заложена в конструкцию, подразумевает неявным образом именно такую ситуацию, так как было бы наивно предполагать, что модули, которые будут ставиться в систему спустя несколько лет после ее покупки, вдруг окажутся "одного происхождения" с уже имеющимися. Соответственно как минимум против установки в РАЗНЫЕ банки модулей, скажем так, одинаковой природы возражений нет и быть не может.
Более того, как правило, в одну и ту же систему, но в разные банки, можно безболезненно устанавливать модули памяти разного типа (при условии, что каждый из них по отдельности системой поддерживается, исключение здесь составляют рассмотренные в отдельном вопросе системы, поддерживающие одновременно SIMM и DIMM). При этом в зависимости от контроллера будет происходить одно из двух - либо вся подсистема памяти будет работать так, как если бы все параметры (время доступа, организация цикла, контроль четности) всех модулей имели "наинизшее" для установленных модулей значение, либо даже каждый банк памяти будет работать с оптимальными для себя параметрами. Впрочем, некоторые системы определяют тип памяти по первому банку, так что слабейшие по параметрам модули следует устанавливать именно туда. Не исключена также ситуация, при которой "наинизшие" параметры понадобится выставить вручную в BIOS Setup. Подробности должны содержаться в системном мануале, с которым в любом случае полезно ознакомиться, чтобы убедиться, что устанавливаемая конфигурация (с точки зрения емкостей) вообще поддерживается системой.
Ситуация, когда разные модули устанавливаются в ОДИН банк, рассмотрена в следующем вопросе.
Можно ли устанавливать в один банк модули памяти разного происхождения?
Существует очень простое формальное правило, предписывающее устанавливать в один банк памяти (при условии, что он состоит из нескольких модулей) только одинаковые (то есть происходящие из одной партии, как следствие, неотличимые визуально) модули. Подавляющее большинство людей, которым когда-либо доводилось производить upgrade памяти, правило это знают и стараются его придерживаться. Но время от времени возникает ситуация, когда имеется необходимость установить в один банк модули разного происхождения. Можно ли это делать?
Достаточно неожиданный для многих ответ заключается в том, что делать так можно, причем сравнительно безбоязненно, особенно если речь идет всего лишь о модулях с идентичными характеристиками, но происходящих из разных партий. Более того, возьму на себя смелость утверждать, что в системах класса Pentium и выше (применительно к которым обычно и задают сейчас этот вопрос) можно практически без последствий смешивать почти любые модули памяти (при условии, конечно, что система вообще их поддерживает). На всякий случай напомню, что до недавнего времени стандартный банк памяти в таких системах представлял собой два 72-пиновых SIMM. Мне доводилось неоднократно (в основном с целью тестирования одиночных образцов) заполнять банки в Pentium-плате совершенно разными SIMM, и при этом я не могу припомнить случая, когда эти SIMM (при условии, конечно, что оба они исправны) отказывались работать или сбоили.
Дело, в сущности, в том, что правило "одинаковых" модулей происходит из времен 386-х процессоров, когда в банки устанавливалось аж по 4 30-пиновых SIMM, а возможности контроллеров осуществлять автоматическую конфигурацию были, скажем так, ограничены (в действительности я не могу припомнить проблем и с установкой в один банк разных 30-пиновых модулей, хотя здесь мой опыт и нельзя назвать исчерпывающим). Поэтому зачастую контроллер мог пытаться заставить весь банк работать со скоростью, грубо говоря, первого попавшегося SIMM (а скорее даже чипа или линии ввода/вывода, поскольку деление банка на физические модули контроллер мало интересует), в то время как другие модули могут оказаться заметно медленнее. При этом считается (не без оснований, хотя и без стопроцентной уверенности), что разброс параметров внутри одной партии модулей, а фактически - чипов, заметно меньше, чем между случайно взятыми модулями. Более же современные контроллеры, применяемые в Pentium-системах, при автоконфигурации тестируют обычно весь банк и настраиваются на параметры наихудшего чипа (или модуля, если речь идет, например, о контроле четности).
Таким образом, скорее всего не вызовет никаких проблем установка в один банк SIMM одной емкости, но:
- разного происхождения (в том числе и модулей на базе чипов разной организации, например, 1х4 и 1х16).
- с разным маркированным временем доступа, если, конечно, система способна работать с наихудшим из них. Между прочим, какой из двух модулей памяти с чипами, маркированными, скажем, 60 и 70нс, способен работать быстрее - сам по себе неочевидный вопрос, обычно такие чипы сходили с одних и тех же линий и маркировались просто в соответствии с потребностями заказчика.
- с четностью и без четности, при условии, что система поддерживает память без четности. В этом случае контроль четности просто не будет выполняться. Аналогично скорее всего заработают вместе модуль без четности и с логической четностью.
- (с известной долей риска) fast page и EDO - видимо, система будет работать в режиме fast page. Положительный опыт таких экспериментов имеется, но в принципе нельзя отрицать вероятности того, что модуль EDO в этом режиме работать откажется, что нередко происходит в 486-х компьютерах, см. вопрос.
- Одно- и двухбанковые с одинаковой организацией адресного пространства (см. FAQ по модулям, обратите внимание - речь о совсем других банках), например, 1х32 (4MB) и 2х32 (8MB). В этом случае контроллер, не имея возможности обратиться к отсутствующему второму банку 4MB SIMM, будет и 8MB рассматривать как однобанковый. Сответственно, доступны будут только 8MB - но надо заметить, что сам по себе 8MB модуль работать не будет!
- Модули с одинаковым количеством банков, но разной организацией адресного пространства, например 1х36 (4MB) и 4x36 (16MB). Для адресации мегабитного адресного пространства первого модуля (см. FAQ по чипам) требуется 10 адресных линий, четырехмегабитного пространства второго модуля - одиннадцать, но контроллером будут использоваться только 10, как и у первого модуля. Доступны в результате будут опять-таки 8MB, хотя вероятность отказа в этом случае больше.
Теперь несколько слов о комбинациях, способных вызвать проблемы:
- Не должны заработать вместе (при условии, что контроль четности отключить невозможно) SIMM с четностью и ECC SIMM.
- Возможны проблемы, опять же при неотключаемой четности, при применении SIMM c истинной и логической четностью.
- Высока вероятность проблем, если один или оба модуля являются "нестандартными". Имеются в виду, например, композитные (см. FAQ по модулям) или с неквадратным адресным пространством (см. FAQ по модулям) SIMM. Собственно говоря, такого рода модули, как впрочем и упомянутая выше логическая четность, способны порождать проблемы и сами по себе.
Хотелось бы также отметить, что вряд ли целесообразно устанавливать модули разного происхождения в один банк в системах, поддерживающих interleave различных уровней и/или обязательный контроль четности либо ECC - как правило, это достаточно дорогие и ответственные компьютеры серверного класса и определенная перестраховка представляется здесь вполне оправданной. Ну и, наконец, не следует рассматривать ответ на этот вопрос как призыв прекратить обращать внимание на то, какими модулями памяти заполняются банки. Выполнение технических условий, пусть даже кажущихся не слишком разумными, есть само по себе хороший принцип, поэтому применять различные модули в одном банке все же лучше только тогда, когда имеется насущная необходимость. Наконец, даже безупречно работая в паре, разные модули могут, например, породить проблемы как самоочевидная, но ложная версия при диагностике неисправностей (в том числе и при гарантийном обслуживании).
{mospagebreak}
Какое программное обеспечение следует использовать для тестирования работы подсистемы памяти?
Под тестированием вообще говоря можно понимать две не особенно связанные между собой вещи - диагностику неисправностей и измерение производительности. Последний вариант более или менее рассмотрен в следующем вопросе. Очень короткое резюме - теоретическая производительность и так прекрасно известна, практическую же можно измерять только в относительных единицах, только для конкретной конфигурации системы и только на реальных приложениях (или с определенной долей успеха - на бенчмарках реальных приложений, последние и рекомендуются).
Теперь - о диагностике. Вопрос о том, какие программы можно применять для "проверки" модулей DRAM или подсистемы памяти, задают достаточно часто. Довольно грустный ответ заключается в том, что какую-либо конкретную программу порекомендовать практически невозможно. В принципе, в свое время тестирование под DOS было модно производить программами типа CheckIt!, но практически всегда имелись примеры возвращения этими программами некорректных результатов (например, результат тестов того же CheckIt! мог зависеть от наличия или отсутствия в системе некоторых DMA устройств). Провести же тест отдельных участков памяти в Windows вообще не представляется возможным, так как операционная система занимается распределением памяти самостоятельно, не допуская к этому приложения.
На практике для определения работоспособности памяти в спорных случаях (например, при подозрительно частых сбоях или зависаниях системы) обычно применяется, как это ни забавно, сами Windows 95/98/NT. Приведу пример характерного теста памяти: установка Windows, загрузка Windows, полная загрузка оперативной памяти посредством запуска большого числа программ с большими файлами (пока система не начинает "свопить", желательно, чтобы какие-то из них активно работали и в фоновом режиме), некоторое время работы в таком режиме (переключаясь между окнами), перезагрузка в safe mode (если память начинает сбоить при прогреве, что является одной из наиболее распространенных ситуаций, когда точная диагностика затруднена, простейший тест himem это выловит), снова перезагрузка в нормальном режиме, прогон тестов производительности Windows типа Winbench, снова safe mode и так несколько раз. Память, проходящая примерно полчаса подобного теста, практически на 100% работоспособна (в данной системе, конечно, поэтому если тестируется память "извне", параметры тестовой машины должны быть достаточно передовыми, чтобы "напрячь" память по максимуму). Очень хорошо тестируется память при инсталляции NT (а UNIX - еще лучше). Не возбраняется пользоваться встроенными средствами диагностики, которые имеются во многих brand-name системах. Хорошим тестом является продолжительная устойчивая работа ресурсоемкой задачи (наложение сложных фильтров на большой файл в графическом пакете, рендеринг 3D-объектов, архивация очень больших малосжимаемых файлов, некоторые игры).
Методологическое замечание - на практике, особенно в "разогнанных" системах, сбои похожего характера могут давать различные подсистемы компьютера, не обязательно DRAM. Хороший способ убедиться, что проблема именно с памятью - установка в компьютер другой памяти с аналогичными либо лучшими характеристиками и "безупречной репутацией" (то есть нормальной работающей в аналогичной, а еще лучше - более мощной системе либо происходящей от надежного производителя). Если проблемы исчезли - неисправность памяти можно считать доказанной, в противном случае следует направить поиски в другом направлении.
Несмотря на то, что описанные методики не могут не производить впечатления кустарных, хочу подчеркнуть, что ничего лучшего на данный момент неизвестно. Индивидуальному пользователю вряд ли можно порекомендовать индустриальные тестеры памяти - тем более, что обычно и они не являются панацеей, так как помимо тщательного тестирования отдельных линий ввода-вывода, температурных, временных и электрических режимов, а также прогона тестовых паттернов данных в индустрии обязательно применяются и тесты в реальных системах. Естественно, область применения описанных способов тестирования ограничена "обычными" настольными системами - впрочем, более мощные устройства обычно имеют и соответствующие средства встроенной диагностики.
Каким образом применение памяти той или иной организации цикла (fast page, EDO, SDRAM) влияет на быстродействие подсистемы памяти и системы в целом?
Фактически перед нами два вопроса - теоретический и практический, причем ответы на них имеют между собой очень мало общего. Скорее всего, интерес представляет лишь ответ на практический вопрос - насколько быстрее станет работать компьютер, если поменять тип используемой памяти на более передовой? Тем не менее имеет смысл начать с теории.
Предположим, что имеется материнская плата (скажем, на чипсете 430TX), способная поддерживать как SIMM, так и DIMM. Предположим далее, что плата последовательно тестируется при внешней частоте 66 МГц с памятью трех разных организаций цикла - fast page (временная диаграмма 5-3-3-3), EDO (5-2-2-2) и SDRAM (5-1-1-1, но имеет смысл также рассмотреть диаграмму 7-1-1-1, так как первую поддерживают не все модули и не все чипсеты). Предположим далее, что система работает в режиме считывания (или записи) непрерывного потока данных из оперативной памяти. В этом случае на считывание четырех последовательных слов потребуется:
- FPM - 14 тактов
- EDO - 11 тактов
- SDRAM 7-1-1-1 - 10 тактов
- SDRAM 5-1-1-1 - 8 тактов
Теперь перейдем, так сказать, к практической части. Можно ли наблюдать эти воодушевляющие результаты на практике? Иными словами - получить подобный прирост производительности компьютера? Вот здесь ответ отрицательный - на большинстве практических тестов и задач прирост производительности если и будет, то измеряемый единицами процентов. Близкий к теоретическому прирост можно наблюдать только на очень специфических тестах либо классах задач (которые в силу этой самой специфичности представляют слабый интерес), постоянно использующих память в упомянутом "пиковом" режиме, а также в относительно специфических системах (см. ниже). Вот перечень факторов, не позволяющих на практике достичь теоретического предела производительности:
- Производительность компьютера на "обычных" задачах очень часто зависит от производительности подсистемы памяти далеко не в первую очередь и значительно больший вклад в нее могут вносить, скажем, процессор, жесткий диск или видеокарта.
- Производительность подсистемы памяти в "обычном" режиме в первую очередь определяется объемом и быстродействием кэша, а вклад собственно системной памяти значительно меньше.
- Каждый акт "непоследовательного" доступа (а на определенного класса задачах это может случаться довольно часто) сглаживает разницу, так как он потребует 5 тактов для любого из режимов. Более того, на некоторых совсем экзотических задачах SDRAM 7-1-1-1 может оказаться медленнее всех остальных типов.
Несколько парадоксальный вывод заключается в том, что замена памяти в вашей системе на более быструю (не только по режиму, но и, например, по времени доступа) при одной и той же внешней частоте может и не иметь особого смысла, особенно если это сопряжено с серьезными затратами. Естественно, это не относится ко вновь приобретаемым системам или памяти - небольшая разница в цене вполне может в данном случае рассматриваться как инвестиция в будущее.
{mospagebreak}При демонтаже старой системы у меня остались модули памяти SIMM 72-пин, но я не могу найти устройства, в котором бы они заработали. Что здесь можно посоветовать?
На первый взгляд, перед нами зеркальное отражение вопроса о системах, в которых не желают работать никакие 72-пиновые SIMM. В действительности множества модулей, которые способны давать эффекты этих двух типов, имеют не так уж и много пересечений. В целях экономии места, если модули уже были описаны в вышеупомянутом вопросе, в данном будет просто дана ссылка.
Итак, если вы хотели бы разобраться в причинах происходящего и у вас нет основания полагать, что модули неисправны (что вполне может быть, если демонтировалось неработающее устройство), то попробуйте определить, не относятся ли ваши SIMM к какому-либо из данных классов:
- Слишком большое время доступа. Применяемые в настоящее время устройства могут крайне отрицательно относиться даже к времени доступа в 70 нс, не говоря уже о 80 и хуже. При этом, если демонтируется устройство наподобие, скажем, компьютера на базе 386-го процессора, скорее всего ваша память не быстрее, чем 70-80 нс. В FAQ по чипам рассказано, как можно определить время доступа чипов по их маркировке.
- 18-битные модули. В тех же 386-х компьютерах вполне могли быть использованы ранние 18-битные реализации 72-пиновых SIMM. Отличить их можно по необычно малому числу чипов (например, 6 20-пиновых SOJ, см. также FAQ по модулям, где приводится описание "в чипах" нормальных 32- или 36-битных SIMM).
- Необычное количество или устройство контрольных бит. Надо оговориться, что данный случай подпадает под обсуждаемый вопрос только при условии, что вы пытаетесь использовать ваши модули в качестве модулей с четностью (которыми они, безусловно, являются, но не в реализации, понятной большинству контроллеров). К данному классу относятся 36-битные ECC SIMM, ECC-on-SIMM (эти модули описаны в различных вопросах FAQ по модулям), а также, к примеру, модули x33, применявшиеся некоторых станциях Sun.
- Неполное соответствие JEDEC. Помимо упомянутых в предыдущем вопросе, в данный класс следует поместить, например, SIMM композитные, с необычным параметром refresh или числом банков, имеющие чипы с напряжением питания 3.3В и т.п. Ваша система относилась к числу приспособленных для их применения, случайно же взятые, скорее всего, не относятся. Описание таких модулей может быть в FAQ по модулям.
- Не-JEDEC либо не-DRAM SIMM. - примеры систем, из которых такие модули могут быть извлечены, есть в уже упоминавшемся вопросе. К упомянутым там следовало бы добавить использовавшиеся Hewlett-Packard в лазерных принтерах 72-пиновые модули, на которых был установлен ROM, содержащий интерпретатор PostScript или дополнительные фонты.
Что такое interleave и с какой целью он применяется? Что означает коэффициент или уровень interleave?
Interleave, или "чередование" (банков) - один из способов увеличить производительность подсистемы памяти в предположении, что доступ к данным осуществляется последовательно (другими словами, данные записываются в память и считываются оттуда большими массивами, значительно превышающими по объему одну "ширину шины"). Надо сразу заметить, что существует два механизма для создания более быстрой подсистемы памяти. Первый из них - это собственно разработка и применение физически более быстрой памяти (скажем, с временем доступа 60 нс вместо 70). Второй же механизм - логический, то есть улучшение организации доступа к памяти. Именно на этой стадии используется предположение о последовательном доступе. В частности, каждая из технологий fast page и EDO дает при одном и том же времени доступа к случайным данным увеличение пропускной способности именно для последовательного потока данных за счет сокращения времени доступа к адресам, следующим за первым. Механизм этого ускорения нас в данный момент не интересует, важно другое - оба этих типа памяти не в состоянии сами по себе обеспечить непрерывного потока данных с частотой, равной частоте шины, даже для последовательных данных. Например, память fast page в оптимальных условиях в состоянии возвращать данные лишь каждые 3 такта системной шины, то есть втрое медленнее, чем это может быть необходимо процессору. Именно подобные ситуации и являются областью применения interleave.
В принципе довольно многим известно, что на практике interleave означает применение банков памяти с шириной шины больше, чем системная. Рассмотрим для примера простейшую схему interleave 2:1 для подсистемы памяти fast page. Иными словами, если перед нами Pentium-система с 64-битной системной шиной, то "нормальный" банк памяти для нее состоит из 2 одинаковых 72-пиновых SIMM, полностью перекрывающих системную шину. Аналогичная система с interleave 2:1 имеет банк из 4 одинаковых SIMM, то есть дважды ширина системной шины. Условно можно разделить этот банк на два "нормальных" подбанка. Суть метода заключается в том, что контроллер "раскладывает" поступающие данные на эти два подбанка по принципу - "слово" (т.е. число бит, равное ширине шины - именно такие слова и поступают от процессора) в первый подбанк, следующее слово - во второй, следующее - опять в первый и так далее. Ускорение же достигается за счет того, что процессы обмена данными с каждым из подбанков сдвинуты по фазе - иными словами, запись в один из банков происходит в то время, когда другой подбанк находится в "латентном" состоянии (т.е. отрабатывает такты waitstate, в течение которых обмен данными невозможен). Точно то же самое происходит и при чтении данных. Результат - двукратное ускорение обмена данными для последовательных потоков. Нетрудно видеть, что должен ускориться и доступ (сам по себе более медленный) к случайным данным, однако не вдвое, а примерно в полтора раза (то есть если случайно выбранное слово оказывается в том же подбанке, что и предыдущее, никакого ускорения нет).
Точно то же самое происходит при применении interleave 2:1 для памяти EDO. Схема 4:1, когда данные распределяются уже по 4 подбанкам "нормальной" ширины, в состоянии дать дальнейший выигрыш, по крайней мере для fast page, хотя уже и не четырехкратный (см. обсуждение в отдельном вопросе).
Метод interleave широко применялся для ускорения работы подсистем памяти, особенно в серверах и рабочих станциях, хотя, например, interleave поддерживали и "обычные" системы Macintosh. Число объединенных в один банк "нормальных" подбанков обычно называлось коэффициентом, или уровнем, interleave, и записывалось чаще всего в виде k:1. Коэффициент этот по понятным причинам всегда является степенью двойки. Иногда также можно было встретить упоминание о, скажем, 128-битной подсистеме памяти (в сравнении с 64-битной системной шиной) - это все тот же interleave 2:1. Нужно, впрочем, иметь в виду, что иногда необычно широкая шина применялась в серверах для организации ECC, а не для interleave. Чисто теоретически для необычно быстрых системных шин (например, для неинтеловских процессоров или, скажем, графических подсистем) может быть применен сколь угодно большой (если, конечно, не учитывать технологические ограничения) уровень interleave. Впрочем, сечас это уже не особенно актуально, так как начиная со SDRAM во все вновь разрабатываемые типы памяти закладывается многобанковость (иными словами, тот же interleave) на уровне чипов, так что уже сами чипы спроектированы так, чтобы возвращать последовательные данные на частоте системной шины.
Причины, по которым interleave не нашел широкого применения в обычных системах, более или менее очевидны - это относительная сложность (и, как следствие, дороговизна) контроллера плюс необходимость заполнять банки большим числом модулей - что удорожает общий дизайн системы, увеличивает ее физические размеры м энергопотребление, а также делает начальный объем памяти неоправданно большим.
{mospagebreak}Я установил в компьютер 8MB памяти, однако при загрузке он обнаруживает лишь 7808kB. Куда подевались еще 200kB?
200k никуда не делись - многие компьютеры рапортуют установленные 8MB именно таким образом. Насколько можно судить, число это вообще не вычисляется и тем более не является результатом теста, а просто зашито в BIOS, который реально способен распознавать количество установленной памяти лишь с довольно большим (сотни килобайт) инкрементом, но при этом возвращает значение с точностью до 1к, так что создается иллюзия точного теста, выявившего отсутствие двухсот kB.
Довольно некруглые цифры при этом происходят в основном из того факта, что в мире битов и байтов "кило" - это вовсе не тысяча, а 210=1024. Например, 32MB оперативной памяти обычно рапортуются компьютером как 32768kb (32х1024). Иными словами, число в мегабайтах обычно "меньше", чем то же число в килобайтах. И наоборот - тысяча k меньше мегабайта. В принципе, этот факт довольно хорошо известен.
В случае же с 8MB, судя по всему, сработала обратная схема. 7808 равняется 8х976, а 976 - это в свою очередь 1000-24 (для знакомых с формулами приближенных вычислений то обстоятельство, что 0.976 примерно равняется 1/1.024, является очевидным). То есть с определенной степенью точности 8000kb (чему, по мнению очень многих, и равняется 8MB) равны 7.808MB. Примерно таким представляется механизм возникновения этой цифры. Разумеется, столь примитивное рассуждение не объясняет, почему применена именно такая странная схема "конвертации", а равно и того обстоятельства, что тот же компьютер может "конвертировать", скажем, 4MB с точностью до наоборот. Однако хотелось бы верить, что это хотя бы снимет с числа 7808 мистический налет, тем более, что различные ляпы с количеством бит в компьютерной индустрии известны довольно хорошо (просто в качестве примера - по мнению той же индустрии, одинарная плотность дискет - 720kB, а двойная - 1.44MB).
Я установил в свой компьютер новый модуль SDRAM DIMM 168-пин, но система его не видит (или не загружается). Чем это может быть вызвано?
Ниже приводится ответ (не сказать, что исчерпывающий) на несколько более общий вопрос - SDRAM DIMM системой не распознается вообще или же распознается частично (как если бы он имел емкость меньше, чем на самом деле, особенно часто приходится встречать такие жалобы на 32MB модули). Тривиальные ответы - модуль неисправен либо система вообще не предназначена для SDRAM - рассматривать подробно нет особого смысла. Предполагается также, что со временем доступа все в порядке (см., например, вопрос, посвященный 100 МГц системам). Наконец, если проблема не является уникальной для SDRAM, она может быть описана в вопросе, посвященном несовместимости DIMM.
Возвращаясь к собственно SDRAM, приходится констатировать следующее. Случаи несовместимости (частичной видимости, работы не во всех конфигурациях) при установке SDRAM DIMM встречаются относительно часто, при этом дать удовлетворительное объяснение многим случаям не представляется возможным. Модули, странно ведущие себя в некоторых системах, зачастую прекрасно работают в других системах аналогичного класса, причем создается впечатление, что от проблем не застрахованы никакие модули и никакие системы (чипсеты). Хотя, конечно, чем выше качество модулей (то есть чем ближе они к major), тем меньше вероятность с проблемами встретиться.
В качестве очень примитивного объяснения можно привести тот факт, что SDRAM все еще отчасти является (и безусловно являлся сравнительно недавно) стандартом неустоявшимся и развивающимся. В частности, на нормальное распознавание модулей вполне могут влиять следующие обстоятельства (как сами по себе, так и корректность их учета контроллером памяти):
- Число банков модуля. Чипы SDRAM нередко встречаются как в разновидности х4, так и х8. Модули, собранные из чипов разного типа, вообще говоря имеют разное число банков, что вполне способно породить как отказы некоторых модулей распознаваться некоторыми системами, так и "неполное" распознавание модуля, особенно в компании с другими модулями. Это самое напрашивающееся объяснение, однако доводилось наблюдать случаи, явно под него не подпадающие.
- Число банков чипа. Чипы SDRAM, как известно, имеют внутреннее разделение по банкам. Сейчас выпускается только четырехбанковая разновидность, тем не менее поначалу была более распространена двухбанковая. Достоверные данные о совместимости этих двух типов чипов с различными контроллерами и между собой отсутствуют, тем не менее очевидно, что проблемы здесь возможны.
- Число линий ввода сигнала таймера в модуле. Данный параметр известен как 2-clock и 4-clock. Достоверные данные опять же отсутствуют, хотя упоминания о возможных проблемах имеются. Сейчас применяются в основном модули 4-clock.
- "Тонкие" временные характеристики чипов. К наиболее известным относится параметр CAS Latency, который может равняться 2 или 3 тактам (2CL или 3CL, не путать с упомянутыми выше 2-clock), имеются и другие параметры, которые также могут различаться. Отклонение этих параметров от того, что ожидает контроллер, безусловно является потенциальным источником проблем. Кстати, некоторые BIOS позволяют выставлять этот параметр вручную, что иногда "помогает" модулю распознаться (хотя чаще бывает наоборот).
- Другие "тонкие" параметры. Если упоминавшиеся выше параметры являются, так сказать, наблюдаемыми (скажем, по маркировке), и в принципе можно было бы провести глобальные тесты модулей и плат и определить, кто же из них конкретно отвечает за того или иного рода неисправности, то существует множество тончайших параметров, о которых в свое время не очень подробно писали даже в специальной литературе, но которые могут очень сильно повлиять на функционирование высокоскоростных синхронных устройств - наподобие "угла наклона фронта сигнала". Отклоняться от того, что должно бы быть на самом деле, могут и чипы памяти, и чипсеты, и оба одновременно. Вероятно, борьба с такого рода случаями "необъяснимой несовместимости" - один из мотивов разработки PC100. Для обычного пользователя в случаях, когда проблемы вызваны "тонкими" параметрами, шансы выявить причину проблемы и использовать это знание впоследствии отсутствуют полностью.
Материнская плата моего компьютера имеет разъемы как под SIMM 72-пин, так и под DIMM 168-пин. Могу ли я установить и те, и другие одновременно?
Теоретически это возможно, то есть большинство такого рода материнских плат позволяет использовать SIMM и DIMM одновременно. Однако есть одно обстоятельство (чаще всего ссылка на него присутствует и в руководствах к материнским платам), которое нужно иметь в виду. Дело в том, что описанные платы обычно рассчитаны на применение SIMM с рабочим напряжением 5В либо DIMM с напряжением 3.3В. Контроллер способен работать в любом из этих режимов (определение происходит автоматически), но, увы, не в обоих одновременно. При одновременной установке SIMM и DIMM и те, и другие работают на 5В - что по крайней мере в теории (я не располагаю практическими примерами, см. также FAQ по чипам) способно при долгой работе привести к сбоям 3-вольтового устройства и даже вывести его из строя.
Иными словами, возможность установки имеется, и при этом скорее всего такая установка не приведет к отрицательным последствиям - хотя возможность последних все же следует иметь в виду.
Может ли компьютер работать с неполным банком памяти?
Как ни странно, иногда может (хотя и далеко не каждый компьютер). В частности, ряд Pentium-систем способны работать с одним 72-пиновым модулем SIMM в банке вместо двух, положенных "по уставу". Правда, делается это ценой значительного падения производительности (действительно, из самых общих соображений ширины шины очевидно, что производительность подсистемы памяти упадет как минимум вдвое). Поэтому не очень-то и понятно, зачем разработчиками вообще была предусмотрена такая возможность, которую имеет смысл использовать разве что в очень экстремальных ситуациях. Технологически никаких чудес здесь нет, от контроллера всего лишь требуется разложить 64-битную системную шину на две 32-битные половинки модуля.
Не исключено также, что некоторые системы, поддерживающие interleave и официально считающие полным банк с коэффициентом interleave, отличным от единицы, способны работать и с частично заполненным банком (иными словами, с меньшим коэффициентом interleave), хотя это и не отражено в системной документации.
Если компьютер поддерживает interleave разных уровней, следует ли добиваться наиболее высокого из них?
Из общих соображений ответ следующий. В режиме fast page, как известно, реализуется временная диаграмма 5-3-3-3, то есть на доступ к последовательным данным тратится 3 такта системной шины (5 тактов на первое обращение невозможно улучшить никакими средствами). Таким образом, interleave 2:1 действительно должен дать ускорение последовательного доступа вдвое, а interleave 4:1 - всего в 3 раза вместо четырех, так как данные в любом случае нельзя считывать быстрее, чем система способна их запрашивать. Гипотетические 8:1 уже не дадут по сравнению с 4:1 никакого ускорения, возможно поэтому (или потому, что в этом случае число слотов в одном банке выходит за рамки разумного) их обычно и не предлагают.
Из тех же соображений если память работает в режиме EDO (то есть с диаграммой 5-2-2-2), то и четырехкратное чередование представляется излишним.
К сожалению, подтвердить эти соображения какими-либо практическими результатами тестов в данный момент не представляется возможным, поэтому лучше считать, что они имеют рекомендательный характер, и при решении вопроса о том, добиваться ли коэффициента больше 2:1, руководствоваться в первую очередь тем, не станут ли результатом такого upgrade лишние модули, слишком большое количество оперативной памяти или же отсутствие места для дальнейшего расширения.
Я являюсь владельцем brand-name системы и получил предложение расширить память модулями, произведенными не данным brand. Стоит ли соглашаться на это предложение?
Само по себе предложение никакого особого подвоха в себе не содержит. Более того, чаще всего "brand-name" модули памяти не имеют в себе ничего особенно брандового помимо наклеенного (причем отнюдь не производителем) лейбла. Можно с большой долей уверенностью считать истинными следующие два утверждения:
- Подавляющее большинство систем класса desktop и очень многие устройства серверного класса производства известных brand расширяются абсолютно стандартными (в понимании JEDEC) модулями памяти. (В общем-то это утверждение никогда и не оспаривалось самими брандами, которые в основном предпочитают невнятно, хотя и не без оснований настаивать, что все модули стандартны, но приобретенные у них - "стандартнее".)
- Практически все стандартные и очень многие нестандартные модули, предназначенные для brand-name систем, изготавливаются вовсе не самими брандами, а major- или (особенно нестандартные) крупными generic-производителями. Стандартные модули при этом (см. предыдущее утверждение) стандартны в "каталожном" смысле - то есть бранды фактически заказывают по каталогу некий товар, вполне доступный и другим заказчикам.
- Качество. В общем-то нет особых сомнений в том, что качество "снабженных наклейкой" модулей - одно из наивысших в природе, так как скорее всего эти модули прошли необычно жесткий контроль, возможно даже двукратный - производителя и самого бранда. Тем не менее не нужно забывать, что по большому счету качество - не что иное как процент брака. Высококачественные модули, вне зависимости от наличия наклеек, сами по себе имеют меньше одного процента брака, причем брак в большинстве случаев будет обнаружен довольно скоро после установки в систему. Таким образом, если поставщик альтернативной памяти имеет хорошую репутацию и дает приемлемую гарантию, переплачивать за дополнительное снижение и без того низкой вероятности столкнуться с браком представляется не слишком разумным.
- Гарантированная совместимость. Аргумент почти бесспорный - альтернативный поставщик, даже если это, скажем, generic, поставляющий память по каталогу для конкретных brand-name систем, всегда может заблуждаться относительно совместимости своего товара с этими системами. Brand относительно собственных систем заблуждается вряд ли. В принципе хорошая гарантия продавца либо имеющиеся возможности для экспериментов способны снять и это соображение, однако может статься, что вам (скажем, из соображений делового престижа) нужна именно совместимость "с первого раза". Тогда коробочка с наклейкой - для вас. Только не забудьте удостовериться, что на коробочке и наклейке открытым текстом указаны интересующие вас артикулы и/или названия систем - мнение по поводу памяти "менеджера по продажам коробок" может быть крайне некомпетентным.
- Выполнение неочевидных технических условий. Теоретически нельзя исключить варианта, при котором производитель систем использует память "почти стандартную" или, иными словами, стандартную, но с обязательным учетом особых, относительно редко требующихся условий, которые вполне могут оказаться не соблюденными посторонним поставщиком. В различных вопросах цикла можно прочитать о некоторых параметрах такого рода - PRD (FAQ по модулям), форм-факторе (здесь) и покрытии контактов (FAQ по модулям). Причем если несоответствие первых двух параметров проявит себя немедленно (так что реально ничего, кроме гарантии совместимости с вашей системой, от продавца не требуется), то несоответствие третьего, на чем особенно настаивают производители, способно привести к непредсказуемым последствиям в отдаленном будущем. Лично я (см. ссылку выше) в это не верю, в любом случае совпадение материала контактов можно проконтролировать и самостоятельно. Наконец, все эти соображения не относятся к поставляемой по каталогам соответствия продукции generic-производителей.
- Неудачный реижиниринг. Казалось бы, разумное соображение, по крайней мере в отношении "специфических" модулей, дизайн которых generic, попросту говоря, копируют с оригинальных изделий. Однако в действительности модули памяти представляют собой комбинацию абсолютно стандартных (за исключением печатных плат) деталей - печатные платы же поддаются реинжинирингу достаточно легко, так что это соображение трудно назвать существенным.
- Гарантийные обязательства. Почему-то считается, что сервисные центры бранда имеют полное право отказать в гарантийном обслуживании техники на основании использования небрандовых комплектующих. Здесь стоит начать с того, что мне не доводилось слышать о случаях реальных отказов, хотя поползновения такого рода со стороны сотрудников низшего уровня таких центров действительно случаются. Сама идея, по большому счету, представляется довольно вздорной - что-то наподобие отказа в обслуживании по причине приобретения вами не того модема или, скажем, электрического тройника не той фирмы. Чего действительно не покрывает гарантия - это самих "чужих" модулей памяти, а также проблем, связанных с их использованием (то есть опять же качества этих модулей). Соответственно проблема вновь сводится к гарантиям на сами модули. Однако ввиду потенциально высокого риска именно это утверждение не рекомендуется голословно принимать на веру , так что если у вас на гарантии находится дорогая техника, имеет смысл выяснить (по возможности официально), как влияет на вашу гарантию применение посторонних комплектующих. Информация в любом случае не повредит.
После установки модулей памяти в сервер HP NetServer LH Plus (или Pro) при каждой загрузке появляется сообщение, что установлен "non-HP" модуль. Чем это грозит?
Насколько можно судить, перед нами первый случай использования SPD для дискриминации производителей. Указанные серверы Hewlett-Packard (а также LD) при установке в них модулей памяти, являющихся функциональными аналогами модулей с артикулами HP D4294A, D4295A, D4296A, D4297A, но не происходящих от HP, иногда (видимо, это свойственно не всем системам этой серии) выдают при загрузке по следующему сообщению на каждый модуль:
Non HP DIMM installed in Bank xx HP's on-site warranty does not cover
problems caused by the use of non qualified DIMMs in HP NetServer.
Насколько можно судить, вызвано это тем, что контроллер считывает некую хранящуюся в SPD информацию - предположительно это либо какая-то комбинация резервных бит, либо просто номер производителя (насколько можно судить, по крайней мере некоторые "родные" DIMM HP произведены в действительности компанией Smart). В пользу последней версии говорит то обстоятельство, что даже самые мощные generic-производители не спешат воспроизводить "нужный" SPD в выпускаемых ими расширениях памяти для этих серверов. Надо заметить, что на собственно работу модулей памяти грозные сообщения влияют крайне мало, так что, несмотря на все ужасы, в серверах HP этой линейки работает довольно много DIMM, выпущенных 3rd party, что составило владельцам немалую экономию - с чем HP и боролся.
Надо сказать, что близкое знакомство с проблемой вызывает довольно неприятное ощущение - представьте себе, что ваш радиоприемник или другое бытовое устройство откажется работать, скажем, с батарейками только потому, что ему не понравится, что на этих батарейках написано. С другой стороны, если присмотреться, появляющееся при загрузке сообщение не так уж и ужасно - исправная память проблем вызывать не может по определению, а за неисправную ответа с HP требовать как-то странно. Так что больше всего это напоминает психическую атаку. Иными словами, ответ на вопрос - по-видимому, ничем.
Мой компьютер имеет частоту шины 100МГц, означает ли это, что мне нужна память спецификации PC100?
Достаточно традиционный встречный вопрос - что понимается под PC100? Сам по себе этот стандарт действительно описывает DIMM, предназначенные для установки в системы с частотой шины 100МГц. Тем не менее имеется парочка "но". Во-первых, стандарт этот является proprietary (разработан Intel и никак не утверждался) и, несмотря на попытки навязать его индустрии, большинство участников рынка воспринимают его без особого энтузиазма. Во-вторых, помимо действительно важных для функционирования системы параметров, стандарт описывает и "лишние", с точки зрения принципа разумной достаточности, вещи (тот же SPD). Как следствие, модули PC100 действительно обязательны, если ваша система базируется на материнской плате производства Intel или некоторых других производителей, поддерживающих стандарт (как правило, системная документация недвусмысленно высказывается по этому поводу). Для большинства других систем соответствие модулей PC100 необязательно. Хотя ничего плохого в таком соответствии, конечно, нет - тот факт, что модуль соответствует PC100, означает, что требования к дизайну и комплектующим предъявлялись весьма высокие. Да и совместимость со всеми системами - все же скорее достоинство, чем недостаток. Недостатком является вообще говоря более высокая цена.
По логике вещей, следующий вопрос - какую же память следует устанавливать в 100МГц системы, не требующие PC100 как обязательное условие работы модуля. Несколько парадоксальный ответ - память, собранную из удовлетворяющих PC100 чипов. Дело в том, что требования, предъявляемые стандартом к чипам (в отличие от собранных из них модулей, см. выше) вполне объективны.
К сожалению, здесь также есть своя тонкость. А именно - "старые" чипы с маркировкой, соответствующей 10 нс или 100МГц, вообще говоря не являются PC100-совместимыми и, как правило, не способны оптимально работать на этой частоте. Чипы же PC100 зачастую (у разных производителей здесь разные принципы) имеют маркировку, отличающуюся от "старой" всего одной буквой. Кроме того, 10 нс чипы PC100 существуют по меньшей мере в двух разновидностях, маркирующихся обычно по-разному, и это тоже не облегчает их идентификацию. Поэтому во всех сомнительных случаях рекомендуется обращаться к databook производителей (см. "Список major-производителей..."). Как правило, удовлетворяют PC100 чипы с маркировкой времени доступа (вернее, длительности такта) 7 нс, хотя для "старых" чипов гарантию опять же дать трудно.
Не могут ли возникнуть проблемы при установке в относительно старые системы современной (например, слишком быстрой) памяти?
Крайне маловероятно, по крайней мере в отношении слишком быстрых модулей. Промаркированное на чипах время доступа следует понимать как минимальное гарантированное производителем время, которое данная память поддерживает. В принципе не исключено, что она способна работать и быстрее, но уж совершенно ничего не в состоянии помешать ей работать медленней - что от нее и будет требоваться в старой системе. Таким образом, никаких оснований для беспокойства слишком низкое время доступа само по себе вызывать не должно. Крайне редко, но могут возникнуть проблемы, если контроллер системы осуществляет чтение времени доступа, прошитого в PRD - большинство таких контроллеров признает только 1-2 конфигурации PRD, соответствовавшие передовым временам доступа на момент их создания и отклоняет более быстрые конфигурации. Тем не менее корень зла здесь не совсем во времени доступа - модуль "без PRD" будет отклонен такой системой вне какой-либо зависимости от этого времени. Подробности о такого рода системах можно найти в посвященном нестандартным контроллерам вопросе, а подробности о PRD - в FAQ по модулям.
Существует, впрочем, классический случай несовместимости "новой" памяти со "старыми" системами, а именно - SIMM EDO с 486-ми компьютерами, выпущенными "до EDO". Этому также посвящен отдельный вопрос, и именно владельцам таких систем стоит проявлять особую осторожность при upgrade.
Хочу расширить память своего brand-name компьютера, но куда-то подевался мануал. Что можно посоветовать?
Никаких особенных проблем в данном случае у вас не предвидится - у brand-name техники есть как минимум одно безусловное достоинство, а именно - ее поддержкой и обслуживанием занимается огромное количество различных фирм (включая и сам brand). Шансы на то, что вам удастся как получить всю касающуюся данного upgrade информацию, так и осуществить сам upgrade, близки к ста процентам. В предположении, что вам хотелось бы сначала получить информацию о имеющихся в вашем распоряжении опциях либо об осуществимости планируемого вами расширения, можно рекомендовать следующие действия:
- Обратиться непосредственно к поставщику вашей системы, если же получить от него ответ по какой-то причине невозможно - к другим дилерам данного бранда или в его представительство.
- Есть вероятность, что некоторая или вся необходимая информация есть на интернетовском сайте производителя (чаще всего это www.brand-name.com.
- Попытайтесь извлечь необходимую информацию из онлайн-каталогов generic-производителей памяти для brand-name систем (ссылки также имеются в соответствующем документе). Имейте в виду, что вам может понадобиться просмотреть несколько каталогов, так как случайно выбранный производитель может по тем или иным причинам не поддерживать даннный бранд, модель или емкость модулей.
- Если вы готовы рассмотреть и другие варианты помимо закупки памяти непосредственно у данного бранда (что нередко может оказаться неоправданно дорого, долго и неудобно, см. отдельный вопрос) - запросите необходимую информацию у поставщика памяти, к которому вы намерены обратиться.
Несмотря на установку дополнительной памяти, я продолжаю получать сообщения "not enough memory". Что делать?
Не исключено, что ваши проблемы вообще не имели и не имеют отношения к количеству установленной оперативной памяти, особенно если сообщения появляются при загрузке (реже - работе) DOS-приложений. Весьма вероятно, что программе не хватает не памяти вообще, а конкретного логического раздела - conventional, extended или expanded memory, и надо просто принять меры для того, чтобы дать ей нужное количество "этой" памяти. Делается это путем редактирования конфигурационных файлов и/или установки специальных программ - "менеджеров памяти", подробности же, видимо, все-таки выходят за рамки данного труда (и обычно содержатся, в частности, в документации к программе).
Та же самая документация позволит вам определить, действительно ли количества памяти после upgrade достаточно вашей программе для работы.
В Windows 3.1 и выше, как известно, используется виртуальная память, которую очень грубо можно представить в виде суммы оперативной памяти и swap-файла на жестком диске. Как правило (тем более после расширения памяти) большинство Windows-приложений должны быть способны работать сами по себе (другой вопрос - с какой скоростью) при условии старта самих Windows, однако слишком много открытых приложений или слишком большие открытые файлы вполне способны исчерпать виртуальную память. Размер последней в основном зависит от размера swap-файла, поэтому при постоянных сообщениях о нехватке памяти под Windows рекомендуется в первую очередь проверить, включена ли поддержка виртуальной памяти, достаточно ли велик (если он не конфигурируется автоматически) swap-файл и, наконец, есть ли достаточно свободного места для последнего на жестком диске. Кроме того, отдельные программы (включая, к примеру, Notepad) имеют свойство жаловаться на недостаток памяти просто при приближении размера открытого файла к естественному для данной программы пределу.
Действительно ли существуют системы, в которых ECC организовано на основе SIMM без четности?
Нет, это не шутка - такие системы действительно существуют, по крайней мере одна. Кроме того, в самой идее нет ничего абсурдного, и в общем-то удивляет скорее то, что таких систем так мало.
Конкретно одна из рабочих станций Digital (увы, в данный момент не могу привести точное название) организует ECC именно посредством 72-пиновых SIMM без четности. Вся соль заключается в том, что один банк состоит из 5(!) SIMM. Естественно, такую же 160-битную шину можно организовать посредством четырех 40-битных SIMM, также очень может быть, что реально все 160 бит не используются (32 "лишних" бита для 128 основных - пожалуй, что многовато, большинство систем такого рода обходилось 16-ю), а 144 бита прекрасно набираются стандартными SIMM с четностью. Тем не менее мало-мальски знакомый с рынком памяти человек прекрасно знает, что пять 32-битных SIMM, несмотря на большую совокупную емкость чипов, всегда стоили дешевле четырех 36-битных ввиду относительной дороговизны чипов четности (и уж тем более дешевле четырех редких 40-битных SIMM). Так что это еще вопрос, что именно явилось причиной неприменения этого оригинального решения в других ECC-системах того времени - то ли стремительное развитие ECC-технологии, сделавшее ненужной шины слишком большой ширины, то ли нежелание производителей систем упустить дополнительную прибыль от продажи нестандартных и поэтому продающихся значительно дороже себестоимости upgrade.