Оперативная память это важная часть любой компьютерной системы и сейчас я объясню, почему это так.

Оперативная память (RAM)
Оперативная память (RAM)

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

Упрощённая схема работы памяти компьютера
Упрощённая схема работы памяти компьютера

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

Физически, оперативная память представляет собой набор микросхем припаянных к плате.

Микросхемы на планке памяти
Микросхемы на планке памяти

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

Устройство ячейки в чипе
Устройство ячейки в чипе

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

Схематичное устройство ячейки динамической памяти
Схематичное устройство ячейки динамической памяти

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

Упрощённая схема массива ячеек, страница
Упрощённая схема массива ячеек, страница

Таких конденсаторов в чипе, очень много но считать заряд с одной конкретной ячейки нельзя, считывается вся страница целиком.

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

Упрощённая схема массива ячеек (чтение)
Упрощённая схема массива ячеек (чтение)

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

Упрощённая схема массива ячеек (запись)
Упрощённая схема массива ячеек (запись)

Задержки между этими операциями называют "Латенстностью" или в народе "Таймингами", чем они меньше тем более быстрая будет вся система в целом

Помимо самих чипов памяти, на модуль распаиваются SMD-компоненты резисторы и конденсаторы обеспечивающие развязку сигнальных цепей и питание чипов, а также Микросхема SPD – это специальная микросхема, в которой хранятся данные о параметрах всего модуля (ёмкость, рабочее напряжение, тайминги, число банков и так далее). Это нужно чтобы во время запуска системы, BIOS на материнской плате выставил оптимальные настройки согласно информации, отображенной в микросхеме.

Компоненты плашки памяти, микросхема SPD
Компоненты плашки памяти, микросхема SPD

Так же существует несколько форм факторов модулей, модули для компьютеров называются DIMM, а для ноутбуков и компактных систем SO-DIMM, отличаются они размером и количеством контактов для подключения. Это двухрядные модули которые имеют два независимых ряда контактов по одному с каждой стороны.

DIMM и SO-DIMM
DIMM и SO-DIMM

Например в старых модулях Simm контакты с двух сторон были замкнуты и они могли передать только 32 бита информации за такт, в то время как dimm могут передавать 64 бита.

DIMM и SIMM
DIMM и SIMM

Ко всему этому модули делятся на одноранговые, двухранговые и четырёхранговые. Ранг — это блок данных шириной 64 бита, который может быть набран разным количеством чипов память.Одноранговая память имеет ширину 64 бита, тогда как Двухранговая память имеет ширину 128 бит. Но, так как один канал памяти имеет ширину всего 64 бита, как и одноранговый модуль, контроллер памяти может одновременно обращаться только к одному рангу. В то время как двухранговый модуль может заниматься ответом на переданную ему команду, а другой ранг уже может подготавливать информацию для следующей команды, что незначительно увеличивает производительность.

Ранги оперативной памяти
Ранги оперативной памяти

Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти, так как эти модули имеют дополнительный банк памяти на каждые 8 микросхем. Дополнительные банки и логика в модуле служат для проверки и устранения ошибок.

ECC- память с коррекцией ошибок
ECC- память с коррекцией ошибок

Использование буферов и коррекции ошибок незначительно ухудшает производительность, но сильно повышает надёжность данных. Поэтому ECC память широко используется в серверах и рабочих станциях

Ширина данных у ECC
Ширина данных у ECC

Ещё немного расскажу о типах памяти, так как в современных компьютерах используется синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных DDR SDRAM 4-го поколения и скоро будет распространено пятое.

Синхронная динамическая память (DDR)
Синхронная динамическая память (DDR)

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

Синхронная динамическая память (SDR)
Синхронная динамическая память (SDR)

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

SDR (Схема)
SDR (Схема)

После SDR, вышла DDR память, в ней обмен данными по внешней шине идет не только по фронту тактового импульса, но и по спаду, из-за чего на той же частоте можно передать вдвое больше информации, а чтобы воспользоваться этим увеличением, внутреннею шину расширили вдвое. То есть работая на тех же частотах что SDR, DDR память передаёт в 2 раза больше данных.

SDR и DDR (Схема)
SDR и DDR (Схема)

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

(Схема) DDR 2, DDR 3, DDR 4, DDR 5
(Схема) DDR 2, DDR 3, DDR 4, DDR 5

Понятно, что с каждый новым поколением улучшается работа логики, техпроцесс и многое другое. Но сам принцип работы остаётся одним и для общего понимая этого достаточно.

Ниже оставлю видео версию статьи, может кому будет интересно посмотреть на 3D анимацию планок памяти. На этом у меня всё, всем пока.

Комментарии (6)


  1. andranick
    04.04.2023 12:03
    +7

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

    Уважаемый автор! Спешу Вас расстроить, но оперативная память это несколько больше, чем буфер между HDD и процессором.

    Далее, извините, читать не стал.


    1. tigreavecdesailes
      04.04.2023 12:03
      +3

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


      1. andranick
        04.04.2023 12:03

        Но статья же не про архитектуры вычислительных устройств, а про ОЗУ в общем смысле, разве не так? По крайней мере в заголовке статьи ни слова о узкозаточенности материала. Тут было бы полезнее вспомнить про динамическое и статическое ОЗУ, двухпортовое озу, совмещение циклов чтения и записи, поскольку среди заявленных хабов есть  Схемотехника и Электроника для начинающих.

        Ну если уж подхватить тему занудства, то

        1. Гарвардская архитектура подразумевает всего лишь разделение потока команд и потока данных. И называть ОЗУ в рамках этой архитектуры просто буфером будет ошибкой. Да, гарвардская архитектура и её модификации успешно используют в потоковых вычислениях, в частности в сигнальных процессорах. Однако кроме буферизации входного потока данных ОЗУ в этой архитектуре используется и для сохранения результатов вычислений.

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


  1. COKPOWEHEU
    04.04.2023 12:03

    В процессе работы память выступает в качестве буфера между накопителем и процессором,

    Это полная чушь. Главное назначение ОПЕРАТИВНОЙ памяти — хранение оперативных (используемых и изменяемых вот прямо сейчас) данных. В каких-нибудь контроллерах машинных код исполняется прямо из флеша, нигде не кешируясь. И есть контроллеры, в которых вообще нет возможности чтения из флеша в ОЗУ.


    В комментариях упомянули микроконтроллеры вроде ATtiny11, у которых ради экономии вместо оперативной памяти оставили 32 регистра и 3-уровневый аппаратный стек. Но, очевидно, мало-мальски сложный расчет на такой штуке не провести.


    Физически, оперативная память представляет собой набор микросхем припаянных к плате.

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


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

    Если уж говорить об УСТРОЙСТВЕ оперативной памяти, то как минимум нужно сказать о том, что конденсатор является всего лишь невероятно разросшимя стоком транзистора (для увеличения емкости). Также важно сказать о саморазряде такого конденсатора: DRAM, динамическое ОЗУ потому и называется динамическим, что нуждается в импульсах регенации. Специальный мозг время от времени считывает значение ячеек, восстанавливает до логического уровня и записывает обратно.


    Опять же, раз речь об УСТРОЙСТВЕ памяти, стоило рассказать о том, чем DRAM отличается от SRAM, от регистровой памяти, от FRAM и других типов, в чем основные преимущества и недостатки.


    Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти

    И дальше по тексту про коррекцию ошибок ни слова. Для чего она нужна, как работает? Вот есть и все.


    В общем, текст не соответствует заголовку и изобилует грубейшими ошибками.


  1. edo1h
    04.04.2023 12:03

    Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти, так как эти модули имеют дополнительный банк памяти на каждые 8 микросхем. Дополнительные банки и логика в модуле служат для проверки и устранения ошибок.

    тут я не специалист, но мне казалось, что какая-то обработка ошибок внутри модуля появилась только в DDR5, и это другая ECC


    классическая ECC же отдаёт на откуп модулю памяти лишь хранение дополнительного бита: расчёт, контроль и коррекция происходят в контроллере памяти (сегодня это значит в процессоре)


  1. habrareader-II
    04.04.2023 12:03

    Да что там ЕСС. Пунктуация вся кверху дном, читать сложно.