Итак, оперативная память компьютера, которая еще называется энергозависимой. Она же - DRAM (Dynamic Random Access Memory) - динамическая память с произвольным доступом или оперативное запоминающее устройство, сокращенно - ОЗУ.
Давайте разберемся почему же она именно так называется? Во время работы компьютера в оперативной памяти хранятся все данные и программы, запущенные во время работы пользователем. Слово "энергозависимая" в отношении памяти означает лишь то, что при выключении питания системного блока (завершения работы) оперативная память компьютера обнуляется. Исчезает все ее содержимое.
Есть еще энергонезависимая память - это жесткий диск Вашего компьютера, ведь данные на нем сохраняются даже после выключения питания.
"Динамическая память с произвольным доступом": доступ (обращение) к разным ее ячейкам происходит в произвольном порядке и в разные моменты времени, отсюда и определение. А вот со словом "динамическая" ситуация более сложная. Давайте разбираться!
Наименьшей единицей структуры оперативной памяти компьютера является ячейка. Массив близко расположенных ячеек объединяется в условные прямоугольные таблицы, которые называются матрицами. Горизонтальные линейки такой матрицы называют строками, а вертикальные столбцами. Весь прямоугольник матрицы носит название "страница", а совокупность страниц называется банком. Все эти вещи немного виртуальны, в том смысле, что, к примеру, "банком" может называться как целый модуль DIMM, так и отдельная его часть (микросхемы памяти, расположенные с одной его стороны).
В любом случае, схему строения оперативной памяти компьютера (ее фрагмента) можно видеть на картинке ниже (нажмите для увеличения):
Как мы уже говорили, наименьшей единицей на физическом уровне является ячейка. Ячейка состоит из одного микро-конденсатора (на схеме выше обозначен как С) и трех транзисторов (VT). Конденсатор хранит небольшой заряд, а транзисторы выступают в роли "ключей", которые, с одной стороны, не дают заряду конденсатора самопроизвольно стечь, а с другой, - разрешают/запрещают доступ к конденсатору на чтение или изменение.
Каждый конденсатор может хранить наименьшую единицу информации - один бит данных. Если конденсатор заряжен, то, согласно двоичной системе счисления, применяющейся в компьютерах, - это логическая "единица", если заряда нет - логический "ноль" и данных нет.
В теории схема организации работы оперативной памяти выглядит красиво, но идеальных решений нет и на практике разработчикам приходится сталкиваться с тем, что заряд из конденсатора достаточно быстро уходит или происходит его частичная самопроизвольная разрядка (не спасают положение и "ключи"), поэтому не остается иного выхода, как периодически подзаряжать его. Насколько часто? Несколько десятков раз в секунду! И это при том, что таких конденсаторов в одном чипе памяти - несколько миллионов!
В итоге, состояние всей памяти должно постоянно считываться и за небольшой промежуток времени снова обновляться (в противном случае все ее данные просто исчезнут). Вот именно поэтому она получила название "динамическая", имелось в виду ее динамическое автоматическое обновление или регенерация. На фото выше мы можем видеть специальные ее блоки, которые отвечают за эту функцию.
Также нужно учитывать то, что процесс считывания в DRAM деструктивен: после обращения к любой ячейке ее конденсатор разряжается и чтобы не потерять содержащиеся в ней данные конденсатор нужно снова зарядить. Второй "сюрприз" состоит в том, что, в силу конструктивных особенностей, дешифратор адреса строки/столбца отдает команду на считывание не одной конкретной ячейки, а сразу всей строки (или столбца). Считанные данные полностью сохраняются в буфере данных и потом из них уже отбираются запрашиваемые приложением. После этого сразу же нужно перезарядить целый ряд ячеек!
Хоть и может показаться, что процесс регенерации (обновления) носит несколько хаотичный характер, но это не так. Контроллер оперативной памяти через равные промежутки времени берет строго регламентированную технологическую паузу и в это время проводит полный цикл регенерации всех данных.
Когда-то я прочитал хорошую фразу: "Динамическую память можно сравнить с дырявым ведром. Если его постоянно не пополнять, то вся вода вытечет!" Что-то условно похожее и происходит в ситуации с DRAM. Естественно, все эти дополнительные команды и циклы зарядки-разрядки приводят к дополнительным задержкам в работе и не являются признаком высокого КПД конечного изделия. Так почему нельзя придумать что-то более эффективное? Можно! И оно уже придумано - статическая память с произвольным доступом (SRAM - Static Random Access Memory).
Статическая память работает намного быстрее динамической посредством переключения триггеров и не нуждается в регенерации. Она с успехом применяется при построении кешей центрального процессора и в кадровых буферах дискретных видеокарт. Можно ли организовать на базе SRAM основную системную память компьютера? Можно, но из-за усложнения конструкции она будет стоить намного дороже и производителям это просто не выгодно :)
Думаю, логично, если рассматривать мы будем оперативную память типа DIMM. Аббревиатура расшифровывается как «Dual In-Line Memory Module» (двухсторонний модуль памяти), а именно такие платы до сегодняшнего дня и используются в персональных компьютерах.
Память стандарта DIMM в конце 90-х годов прошлого века пришла на смену предыдущему стандарту SIMM (Single In-Line Memory Module - односторонний модуль памяти). Фактически, модуль DIMM представляет собой печатную плату с нанесенными на нее контактными площадками. Это - своеобразная основа: чипы памяти и прочая электрическая "обвязка" производителем добавляются уже потом.
Принципиальное отличие DIMM от SIMM, кроме размеров, состоит в том, что в новом стандарте электрически контакты на модуле расположены с двух сторон и являются независимыми, а в SIMM они расположены только с одной его стороны (встречаются и с двух, но там они просто закольцованы и передают, по сути, один и тот же сигнал). Стандарт DIMM способен также реализовывать такую функцию, как обнаружение и исправление ошибок с контролем четности (ECC), но об этом ниже.
Оперативная память компьютера это то место, где центральный процессор сохраняет все промежуточные результаты своих вычислений и работы, забирая их обратно по необходимости для дальнейшей обработки. Можно сказать, что RAM - это рабочая область для центрального процессора компьютера.
Услугами оперативной памяти также с удовольствием пользуются и видеокарты (если им не хватает для размещения данных объема своей). Встроенное видео собственной вообще не имеет и без зазрения пользуется оперативной.
Давайте посмотрим на то, как выглядят обычные модули DIMM:
Оперативная память компьютера - многослойная пластина текстолита (на фото - зеленая и красная соответственно). Печатная плата (PCB - printed circuit board) - это основа с нанесенными на ней печатным способом элементами. Впаянное в нее определенное количество микросхем памяти (на фото - по четыре с каждой стороны) и разъем подключения, который вставляется в соответствующий слот на материнской плате.
Разъем модуля, фактически, определяет тип нашей DRAM (SDRAM, DDR, DDR2, DDR3 и т.д.). Присмотритесь повнимательней и Вы увидите, что на фотографии разъем разделен пополам небольшим разрезом (его называют "ключ"). Именно этот "ключ" не позволяет вставить модуль памяти в несовместимый с ней разъем на материнской плате. Важно: "ключи" на модуле и на плате должны совпадать идеально. Это защита от неправильной установки в плату.
На схеме ниже представлено расположение "ключей" для разных типов модулей:
Как видите, длина у всех модулей одинаковая. Внешне разница только в количестве контактных площадок на разъеме и расположении "ключей".
Теперь коротко рассмотрим самые распространенные типы оперативной памяти. Разные ее поколения:
- SDRAM - (Synchronous Dynamic Random Access Memory - синхронная динамическая память с произвольным доступом). Модуль с 168-мю пинами (контактами), питающийся от напряжения 3,3 Вольта (V).
- DDR - (Double Data Rate - удвоенная скорость передачи данных). Позволяет (в отличие от SDRAM) делать выборку (или передавать данные) дважды за один такт шины памяти. Модуль имеет 184 контакта, его питающее напряжение - 2,6 V. С появлением памяти стандарта DDR предыдущее поколение памяти стали называть SDR SDRAM (Single Data Rate DRAM).
- DDR2 - следующее поколение чипов. Она позволяет за один такт передавать уже 4 бита информации (два набора данных) из ячеек микросхем памяти в буферы ввода-вывода. Печатная плата с 240-ка контактами (по 120 с каждой стороны). Ее напряжение питания - 1,8 В.
- DDR3 - следующее поколение, способное за один такт делать выборку 8-ми бит данных, 240 контактов и питающее напряжение в 1,5 Вольта. При этом энергопотребление памяти DDR3 на 40% меньше, чем у DDR2, что достаточно важно при ее использовании с мобильных устройствах (ноутбуках). Снижение энергопотребления достигается за счет перехода на более "тонкий" техпроцесс (90-65-50-40 нанометров).
-
DDR4 - появилась на рынке в 2014-ом году. Эволюция DDR3 (пониженное напряжение (1.2V), чуть больше контактов - 288, чуть выше модуль, скорость передачи удвоена за счет двойного количества самих чипов памяти). Скорость передачи данных до 3.2 Гигабита в секунду. Максимальная частота работы памяти данного типа - 4 266 МГц
Итак, признаками, которые характеризуют оперативную память компьютера можно считать следующие:
- Тип ОЗУ (SDRam, DDR и т.д.)
- Объем модулей
- Тактовая частота их работы
- Тайминги (задержки при доступе и выборке данных из чипов - латентность)
Пункт первый мы рассматривали выше, а вот по остальным давайте пройдемся. Объем микросхем памяти сейчас постоянно увеличивается и сейчас модулем в 1 Gb (гигабайт) уже никого не удивишь. А раньше я хорошо помню, какой благоговейный трепет вызывала во мне фраза: "У меня на работе на компьютере установлено 128 мегабайт RAM!" Причем знакомый на тот момент работал с трехмерной графикой в программе моделирования «3DMax» :) Сейчас есть модули по 16 гигабайт каждый и я уверен, что это не предел.
Идем дальше: тактовая частота. Измеряется в мегагерцах (МГц - MHz) и общим правилом является то, что чем она больше, тем память работает быстрее. Например, память DDR4 работает на частоте 4266 Мегагерц. При более высокой частоте возрастает и пропускная способность оперативной памяти (то, сколько данных она может "прокачать" через себя за единицу времени).
Вот небольшая сводная таблица, наглядно показывающая этот момент:
Тайминги (латентность) - это показатель временной задержки между поступлением в память команды и временем ее выполнения. Латентность определяется таймингами, измеряемыми в количестве тактов между отдельными командами. Настройка таймингов происходит в биосе и изменением их значений можно добиться определенного прироста производительности работы компьютера.
Пользуясь случаем, хотелось бы добавить небольшую ремарку по поводу всех этих "новых" типов памяти: DDR2, 3, 4 и т.д. Грубо говоря, это все тот же старый добрый SDRAM модуль, но немного переделанный. Поскольку увеличивать частоту работы самой памяти накладно (никто не любит заниматься этим из-за неизбежного нагрева, возникающего после этого), производители пошли на хитрость.
Вместо существенного увеличения тактовой частоты самой памяти, они увеличили разрядность внутренней шины данных (от ячеек матриц памяти до буферов ввода-вывода) и сделали ее в два раза большей, чем разрядность внешней шины (от контроллера до микросхем памяти). Получилось, что за один такт считывается столько данных, сколько раньше считывалось по внешней шине только за два такта. При этом, ширина внешней шины данных составляет, как и раньше, 64 бита, а внутренней - 128/256/512 и т.д. бит.
Еще одной "уловкой", позволяющей поднять быстродействие без увеличения частоты является параллельная установка модулей для включения двух и трехканального режимов работы (double и triple-channel соответственно). Это еще немного увеличивает быстродействие подсистемы памяти (5-10 процентов). Для работы в таком режиме предпочтительно использовать Kit-ы. «KIT» - это набор модулей, состоящий из нескольких "планок", которые уже протестированы для кооперативной работы друг с другом.
На современных материнских платах слоты (разъемы) для памяти через один выделены разными цветами. Это сделано именно для облегчения установки в них похожих (в идеале - одинаковых) модулей. Если установка прошла успешно, режим мультиканальности включится автоматически. На фото ниже представлены платы с возможностью работы оперативной памяти в трех и четырехканальном режимах.
А вот так могут выглядеть на плате четыре канала оперативной памяти (quad-channel) :
Сейчас мультиканальные режимы памяти используются достаточно широко. Идея состоит в следующем: двухканальный контроллер памяти может обращаться одновременно (параллельно) к каждому четному и нечетному модулю. Например: первый и третий модуль передают и принимают данные одновременно со вторым и четвертым. При традиционном подходе (одноканальный режим) все установленные модули обслуживались одним контроллером (каналом), которому приходилось быстро переключаться между ними.
Общая скорость каждого канала определяется самым медленным модулем DIMM, который в нем установлен. Также старайтесь придерживаться рекомендации, гласящей: в каждый из каналов нужно устанавливать планки одинакового объема.
Сейчас несколько слов о микросхемах оперативной памяти (чипах). Как и любой элемент компьютера на который подается напряжение, память греется. Как мы помним, комплектующие внутри системного блока подпитываются определенным количеством постоянного тока, которое им отдает блок питания - 12V, 5V или 3 Вольта.
Греются непосредственно сами микросхемы. И некоторые производители плат ставят на свои изделия небольшие радиаторы для отвода тепла. Радиаторы, как правило, просто приклеиваются с помощью специального состава или держатся на термопасте.
Радиатор также может защелкиваться сверху:
Вот, к примеру, какой образец оперативной памяти компьютера от брендовой компании «OCZ» находится в моей домашней коллекции:
Вещь! Двойной радиатор, плата приятно тяжелит ладонь и вообще производит впечатление предмета, сделанного на совесть. Плюс - пониженные тайминги работы :)
Помню в 2008-ом году я некоторое время работал на одной крупной фирме. Компьютеризировано там было все достаточно серьезно. В IT отделе там работали, в хорошем смысле этого слова, настоящие "маньяки" своего дела :) Когда я впервые посмотрел на вкладку свойств тамошнего терминального сервера, который работал под управлением 64-х разрядной ОС Windows Server 2003, я мягко говоря, очень удивился. Я увидел цифру в 128 (сто двадцать восемь) гигабайт оперативной памяти! Понимая, что выгляжу глупо, я все таки решил переспросить, так ли это? Оказалось, что так оно и есть на самом деле (128 гигабайт DRAM). Жаль, что мне тогда не удалось взглянуть на ту материнскую плату :)
Продолжаем! Чипы памяти могут быль расположены как с одной стороны печатной платы текстолита, так и с обеих и быть разной формы (прямоугольные или квадратные), установленные как планарные SMD или же BGA компоненты. Высота самого модуля также может быть разной. Каждый из чипов оперативной памяти имеет определенную емкость, измеряемую в мегабайтах (сейчас - в гигабайтах).
Например, если у нас планка имеет объем в 256 мегабайт и состоит из 8-ми чипов то (делим 256 на 8) и получаем, что в каждой микросхеме содержится по 32 мегабайта.
Не могу обойти вниманием особый класс памяти - серверную DRAM. На фото ниже представлены несколько модулей: первый и третий - серверные варианты (можете нажать на фото для увеличения).
Чем же серверная память отличается от обычной? Даже визуально на фото выше видно, что решения для серверов имеют дополнительные чипы на плате, которые обеспечивают ей дополнительный функционал. Какой? Давайте посмотрим! Прежде всего, выясним, какие дополнительные компоненты на печатной плате оперативной памяти (кроме самих чипов ОЗУ) являются стандартными? Это ряд твердотельных танталовых SMD конденсаторов, расположенных непосредственно над контактными площадками модуля. Это - компоненты "обвязки" платы памяти.
Вторым обязательным элементом (на фото выше отмечен зеленым) можно назвать микросхему SPD. Аббревиатура расшифровывается как «Serial Presence Detect» - интерфейс последовательного детектирования или последовательное определение наличия. Как-то так :) По сути, - это программируемое ПЗУ, в котором "зашиты" настройки каждого модуля памяти: все параметры, частоты, тайминги, режимы работы и т.д. Именно оттуда при старте компьютера они считываются микросхемой биоса.
Дополнительным микросхемы на серверных платах (обведены красным) обеспечивают возможность выявления и исправления ошибок чтения/записи (технология ECC) и частичной буферизации (регистровость памяти).
Примечание: ECC - (error-correcting code - код коррекции ошибок) Алгоритм выявления и исправления случайных ошибок при передаче данных (не более одного-двух битов в байте).
Для реализации этих возможностей на модуль устанавливается дополнительная микросхема памяти и он становится не 64-х разрядным, как обычные DIMM, а 72-ти двух. Поэтому далеко не все материнские платы могут работать с подобной памятью. Некоторые, надо отдать им должное, - работают! :)
Нажмите на фото выше и Вы сможете увидеть дополнительные обозначения на стикере (выделены красным), которых нет для обычной памяти. Я имею в виду такие сокращения, как: «SYNCH», «CL3 (2.5)», «ECC» и «REG». Остановимся на них отдельно. Поскольку первый из приведенных на фото модулей относится к периоду распространения персональных компьютеров под общим брендом «Pentium», то на нем отдельно присутствует обозначение «SYNCH».
Помните как расшифровывается первая буква аббревиатуры памяти типа SDRAM? Synchronous (синхронная) DRAM. Тип DRAM, работающий настолько быстро, что его можно было синхронизировать по частоте с работой контроллера оперативной памяти. На тот момент это был прорыв! Предыдущие поколения ОЗУ работали в асинхронном режиме передачи данных. Теперь же, команды могли поступать в контроллер непрерывным потоком, не дожидаясь выполнения предыдущих. С одной стороны, это сокращало общее время на их передачу, но с другой (поскольку команды не могли выполняться со скоростью их поступления) появлялось такое понятие, как латентность - задержка выполнения.
Именно о величине латентности модуля серверной памяти говорит нам второй показатель на стикере «CL3». Расшифровывается как «Cas Latency» - минимальное время, измеряемое в тактах системной шины, между командой на чтение (CAS, по факту - передачей в память нужного адреса строки или столбца) и началом передачи данных.
Другое дело, что маркетологи даже здесь пытаются нас надурить и указывают только одну (наименьшую) из всех возможных задержек. На самом деле, разновидностей таймингов существует достаточно много и это - логично: организация работы по передаче, выборке и записи данных в таком большом массиве настолько сложна, что было бы странно, если бы задержек в работе памяти не было совсем или дело ограничивалось одной!
Для примера, некоторые (далеко не все) задержки представлены в таблице ниже:
Таким образом, указывая значение латентности только для одного параметра (CL) с наименьшим показателем и не давая представления о задержках памяти при других операциях, нам пытаются это дело втюхать! Не буду утверждать, что так и происходит, но ощущение возникает именно такое :)
Обозначение ECC мы уже рассматривали выше, не будем повторяться. А вот с указателем «REG» давайте разберемся! Как правило, так обозначаются регистровые (Registered) модули оперативной памяти. Что это значит? Между чипами ОЗУ и шиной устанавливается дополнительная микросхема, которая выполняет роль своеобразного буфера. Поэтому подобный тип регистровой памяти часто называют буферизованной (Buffered) или с частичной буферизацией.
Наличие на модуле памяти специальных регистров (буфера) снижает нагрузку на систему синхронизации (электрической регенерации), разгружая ее контроллер. Регистры относительно быстро сохраняют поступающие в них данные, которые часто требуются приложению. Наличие буфера между контроллером и чипами памяти приводит к образованию дополнительной задержки в один такт, но для серверных систем это нормально. Получаем более высокую надежность за счет небольшого падения производительности.
Оперативная память для ноутбуков называется SO-Dimm и имеет, в силу понятных причин, укороченный дизайн. Выглядит она следующим образом:
Она гораздо более компактна, чем ее десктопные визави, но также имеет уникальный "ключ". Запомните: по положению "ключа" можно определить тип микросхемы. Ну, еще - по надписи на стикере (наклейке) :)
И совсем уж напоследок: приобретайте оперативную память зарекомендовавших себя производителей: «Samsung», «Corsair», «Kingston», «Patriot», «Hynix», «OCZ» и тогда проблемы оперативной памяти будут обходить Вас стороной.
Ниже можете совершить небольшую прогулку по заводу одного из крупных производителей микросхем DRAM - «Kingston».