Оперативная память это важная часть любой компьютерной системы и сейчас я объясню, почему это так.
![Оперативная память (RAM) Оперативная память (RAM)](https://habrastorage.org/getpro/habr/upload_files/6d6/061/09a/6d606109a83dea5b3699e901894c43fc.png)
В процессе работы память выступает в качестве буфера между накопителем и процессором, то есть данные сперва считываются с жесткого диска (или другого накопителя) в оперативную память и уже затем обрабатываются центральным процессором.
![Упрощённая схема работы памяти компьютера Упрощённая схема работы памяти компьютера](https://habrastorage.org/getpro/habr/upload_files/d44/5d3/003/d445d3003dbe0866f09681aa15a6d343.png)
Такая схема применяется, потому что процессор - очень быстрое устройство и ему требуется быстро получать доступ к нужным данным и командам, иначе он будет простаивать и производительность системы уменьшится, а так как жёсткий диск и SSD не могут обеспечить необходимую скорость, все нужные данные считываются и перемещаются в более быструю оперативную память и хранятся там, пока не понадобятся процессору для обработки.
Физически, оперативная память представляет собой набор микросхем припаянных к плате.
![Микросхемы на планке памяти Микросхемы на планке памяти](https://habrastorage.org/getpro/habr/upload_files/ed4/4a1/69e/ed44a169e64bb523983aafe91f067f0c.png)
Если посмотреть внутрь одной такой микросхемы, то можно увидеть что она состоит из множества, соединённых друг с другом слоёв, каждый слой состоит из огромного количества ячеек, образующие прямоугольные матрицы. Одна ячейка может содержать 1 бит информации, а состоит она из одного полевого транзистора и одного конденсатора.
![Устройство ячейки в чипе Устройство ячейки в чипе](https://habrastorage.org/getpro/habr/upload_files/e22/bf1/261/e22bf12611ccf27b9d785befc5b53493.png)
Выглядит эта конструкция довольно сложно и может различаться в зависимости от применённых технологий, так что для наглядности лучше представить ячейку в виде схемы.
![Схематичное устройство ячейки динамической памяти Схематичное устройство ячейки динамической памяти](https://habrastorage.org/getpro/habr/upload_files/64b/614/d40/64b614d405e0e212b5d7e3afbef44506.png)
Так легче понять, что именно конденсатор хранит информацию, а транзистор выполняет роль электрического ключа, который либо удерживает заряд на конденсаторе, либо открывает для считывания. Когда конденсатор заряжен, можно получить логическую единицу, а когда разряжен, ноль.
![Упрощённая схема массива ячеек, страница Упрощённая схема массива ячеек, страница](https://habrastorage.org/getpro/habr/upload_files/0f8/ec6/dac/0f8ec6dac3f881de623015c6b8e8fa45.png)
Таких конденсаторов в чипе, очень много но считать заряд с одной конкретной ячейки нельзя, считывается вся страница целиком.
Чтобы сделать это необходимо на нужную нам горизонтальную линию которая называется строка, подать сигнал, который откроет транзисторы, после чего усилители расположенные на концах вертикальных линий считают заряды которые находились на конденсаторах.
![Упрощённая схема массива ячеек (чтение) Упрощённая схема массива ячеек (чтение)](https://habrastorage.org/getpro/habr/upload_files/62e/c0d/328/62ec0d328b3e817c0bbe065d08a982a7.png)
Каждое такое считывание опустошает заряды на странице, из-за чего приходится её заново переписывать, для этого на строку так же подаётся открывающий транзистор заряд, а на столбцы подаётся более высокое напряжение, тем самым заряжая конденсаторы и записывая информацию.
![Упрощённая схема массива ячеек (запись) Упрощённая схема массива ячеек (запись)](https://habrastorage.org/getpro/habr/upload_files/487/af7/570/487af757092d20723dc6529c1318dccd.png)
Задержки между этими операциями называют "Латенстностью" или в народе "Таймингами", чем они меньше тем более быстрая будет вся система в целом
Помимо самих чипов памяти, на модуль распаиваются SMD-компоненты резисторы и конденсаторы обеспечивающие развязку сигнальных цепей и питание чипов, а также Микросхема SPD – это специальная микросхема, в которой хранятся данные о параметрах всего модуля (ёмкость, рабочее напряжение, тайминги, число банков и так далее). Это нужно чтобы во время запуска системы, BIOS на материнской плате выставил оптимальные настройки согласно информации, отображенной в микросхеме.
![Компоненты плашки памяти, микросхема SPD Компоненты плашки памяти, микросхема SPD](https://habrastorage.org/getpro/habr/upload_files/758/559/b1c/758559b1cf74ce694e47b978686f8192.png)
Так же существует несколько форм факторов модулей, модули для компьютеров называются DIMM, а для ноутбуков и компактных систем SO-DIMM, отличаются они размером и количеством контактов для подключения. Это двухрядные модули которые имеют два независимых ряда контактов по одному с каждой стороны.
![DIMM и SO-DIMM DIMM и SO-DIMM](https://habrastorage.org/getpro/habr/upload_files/7e5/13b/3a8/7e513b3a8d9b26ac38865b13251ab14b.png)
Например в старых модулях Simm контакты с двух сторон были замкнуты и они могли передать только 32 бита информации за такт, в то время как dimm могут передавать 64 бита.
![DIMM и SIMM DIMM и SIMM](https://habrastorage.org/getpro/habr/upload_files/40b/42a/50f/40b42a50f14722184c105700b11fb813.png)
Ко всему этому модули делятся на одноранговые, двухранговые и четырёхранговые. Ранг — это блок данных шириной 64 бита, который может быть набран разным количеством чипов память.Одноранговая память имеет ширину 64 бита, тогда как Двухранговая память имеет ширину 128 бит. Но, так как один канал памяти имеет ширину всего 64 бита, как и одноранговый модуль, контроллер памяти может одновременно обращаться только к одному рангу. В то время как двухранговый модуль может заниматься ответом на переданную ему команду, а другой ранг уже может подготавливать информацию для следующей команды, что незначительно увеличивает производительность.
![Ранги оперативной памяти Ранги оперативной памяти](https://habrastorage.org/getpro/habr/upload_files/cb6/172/f4a/cb6172f4a51b143317a564122d26c712.png)
Так же хочется отдельно сказать о памяти с коррекцией ошибок, ECC-памяти, так как эти модули имеют дополнительный банк памяти на каждые 8 микросхем. Дополнительные банки и логика в модуле служат для проверки и устранения ошибок.
![ECC- память с коррекцией ошибок ECC- память с коррекцией ошибок](https://habrastorage.org/getpro/habr/upload_files/613/e88/4c4/613e884c46642a2e025083f22f7352ab.png)
Использование буферов и коррекции ошибок незначительно ухудшает производительность, но сильно повышает надёжность данных. Поэтому ECC память широко используется в серверах и рабочих станциях
![Ширина данных у ECC Ширина данных у ECC](https://habrastorage.org/getpro/habr/upload_files/609/f78/578/609f785782e7c43a668c329f2359951f.png)
Ещё немного расскажу о типах памяти, так как в современных компьютерах используется синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных DDR SDRAM 4-го поколения и скоро будет распространено пятое.
![Синхронная динамическая память (DDR) Синхронная динамическая память (DDR)](https://habrastorage.org/getpro/habr/upload_files/6f3/cee/ea0/6f3ceeea0d0fb84e070e62b8366707b6.png)
Память типа DDR пришла на смену памяти типа SDR. SDR SDRAM работает синхронно с контроллером. В ней внутренняя и внешняя шина данных работает на одной и той же частоте. При подаче сигнала на микросхему происходит синхронное считывание информации и передача её в выходной буфер. Передача каждого бита из буфера происходит с каждым тактом работы ядра памяти. В SDR памяти синхронизация обмена данными происходит по фронту тактового импульса.
![Синхронная динамическая память (SDR) Синхронная динамическая память (SDR)](https://habrastorage.org/getpro/habr/upload_files/1db/085/cb9/1db085cb9f6b99982f4d622761823b54.png)
При подаче сигнала на микросхему происходит синхронное считывание информации и передача её в выходной буфер. Передача каждого бита из буфера происходит с каждым тактом работы ядра памяти. В SDR памяти синхронизация обмена данными происходит по фронту тактового импульса.
![SDR (Схема) SDR (Схема)](https://habrastorage.org/getpro/habr/upload_files/9a5/fa5/299/9a5fa5299b003c69b0a40cb880a72611.png)
После SDR, вышла DDR память, в ней обмен данными по внешней шине идет не только по фронту тактового импульса, но и по спаду, из-за чего на той же частоте можно передать вдвое больше информации, а чтобы воспользоваться этим увеличением, внутреннею шину расширили вдвое. То есть работая на тех же частотах что SDR, DDR память передаёт в 2 раза больше данных.
![SDR и DDR (Схема) SDR и DDR (Схема)](https://habrastorage.org/getpro/habr/upload_files/ea7/54f/488/ea754f48833544ebfdaeb1f8f34db262.png)
Следующие поколения памяти DDR не сильно отличаются, увеличивается только частота работы буферов ввода вывода, а также расширяется шина, связывающая ядро памяти с буферами, сам принцип работы не меняется, но даже так, каждое новое поколение получает таким способом существенное увеличение пропускной способности, без увеличения частоты работы самих ячеек памяти.
![(Схема) DDR 2, DDR 3, DDR 4, DDR 5 (Схема) DDR 2, DDR 3, DDR 4, DDR 5](https://habrastorage.org/getpro/habr/upload_files/56e/d68/52b/56ed6852bb351efe3df671e9c358389e.png)
Понятно, что с каждый новым поколением улучшается работа логики, техпроцесс и многое другое. Но сам принцип работы остаётся одним и для общего понимая этого достаточно.
Ниже оставлю видео версию статьи, может кому будет интересно посмотреть на 3D анимацию планок памяти. На этом у меня всё, всем пока.