Анатомия RAM — как устроена оперативная память
Чего в компьютере никогда не бывает много? Оперативной памяти. Конечно, еще один SSD, помощнее процессор – это приятно, но для решения конкретных задач и имеющихся хватает более чем, а вот наличие ОЗУ большей емкости или с большей производительностью могло бы дать заметный эффект. Анатомия RAM — вот о чем сегодня пойдет разговор, рассмотрим устройство, принцип работы, разновидности оперативной памяти.
Без оперативной памяти представить компьютер сложно. Да и не нужно. Без этого компонента обойтись нельзя. Все манипуляции с данными производятся в RAM, после чего передаются на накопитель или отправляются в иное устройство. Или наоборот, какая-то инфа извне поступает в компьютер (а именно в RAM), обрабатывается, и передается еще куда-то.
Даже краткое рассмотрение истории развития RAM – тема отдельного материала. И весьма обширного. Остановлюсь на используемом ныне типе оперативной памяти – DDR.
Аббревиатура расшифровывается как удвоенная скорость передачи данных (Double Data Rate). В отличие от предыдущей SDR данные передавались по обоим фронтам тактирующего сигнала. Это позволило вдвое повысить пропускную способность по сравнению с SDR, у которой использовался только фронт тактового сигнала.
Первый коммерческий чип был выпущен в 1998 году компанией Samsung. Спецификацию такой памяти организация JEDEC опубликовала в июне 2000 года, а спустя пару месяцев появилась первая материнская плата с поддержкой DDR. Память работала на частотах от 100 МГц до 200 МГц. Эффективная частота, учитывая использование фронта и спада тактового импульса, составляла от 200 до 400 МГц. Количество контактов разъема равнялось 184. Напряжение питания – 2.5 В.
В 2004 году свет увидело новое поколение, DDR2. За счет улучшений рабочие частоты лежали в диапазоне 200-600 МГц (эффективные – 300-1 200 МГц). Изменился разъем, у которого стало 240 контактов. Напряжение питания снизилось до 1.8 В.
Следующее поколение, DDR3, появившееся в 2007 году, вновь удвоило частоту работы (рабочая от 400 МГц до 1 200 МГц, эффективная – 800-2 400 МГц). Количество контактов не изменилось, но сам разъем несовместим с DDR2. Напряжение снижено до 1.5 В. Позже выпущена модификация с пониженным напряжением питания, равным 1.35 В. Такие модули помечались как DDR3L.
В 2014 году вышло актуальное на сегодняшний день поколение DDR4. Привычно удвоились частоты (800-1 600 МГц рабочая частота и 1 600-3 200 МГц эффективная), изменился разъем, в котором стало 288 контактов. Напряжение питания – 1.2 В.
В конце 2021 или в начале следующего года должна быть представлена память DDR5. Опять удвоится пропускная способность, уменьшится напряжение на 100 мВ, запланированы другие изменения.
Все поколения памяти несовместимы, т. е. установить DIMM одного поколения в разъем для памяти другого поколения физически невозможно.
Указанные разъемы, количество контактов справедливо для десктопного форм-фактора DIMM, но параллельно выпускались и компактные модули для ноутбуков.
Назначение и основные характеристики памяти
В процессе работы компьютера программы, исходные данные, а также промежуточные и окончательные результаты необходимо где-то хранить и иметь возможность обращаться к ним. Для этого в составе компьютера имеются различные запоминающие устройства, которые называют памятью. Информация, хранящаяся в запоминающем устройстве, представляет собой закодированные с помощью цифр 0 и 1 различные символы (цифры, буквы, знаки), звуки, изображения.
Память компьютера — совокупность устройств для хранения информации.
В процессе развития вычислительной техники люди вольно или невольно пытались по образу и подобию собственной памяти проектировать и создавать различные технические устройства хранения информации. Чтобы лучше понять назначение и возможности различных запоминающих устройств компьютера, можно провести аналогию с тем, как хранится информация в памяти человека.
Может ли человек хранить всю информацию об окружающем мире в своей памяти и нужно ли это ему? Зачем, например, помнить названия всех поселков и деревень вашей области, когда при необходимости вы можете воспользоваться картой местности и найти все, что вас интересует? Нет необходимости помнить и цены железнодорожных билетов на разных направлениях, так как для этого есть справочные службы. А сколько существует всевозможных математических таблиц, где рассчитаны значения некоторых сложных функций! В поисках ответа вы всегда можете обратиться к соответствующему справочнику.
Информация, которую человек постоянно хранит в своей внутренней памяти, характеризуется гораздо меньшим объемом по сравнению с информацией, сосредоточенной в книгах, кинолентах, на видеокассетах, дисках и других материальных носителях. Можно сказать, что материальные носители, используемые для хранения информации, составляют внешнюю память человека. Для того чтобы воспользоваться информацией, хранящейся в этой внешней памяти, человек должен затратить гораздо больше времени, чем если бы она хранилась в его собственной памяти. Этот недостаток компенсируется тем, что внешняя память позволяет сохранять информацию сколь угодно длительное время и использовать ее может множество людей.
Существует еще один способ хранения информации человеком. Только что появившийся на свет малыш уже несет в себе внешние черты и, частично, характер, унаследованный от родителей. Это так называемая генетическая память. Новорожденный многое умеет: дышит, спит, ест. Знаток биологии вспомнит о безусловных рефлексах. Эту разновидность внутренней памяти человека можно назвать постоянной, неизменной.
Подобный принцип разделения памяти использован и в компьютере. Вся компьютерная память поделена на внутреннюю и внешнюю. Аналогично памяти человека, внутренняя память компьютера является быстродействующей, но имеет ограниченный объем. Работа же с внешней памятью требует гораздо большего времени, но она позволяет хранить практически неограниченное количество информации.
Внутренняя память состоит из нескольких частей: оперативной, постоянной и кэш-памяти. Это связано с тем, что используемые процессором программы можно условно разделить на две группы: временного (текущего) и постоянного использования. Программы и данные временного пользования хранятся в оперативной памяти и кэш-памяти только до тех пор, пока включено электропитание компьютера. После его выключения выделенная для них часть внутренней памяти полностью очищается. Другая часть внутренней памяти, называемая постоянной, является энергонезависимой, то есть записанные в нее программы и данные хранятся всегда, независимо от включения или выключения компьютера.
Внешняя память компьютера по аналогии с тем, как человек обычно хранит информацию в книгах, газетах, журналах, на магнитных лентах и пр., тоже может быть организована на различных материальных носителях: на дискетах, на жестких дисках, на магнитных лентах, на лазерных дисках (компакт-дисках).
Классификация видов компьютерной памяти по назначению показана на рисунке 18.1.
Рассмотрим общие для всех видов памяти характеристики и понятия.
Существует две распространенные операции с памятью — считывание (чтение) информации из памяти и запись ее в память для хранения. Для обращения к областям памяти используются адреса.
При считывании порции информации из памяти осуществляется передача ее копии в другое устройство, где с ней производятся определенные действия: числа участвуют в вычислениях, слова используются при создании текста, из звуков создается мелодия и т. д. После считывания информация не исчезает и хранится в той же области памяти до тех пор, пока на ее место не будет записана другая информация.
Рис. 18.1. Виды памяти компьютера
При записи (сохранении) порции информации предыдущие данные, хранящиеся на этом месте, стираются. Вновь записанная информация хранится до тех пор, пока на ее место не будет записана другая.
Операции чтения и записи можно сравнить с известными вам в быту процедурами воспроизведения и записи, выполняемыми с обычным кассетным магнитофоном. Когда вы прослушиваете музыку, то считываете информацию, хранящуюся на ленте. При этом информация на ленте не исчезает. Но после записи нового альбома любимой рок-группы ранее хранившаяся на ленте информация будет затерта и утрачена навсегда.
Чтение (считывание) информации из памяти — процесс получения информации из области памяти по заданному адресу.
Запись (сохранение) информации в памяти — процесс размещения информации в памяти по заданному адресу для хранения.
Способ обращения к устройству памяти для чтения или записи информации получил название доступа. С этим понятием связан такой параметр памяти, как время доступа, или быстродействие памяти — время, необходимое для чтения из памяти либо записи в нее минимальной порции информации. Очевидно, что для числового выражения этого параметра используются единицы измерения времени: миллисекунда, микросекунда, наносекунда.
Время доступа, или быстродействие, памяти — время, необходимое для чтения из памяти либо записи в нее минимальной порции информации.
Важной характеристикой памяти любого вида является ее объем, называемый также емкостью. Этот параметр показывает, какой максимальный объем информации можно хранить в памяти. Для измерения объема памяти используются следующие единицы: байты, килобайты (Кбайт), мегабайты (Мбайт), гигабайты (Гбайт).
Объем (емкость) памяти — максимальное количество хранимой в ней информации.
Иерархическая пирамида компьютерной памяти
С технической точки зрения, компьютерной памятью считается любой электронный накопитель. Быстрые накопители данных используются для временного хранения информации, которой следует быть «под рукой» у процессора. Если бы процессор вашего компьютера за любой нужной ему информацией обращался бы к жесткому диску, компьютер работал бы крайне медленно. Поэтому часть информации временно хранится в памяти, к которой процессор может получить доступ с более высокой скоростью.
Существует определенная иерархия компьютерной памяти. Место определенного вида памяти в ней означает ее «удаленность» от процессора. Чем «ближе» та или иная память к процессору, тем она, как правило, быстрее. Перед нами иерархическая пирамида компьютерной памяти, которая заслуживает подробного рассмотрения.
Вершиной пирамиды является регистр процессора.
За ним следует кеш-память первого (L1)
и второго уровня (L2)
Оперативная память делится на:
физическую и виртуальную
И кеш, и оперативная память являются временными хранилищами информации
Далее идут постоянные хранилища информации:
ПЗУ/BIOS; съемные диски; удаленные накопители (в локальной сети); жесткий диск
Подножие пирамиды образуют устройства ввода, к которым относятся:
клавиатура; мышь; подключаемые медиаустройства; сканер/камера/микрофон/видео; удаленные источники; другие источники
Процессор обращается к памяти в соответствии с ее местом в иерархии. Информация поступает с жесткого диска или устройства ввода (например, с клавиатуры) в оперативную память. Процессор сохраняет сегменты данных, к которой нужен быстрый доступ, в кеш-памяти. В регистре процессора содержатся специальные инструкции. К рассмотрению кеш-памяти и регистра процессора мы еще вернемся.
Выводы
Компьютерная память — это сложная система аппаратного обеспечения, которая в зависимости от своих функций позволяет получать, хранить, манипулировать и выводить данные. Объем оперативной памяти и ее частотность отвечает за производительность, быстродействие и количество запущенных программ, а соответственно и комфортную работу пользователя. В случае интегрированного графического адаптера часть оперативной памяти может выделяться для графических нужд. При включенном ПК оперативная память играет функцию временного хранения данных, используемых процессором, поскольку после отключения электропитания вся информация теряется. Производительность ПК зависит от слаженной работы между оперативной памятью материнской платой и процессором.
Для сохранения информации на длительный срок используются жесткие диски (внутренние, внешние) или относительно новый тип памяти — твердотельные накопители. У каждого типа носителей есть свои преимущества и недостатки: важным критерием остается стоимость, надежность хранения информации и объем.
Для обеспечения потребностей пользователя в скорости записи / считывания и сохранении информации используются RAID массивы — объединение нескольких жестких дисков, контролируется специальным RAID-контроллером. В зависимости от типа подключения на одни — будет записываться новая информация, а остальные будут их копиями (за счет чего создается избыточность).
У любого массива RAID, который остается работоспособным при сбое одного диска, существует такое понятие, как время восстановления (rebuild time) — это время, за которое контроллер должен организовать функционирование нового диска в массиве.
Жажда скорости
У всех DRAM есть центральный тактовый сигнал ввода-вывода (I/O, input/output) — напряжение, постоянно переключающееся между двумя уровнями; он используется для упорядочивания всего, что выполняется в чипе и шинах памяти.
Если бы мы вернулись назад в 1993 год, то смогли бы приобрести память типа SDRAM (synchronous, синхронная DRAM), которая упорядочивала все процессы с помощью периода переключения тактового сигнала из низкого в высокое состояние. Так как это происходит очень быстро, такая система обеспечивает очень точный способ определения времени выполнения событий. В те времена SDRAM имела тактовые сигналы ввода-вывода, обычно работавшие с частотой от 66 до 133 МГц, и за каждый такт сигнала в DRAM можно было передать одну команду. В свою очередь, чип за тот же промежуток времени мог передать 8 бит данных.
Быстрое развитие SDRAM, ведущей силой которого был Samsung, привело к созданию в 1998 году её нового типа. В нём передача данных синхронизировалась по повышению и падению напряжения тактового сигнала, то есть за каждый такт данные можно было дважды передать в DRAM и обратно.
Как же называлась эта восхитительная новая технология? Double data rate synchronous dynamic random access memory (синхронная динамическая память с произвольным доступом и удвоенной скоростью передачи данных). Обычно её просто называют DDR-SDRAM или для краткости DDR.
Память DDR быстро стала стандартом (из-за чего первоначальную версию SDRAM переименовали в single data rate SDRAM, SDR-DRAM) и в течение последующих 20 лет оставалась неотъемлемой частью всех компьютерных систем.
Прогресс технологий позволил усовершенствовать эту память, благодаря чему в 2003 году появилась DDR2, в 2007 году — DDR3, а в 2012 году — DDR4. Каждая новая версия обеспечивала повышение производительности благодаря ускорению тактового сигнала ввода-вывода, улучшению систем сигналов и снижению энергопотребления.
DDR2 внесла изменение, которое мы используем и сегодня: генератор тактовых сигналов ввода-вывода превратился в отдельную систему, время работы которой задавалось отдельным набором синхронизирующих сигналов, благодаря чему она стала в два раза быстрее. Это аналогично тому, как CPU используют для упорядочивания работы тактовый сигнал 100 МГц, хотя внутренние синхронизирующие сигналы работают в 30-40 раз быстрее.
DDR3 и DDR4 сделали шаг вперёд, увеличив скорость тактовых сигналов ввода-вывода в четыре раза, но во всех этих типах памяти шина данных для передачи/получения информации по-прежнему использовала только повышение и падение уровня сигнала ввода-вывода (т.е. удвоенную частоту передачи данных).
Сами чипы памяти не работают на огромных скоростях — на самом деле, они шевелятся довольно медленно. Частота передачи данных (измеряемая в миллионах передач в секунду — millions of transfers per second, MT/s) в современных DRAM настолько высока благодаря использованию в каждом чипе нескольких банков; если бы на каждый модуль приходился только один банк, всё работало бы чрезвычайно медленно.
Тип DRAM | Обычная частота чипа | Тактовый сигнал ввода-вывода | Частота передачи данных |
SDR | 100 МГц | 100 МГц | 100 MT/s |
DDR | 100 МГц | 100 МГц | 200 MT/s |
DDR2 | 200 МГц | 400 МГц | 800 MT/s |
DDR3 | 200 МГц | 800 МГц | 1600 MT/s |
DDR4 | 400 МГц | 1600 МГц | 3200 MT/s |
Каждая новая версия DRAM не обладает обратной совместимостью, то есть используемые для каждого типа DIMM имеют разные количества электрических контактов, разъёмы и вырезы, чтобы пользователь не мог вставить память DDR4 в разъём DDR-SDRAM.
Сверху вниз: DDR-SDRAM, DDR2, DDR3, DDR4
DRAM для графических плат изначально называлась SGRAM (synchronous graphics, синхронная графическая RAM). Этот тип RAM тоже подвергался усовершенствованиям, и сегодня его для понятности называют GDDR. Сейчас мы достигли версии 6, а для передачи данных используется система с учетверённой частотой, т.е. за тактовый цикл происходит 4 передачи.
Тип DRAM | Обычная частота памяти | Тактовый сигнал ввода-вывода | Частота передачи данных |
GDDR | 250 МГц | 250 МГц | 500 MT/s |
GDDR2 | 500 МГц | 500 МГц | 1000 MT/s |
GDDR3 | 800 МГц | 1600 МГц | 3200 MT/s |
GDDR4 | 1000 МГц | 2000 МГц | 4000 MT/s |
GDDR5 | 1500 МГц | 3000 МГц | 6000 MT/s |
GDDR5X | 1250 МГц | 2500 МГц | 10000 MT/s |
GDDR6 | 1750 МГц | 3500 МГц | 14000 MT/s |
Кроме более высокой частоты передачи, графическая DRAM обеспечивает дополнительные функции для ускорения передачи, например, возможность одновременного открытия двух страниц одного банка, работающие в DDR шины команд и адресов, а также чипы памяти с гораздо большими скоростями тактовых сигналов.
Какой же минус у всех этих продвинутых технологий? Стоимость и тепловыделение.
Один модуль GDDR6 примерно вдвое дороже аналогичного чипа DDR4, к тому же при полной скорости он становится довольно горячим — именно поэтому графическим картам с большим количеством сверхбыстрой RAM требуется активное охлаждение для защиты от перегрева чипов.
Есть компьютер 8 ГБ и 16 ГБ памяти. Какой взять?
Если есть возможность взять побольше памяти — берите. Если есть деньги только на 8 ГБ, то это неприятно, но несмертельно.
Например, на компьютере, на котором это пишется, одновременно запущено несколько вкладок Гугл-документов, работает почта, графический редактор и Телеграм. Вместе с операционной системой это хозяйство занимает 11 ГБ, из которых 2 ГБ занимает Телеграм.
Если бы у компьютера было 8 ГБ, он бы начал в какой-то момент оптимизировать память, усыплять фоновые программы, складывать часть памяти на диск. Оттого, что у вас будет 8 ГБ, компьютер не умрёт.
Для чего нужна ОЗУ
Тут может возникнуть вопрос, а зачем вообще нужна оперативная память? Разве нельзя выделить на жестком диске буфер для временного помещения обрабатываемых процессором данных? В принципе можно, но это был бы очень неэффективный подход.
Физическое устройство оперативной памяти таково, что чтение/запись в ней производится намного быстрее . Если бы вместо ОЗУ у вас было ПЗУ, компьютер бы работал очень медленно.
Внешняя фрагментация
При внешней фрагментации у нас есть свободный блок памяти, но мы не можем назначить его процессу, потому что блоки не являются смежными.
Пример: Предположим (рассмотрим пример выше) три процесса p1, p2, p3 имеют размер 2 МБ, 4 МБ и 7 МБ соответственно. Теперь им выделяются блоки памяти размером 3 МБ, 6 МБ и 7 МБ соответственно. После выделения для процесса p1 и p2 осталось 1 МБ и 2 МБ. Предположим, что приходит новый процесс p4 и требует 3-мегабайтный блок памяти, который доступен, но мы не можем его назначить, потому что свободное пространство памяти не является непрерывным. Это называется внешней фрагментацией.
И первая, и самая подходящая системы для распределения памяти, подверженной внешней фрагментации. Для преодоления проблемы внешней фрагментации используется уплотнение. В технике уплотнения все свободное пространство памяти объединяется и образует один большой блок. Таким образом, это пространство может быть эффективно использовано другими процессами.
Другое возможное решение внешней фрагментации — позволить логическому адресному пространству процессов быть несмежным, что позволяет процессу выделять физическую память там, где последняя доступна.
Paging:
Paging — это схема управления памятью, которая устраняет необходимость непрерывного выделения физической памяти. Эта схема позволяет физическому адресному пространству процесса быть несмежным.
- Логический адрес или виртуальный адрес (представлен в битах): адрес, генерируемый ЦП.
- Логическое адресное пространство или виртуальное адресное пространство (представленное словами или байтами): набор всех логических адресов, сгенерированных программой.
- Физический адрес (представлен в битах): адрес, фактически доступный в блоке памяти.
- Физическое адресное пространство (выраженное словами или байтами): набор всех физических адресов, соответствующих логическим адресам.
- Если логический адрес = 31 бит, то логическое адресное пространство = 2 31слово = 2 G слов (1 G = 2 30 )
- Если логическое адресное пространство = 128 M слов = 2 7* 2 20 слов, то логический адрес = log 2 2 27 = 27 бит
- Если физический адрес = 22 бита, то физическое адресное пространство = 2 22слова = 4 M слов (1 M = 2 20 )
- Если физическое адресное пространство = 16 M слов = 2 4* 2 20 слов, то физический адрес = log 2 2 24 = 24 бита.
Преобразование виртуального адреса в физический выполняется блоком управления памятью (MMU), который является аппаратным устройством, и это преобразование известно как метод подкачки.
- Физическое адресное пространство концептуально разделено на несколько блоков фиксированного размера, называемых кадрами.
- Логическое адресное пространство также разделено на блоки фиксированного размера, называемые страницами.
- Размер страницы = Размер кадра
- Физический адрес = 12 бит, тогда физическое адресное пространство = 4 К слов
- Логический адрес = 13 бит, затем логическое адресное пространство = 8 К слов
- Размер страницы = размер кадра = 1 тыс. Слов (предположение)
Адрес, генерируемый ЦП, делится на
- Номер страницы (p):количество битов, необходимых для представления страниц в логическом адресном пространстве или номер страницы.
- Смещение страницы (d):количество битов, необходимых для представления определенного слова на странице или размер страницы логического адресного пространства, или номер слова страницы или смещение страницы.
Физический адрес делится на
- Номер кадра (f):количество битов, необходимых для представления кадра физического адресного пространства или кадра номера кадра.
- Смещение кадра (d):количество битов, необходимых для представления конкретного слова в кадре, или размер кадра в физическом адресном пространстве, или номер слова кадра, или смещение кадра.
Аппаратная реализация таблицы страниц может быть выполнена с использованием выделенных регистров. Но использование регистра для таблицы страниц является удовлетворительным только в том случае, если таблица страниц мала. Если таблица страниц содержит большое количество записей, мы можем использовать TLB (буфер просмотра трансляции), специальный небольшой аппаратный кеш для быстрого просмотра.
- TLB — это ассоциативная высокоскоростная память.
- Каждая запись в TLB состоит из двух частей: тега и значения.
- Когда эта память используется, то элемент сравнивается со всеми тегами одновременно. Если элемент найден, то соответствующее значение возвращается.
Время доступа к основной памяти = м
Если таблица страниц хранится в основной памяти,
Эффективное время доступа = m (для таблицы страниц) + m (для конкретной страницы в таблице страниц)