Модули SIMM оказались весьма популярными, однако и им нашлась замена, и они практически совсем уступили место DIMM. Причины этого лежат на поверхности. Блок памяти содержит количество микросхем или модулей памяти, достаточное, для хранения и параллельной передачи числа бит данных, равного числу линий данных CPU. Относительное соответствие всех чипов памяти в одном блоке достаточно важно. В частности, все они должны быть в состоянии хранить одно и то же число бит информации. Кроме того, все они должны отвечать на запросы чтения-записи данных примерно за одно и то же время, причем подчиняясь одинаковым сигналам. Все это может быть изначально гарантировано, если во всех разъемах, составляющих один блок, используются идентичные микросхемы или модули памяти.
Один, из простейших способов гарантировать правильное заполнение блоков памяти соответствующими микросхемами памяти заключается в использовании больших модулей памяти. У них может быть 32 или 64 линии данных (в зависимости от типа CPU), так что всего лишь один такой модуль составит целый блок памяти. Конечно, такой памяти необходимо гораздо больше контактов для установки в разъем, нежели модулю SIMM с байтовой шириной. Чтобы разместить все эти контакты, не увеличивая чрезмерно модуль памяти, производители выводят контакты по обеим сторонам печатной платы, несущей модули памяти. (Даже сами модули памяти могут быть размещены на обеих сторонах платы). Такие модули называются DIMM (Dual Inline Memory Module — модуль памяти "в две линейки").
Модуль DIMM представляет собой целый блок памяти, все элементы которого соответствуют друг другу автоматически, без особых усилий со стороны пользователя. (Более того, эти модули защищены прорезями-ключами от некорректного использования, так что вы не сможете установить DIMM, рассчитанный на 3,3 вольта в разъем для 5-вольтового DIMM, и наоборот. У модулей DIMM, кроме того, гораздо больше проводов заземления, чем SIMM, что становится критичным по мере роста скоростей, на которых работают модули памяти).
Микросхемы памяти — это изделия высочайшего технологического уровня, которые выпускаются небольшим количеством японских, корейских, американских и европейских фирм с мировым именем: Samsung, NEC, Toshiba, Mitsubishi, Oki, Hitachi, Sanyo, Goldstar, Hyundai, Motorola, Texas Instruments, Micron Technology, Siemens. Так, первой фирмой, выпустившей 256-Мбит-ную микросхему динамической памяти, стала корейская компания Samsung. Некоторые фирмы поставляют не только готовые микросхемы, но и полуфабрикаты — кремниевые пластины со сформированными на них схемами памяти. Они используются другими фирмами, которые монтируют чипы в корпус, тестируют и могут продавать под другой торговой маркой, как правило, по более низким ценам. Некоторые известные производители компьютеров (brand name) применяют в своих изделиях нестандартные модули памяти, так называемые "собственные" (proprietary memory).
Напомним, что для адресации к любому биту, например, 1-Мбитной микросхемы требуются 20 адресных линий, в то время как корпус такой микросхемы имеет только 18 выводов. Дело здесь в том, что для этой цели используется так называемое мультиплексирование адресов. Полный адрес ячейки данных делится на два компонента — адрес строки (row address) и адрес столбца (column address). Для сопровождения первого компонента служит сигнал RAS (Row Address Strobe), а второго — сигнал CAS (Column Address Strobe). Вообще говоря, под временем выборки для микросхемы памяти понимается длительность именно сигнала RAS.
В процессе обращения к микросхеме DRAM для записи или считывания информации необходимо сначала подать на ее адресные входы код адреса строки, и одновременно с ним (или с некоторой ненормируемой задержкой) сигнал RAS, затем через нормированное время задержки должен быть подан код адреса столбца, сопровождаемый сигналом CAS. Следующее обращение к этой микросхеме возможно только после промежутка времени, в течение которого происходит восстановление (перезарядка) внутренних цепей микросхемы. Это время называют временем перезарядки (prechargeitime), причем оно составляет почти 90% от общего времени выборки.
Одним из способов повышения быстродействия динамической памяти является метод управления памятью с чередованием адресов (interleaving mode). Дело в том, что, используя даже обычные микросхемы DRAM, задержки, связанной со временем перезарядки, можно избежать, если каждые последовательно выбираемые ячейки памяти будут относиться к разным банкам памяти. Таким образом, метод чередования адресов предусматривает деление памяти на блоки (банки), из которых процессор должен считывать данные попеременно. То есть пока считываются данные из одной группы микросхем, другая группа получает время на перезарядку.
Другим способом повышения быстродействия, требующим, как правило, небольших архитектурных добавок, является метод страничной выборки (paging mode). Он базируется на том, что повторения сигнала RAS также можно избежать, если адреса строк выбираемых ячеек памяти лежат в пределах одной страницы, то есть адрес их строк неизменен. Напомним, что в микросхеме динамической памяти считывание в статический буфер происходит для всей строки целиком, конкретный же бит выбирается уже адресом столбца. Понятно, что если следующий подлежащий считыванию бит находится в той же строке, то нет смысла читать ее в буфер еще раз. Наиболее распространены две разновидности подобного режима: с повторением сигнала стробирования CAS при изменении младшей части адреса и без повторения. В последнем случае быстродействие, естественно, увеличивается.
В стремлении создавать все более быстрые чипы DRAM производители усовершенствовали их во многих аспектах. Каждый носит свое замысловатое название и имеет особые преимущества.
Микросхемы DRAM, реализующие страничный режим, часто называют FPM (Fast Page Mode). Их принцип работы основан на том, что обычно у микросхем DRAM только половина необходимых адресных линий. Одни и те же контакты используются для адресов строк и столбцов, а их назначение определяется временем поступления сигнала. Для ускорения работы, в случае если процессор обращается к нескольким последовательным или близко расположенным ячейкам, чипу памяти адрес строки сообщается только однажды, а затем осуществляется последовательный доступ к ячейкам, расположенным в указанных далее столбцах. Новый адрес строки передается только при переходе к новой строке. Тем не менее, использование даже подобных способов повышения быстродействия оперативной памяти, выполненной на стандартных DRAM, не давало требуемых результатов.
Другая стратегия (используемая в EDO DRAM), основана на том, что считанные данные некоторое время могут накапливаться на выходе. Подобный принцип, называемый ускоренным выводом данных (Extended Data Out), позволяет обращаться к значению некоторой ячейки, и в то время как результат предыдущего запроса еще считывается, чип может подготавливать следующий бит данных.
Двухпортовые DRAM позволяют обращаться сразу к двум ячейкам (по двум адресам). Это осуществляется с помощью двух полных наборов схем для чтения данных из битового массива. Когда миллионы битовых ячеек расположены на одном чипе, дополнительные расходы на это незаметны на фоне остальной, стоимости. Такие устройства несимметричны. То есть, в то время как один порт ввода-вывода позволяет обращаться к произвольной ячейке (и имеет схемы для записи данных в произвольные ячейки), второй используется только, для чтения данных и только всей строки за один раз. Такие двухпортовые чипы DRAM, называемые также видео RAM: (Video RAM, VRAM), особенно; полезны для кадровых видеобуферов, так как они изначально используются CPU для оперативного чтения и записи, а также для линейного чтения (схемой видеоизображения).
WRAM (Windows RAM) — это специальная версия VRAM, оптимизированная для типа доступа, обычного в ОС Windows и приложений Windows.
1.4.4 Новые типы динамической памяти
Стоит начать с того, что за последние десять лет скорость работы микропроцессоров возросла во много раз больше, чем быстродействие оперативной памяти. Так, high-end- компьютеры образца 1984 года (PC/AT) работали с тактовой частотой 10 МГц. Сегодня внутренняя тактовая частота процессоров Pentium достигает, например, 1 ГГц. За этот же период время доступа микросхем оперативной памяти снизилось со 150 всего до 10—5 нс. Причем заметим, что стандартная схемотехника, применяемая в производстве оперативной памяти, не обещает особых изменений и в будущем. Что касается внешней кэш-памяти (подробнее о ней чуть позже), то, во-первых, она достаточно дорогая, а во-вторых, ее использование оказывается эффективным только до тех пор, пока программное приложение не начинает работать с данными, находящимися в разных частях оперативной памяти. Ведь, как известно, основной принцип кэш-памяти заключается в том, что 10— 20% команд или данных будут необходимы в 80—90% случаев. Кроме того, считается справедливым предположение, что если считываются инструкции или набор данных из одного места памяти, то соседние с ними также скоро будут востребованы. Стоит напомнить, что, например, в микросхемах, совместимых с архитектурой Intel, начиная с 486-х процессоров, для доступа к памяти реализован так называемый пакетный (burst) режим. Он заключается в том, что при необходимости чтения одного слова процессор вместе с ним считывает еще три, расположенных рядом. Обычно время пересылки измеряют в тактах и записывают, например, так: 6-3-3-3. Это означает, что если на первую пересылку данных из памяти потребовалось 6 тактов работы процессора, то на каждую последующую — только по 3.