FAQ по подсистеме памяти
Страница 9.



Какое программное обеспечение следует использовать для тестирования работы подсистемы памяти?

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

Теперь - о диагностике. Вопрос о том, какие программы можно применять для "проверки" модулей 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 тактов
Таким образом, получается, что в "пиковом" режиме память EDO на 20 процентов быстрее fast page. "Медленный" SDRAM, в свою очередь, быстрее EDO на 9%, а "быстрый" - на все 27%.

Теперь перейдем, так сказать, к практической части. Можно ли наблюдать эти воодушевляющие результаты на практике? Иными словами - получить подобный прирост производительности компьютера? Вот здесь ответ отрицательный - на большинстве практических тестов и задач прирост производительности если и будет, то измеряемый единицами процентов. Близкий к теоретическому прирост можно наблюдать только на очень специфических тестах либо классах задач (которые в силу этой самой специфичности представляют слабый интерес), постоянно использующих память в упомянутом "пиковом" режиме, а также в относительно специфических системах (см. ниже). Вот перечень факторов, не позволяющих на практике достичь теоретического предела производительности:

  • Производительность компьютера на "обычных" задачах очень часто зависит от производительности подсистемы памяти далеко не в первую очередь и значительно больший вклад в нее могут вносить, скажем, процессор, жесткий диск или видеокарта.
  • Производительность подсистемы памяти в "обычном" режиме в первую очередь определяется объемом и быстродействием кэша, а вклад собственно системной памяти значительно меньше.
  • Каждый акт "непоследовательного" доступа (а на определенного класса задачах это может случаться довольно часто) сглаживает разницу, так как он потребует 5 тактов для любого из режимов. Более того, на некоторых совсем экзотических задачах SDRAM 7-1-1-1 может оказаться медленнее всех остальных типов.
Нельзя не заметить, что второй фактор может не реализоваться на практике, если кэш в системе отсутствует (или отключен, но этот вариант вряд ли стоит обсуждать) и выигрыш в быстродействии для системы без кэша может быть заметно выше. Между прочим, стандарт EDO разрабатывался в первую очередь именно для того, чтобы элиминировать необходимость в дорогом по тем временам кэше хотя бы в системах начального уровня, а вовсе не для прорыва в производительности, как принято думать. Тем не менее выигрыш (упомянутые выше 20%) от EDO все же был заметно меньше, чем от кэша (скажем, при диаграмме 2-1-1-1 кэш быстрее EDO более чем вдвое, а при достаточном его количестве большая часть запросов к памяти удовлетворяется именно данными из кэша), так что естественное падение цен на кэш после выпуска EDO привело к тому, что идея "бескэшовых" систем (а следом и стандарт COASt) тихо умерла, встретить их сейчас довольно тяжело, а лучший способ апгрейда для них - установка кэша. Естественно также, что чем больше кэша имеет система, тем меньше будет выигрыш от установки более передовой памяти.

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

 
« Предыдущая статья   Следующая статья »