Библиотека Интернет Индустрии I2R.ru |
|||
|
"Быстрая" память: заблуждения и фактыСоздается такое впечатление, что производители компьютерных комплектующих в последнее время стремятся к одному -- заполнить рынок как можно большим количеством "железа". Процессоры выходят чуть ли не каждый месяц, в линейках видеочипов NVidia и ATI уже, что называется, "черт ногу сломит", чипсетов для Pentium 4 уже больше десяти. Несмотря на, казалось бы, гораздо меньшее пространство для экспериментов, развернулись не на шутку и производители памяти... Для начала следовало бы перечислить "героев" поименно. Итак, какие же типы памяти сейчас реально присутствуют на рынке и какие должны на нем появиться в ближайшее время? Проще всего привести их прямо в тексте статьи, но при беглом взгляде на позиции, присылаемые различными компаниями для публикации в еженедельнике "Hot Line", нам пришла в голову идея "одним выстрелом убить двух зайцев" и все-таки представить эту информацию в виде таблицы. Более того -- чтобы окончательно покончить с чехардой хотя бы "у себя дома", мы приводим в ней не только правильные наименования различных типов памяти, но и неправильные -- уж слишком часто приходится встречаться с последними. В этой статье мы рассмотрим некоторые из самых распространенных мифов, связанных с функционированием подсистемы памяти в современных x86-системах. Мифов этих накопилось довольно много, и, что самое печальное, слепая вера в них иногда доставляет массу неприятностей как конечным пользователям, так и тем, кто торгует комплектующими. Более того -- даже сами продавцы иногда верят в эти "байки компьютерной эры" не меньше покупателей, совершенно искренне "консультируя" последних, чем потенциально себе же вредят, ибо "...сколь веревочке не виться", рано или поздно время и практика реальной работы с компьютером все расставляют по местам. Скорости разные бывают...
К примеру, на системе, оснащенной одним из самых быстрых типов памяти, исполняется некая программа. Будет ли она исполняться медленнее на системе с меньшей пропускной способностью ОЗУ? Не факт. Мы бы даже сказали, "дважды не факт", ибо есть две ситуации, при которых ответ будет отрицательным, и только одна, приводящая к положительному результату. Ситуация первая, "плохая" -- программа производит активные вычисления с довольно малым объемом данных, и размер кода программы меньше или равен объему кэша второго уровня установленного в системе процессора. В этом случае большинство данных и код один раз считываются в L2-кэш CPU, после чего процессор долго "переваривает" их внутри себя, вообще не обращаясь к основному ОЗУ. Таким образом, быстродействующая подсистема памяти может проявить себя только один раз (данные и код быстрее попадут в кэш), но относительно общего времени выполнения задачи эти мгновения исчезающе малы, и ими можно пренебречь. Аналогичного рода ситуация, только "расширенная" -- это случай, когда программа сама по себе велика, но вся она состоит из подобного типа "кусков", и переключение между ними происходит нечасто (относительно общего времени выполнения задачи). Ситуация вторая, "плохая" -- программа написана "беспорядочно", с множеством постоянно происходящих переходов (JMP), и работает с большим количеством данных относительно малого объема. При этом становится очень важным вторая (та самая "забытая") характеристика быстродействия памяти: скорость доступа к произвольному адресу памяти, или латентность. Фактически работа контроллера ОЗУ в данном случае напоминает езду на мощном спортивном автомобиле по городу с узкими и короткими улочками -- двигатель-то позволяет ехать со скоростью хоть 200 км/ч, да только где ж ее набрать -- не на дистанциях же около 100 метров?! А дальше опять поворот... А со скоростью произвольного доступа у нас, увы, все по-прежнему не очень хорошо. Более того -- латентность у DDR SDRAM стала даже больше, чем у обычной PC100/PC133. Ну и наконец, ситуация третья, "хорошая". В идеале она представляет собой программу, которая состоит из небольших блоков кода, помещающихся в кэш второго уровня (чувствуете похожесть на самую первую?), но при этом код обрабатывает относительно большие массивы данных, "прокачивая" их через себя и каким-то образом модифицируя. В этом случае мы, прибегая к той же "транспортной" аналогии, наблюдаем широкую, гладкую трассу, проходящую "сквозь" процессор, по которой с большой скоростью и по прямой движется поток машин. Никаких "поворотов", никаких узких мест -- контроллер и ОЗУ работают в идеальном режиме. Что же это за программы? Самые простые примеры: архиваторы, программы для конвертации одних форматов в другие, словом -- все, что связано с обработкой потоковых данных. Вот почему наша Тестовая лаборатория использует для тестирования быстродействия подсистемы памяти ПО именно этого класса. Таким образом, основной целью данного материала мы считаем практическую демонстрацию различий между двумя "скоростными" характеристиками наиболее распространенных современных типов памяти и сравнительную оценку влияния этих параметров на быстродействие в реальных программах. И еще немного о мифах Раз уж мы решили затронуть тему "мифов", было бы неправильно умолчать еще о двух заблуждениях, по большому счету именно к скорости подсистемы памяти отношения не имеющих, но по своим последствиям не менее неприятных, чем вышеприведенные. Заблуждение первое: быстрая память хороша сама по себе. Это не так. Даже если мы создадим почти идеальные условия (ситуация третья, "хорошая"), память с большой пропускной способностью даст выигрыш только в том случае, если вычислительная мощь процессора позволит обработать поток данных с соответствующей скоростью. Практика показывает, что в некоторой степени преимущества, к примеру, памяти типа PC2100 над обычной PC133 начинают сказываться на системах, оснащенных процессорами с частотой 1300--1400 MHz. Существенное же ускорение от использования быстрой памяти проявляется на частотах от 1600--1700 MHz и выше (не забываем вышенаписанное -- по-прежнему это касается только тех ситуаций, в которых это преимущество способно проявиться в принципе). Заблуждение второе: "...денег мало, но нужно выбирать прогрессивные технологии -- не буду покупать 256 MB медленной PC133, лучше куплю 128 MB быстрой PC2100...". Почти со стопроцентной уверенностью можно предсказать, что работать такая система будет медленнее, причем намного медленнее. Как правило, программы, требовательные к скорости работы с ОЗУ, критичны не только к этому параметру, но и к другим. В частности, они и места в памяти занимают немало. При 128 MB ОЗУ "на все про все" (не забываем, что сама ОС тоже "отхватывает" изрядный его кусок) запуск такого ПО заканчивается резким увеличением количества обращений к файлу подкачки, и -- "прощай, скорость, прощай навсегда!". Как можно увидеть разницу в скорости PC133 и PC2100, когда 50% времени уходит на постоянную работу с винчестером? Тестирование В качестве представителей соответствующих чипсетов были выбраны платы: Soltek SL-85ERV (VIA Apollo P4X400, инженерный сэмпл), DFI NB-76EA (Intel i845G, поддерживает работу с DDR333 при сохранении штатных частот FSB/AGP/PCI), ASUS P4T533-C (Intel i850E, плата предназначена для установки 16-битовых модулей RDRAM), ASUS P4T533 (i850E, рассчитана на использование с 32-битовыми модулями RDRAM). Для "имитации" DDR266/333/400 применялся один и тот же модуль, управление реальной частотой работы памяти осуществлялось с помощью BIOS материнских плат. Ввиду физических ограничений самого модуля (микросхемы памяти все-таки имеют фиксированное время доступа) параметр CAS для DDR266 был равен 2, для DDR333 -- 2.5, для DDR400 -- 3. Насколько нам известно, это вполне соответствует реальному наличию модулей на рынке (модули DDR400/CAS2.5, например, сейчас практически недоступны). Изюминкой же данного теста является то, что в нем мы впервые использовали недавно вышедший процессор Intel Pentium 4 2,8 GHz. "Подоспел" он, не скроем, весьма удачно, ибо чем больше частота работы ядра -- тем больше и загруженность шины ОЗУ. Пожалуй, сейчас Pentium 4 с такой частотой и с его 533-мегагерцевой системной шиной является практически идеальной платформой именно для исследования быстродействия различных типов памяти. Результаты тестов Начнем с наиболее интересного -- с показателей латентности. На сводном графике, где присутствуют все типы памяти и чипсеты, легко заметить, что RDRAM очень неплохо помогает бороться с латентностью, за которую ее всегда ругали, банальное повышение частоты работы -- линии PC800 и PC4200 идут почти параллельно, но вторая -- ощутимо ниже первой. Правда, абсолютным чемпионом в данном тесте является все-таки комбинация из i845G и DDR333 SDRAM. Однако не менее интересен второй график -- одна и та же память, аналогичные тайминги... и такие разные результаты! Линии опять-таки почти параллельны, но как сильно отличается латентность в зависимости от контроллера памяти! Чипсет VIA P4X400 явно гораздо хуже "справляется" с задержками, чем i845G. К слову, данный график еще раз подтверждает мысль, не раз звучавшую в начале статьи: подсистема памяти -- это именно подсистема, а не "отдельно взятый модуль DIMM определенного стандарта". Контроллер ОЗУ, являющийся частью чипсета, вносит свои "поправки" в ее функционирование, и, скажем так, не всегда эти поправки положительны по эффекту. Диаграммы со скоростями чтения и записи особых сюрпризов не преподнесли: самую высокую скорость продемонстрировала система с памятью PC4200 (PC1006) RDRAM, буквально по пятам за ней следует DDR333. А вот DDR400... Напомним, что ее работу мы могли оценить только на одном чипсете, а именно -- на VIA Apollo P4X400. Честно говоря, ожидали мы намного большего, поэтому единственное, что остается, -- грешить на плату. Предположение в общем-то вполне обоснованное с учетом того, что мы имели дело с инженерным сэмплом. Дополнительным косвенным подтверждением гипотезы о "неокончательности" результатов DDR400 и VIA P4X400 является еще и тот факт, что в диаграмме со скоростью записи ситуация намного лучше: VIA P4X400 + DDR400 удалось обогнать всех, кроме i850E + PC4200 RDRAM. А вот тестирование быстродействия систем с помощью реальных приложений четко расставило все по своим местам (как мы, впрочем, и ожидали). Прирост производительности от использования DDR333 вместо DDR266 на чипсете i845G по результатам теста Сachemem равен 21% по чтению и 25% по записи. В весьма "дружелюбном" к быстрой памяти WinAce -- уже всего 17%. Примерно аналогичная ситуация наблюдается и в случае PC800 RDRAM vs. PC4200. Свидетельствует это прежде всего о том, что теоретическая пропускная способность -- это одно, фактическая (результаты низкоуровневых тестов) -- другое, а прирост быстродействия в программах -- как говорится, "совсем третье". И уж точно не стоит питать надежды, что поделив 333 на 266, вы получите коэффициент, позволяющий оценить реальное увеличение быстродействия при апгрейде с одного типа памяти на другой. Результаты тестирования систем в Maya... Надеемся, что этот "холодный дождик" действительно охладит пыл некоторых неофитов, утверждающих, что увеличение пропускной способности ОЗУ является магической "панацеей" -- "лекарством от всего". Да, иногда использование быстрой памяти приводит к положительным результатам. А иногда -- нет. Все зависит исключительно от специфики конкретного приложения. В данном случае, например, разница в производительности между самой быстрой и самой медленной системой составила всего 3%. Заключение Оно будет кратким. Всевозможнейших типов, стандартов, частот, и прочая, и прочая на рынке памяти действительно стало гораздо больше, чем раньше. Однако это вовсе не означает, что стоит гнаться сломя голову за каждой новинкой. "Слабенький" контроллер может нивелировать эффект от применения любой, даже самой быстрой памяти, используемые приложения -- так и вовсе "не прочувствовать" всех ее прелестей, а перманентный апгрейд, как известно, -- хобби довольно накладное, да и не столь уж благодарное. Хорошая, продуманная конфигурация всегда отличается от собранной по принципу "чтобы все было круто!" тем, что составляющий ее пользователь смотрит не только на цифры в спецификациях, но и реально оценивает полезность каждого компонента, соотношение цена/производительность, и прежде всего -- задачи, которые он собирается решать с помощью компьютера. Этот принцип отбора универсален и вполне подходит к любым комплектующим. Системная память -- не исключение. |
|
2000-2008 г. Все авторские права соблюдены. |
|