Также не всегда бывает, что после установки в компьютер модуля SIMM большей емкости он нормально работает. Модули большой емкости можно использовать только в том случае, если их поддерживает системная плата. Допустимую емкость и необходимое быстродействие модулей SIMM можно выяснить в документации к компьютеру.
Модули RIMM (Rambus Interface Memory Module), по форме похожие на обычные модули памяти, специально предназначены для памяти RDRAM. У них 30-проводная шина проходит вдоль модуля слева направо, и на эту шину без ответвлений напаиваются микросхемы RDRAM в корпусах BGA. Модуль RIMM содержит до 16 микросхем RDRAM, которые всеми выводами (кроме двух) соединяются параллельно. Микросхемы памяти закрыты пластиной радиатора. В отличие от SIMM и DIMM, у которых объем памяти кратен степени числа 2, модули RIMM могут иметь более равномерный ряд объемов — в канал RDRAM память можно добавлять хоть по одной микросхеме.
Рис.3.3.3 Модуль памяти RIMM
Существует много фирм, производящих чипы и модули памяти. Их можно разделить на brand-name и generic-производителей.
Рис.3.3.4 4 - модуля памяти, вставленные в материнскую плату
При покупке (особенно на рынках) хорошо бы лишний раз убедиться в правильности предоставляемой продавцом информации (как говорится, доверяй, но проверяй). Произвести такую проверку можно расшифровав имеющуюся на чипе строку букв и цифр (как правило, самую длинную) с помощью соответствующего databook и материалов, находящихся на сайте производителя. Но часто бывает, что необходимой информации не оказывается под рукой. И все же своей цели можно добиться, т. к. большинство производителей придерживаются более или менее стандартного вида предоставления информации (исключение составляют Samsung и Micron). По маркировке чипа можно узнать производителя, тип памяти, рабочее напряжение, скорость доступа, дату производства и др.
С точки зрения пользователя PC главная характеристика памяти - это скорость или, выражаясь другими словами, ее быстродействие. Казалось, что может быть проще, чем измерять быстродействие? Достаточно подсчитать количество информации, выдаваемой памятью в единицу времени и это будет ошибкой. Ведь, время доступа к памяти непостоянно и в зависимости от ряда обстоятельств варьируется в очень широких пределах. Наибольшая скорость достигается при последовательном чтении, а наименьшая - при чтении в разброс.
Условимся измерять максимально достижимое быстродействие памяти по скорости последовательного считывания ячеек. Конечно, это будет несколько идеализированная характеристика, ощутимо завышающая реальную производительность, но тут не обходится без тонкостей.
Современные модули памяти имеют несколько независимых банков и потому могут обрабатывать более одного запроса одновременно. Таким образом, несмотря на то, что выполнение каждого отдельно взятого запроса по-прежнему будут занимать весьма внушительное время, запросы могут следовать непрерывно. А раз так, непрерывно будут приходить и ответы.
Теоретически все так и есть, но на практике возникает множество затруднений. Основной камень преткновения - фундаментальная проблема зависимости по данным. Рассмотрим следующую ситуацию. Пусть ячейка N 1 хранит указатель на ячейку N 2, содержащую обрабатываемые данные. До того, как мы получим содержимое ячейки N 1, мы не сможем послать запрос на чтение ячейки N 2, поскольку, еще не знаем ее адрес. Следовательно, производительность памяти в данном конкретном случае будет определяться не пропускной способностью, а ее латентностью, т.е. полным временем доступа к одной ячейке.
Причем, описываемый случай отнюдь не является надуманным, скорее наоборот. Это типичная ситуация. Базовые структуры данных имеют ярко выраженную зависимость по данным, т.к. объединяют свои элементы именно посредством указателей, что сводит на нет весь выигрыш от параллелизма. Большинство функции штатных библиотек Си/Си++ также имеют зависимость по данным и не могут обрабатывать их параллельно.
Маскировать латентность позволяют лишь очень немногие алгоритмы, да и то не без помощи специальных команд предвыборки. Команды предвыборки, во-первых, отсутствуют в микропроцессорах Pentium младшего поколения. Во-вторых, они чрезвычайно аппаратно зависимы и требуют реализовать код как минимум в двух вариантах отдельно для процессоров Pentium и отдельно для процессоров K6/K7, причем, реализация для PentiumIII будет весьма не оптимальна для Pentium4 и, соответственно, наоборот. Наконец, в-третьих, команды предвыборки до сих пор не поддерживаются ни одним оптимизатором, и вряд ли будут поддерживаться в ближайшем будущем. Ручная же оптимизация слишком сложна и трудоемка, чтобы стать массовой.
Короче говоря, теоретическая пропускная способность памяти, заявленная производителями, совсем не то же самое, что и реальная производительность. Отбросив параллелизм (который все равно не ускоряет работу подавляющего большинства существующих на данный момент приложений) попробуем подсчитать максимально достижимую пропускную способность при обработке зависимых данных. Используем для этого следующую формулу:
здесь: C - пропускная способность (Мегабайт/c), N - разрядности памяти (бит), T - полное время доступа (нс.).
Сравнив полученные результаты с теоретической пропускной способностью (см. рис. 4.1), мы увидим, что, во-первых, расхождение между ними чрезвычайно велико и к тому же неуклонно увеличивается по мере совершенствования памяти. Во-вторых, при обработке зависимых данных эффективная производительность SDRAM и DDR-SDRAM практически неразличима, а Direct RDRAM и вовсе идет на уровне памяти начала девяностых. Причем, фактическая производительность всех типов памяти будет еще ниже, чем рассчитанная по формуле (1). Это объясняется тем, что, во-первых, современные процессоры обмениваются с памятью не отдельными ячейками, а блоками по 32 и ли 128 байт (в зависимости от длины кэш-линеек), вследствие чего издержки на хаотичный доступ чрезвычайно велики. Во-вторых, приведенная выше формула не учитывает ни латентности контроллера памяти, ни штрафа за асинхронность, ни времени регенерации памяти, ни...
Фактически, разница в реальной и заявленной производительности отличается приблизительно в десять раз для DDR-SDRAM и в пятьдесят для Direct-Rambus.
Откуда же такая разница? А всё дело в том, что разработчики аппаратного обеспечения перегнали прогресс, заставив телегу бежать впереди лошади. Программистский мир к такому развитию событий оказался не готов и новые, замечательные возможности параллельной обработки памяти до сих пор остаются не востребованными и вряд ли будут востребованы в обозримом будущем.
Как минимум потребуется разработать принципиально новые алгоритмы обработки данных, обеспечить соответствующую поддержку параллелизма со стороны компилятора и/или штатных библиотек.
Короче говоря, "официальная" пропускная способность - это абстракция чистейшей воды, интересная скорее с маркетинговой точки зрения, но абсолютно бесполезная для конечного пользователя...
Рис.4.1 Максимально достижимая пропускная способность основных типов памяти при наличии зависимости по данным и при отсутствии таковой.
Глава 5. Что нас ждёт в будущем?
5.1 FeRAM
Развитие оперативной памяти, пожалуй, бесконечный процесс, целью которого является увеличение частоты работы, ширины шины, а также уменьшение времени доступа, а, в некоторых случаях, и увеличение устойчивости к воздействиям извне, например, радиации. В настоящий момент требования к памяти не изменились, но к перечисленным добавились новые, удовлетворить которые намного сложнее, чем это было ранее. Среди них одним из важнейших является энергонезависимость и возможность встраивать память огромного объема в процессоры. Движение в этом направлении начато уже достаточно давно, и его результатом стало появление таких перспективных технологий, как флэш-память, FeRAM, а также MRAM. Каждая из них имеет свои преимущества и недостатки. Флэш-память позволяет практически бесконечно хранить записанную информацию без необходимости проведения циклов регенерации, которые необходимы для DRAM. MRAM, новый вид магниторезистивной памяти, продвигаемый на рынок фирмой Infineon Technologies AG, направлен на продвижение энергонезависимой памяти в компьютерах и мобильных устройствах. Это может принести пользователям многочисленные преимущества, вплоть до моментальной загрузки операционной системы после включения питания компьютера. Принцип действия этого вида памяти основан на зависимости сопротивления материала от приложенного магнитного поля. Все эти и многие другие преимущества вобрал в себя новый вид ферроэлектрической памяти. FeRAM умело сочетает простоту и надежность в эксплуатации DRAM, энергонезависимость MRAM и времена хранения информации флэш-памяти. Поскольку она включает практически все преимущества перечисленных видов памяти, то по праву может называться будущим современных технологий памяти, на чем, собственно, и делают акцент производители.
Процесс производства в настоящее время отличается тем, что от момента разработки технологии до момента массового выпуска продуктов проходит очень маленький период времени. Единственным и, пожалуй, главным движущим фактором в этом процессе является выпуск на рынок конкурентоспособного продукта. В этом стремлении выигрывает тот игрок, который быстрее своих конкурентов выпустит на рынок готовый продукт, удовлетворяющий требованиям потребителей по доступным ценам. FeRAM не является исключением в этой гонке. Производители ферроэлектрической памяти разделились на два конкурирующих между собой лагеря. Одна часть, возглавляемая постоянными партнерами в производстве памяти Infineon Technologies AG и Toshibа, разрабатывает технологию памяти, основанную на производственном процессе 1T/1C (1 транзистор / 1 конденсатор) для рынка мобильных устройств, персональных компьютеров и PDA. Производство основано на классе материалов PZT (Provskite lead zirconate titanate), которые были лицензированы фирмой Toshiba у фирмы Ramtron. Infineon также имеет кросслицензионные соглашения с Ramtron относительно использования разработанной этой фирмой технологии производства FeRAM. Технологию PZT у Ramtron также лицензировали фирмы Hitachi и Rohm. Второй фирмой, которая занималась разработкой ферроэлектрической памяти на основе оксида стронциума-висмута-танталум (strontium-bismuth-tantalum oxide) и оксида стронциума-висмута-ниобия (strontium-bismuth-niobium oxide), была Symetrix. Далее лицензионные соглашения были заключены между Symetrix и фирмами Matsushita, NEC, Siemens, Motorola, Hynix и Micron. Эти фирмы, главным образом, занимаются разработкой конкурентоспособных продуктов со встроенной FeRAM для рынка процессоров и микроконтроллеров. Основные игроки этой группы - это NEC и Matsushita, которые ведут разработки на основе технологического процесса 2T/2C. Это более ресурсоемкая технология производства памяти по сравнению с 1T/1C. Введение дополнительного транзистора и конденсатора в ячейку памяти обуславливает большую стабильность работы, но, в то же время, увеличивает площадь микросхемы той же конфигурации и поднимает цену продуктов, произведенных по такому процессу.