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

Виды компьютерной памяти

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

Минимальной единицей информации является бит или кратные ему единицы: килобит (1 кб = 1024 бита), мегабит (1Мб = 1024кбит), гигабит (1Гб = 1024Мбит). Но чаще пользуются единицей байт (1 байт = 8 бит), или же кратными ему единицами: килобайт (1 КБ = 1024 байта), мегабайт (1МБ = 1024кБ), гигабайт (1ГБ = 1024МБ). Для измерения больших объемов памяти используются терабайты и петабайты.

Компьютерную память можно классифицировать по типу доступа:

  • последовательный доступ (магнитные ленты)
  • произвольный доступ (оперативная память)
  • прямой доступ (жесткие магнитные диски);
  • ассоциативный;

по типу электропитания:

  • энергонезависимая (оперативная и кэш-память)
  • статическая (SRAM — Static Random Access Memory)
  • динамическая (DRAM — Dynamic Random Access Memory)
  • энергонезависимая (жесткие диски, компакт-диски, флэш-память)
  • буферная;
  • временная;
  • кэш-память;
  • корректирующая;
  • управляющая;
  • коллективная.

по типу носителя и способу записи информации:

  • акустическая;
  • голографическая;
  • емкостная;
  • криогенная;
  • лазерная;
  • магнитная;
  • магнитооптическая;
  • молекулярная;
  • полупроводниковая;
  • ферритовая;
  • фазоинверсная;
  • электростатическая.

Ячейка памяти подобна дырявому ведру

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

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

Подобно подробно рассмотренному ранее микропроцессору, чип памяти является интегральной микросхемой (ИС, IC), собранной из миллионов транзисторов и конденсаторов. Одним из наиболее распространенных видов памяти произвольного доступа является DRAM (динамическая память произвольного доступа, dynamic random access memory). В ней транзистор и конденсатор спарены и именно они образуют ячейку, содержащую один бит информации. Конденсатор содержит один бит информации, то есть «0» или «1». Транзистор же играет в этой паре роль переключателя (свитча), позволяющего управляющей схеме чипа памяти считывать или менять состояние конденсатора.

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

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

Модули с коррекцией ошибок

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

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

Модули с коррекцией ошибок (ЕСС — Error Correction Code) применяется в серверах, где циркулируют большие информационные потоки и велика цена ошибки.

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

Статьи к прочтению:

Обычно оперативная память является динамической (Dynamic RAM – DRAM), т.е. значение бита информации в элементе памяти определяется наличием или…

ам.работа №6 Оперативная память (RAM – Random Access Memory, оперативное запоминающее устройство – ОЗУ, системная память) – непосредственно адресуемая…

Жажда скорости

У всех 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 требуется активное охлаждение для защиты от перегрева чипов.

Сверхоперативная память

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

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

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

Обмен

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

Когда процесс выполняется, он должен находиться в памяти

Внешняя фрагментация

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

Пример: Предположим (рассмотрим пример выше) три процесса 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 (для конкретной страницы в таблице страниц)

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector