Оперативная память это важная часть любой компьютерной системы и сейчас я объясню, почему это так.
В процессе работы память выступает в качестве буфера между накопителем и процессором, то есть данные сперва считываются с жесткого диска (или другого накопителя) в оперативную память и уже затем обрабатываются центральным процессором.
Такая схема применяется, потому что процессор - очень быстрое устройство и ему требуется быстро получать доступ к нужным данным и командам, иначе он будет простаивать и производительность системы уменьшится, а так как жёсткий диск и SSD не могут обеспечить необходимую скорость, все нужные данные считываются и перемещаются в более быструю оперативную память и хранятся там, пока не понадобятся процессору для обработки.
Физически, оперативная память представляет собой набор микросхем припаянных к плате.
Если посмотреть внутрь одной такой микросхемы, то можно увидеть что она состоит из множества, соединённых друг с другом слоёв, каждый слой состоит из огромного количества ячеек, образующие прямоугольные матрицы. Одна ячейка может содержать 1 бит информации, а состоит она из одного полевого транзистора и одного конденсатора.
Выглядит эта конструкция довольно сложно и может различаться в зависимости от применённых технологий, так что для наглядности лучше представить ячейку в виде схемы.
Так легче понять, что именно конденсатор хранит информацию, а транзистор выполняет роль электрического ключа, который либо удерживает заряд на конденсаторе, либо открывает для считывания. Когда конденсатор заряжен, можно получить логическую единицу, а когда разряжен, ноль.
Таких конденсаторов в чипе, очень много но считать заряд с одной конкретной ячейки нельзя, считывается вся страница целиком.
Чтобы сделать это необходимо на нужную нам горизонтальную линию которая называется строка, подать сигнал, который откроет транзисторы, после чего усилители расположенные на концах вертикальных линий считают заряды которые находились на конденсаторах.
Каждое такое считывание опустошает заряды на странице, из-за чего приходится её заново переписывать, для этого на строку так же подаётся открывающий транзистор заряд, а на столбцы подаётся более высокое напряжение, тем самым заряжая конденсаторы и записывая информацию.
Задержки между этими операциями называют "Латенстностью" или в народе "Таймингами", чем они меньше тем более быстрая будет вся система в целом
Помимо самих чипов памяти, на модуль распаиваются SMD-компоненты резисторы и конденсаторы обеспечивающие развязку сигнальных цепей и питание чипов, а также Микросхема SPD – это специальная микросхема, в которой хранятся данные о параметрах всего модуля (ёмкость, рабочее напряжение, тайминги, число банков и так далее). Это нужно чтобы во время запуска системы, BIOS на материнской плате выставил оптимальные настройки согласно информации, отображенной в микросхеме.
Так же существует несколько форм факторов модулей, модули для компьютеров называются DIMM, а для ноутбуков и компактных систем SO-DIMM, отличаются они размером и количеством контактов для подключения. Это двухрядные модули которые имеют два независимых ряда контактов по одному с каждой стороны.
Например в старых модулях Simm контакты с двух сторон были замкнуты и они могли передать только 32 бита информации за такт, в то время как dimm могут передавать 64 бита.
Ко всему этому модули делятся на одноранговые, двухранговые и четырёхранговые. Ранг — это блок данных шириной 64 бита, который может быть набран разным количеством чипов память.Одноранговая память имеет ширину 64 бита, тогда как Двухранговая память имеет ширину 128 бит. Но, так как один канал памяти имеет ширину всего 64 бита, как и одноранговый модуль, контроллер памяти может одновременно обращаться только к одному рангу. В то время как двухранговый модуль может заниматься ответом на переданную ему команду, а другой ранг уже может подготавливать информацию для следующей команды, что незначительно увеличивает производительность.
Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти, так как эти модули имеют дополнительный банк памяти на каждые 8 микросхем. Дополнительные банки и логика в модуле служат для проверки и устранения ошибок.
Использование буферов и коррекции ошибок незначительно ухудшает производительность, но сильно повышает надёжность данных. Поэтому ECC память широко используется в серверах и рабочих станциях
Ещё немного расскажу о типах памяти, так как в современных компьютерах используется синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных DDR SDRAM 4-го поколения и скоро будет распространено пятое.
Память типа DDR пришла на смену памяти типа SDR. SDR SDRAM работает синхронно с контроллером. В ней внутренняя и внешняя шина данных работает на одной и той же частоте. При подаче сигнала на микросхему происходит синхронное считывание информации и передача её в выходной буфер. Передача каждого бита из буфера происходит с каждым тактом работы ядра памяти. В SDR памяти синхронизация обмена данными происходит по фронту тактового импульса.
При подаче сигнала на микросхему происходит синхронное считывание информации и передача её в выходной буфер. Передача каждого бита из буфера происходит с каждым тактом работы ядра памяти. В SDR памяти синхронизация обмена данными происходит по фронту тактового импульса.
После SDR, вышла DDR память, в ней обмен данными по внешней шине идет не только по фронту тактового импульса, но и по спаду, из-за чего на той же частоте можно передать вдвое больше информации, а чтобы воспользоваться этим увеличением, внутреннею шину расширили вдвое. То есть работая на тех же частотах что SDR, DDR память передаёт в 2 раза больше данных.
Следующие поколения памяти DDR не сильно отличаются, увеличивается только частота работы буферов ввода вывода, а также расширяется шина, связывающая ядро памяти с буферами, сам принцип работы не меняется, но даже так, каждое новое поколение получает таким способом существенное увеличение пропускной способности, без увеличения частоты работы самих ячеек памяти.
Понятно, что с каждый новым поколением улучшается работа логики, техпроцесс и многое другое. Но сам принцип работы остаётся одним и для общего понимая этого достаточно.
Ниже оставлю видео версию статьи, может кому будет интересно посмотреть на 3D анимацию планок памяти. На этом у меня всё, всем пока.
Комментарии (6)
COKPOWEHEU
04.04.2023 12:03В процессе работы память выступает в качестве буфера между накопителем и процессором,
Это полная чушь. Главное назначение ОПЕРАТИВНОЙ памяти — хранение оперативных (используемых и изменяемых вот прямо сейчас) данных. В каких-нибудь контроллерах машинных код исполняется прямо из флеша, нигде не кешируясь. И есть контроллеры, в которых вообще нет возможности чтения из флеша в ОЗУ.
В комментариях упомянули микроконтроллеры вроде ATtiny11, у которых ради экономии вместо оперативной памяти оставили 32 регистра и 3-уровневый аппаратный стек. Но, очевидно, мало-мальски сложный расчет на такой штуке не провести.
Физически, оперативная память представляет собой набор микросхем припаянных к плате.
Это полная чушь. Почти всегда оперативная память выполняется на кристалле процессора. В микроконтроллерах это зачастую буквально — ВСЯ оперативная память является частью кристалла. В процессорах помощнее на кристалле формируются кеши (сверхбыстрая оперативная память), и на самом деле процессор работает именно с ними, а уже модуль управления кешами решает когда их синхронизировать с внешней памятью (ОЗУ, флеш, HDD или там перфокартами).
Так легче понять, что именно конденсатор хранит информацию, а транзистор выполняет роль электрического ключа, который либо удерживает заряд на конденсаторе, либо открывает для считывания.
Если уж говорить об УСТРОЙСТВЕ оперативной памяти, то как минимум нужно сказать о том, что конденсатор является всего лишь невероятно разросшимя стоком транзистора (для увеличения емкости). Также важно сказать о саморазряде такого конденсатора: DRAM, динамическое ОЗУ потому и называется динамическим, что нуждается в импульсах регенации. Специальный мозг время от времени считывает значение ячеек, восстанавливает до логического уровня и записывает обратно.
Опять же, раз речь об УСТРОЙСТВЕ памяти, стоило рассказать о том, чем DRAM отличается от SRAM, от регистровой памяти, от FRAM и других типов, в чем основные преимущества и недостатки.
Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти
И дальше по тексту про коррекцию ошибок ни слова. Для чего она нужна, как работает? Вот есть и все.
В общем, текст не соответствует заголовку и изобилует грубейшими ошибками.
edo1h
04.04.2023 12:03Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти, так как эти модули имеют дополнительный банк памяти на каждые 8 микросхем. Дополнительные банки и логика в модуле служат для проверки и устранения ошибок.
тут я не специалист, но мне казалось, что какая-то обработка ошибок внутри модуля появилась только в DDR5, и это другая ECC
классическая ECC же отдаёт на откуп модулю памяти лишь хранение дополнительного бита: расчёт, контроль и коррекция происходят в контроллере памяти (сегодня это значит в процессоре)
andranick
Уважаемый автор! Спешу Вас расстроить, но оперативная память это несколько больше, чем буфер между HDD и процессором.
Далее, извините, читать не стал.
tigreavecdesailes
Чисто из занудства: в гарвардской архитектуре оперативка именно не больше чем буфер. Код исполняется из отдельного хранилища. Например, в линейке младших AVR есть микроконтроллеры вообще без оперативки (которую заменяют регистры общего назначения).
andranick
Но статья же не про архитектуры вычислительных устройств, а про ОЗУ в общем смысле, разве не так? По крайней мере в заголовке статьи ни слова о узкозаточенности материала. Тут было бы полезнее вспомнить про динамическое и статическое ОЗУ, двухпортовое озу, совмещение циклов чтения и записи, поскольку среди заявленных хабов есть Схемотехника и Электроника для начинающих.
Ну если уж подхватить тему занудства, то
Гарвардская архитектура подразумевает всего лишь разделение потока команд и потока данных. И называть ОЗУ в рамках этой архитектуры просто буфером будет ошибкой. Да, гарвардская архитектура и её модификации успешно используют в потоковых вычислениях, в частности в сигнальных процессорах. Однако кроме буферизации входного потока данных ОЗУ в этой архитектуре используется и для сохранения результатов вычислений.
С другой стороны, все эти ОЗУ, ПЗУ, регистры и кэши, как и прочие устройства хранения - просто устройства для запоминания информации, имеющие функциональные отличия только в рамках предусмотренного инженером-конструктором применения. Например, как Вы и указали, РОН вполне справляется с функцией ОЗУ, коим по сути и являются, а SD-карточка в некоторых условиях вполне неплохо справляется с буферизацией данных.