Как работает оперативная память

Как устроена оперативная память компьютера

Знаете ли вы, что такое оперативная память? Конечно, знаете. Это такое устройство, от которого зависит скорость работы компьютера. В общем, так оно и есть, только выглядит такое определение немного дилетантски. Но что в действительности представляет собой оперативная память? Как она устроена, как работает и чем один вид памяти отличается от другого?

Компьютерная память

Оперативная память, ОЗУ она же RAM (англ.) — это энергозависимая часть компьютерной памяти, предназначенной для хранения временных данных, обрабатываемых процессором. Хранятся эти данные в виде бинарной последовательности, то есть набора нулей и единиц. Энергозависимой же она называется потому, что для её работы необходимо постоянное подключение к источнику электрического тока. Стоит только отключить её от питания, как вся хранящаяся в ней информация будет утеряна.

Но если ОЗУ это одна часть компьютерной памяти, тогда что представляет собой её другая часть? Носителем этой части памяти является жесткий диск. В отличие от ОЗУ, он может хранить информацию, не будучи подключён к источнику питания. Жесткие диски, флешки и CD-диски — все эти устройства именуются ПЗУ, что расшифровывается как постоянное запоминающее устройство. Как и ОЗУ, ПЗУ хранят данные в виде нулей и единиц.

Для чего нужна ОЗУ

Тут может возникнуть вопрос, а зачем вообще нужна оперативная память? Разве нельзя выделить на жестком диске буфер для временного помещения обрабатываемых процессором данных? В принципе можно, но это был бы очень неэффективный подход.

Физическое устройство оперативной памяти таково, что чтение/запись в ней производится намного быстрее. Если бы вместо ОЗУ у вас было ПЗУ, компьютер бы работал очень медленно.

Физическое устройство ОЗУ

Физически ОЗУ представляет съёмную плату (модуль) с располагающимися на ней микросхемами памяти. В основе микросхемы лежит конденсатор — устройство, известное уже больше сотни лет.

Каждая микросхема содержит множество конденсаторов связанных в единую ячеистую структуру — матрицу или иначе ядро памяти. Также микросхема содержит выходной буфер — особый элемент, в который попадает информация перед тем, как быть переданной на шину памяти. Из уроков физики мы знаем, что конденсатор способен принимать только два устойчивых состояния: либо он заряжен, либо разряжен. Конденсаторы в ОЗУ играют ту же роль, что и магнитная поверхность жёсткого диска, то есть удержание в себе электрического заряда, соответствующего информационному биту. Наличие заряда в ячейке соответствует единице, а отсутствие — нулю.

Как в ОЗУ записывается и читается информация

Понять, как в ОЗУ происходит запись и считывание данных будет проще, если представить её в виде обычной таблицы. Чтобы считать данные из ячейки, на горизонтальную строку выдаётся сигнал выбора адреса строки (RAS). После того как он подготовит все конденсаторы выбранной строки к чтению, по вертикальной колонке подаётся сигнал выбора адреса столбца (CAS), что позволяет считать данные с конкретной ячейки матрицы.

Характеристика, определяющая количество информации, которое может быть записано или прочитано за одну операцию чтения/записи, именуется разрядностью микросхемы или по-другому шириной шины данных. Как нам уже известно, перед тем как быть переданной на шину микросхемы, а затем в центральный процессор, информация сначала попадает в выходной буфер. С ядром он связывается внутренним каналом с пропускной способностью равной ширине шины данных. Другой важной характеристикой ОЗУ является частота шины памяти. Что это такое? Это периодичность, с которой происходит считывание информации, а она совсем не обязательно должна совпадать с частотой подающегося на матрицу памяти сигнала, что мы и увидим на примере памяти DDR.

В современных компьютерах используется так называемая синхронная динамическая оперативная память — SDRAM. Для передачи данных в ней используется особый синхросигнал. При его подаче на микросхему происходит синхронное считывание информации и передача её в выходной буфер.

Представим, что у нас есть микросхема памяти с шириной шины данных 8 бит, на которую с частотой 100 МГц подаётся синхросигнал. В результате за одну транзакцию в выходной буфер по 8-битовому каналу попадает ровно 8 бит или 1 байт информации. Точно такой же синхросигнал приходит на выходной буфер, но на этот раз информация попадает на шину микросхемы памяти. Умножив частоту синхросигнала на ширину шины данных, мы получим ещё один важный параметр — пропускную способность памяти.

8 бит * 100 МГц = 100 Мб/с

Память DDR

Это был простейший пример работы SDR — памяти с однократной скоростью передачи данных. Этот тип памяти сейчас практически не используется, сегодня его место занимает DDR — память с удвоенной скоростью передачи данных. Разница между SDR и DDR заключается в том, что данные с выходного буфера такой ОЗУ читаются не только при поступлении синхросигнала, но и при его исчезновении. Также при подаче синхросигнала в выходной буфер с ядра памяти информация попадает не по одному каналу, а по двум, причём ширина шины данных и сама частота синхросигнала остаются прежними.

Для памяти DDR принято различать два типа частоты. Частота, с которой на модуль памяти подаётся синхросигнал, именуется базовой, а частота, с которой с выходного буфера считывается информация — эффективной. Рассчитывается она по следующей формуле:

эффективная частота = 2 * базовая частота

В нашем примере с микросхемой 8 бит и частотой 100 МГц это будет выглядеть следующим образом.

8 бит * (2 * 100 МГц) = 200 Мб/с

Чем отличаются DDR от DDR2, DDR3 и DDR4

Количеством связывающих ядро с выходным буфером каналов, эффективной частотой, а значит и пропускной способностью памяти. Что касается ширины шины данных (разрядности), то в большинстве современных модулей памяти она составляет 8 байт (64 бит). Допустим, что у нас есть модуль памяти стандарта DDR2-800. Как рассчитать его пропускную способность? Очень просто. Что такое 800? Это эффективная частота памяти в мегагерцах. Умножаем её на 8 байт и получаем 6400 Мб/с.

И последнее. Что такое пропускная способность мы уже знаем, а что такое объём оперативной памяти и зависит ли он от её пропускной способности? Прямой взаимосвязи между этим двумя характеристиками нет. Объём ОЗУ зависит от количества запоминающих элементов. И чем больше таких ячеек, тем больше данных может хранить память без их перезаписи и использования файла подкачки.

Оперативная память: принципы устройства и работы

Одной из первых моих статей на этом сайте был гайд по выбору ОЗУ (почитать его можно ). Он в основном практический: что выбрать, что можно ставить и что нельзя, ну и различные полезности. Однако он не затронул, пожалуй, самую интересную часть — а как память вообще работает, и как ее тонко настроить (и разогнать). Если посмотреть, то по количеству параметров ОЗУ является чуть ли не самым сложным элементом ПК: посудите сами, для процессора вы в лучшем случае можете менять частоту тактового генератора (FSB, да и к тому же она уже лет 15 как 100 МГц и редко кто ее трогает), множитель (его как раз и меняют) и напряжение (ибо для работы на более высоких или низких частотах всегда можно подкорректировать напряжение для стабильности работы и, в некоторых случаях, меньшего энергопотребления), ну и количество рабочих ядер (хотя мало кто будет их трогать — разве что многопоточность отключают, ибо в некоторых задачах она может дать отрицательный прирост). Все остальные параметры уже индивидуальны и есть не у всех процессоров, так что зачастую их и не трогают. Что касается видеокарт, то тут параметров еще меньше — всего-то частоты GPU, памяти и напряжение GPU. Но если мы посмотрим на ОЗУ, то увидим море важных параметров: задержки, частоты, транзакции в секунду и т.д. — давайте разберемся, что это и как связано с производительностью и стабильностью работы памяти.
Технические характеристики памяти
Для начала нужно понять, что означают те или иные циферки и буковки в спецификациях памяти. Посмотреть их можно или на самой памяти, или на ее коробке, или в специальных программах типа AIDA64. Я разберу на примере своей памяти, но у вас будут схожие данные. Итак, вот скриншот из AIDA64:
Что мы видим про память? То, что она Dual Channel DDR4-3200 SDRAM (16-18-18-36-CR2). Если погуглить маркировку самих чипов, то можно узнать еще немного информации — PC4-17000 1.2 В. Пойдем по порядку. Что означает Dual Channel (у вас может быть и Single, и Triple, и Quad — хотя если у вас последнее, то вы, скорее всего, знаете, что это)? Это означает, что память работает в двухканальном режиме (или одноканальном, или в трехканальном, четырехканальном и т.д.). Если у вас стоит одна планка памяти, то она будет работать в одноканальном режиме — то есть характеристики чтения и записи будут приблизительно такими же, которые указаны на ней (на деле все зависит от контроллера памяти, и на практике значения могут быть на 10-15% ниже). Если у вас стоит две и больше планок с одинаковыми характеристиками, то они могут работать вместе: в таком случае объем увеличивается пропорционально числу модулей, и скорость также растет почти линейно. Поэтому если у вас одноканальная память и интегрированная графика, которая использует ОЗУ как видеопамять, и если вы на ПК занимаетесь чем-то серьезнее просмотра фильмов и сидения в интернете — в первую очередь нужно купить еще одну планку ОЗУ и сделать двухканальный режим (как это делается — написано в практической статье), ибо вы тем самым фактически удваиваете производительность ОЗУ (ну а двухканальные контроллеры памяти имеют 90% современных процессоров).

Идем дальше — сочетание букв DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory — синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных). Здесь нам интересна только концовка — «и удвоенной скоростью передачи данных». Смысл тут в том, что в старом типе памяти SDRAM данные считывались только при переходе из стостояния «0» в состояние «1» (по фронту сигнала). В DDR же решили считывать данные и при переходе из состояния «1» в состояние «0» (по спаду сигнала), то есть реальная частота памяти удвоилась. Однако с аппаратной точки зрения частота памяти остается той же, поэтому, например, в том же CPU-Z частота памяти будет вдвое ниже, чем в диспетчере задач:
Как я уже объяснил выше — пугаться этого не стоит, это особенность DDR.
Далее — что означает четверка в DDR4? В общем-то только одно — что это 4ое поколение памяти DDR. Отличия между всеми типами можно посмотреть на Вики, не вижу особого смысла это переписывать, но скажу, что основной прирост идет за счет роста частоты памяти.
Теперь посмотрим всю конструкцию — DDR4-3200. Очень многие после 3200 подписывают МГц — в общем-то, это не совсем правильно. На самом деле тут имеется ввиду МТ/с, или мегатранзакции в секунду. Что это за величина? Это величина, которая показывает, сколько операций в секунду может совершаться с памятью. С учетом того, что ширина шины DDR4 составляет 64 бита (или 8 байт), можно получить ее скорость в МБ/с — для этого нужно 3200 МТ/с * 8 Б = 25600 МБ/с. И тут следует сказать, что эта цифра зачастую уже пишется на самой памяти — в моем случае это PC4-17000. Вы скажете — 17000 не равно 25600. Все верно, в моем случае память разогнана, если взять ее реальную скорость в 2133 МТ/с то мы как раз получим 17000 МБ/с. Ну а PC4 в данном случае — эквивалент DDR4. То есть, как вы видите, DDR4-2133 и PC4-17000 — эквивалентные записи, поэтому для понимания того, какая у вас память, достаточно знать только одну из них.
Теперь идет конструкция 16-18-18-36-CR2. Для объяснения этих цифр нужно посмотреть, что же из себя представляет современная DDR-память. По сути она — набор ячеек, хранящих информацию. Каждая ячейка имеет внутри себя транзисторы и конденсаторы, и располагается она в двумерном массиве вместе с другими ячейками. Ну а принцип действия прост: конденсаторы заряжаются при записи в ячейку единичного бита и разряжаются при записи нулевого бита. Отсюда, кстати, возникает проблема — дабы избежать разрядки конденсаторов и потери информации, их нужно постоянно заряжать — именно поэтому при отключении питания ПК вся информация из ОЗУ стирается.
Основная проблема при работе с ОЗУ — это задержки (latency) при доступе к ячейкам памяти. Логично, что чем меньше задержка — тем быстрее будет идти чтение/запись — тем меньше будет простаивать процессор в ожидании ответа от ОЗУ — тем быстрее будет быстродействие. Посмотрим, какие бывают задержки и за что они отвечают.
Разумеется, каждая ячейка имеет свой «адрес»: грубо говоря, это ее номер в строке и столбце таких же ячеек в двухмерном массиве. В свою очередь, некоторое количество ячеек объединяется вместе для более быстрого доступа к ним — такая группа называется банком. Теперь посмотрим, что происходит, когда контроллер памяти хочет что-то записать в определенную ячейку. Для начала он обращается в банку с адресом строки — этот сигнал называется RAS (Row Address Strobe). Соответственно, время обращения (задержка) называется RAS Latency — но этот параметр малоинформативен и очень редко пишется. Зато важен параметр RAS to CAS Delay — это процесс поиска нужной строки в банке памяти. Вот этот параметр уже нужен, и его задержка пишется второй — то есть в моем случае он составляет 18 тактов (один такт — это одна отправка данных по шине памяти). Великолепно, всего за 18 тактов мы нашли нужную строку. Но ведь нужен еще и столбец — за него отвечает еще один сигнал, CAS, и его задержка пишется первой — в моем случае это 16 тактов. Казалось бы — все, мы получили точное расположение нашей ячейки, зачем еще две цифры?

Не все так просто — зачастую бывает, что контроллеру нужно обратиться к другой ячейке этой же строки. Но для этого он должен сначала закрыть предыдущую сессию запроса (нельзя одновременно обращаться к различным ячейкам одной строки) — а на это опять же уходит время, и эта задержка называется RAS Precharge — она указывает на время закрытия и повторной активации строки. Ее пишут третьей, в моем случае это опять же 18 тактов. Последний параметр — Cycle Time — отвечает за время, необходимое для полного открытия и закрытия всего банка, иными словами — это быстродействие всей памяти. Он пишется четвертым, и у меня он 36 тактов.
Остался последний параметр — CR (Command Rate), он может быть 1 или 2. Отвечает этот параметр за время, которое должно пройти между активацией памяти и ее способности к работе — это 1 или 2 такта. Разумеется, 1 такт лучше, но тут уж как повезет с памятью.
Разумеется, такой параметр как такт не очень нагляден — интереснее узнать результат в наносекундах. Для этого узнаем, сколько времени занимает один такт — это 1 / 1200 МГц = 0.83 нс (берем, разумеется, реальную частоту памяти). Cycle Time у памяти 36 тактов, то есть задержка получается 0.83 нс * 36 = 30 нс. Тогда почему AIDA64 показывает результат около 48 нс? Все просто — сам процессор хоть и небольшой, но из-за крайне малых промежутков времени (миллиардные доли секунды) приходится учитывать время на проход сигнала внутри него, что и добавляет дополнительные 18 нс.
Вот в общем-то и все, теперь Dual Channel DDR4-3200 SDRAM (16-18-18-36-CR2) для вас не просто куча символов, а вполне осмысленный набор параметров, который позволяет достаточно точно понять, что за ОЗУ перед вами.
Разгон ОЗУ
У внимательного читателя мог возникнуть вопрос — а что же важнее, более высокая частота памяти или более низкие тайминги (задержки)? Ведь, с одной стороны, чем выше частота — тем быстрее производительность памяти и системы в целом. С другой стороны, чем ниже тайминги — тем быстрее будет происходить обращение к памяти и меньше будет простаивать CPU, то есть — тем быстрее будет работать ПК. С учетом того, что чем выше частота — тем выше тайминги, тут нужно соблюсти баланс. Увы — у каждого он свой, так что разгон памяти — достаточно кропотливое занятие по выставлению различных таймингов, напряжений и частот, и тесты скорости работы ОЗУ в системе. Разумеется, далеко не все хотят заниматься перебором, поэтому в продаже есть память с поддержкой профилей DOCP и XMP. Это — уже зашитые в память профили авторазгона, где прописаны напряжения, частоты и тайминги, на которых память гарантированно заработает — вам лишь нужно выбрать нужный профиль в UEFI. Плюсы такого метода очевидны — вы получаете разгон в один клик. Минусы тоже — во-первых, такая память стоит дороже, причем чем выше гарантированная частота — чем больше цена. Во-вторых, профили не идеальны, и зачастую можно выжать еще 5-10% производительности, но опять же — ковыряясь в таймингах.
Ну и самый последний ожидаемый вопрос — а стоит ли вообще разгонять ОЗУ? Все зависит от ваших задач и процессоров: к примеру, в 6 и 8-ядерных AMD Ryzen частота шины, связывающей два процессорных кристалла, напрямую зависит от частоты ОЗУ, так что там ее разгон как говорится «маст хэв». В играх особого прироста производительности от разгона памяти стоит ждать лишь в топовых системах, и то это будет разница между 110 и 120 fps — с одной стороны, приятный бонус, с другой — разница-то все равно не заметна на глаз. Ну а лучше всего заметен разгон в задачах, тесно связанных с ОЗУ — к примеру, архивацией, где у процессоров зачастую не хватает кэша, и они вынуждены часто обращаться к памяти.

Конечно же, вы слышали о том, что компьютеры имеют оперативную память, называемую иначе ОЗУ или RAM – ведь именно с увеличения ее объема проще всего делать апгрейд компьютера. Давайте мы вместе попробуем разобраться с ее назначением и принципами работы.

Функции ОЗУ

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

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

В настоящее время микросхемы ОЗУ изготавливаются на основе технологии динамической памяти (DRAM, или Dynamic Random Access Memory). Динамическая память, в отличие от статической, которая используется в кэш-памяти, имеет более простое устройство, и, соответственно ее цена на единицу объема гораздо ниже. Для хранения одной единицы информации (одного бита) в DRAM используется всего лишь один транзистор и один конденсатор.

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

Максимальный объем доступной оперативной памяти, которую можно установить в системе, определяется разрядностью шины адреса процессора. С появлением 32-разрядных процессоров этот объем был равен 4 ГБ. Современные 64-разрядные процессоры способны поддерживать адресное пространство ОЗУ в 16 ТБ. Это цифра представляется сейчас совершенно фантастической, но ведь когда-то и цифра в 4 ГБ для ОЗУ казалась абсолютно невероятной, а сегодня 32-разрядные системы уже уперлись в этот потолок, ограничивающий их возможности.

Как и в случае процессора, скорость работы ОЗУ во многом определяется ее тактовой частотой. Тактовая частота современных микросхем памяти типа DDR3 в среднем составляет примерно 1600 МГц.

Физически оперативная память представляет собой длинную и невысокую плату, к которой припаяны непосредственно микросхемы памяти. Эта плата вставляется в специальные слоты на материнской плате. В настоящее время наиболее распространены модули памяти форм-фактора DIMM (Dual In-line Memory Module или двухсторонний модуль памяти).

История развития микросхем

В эпоху господства компьютеров семейства XT/AT господствовали микросхемы памяти форм-фактора DIP. Эта память представляла собой отдельную микросхему, которую нужно было вставлять в горизонтальном положении в специальный разъем на материнской плате. Оперативная память формата DIP, однако, имела несколько существенных недостатков. Во-первых, микросхема не очень крепко держалась в своем гнезде, и поэтому часть ее контактов могла не действовать, что приводило к ошибкам памяти. Кроме того, подобные микросхемы имели небольшую емкость и неэффективно использовали свободное пространство материнской платы.

Недостатки технологии DIP побудили конструкторов к разработке модулей памяти форм-фактора SIMM (Single-in-line Memory Module). Первые SIMM появились еще в системах AT. В отличие от DIP модули SIMM, как и современные DIMM, представляли собой длинные модульные платы, к которым были в один ряд прикреплены микросхемы памяти, и которые можно было вставлять в специальный разъем на материнской плате в вертикальном положении.

В разные годы выпускалось два типа SIMM – 8-разрядные SIMM c 30 контактами и более поздний вариант, впервые появившийся в системах на базе 486-х процессоров – 32 разрядные модули c 72-разъемами.

Модули SIMM необходимо было вставлять не как угодно, а таким образом, чтобы заполнялись так называемые банки памяти. Разрядность банка памяти соответствовала разрядности шины адреса процессора. Для заполнения банка памяти в компьютерах с 16-разрядной шиной минимальное количество модулей SIMM составляло два 8-разрядных модуля, а в компьютерах с 32-разрядной шиной их требовалось уже 4.

Модули типа SIMM стали выходить из употребления уже в системах на базе первого Pentium. Вместо них конструкторами был разработан модуль DIMM. Как можно догадаться из названия («двухсторонний модуль памяти»), этот модуль имеет два ряда контактов с обеих сторон, в то время, как в SIMM фактически был всего один ряд контактов.

Помимо этого, модуль DIMM отличается технологией изготовления самих микросхем устанавливаемых на нем. Если до появления DIMM использовались микросхемы типа EDO или FPM, то в DIMM используется более новая технология Synchronous DRAM. Кроме того, модули DIMM имеют встроенную микросхему контроля четности памяти.

Модуль DIMM первого поколения, в отличие от SIMM, имел 168 контактов, а также специальный ключ в разъеме, исключающий неправильную установку модуля.

Второе поколение DIMM, основанное на технологии DDR SDRAM, имело уже 184 контакта. Следующие поколения – современные DDR2 и DDR3 могут похвастаться наличием 240 контактов.

Память Rambus

Также стоит рассказать немного об одной интересной технологии ОЗУ, которая наделала в свое время много шума, однако так и не стала массовой. Речь идет о модулях памяти типа RIMM (Rambus in-line memory module), которые были разработаны компанией Rambus совместно с Intel в конце 90-х гг.

В основу модулей памяти RIMM Rambus положила технологию памяти, которая до этого использовалась в некоторых видеокартах. Технология RIMM до появления DIMM и DDR SDRAM казалась многообещающей и позиционировалась Rambus как замена всем старым форматам памяти. В частности, модули памяти Rambus RIMM в несколько раз превосходили своих конкурентов, предлагая пользователем скорость передачи данных в 1600 МБ/с при тактовой частоте в 400 МГц.

Тем не менее, модули памяти типа RIMM, оказались не лишены и нескольких недостатков. Во-первых, модули RIMM были довольно велики по размеру. Кроме того модули RIMM выделяли слишком много тепла и нуждались в средствах охлаждения. Ну и самое главное, память типа RIMM была отнюдь не дешева.

Поэтому на сегодняшний день ОЗУ, основанное на модулях памяти форм-фактора RIMM, можно встретить лишь в некоторых серверах, а не в персональных компьютерах.

Оперативная память, или оперативное запоминающее устройство персонального компьютера – один из важнейших его компонентов. Основное назначение оперативной памяти – временное хранение текущих данных. Оперативная память предоставляет необходимое пространство для работы прикладных программ и операционной системы. От объема и скорости работы модулей оперативной памяти во многом зависит скорость работы и производительность всего компьютера.

Порекомендуйте Друзьям статью:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *