Сновные типы оперативной памяти по архитектурным особенностям.

ам.работа №6

Оперативная память (RAM – Random Access Memory, оперативное запоминающее устройство – ОЗУ, системная память) – непосредственно адресуемая центральным процессором память, в которую записываются программный код и данные для их временного хранения и обработки процессором. Модули оперативной памяти устанавливаются в специальные разъемы на материнской плате.


Прежде всего, следует рассказать о базовом типе памяти – DRAM, на основе которой строятся остальные типы, такие как FPM DRAM, EDO RAM, SDRAM и др. Затем будут рассмотрены основные типы RAM в порядке их появления.

DRAM (Dynamically RAM) – динамическая память – тип памяти, использующий в качестве элемента хранения данных конденсатор. Свое название эта память получила в связи с функциональной необходимостью постоянной подзарядки конденсаторов во избежание их разряжения и, как следствие, утери хранящихся данных. Такая регенерация осуществляется постоянно через равные промежутки времени.

FPM DRAM (Fast Page Mode DRAM) – память с ускоренным страничным режимом. Этот тип памяти использовался в персональных компьютерах с 486-м процессором. Как правило, данный тип памяти представляют как “не-EDO”. FPM DRAM использует формфактор SIMM (см. ниже).

EDO RAM (Extended Data Output RAM) – память с расширенным выводом данных – cтандарт модулей памяти, применяемых в компьютерах с процессором Pentium. Отличается от обычной памяти наличием дополнительных регистров-защелок, за счет которых увеличивается поток выводимых из нее данных (ускоряется чтение данных). Ускорение по сравнению с FPM DRAM достигает 10-15%. Использует форм-фактор SIMM. Теперь перейдем к рассмотрению современных типов памяти для компьютеров на базе процессоров Pentium II, Celeron, Pentium III, Pentium 4, K7 Athlon и K7 Duron.

SDRAM (Synchronous DRAM) – стандарт модулей памяти, в которых все операции синхронизированы с тактовой частотой процессора (в отличие от асинхронных FPM и EDO). Это дает возможность сократить время, затрачиваемое на передачу данных за счет исключения циклов ожидания. Оперативная память SDRAM стандарта PC100 поддерживает работу системной шины на частоте 100 MHz, а PC133, соответственно, 133 MHz. Пропускная способность шины памяти для PC100 SDRAM составляет 800 Mb/s, PC133 SDRAM – 1.064 Gb/s. Существует еще устаревший стандарт PC66 – частота 66 MHz. Кроме того, есть информация о модулях памяти PC166, выпускаемых, по крайней мере, двумя производителями (Tonicom и Kingmax, но, возможно, это не полный список производителей PC166 SDRAM). Тем не менее PC166 не является официальным стандартом. Предназначены эти модули в основном для оверклокеров. Тип памяти SDRAM имеет шину данных разрядностью 64 bit и использует формфактор DIMM (см. ниже).

DDR SDRAM (Double Data Rate SDRAM) – синхронная память с удвоенной передачей данных. Является улучшенным вариантом архитектуры SDRAM. Этот новый тип памяти в отличие от обычного SDRAM может передавать данные по восходящему и падающему уровню сигнала шины (т. е. по обоим фронтам импульса синхросигнала, в результате за один такт передаются сразу два пакета данных). Существуют следующие спецификации (стандарты) памяти DDR SDRAM: PC1600 (для шины с частотой 100 MHz), PC2100 (для шины 133 MHz), PC2400 (для шины 150 MHz) и PC2700 (для шины 166 MHz). Если в названиях стандартов SDRAM – PC66, PC100 и PC133 – присутствовали тактовые частоты шины памяти (66 MHz, 100 MHz, 133 MHz), то в названиях стандартов DDR SDRAM – PC1600, PC2100, PC2400 и PC2700 – указана уже пиковая пропускная способность. Таким образом, для DDR SDRAM PC1600 имеем пропускную способность 1.6 Gb/s, для PC2100 – 2.1 Gb/s, для PC2400 – 2.4 Gb/s, а для PC2700, соответственно, 2.7 Gb/s.

DRDRAM (Direct RAMBUS DRAM или Direct RDRAM) – этот тип памяти является разработкой компании Rambus и отличается оригинальной архитектурой. Данная память работает с результирующей частотой 800 MHz (стандарт PC800) и использует 16-битную мультиплексируемую шину на канал (меньшую по разрядности, чем у SDRAM и DDR SDRAM). DRDRAM обеспечивает высокую скорость работы в приложениях, требующих потоковую передачу данных. Однако стоимость как самих модулей DRDRAM, так и предназначенных для них материнских плат, по сравнению с технологиями DDR SDRAM и PC133 SDRAM является достаточно высокой. Использует форм-фактор RIMM (см. ниже). Существует несколько разновидностей RDRAM, отличающихся тактовой частотой
(и соответственно, производительностью): стандарт PC600 с пиковой производительностью 1.2 Gb/s на канал (по скорости не превосходит PC133 SDRAM), РС700 (1.4 Gb/s) и самый распространенный тип – PC800 с пропускной способностью 1.6 Gb/s на канал (такой же, как у DDR SDRAM PC1600). Так, например, PC800 означает, что память функционирует на частоте 400 MHz, частота передачи данных в два раза больше и составляет 800 MHz (поскольку данные передаются по обоим фронтам импульса синхросигнала). В материнских платах для Pentium 4 на чипсете i850 применяется двухканальный RDRAM, что при использовании модулей типа PC800 дает пропускную способность шины памяти 3.2 Gb/s. На конец 2001 года был намечен выход памяти PC1066 DRDRAM с пропускной способностью 2.1 Gb/s на канал (хотя большинство чипов PC800 могут работать на частоте 1066 MHz). Самый большой недостаток памяти DRDRAM, как уже отмечалось, – значительно более высокая стоимость, чем DDR SDRAM. Кроме того, на данный момент системы, построенные на DRDRAM, незначительно превосходят по производительности системы на базе DDR SDRAM, а в ряде случаев последние работают даже быстрее. В настоящее время идет борьба за лидерство между этими двумя типами памяти. На данный момент первенство по соотношению “цена/качество” перешло к DDR SDRAM, тем не менее в будущем ситуация может измениться. DRDRAM имеет больше возможностей для увеличения производительности, чем DDR SDRAM. Основным направлением развития DRDRAM является увеличение разрядности (32-битная DRDRAM – RIMM с двумя 16-битными каналами, 64-битная – четыре 16-битных канала). Как раз по этому пути и планирует идти основной производитель модулей памяти DRDRAM – компания Samsung. Так, намеченные к выпуску в конце 2003 года 64-битные модули будут иметь производительность от 8.5 Gb/s (частота 1066 MHz) до 9.6 Gb/s (частота 1200 MHz). Кроме того, у разработчика технологии DRDRAM, компании Rambus, имеется план по снижению цен на DRDRAM в будущем.

Напоследок вкратце рассмотрим типы памяти по способу объединения носителей в форм-фактор (по типу конструкции): SIMM (Single In-line Memory Module – модуль памяти с одним рядом контактов). Представляет собой печатную плату с установленными на ней микросхемами памяти, имеющую один ряд двусторонних выводов и устанавливаемую в устройство как единый модуль. Существуют SIMM-модули с 30 и 72 контактами. Если взять в руки 72-контактный SIMM, то можно увидеть, что он имеет по 72 контакта с каждой стороны. Смежные контакты с разных сторон являются в действительности одним и тем же контактом – они соединены электрически.

DIMM (Dual In-line Memory Module – модуль памяти с двумя рядами контактов). Плата памяти, сходная по внутренней архитектуре с SIMM, но отличающаяся от нее более широкой шиной, благодаря которой достигается повышение скорости обмена данных. DIMM-модули для SDRAM имеют 168 контактов (2 ряда по 84 контакта). С каждой стороны 168-контактного модуля DIMM всего 84 контакта. Здесь контакты с разных сторон модуля электрически независимы. Для памяти DDR SDRAM используется несколько другая спецификация DIMM. При сохранении тех же размеров модуля число контактов увеличилось со 168 до 184. Эти изменения не позволяют устанавливать модули DIMM DDR SDRAM в разъемы DIMM для SDRAM (устаревшие).

RIMM (Rambus In-line Memory Module) – формфактор для памяти RDRAM. Имеет ряд отличий по сравнению с DIMM, в частности, они имеют разные монтажные схемы механических ключей. Имеет место несовместимость этих двух типов. Существует еще несколько типов оперативной памяти, однако в этом обзоре мы ограничились только теми, которые пользуются популярностью среди производителей компьютерных комплектующих и широко представлены на компьютерном рынке.

Кэш— это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками, браузерами, веб-серверами, службами DNS и WINS.

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

Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша. Если в кэше не найдена запись, содержащая затребованный элемент данных, то он читается из основной памяти в кэш, и становится доступным для последующих обращений. Такой случай называется промахом кэша. Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий или коэффициентом попаданий в кэш.

Например, веб-браузер проверяет локальный кэш на диске на наличие локальной копии веб-страницы, соответствующей запрошенному URL. В этом примере URL — это идентификатор, а содержимое веб-страницы — это элементы данных.

Если кэш ограничен в объёме, то при промахе может быть принято решение отбросить некоторую запись для освобождения пространства. Для выбора отбрасываемой записи используются разные алгоритмы вытеснения.

При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи.

В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти.

В кэше с отложенной записью (или обратной записью) обновление происходит в случае вытеснения элемента данных, периодически или по запросу клиента. Для отслеживания модифицированных элементов данных записи кэша хранят признак модификации (изменённый или «грязный»). Промах в кэше с отложенной записью может потребовать два обращения к основной памяти: первое для записи заменяемых данных из кэша, второе для чтения необходимого элемента данных.

В случае, если данные в основной памяти могут быть изменены независимо от кэша, то запись кэша может стать неактуальной. Протоколы взаимодействия между кэшами, которые сохраняют согласованность данных, называют протоколами когерентности кэша.

Ряд моделей центральных процессоров (ЦП) обладают собственным кэшем, для того чтобы минимизировать доступ к оперативной памяти (ОЗУ), которая медленнее, чем регистры. Кэш-память может давать значительный выигрыш в производительности, в случае когда тактовая частота ОЗУ значительно меньше тактовой частоты ЦП. Тактовая частота для кэш-памяти обычно ненамного меньше частоты ЦП.

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

Уровни кэша

Кэш центрального процессора разделён на несколько уровней. В универсальном процессоре в настоящее время число уровней может достигать 3. Кэш-память уровня N+1 как правило больше по размеру и медленнее по скорости доступа и передаче данных, чем кэш-память уровня N.

Самой быстрой памятью является кэш первого уровня — L1-cache. По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков. В современных процессорах обычно кэш L1 разделен на два кэша, кэш команд (инструкций) и кэш данных (Гарвардская архитектура). Большинство процессоров без L1 кэша не могут функционировать. L1 кэш работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт. Зачастую является возможным выполнять несколько операций чтения/записи одновременно. Латентность доступа обычно равна 2−4 тактам ядра. Объём обычно невелик — не более 384 Кбайт.

Вторым по быстродействию является L2-cache — кэш второго уровня, обычно он расположен на кристалле, как и L1. В старых процессорах — набор микросхем на системной плате. Объём L2 кэша от 128 Кбайт до 1−12 Мбайт. В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования — при общем объёме кэша в nM Мбайт на каждое ядро приходится по nM/nC Мбайта, где nC количество ядер процессора. Обычно латентность L2 кэша, расположенного на кристалле ядра, составляет от 8 до 20 тактов ядра.

Кэш третьего уровня наименее быстродействующий, но он может быть очень внушительного размера — более 24 Мбайт. L3 кэш медленнее предыдущих кэшей, но всё равно значительно быстрее, чем оперативная память. В многопроцессорных системах находится в общем пользовании и предназначен для синхронизации данных различных L2.

Иногда существует и 4 уровень кэша, обыкновенно он расположен в отдельной микросхеме. Применение кэша 4 уровня оправдано только для высоко производительных серверов и мейнфреймов.

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

Инклюзивная архитектура предполагает дублирование информации кэша верхнего уровня в нижнем (предпочитает фирма Intel).

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

Наши рекомендации