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

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

Статическая память с произвольным доступом (SRAM)

Статическая память с произвольным доступом (статическая RAM или SRAM) - это тип полупроводниковой памяти, в которой используется бистабильная схема фиксации (flip -flop) »для хранения каждого бита. SRAM демонстрирует остаточные данные, [1], но он все еще изменчивый в общепринятом смысле, когда данные в конечном итоге теряются, когда память не запитана.

Термин статический отличает SRAM от DRAM (динамическая память с произвольным доступом), которую необходимо периодически обновлять. SRAM быстрее и дороже, чем DRAM; она обычно используется для кеш-памяти ЦП, в то время как DRAM используется для основной памяти компьютера.

Динамическая память с произвольным доступом (DRAM)

Динамическая память с произвольным доступом (DRAM) - это тип полупроводниковой памяти с произвольным доступом, в которой каждый бит данных хранится в отдельном крошечном конденсаторе внутри интегральная схема. Конденсатор можно заряжать или разряжать; эти два состояния используются для представления двух значений бита, условно называемых 0 и 1. Электрический заряд на конденсаторах медленно утекает, поэтому без вмешательства данные на микросхеме скоро будут потеряны. Чтобы предотвратить это, DRAM требует внешней схемы обновления памяти, которая периодически перезаписывает данные в конденсаторах, восстанавливая их первоначальный заряд. Из-за этого требования к обновлению это динамическая память, в отличие от статической оперативной памяти (SRAM), которая не требует обновления данных.

DRAM широко используется в цифровой электронике, где требуется недорогая память большой емкости. Одно из самых больших приложений для DRAM - это основная память (в просторечии называемая RAM) в современных компьютерах и видеокартах (где основная память называется графическая память). Он также используется во многих портативных устройствах и консолях для видеоигр. Напротив, SRAM, которая быстрее и дороже DRAM, обычно используется там, где скорость имеет большее значение, чем стоимость, например, кэш-память в процессорах.

Вариации в DRAM

Синхронная динамическая память с произвольным доступом (SDRAM) - это любая динамическая память с произвольным доступом (DRAM), в которой работа внешнего контактного интерфейса координируется внешним тактовый сигнал . DRAM использовал асинхронный интерфейс, в котором входные управляющие сигналы оказывают прямое влияние на внутренние функции, только задерживаясь на отключение по его полупроводниковые пути. SDRAM имеет синхронный интерфейс, благодаря которому изменения на управляющих входах распознаются после нарастающего фронта его тактового сигнала. В семействах SDRAM тактовый сигнал управляет пошаговым выполнением внутреннего конечного автомата, который реагирует на входящие команды. Эти команды могут быть конвейеризованы для повышения производительности, при этом ранее запущенные операции завершаются при получении новых команд, что позволяет устройству работать с командой доступа к памяти в каждом банке одновременно и ускорять доступ чередующимся способом. Это позволяет SDRAM достичь большего параллелизма и более высоких скоростей передачи данных, чем асинхронные DRAM. Конвейерная обработка означает, что микросхема может принять новую команду до того, как завершит обработку предыдущей. Для конвейерной записи за командой записи может сразу же следовать другая команда, не дожидаясь записи данных в массив памяти. Для конвейерного чтения запрошенные данные появляются через фиксированное количество тактов (задержка) после команды чтения, в течение которых могут быть отправлены дополнительные команды.

SDRAM (DDR3 SDRAM) с удвоенной скоростью передачи данных, ‹также чередование›

является типом s синхронного d динамического r andom- a ccess m emory (SDRAM) с интерфейсом с высокой пропускной способностью (удвоенная скорость передачи данных) и используется с 2007 года. Это высокоскоростной преемник DDR и DDR2 и предшественник DDR4 synchronous dynamic синхронный динамический произвольный доступ. память .

Модификации схемы доступа дают ей возможность передавать дважды за тактовый цикл: один в начале цикла, а другой в его конце. Таким образом, модуль DDR, который работает на частоте 133 МГц, например, обладает производительностью, эквивалентной производительности модуля SDRAM с частотой 266 МГц. Чтобы сделать возможным двойной доступ к данным за такт, массив ячеек организован в двух банках памяти, к каждому из которых можно получить доступ отдельно. Кроме того, последовательные слова данного блока хранятся в разных банках, что приводит к концепции чередования t. Это чередование слов в разных банках памяти, которое позволяет одновременный доступ к двум словам, которые передаются по последовательным фронтам тактовых импульсов

DRAM с быстрым страничным режимом (FPM DRAM) ‹также пакетный режим›

FPM DRAM реализует усовершенствование традиционной DRAM, в которой адрес строки поддерживается постоянным, в то время как данные из нескольких столбцов считываются из MDR с использованием нескольких адресов столбцов. Данные, хранящиеся в MDR, образуют открытую страницу, к которой можно получить доступ относительно быстро, что ускоряет последовательные обращения. Этот механизм известен как доступ в пакетном режиме и позволяет передавать блок (обычно) из четырех последовательных слов из / в банк памяти. Первое слово занимает то же время, что и обычная DRAM, однако следующие три слова передаются быстрее. Это можно смоделировать с помощью формы доступа по времени: x-y-y-y. FPM DRAM обычно имеет время доступа 5–3–3–3 (5 циклов до первого доступа, а последующие три занимают по 3 цикла каждый), со скоростью от 60 до 80 нс (для первого доступа) и максимальной скоростью шины. 66 МГц

DRAM с расширенными данными

Добавление буфера в драйверы шины вывода данных, приводящее к конфигурации DRAM с расширенными выводами данных. Это сохраняет выходные данные (в SRAM) и сохраняет их стабильными в течение времени, необходимого для их чтения через шину. Таким образом, поскольку данные хранятся в этих дополнительных буферах, микросхема может перекрывать следующий доступ для чтения с предыдущим, т. Е. Адрес следующего столбца может обрабатываться во время чтения предыдущих данных. Это усовершенствование позволяет перекрывать время доступа для второго, третьего и четвертого доступа к данным при доступе в пакетном режиме и, следовательно, ускорять.

Rambus DRAM (RDRAM)

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

Банк памяти

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

Шина данных

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

Шина памяти, шина между компьютером и памятью

Архитектуры, ориентированные на память

Согласно прогнозам, поведение памяти будет преобладать над общей производительностью вычислительной системы.

Интеллектуальная память, интеллектуальная память, интеллектуальная RAM (IRAM), объединенная DRAM / Logic (MDL), процессор в памяти (PIM) и т. Д.

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

Процессор в памяти (PIM)

Большой массив простых вычислительных элементов (обычно более 1000) был встроен в массивы DRAM. Эти элементы обработки обычно интегрируются на выходе усилителей считывания и управляются одним блоком управления, например процессором SIMD. Эта стратегия проектирования может исследовать огромную полосу пропускания на кристалле DRAM, поскольку вычислительные элементы интегрируются непосредственно в выходы DRAM.

Векторная DRAM

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

Многопроцессор на кристалле

Однокристальная многопроцессорная конструкция PPRAM пытается избежать узкого места в центральном блоке управления, которое было проблемой других архитектур. Это достигается за счет интеграции нескольких относительно простых, но полностью независимых кэшированных процессоров RISC, каждый из которых имеет разумный объем локальной памяти (= 8 МБ - DRAM), так называемый элемент обработки или узел PPRAM. Эти узлы соединены интерфейсом с очень высокой пропускной способностью (PPRAM-Link) и могут быть запрограммированы с использованием стандартной общей памяти или параллельных алгоритмов передачи сообщений. Благодаря высокоуровневой программируемости этих схем, они легче программируются для обеспечения максимального параллелизма, чем другие конструкции интеллектуальной памяти. Однако большой объем ресурсов, необходимых для каждого узла, ограничивает общее количество параллельных узлов далеко от элементов параллельной обработки ранее описанной конструкции PIM.

Кеши

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

Кеш-промах

С другой стороны, промах в кеше означает, что ЦП должен уйти в поисках данных где-то еще. Здесь в игру вступает кэш L2 - он медленнее, но гораздо больше. Некоторые процессоры используют инклюзивный дизайн кэша (это означает, что данные, хранящиеся в кэше L1, также дублируются в кеше L2), в то время как другие являются эксклюзивными (то есть два кеша никогда не обмениваются данными). Если данные не могут быть найдены в кеш-памяти L2, ЦП переходит вниз по цепочке к L3 (обычно все еще на кристалле), затем к L4 (если он существует) и к основной памяти (DRAM).

Скорость попадания

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

Тег RAM и ассоциативность кеша

ОЗУ тегов - это запись всех ячеек памяти, которые могут отображаться в любом заданном блоке кеша. Если кеш полностью ассоциативен, это означает, что любой блок данных RAM может храниться в любом блоке кеша. Преимущество такой системы заключается в том, что частота совпадений высока, но время поиска чрезвычайно велико - ЦП должен просмотреть весь свой кеш, чтобы выяснить, присутствуют ли данные, прежде чем выполнять поиск в основной памяти.

На противоположном конце спектра находятся кеши с прямым отображением. Кэш с прямым отображением - это кэш, в котором каждый блок кеша может содержать один и только один блок основной памяти. Этот тип кеша можно искать очень быстро, но, поскольку он отображает 1: 1 в ячейки памяти, у него низкий процент попаданий. Между этими двумя крайностями находятся n- ассоциативные кеши. Двухсторонний ассоциативный кеш (L1 Piledriver является двусторонним) означает, что каждый блок основной памяти может отображаться в один из двух блоков кеша. Восьмисторонний ассоциативный кэш означает, что каждый блок основной памяти может находиться в одном из восьми блоков кеш-памяти.

Дизайн кэша и производительность процессора, как дизайн кеша влияет на производительность

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

Представьте, что ЦП должен загрузить данные из кеша L1 100 раз подряд. Кэш L1 имеет задержку доступа 1 нс и коэффициент совпадений 100%. Следовательно, нашему ЦП требуется 100 наносекунд для выполнения этой операции.

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

В реальном мире кэш L1 обычно имеет процент попаданий от 95 до 97 процентов, но влияние этих двух значений на производительность в нашем простом примере составляет не 2 процента - это 14 процентов. Имейте в виду, мы предполагаем, что пропущенные данные всегда находятся в кеш-памяти второго уровня. Если данные были удалены из кеша и находятся в основной памяти с задержкой доступа 80–120 нс, разница в производительности между 95 и 97 процентами совпадений может почти удвоить общее время, необходимое для выполнения кода.

Иерархия памяти

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

Разрыв памяти ЦП

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

Существует два основных класса методов уменьшения влияния длительных задержек памяти: уменьшение задержки и устойчивость к задержкам. Уменьшение задержки сокращает время между выдачей запроса памяти и возвратом необходимого операнда. Допуск к задержке включает выполнение других вычислений во время обслуживания запроса памяти, так что задержка памяти для этого запроса частично или полностью скрыта. Это будет рассмотрено в следующем разделе. Использование и успех этих методов обнажают ограничения полосы пропускания [4], поскольку они ускоряют скорость выполнения инструкций и, следовательно, необходимость в операндах также возрастает; им требуется больше элементов, чем фактически необходимо, что увеличивает абсолютный объем трафика памяти. Отсутствие пропускной способности снижает время отклика на запросы процессора, то есть увеличивает задержку. Однако, учитывая сложное взаимодействие между задержкой памяти и пропускной способностью, трудно определить, деградация процессора, связанная с памятью, вызвана необработанной задержкой памяти или недостаточной пропускной способностью (что также увеличивает задержку).

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

- уменьшение количества промахов: увеличение размеров кеша и / или их блоков, более высокая ассоциативность, вставка кэшей жертвы и / или псевдоассоциативного кэша, аппаратная предварительная выборка, предварительная выборка, управляемая компилятором, компилятор уменьшает промахи;

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

- сокращение времени обращения: простые и маленькие кеши, конвейерная запись.

Пробел в процессоре DRAM сравнялся примерно в 2005 году с процессорами с тактовой частотой 3 ГГц, и с тех пор процессоры масштабировались с использованием большего количества ядер и гиперпотоков, а также конфигураций с несколькими сокетами, что увеличивало нагрузку на подсистему памяти. Производители процессоров пытались уменьшить это узкое место в памяти с помощью более крупных и умных кешей ЦП, а также более быстрых шин памяти и межсоединений. Но обычно мы все еще в тупике.

использованная литература

Https://pdfs.semanticscholar.org/6ebe/c8701893a6770eb0e19a0d4a732852c86256.pdf









Https://en.wikipedia.org/wiki/Memory_bank