Динамическая и статическая память – 26. Запоминающие устройства ПК. Статическая и динамическая оперативная память ПК. Кэш-память ПК.

Память динамического типа DRAM

Динамическая память (DRAM) — это тип памяти с произвольным доступом, используемый в вычислительных устройствах, и в первую очередь на ПК. DRAM хранит каждый бит данных в отдельном пассивном электронном компоненте, который находится внутри интегральной платы. Каждый электрический компонент имеет два состояния значения в одном бите, называемом 0 и 1. Он должен часто обновляться, иначе информация исчезает. DRAM имеет один конденсатор и один транзистор на бит, в отличие от статической памяти произвольного доступа (SRAM), которая требует 6 транзисторов. Используемые конденсаторы и транзисторы исключительно малы. Существуют миллионы конденсаторов и транзисторов, которые подходят к одному чипу памяти.

Развитие динамической технологии

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

Идея технологии DRAM появилась относительно рано на временной шкале полупроводниковых интегральных схем. Ранняя форма была применена в калькуляторе Toshiba, который был выпущен в 1966 году из дискретного компонента, а затем через два года идея была запатентована. Следующий этап разработки технологий произошел в 1969 году, когда Honeywell, который вошел на компьютерный рынок, попросил Intel изготовить динамическую память, используя три идеи транзисторных ячеек. Полученная ИС DRAM была названа Intel 1102 и появилась в начале 1970 года. Однако у устройства было несколько проблем, после чего Intel разработал новую технологию, которая работала более надежно.

Полученное новое устройство появилось в конце 1970 года и получило название Intel 1103. Технология продвинулась еще дальше, когда в 1973 году MOSTEK выпустил свой MK4096. Как показывает номер детали, устройство имело емкость 4 к. Главным его преимуществом было то, что он включал мультиплексированный подход к строкам и столбцам. Этот новый подход позволил вписаться в пакеты с меньшим количеством контактов. В результате преимущество в стоимости выросло по сравнению с предыдущими подходами при каждом увеличении объема памяти.

Это позволило технологии MOSTEK получить более 75 % доли мирового рынка. В конце концов MOSTEK проиграл японским производителям, поскольку они смогли производить более качественные устройства по более низкой цене.

Разновидности памяти и их назначения

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

SRAM — это энергозависимая память, которая является статической и не нуждается в обновлении. Поскольку она выполняется намного быстрее, то используется в регистрах и кеш-памяти. SRAM хранит данные и работает на более высоких скоростях, чем динамическая память c материнской платой, потому что это намного дешевле в производстве.

DRAM — это один из вариантов полупроводниковой памяти, которым разработчик системы может использовать при создании компьютера. Альтернативные варианты памяти включают статическое ОЗУ (SRAM), электрически стираемая программируемая память только для чтения (EEPROM), NOR Flash и NAND Flash. Во многих системах используется более одного типа памяти.

Типы печатных плат и системы считывания

Три основных типа печатных плат, которые содержат микросхемы памяти — это два встроенных модуля памяти (DIMM), однострочные модули памяти (SIMM) и модули памяти Rambus в линейке (RIMM).

Сегодня большинство материнских плат используют модули DIMM. Частота обновления модуля для DRAM составляет каждые несколько миллисекунд (1/1000 секунды). Это обновление выполняется контроллером памяти, расположенным на чипсете материнской платы. Поскольку логика обновления используется для автоматического обновления, плата DRAM является довольно сложной.

Существуют различные системы, используемые для обновления, но для всех методов требуется, чтобы счетчик отслеживал строку, которая должна быть обновлена следующим образом. Ячейки DRAM организованы в виде квадратного набора конденсаторов, обычно 1024 на 1024 ячеек. Когда ячейка находится в состоянии «прочитано», считывается целая строка, и обновление записывается обратно. Когда в состоянии «записи», целая строка «считывается», изменяется одно значение, а затем вся строка переписывается.

В зависимости от системы есть чипы DRAM, которые содержат счетчик в то время, как другие системы полагаются на логику обновления периферийного устройства. Время доступа составляет около 60 наносекунд, в то время как SRAM может достигать 10 наносекунд. Кроме того, время цикла DRAM намного длиннее, чем у SRAM. Время цикла короче, потому что ему не нужно останавливаться между обращениями и обновлениями.

DRAM против SRAM

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

  1. SRAM не нуждается в обновлении, поскольку работает по принципу переключения текущего потока в одном из двух направлений вместо того, чтобы удерживать заряд в месте хранения.
  2. Ее обычно используется для кеш-памяти, к которой можно получить доступ быстрее, чем DRAM.
  3. SRAM способна считывать и записывать байтовые разряды и быстрее считывает и записывает, чем DRAM, который записывает данные на уровне байта и читает на уровне многобайтовых страниц.
  4. Различия в мощности определяются в зависимости от того, находится ли система в активном или спящем режиме. DRAM требует меньше энергии, чем SRAM в активном состоянии, но SRAM потребляет значительно меньше энергии, в режиме ожидания.

Существует много типов или интерфейсов для связи с DRAM. Они включают в себя с быстрым режимом страницы (FPM DRAM), расширенные данные из DRAM (EDO RAM) и синхронную DRAM (SDRAM). SDRAM это общее название для типов DRAM, синхронизированных с тактовой частотой от микропроцессора. Они включают SDRAM с одной скоростью передачи данных (SDR), SDRAM с двойной скоростью передачи данных (DDR), DDR2 SDRAM, DDR3 SDRAM и DDR4 SDRAM.

Принцип работы RAM

Устройства динамической памяти имеют технологию MOS, лежащую в основе проектирования, изготовления и эксплуатации. Посмотрев, как работает память DRAM, можно видеть, что в базовой памяти RAM или DRAM используется конденсатор для хранения каждого бита данных и передающее устройство — MOSFET, которое действует как коммутатор.

Уровень заряда на конденсаторе ячейки памяти определяет, является ли этот конкретный бит логическим «1» или «0» — наличие заряда в конденсаторе указывает логику «1», а отсутствие заряда указывает логическое «0». Динамическое распределение памяти RAM имеет определенный формат, в результате чего он может быть плотно упакован на кремниевый чип, и это делает его очень дешевым. Две строки соединены с каждой динамической ячейкой RAM — линия Word (W / L) и линия бит (B / L), так что требуемая ячейка внутри матрицы может считывать или записывать данные.

Базовая ячейка

Показанная базовая ячейка памяти была бы одной из многих тысяч или миллионов таких ячеек в полном чипе памяти. Они могут иметь емкость 256 Мбит и более. Чтобы улучшить возможности записи и чтения и скорость, выполняют динамическое выделение памяти c разделением на подматрицы. Наличие нескольких подмассивов сокращает слова и битовые строки, и это сокращает время доступа к отдельным ячейкам. Например, динамическое ОЗУ 256 Мбит, DRAM может быть разделено на 16 меньших 16 Мбит массивов.

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

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

Операция обновления динамической ОЗУ

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

Одним из ключевых элементов памяти DRAM является тот факт, что данные периодически обновляются. Обычно производители указывают, что каждая строка должна обновляться каждые 64 мс. Этот временной интервал соответствует стандартам JEDEC для динамических периодов обновления RAM.

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

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

Отношение сигнал/шум

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

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

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

Асинхронная технология

В семействе памяти DRAM существует несколько типов, включая асинхронные, синхронные, EDO, BEDO, FPM и другие. Помимо типа технологии памяти, она также может содержаться в нескольких типах пакетов IC. DRAM также доступен в форматах модулей и имеется несколько типов модулей памяти, включая модули DIMM, SIMM, RIMM и т. п. Таким образом, необходимо иметь представление обо всех различных типах DRAM и форматах, в которых память может быть получена, установлена и использована.

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

Выделение памяти

Динамическое выделение памяти — это процесс, с помощью которого компьютерным программам и службам присваивается физическое или виртуальное пространство памяти. Фактически — это процесс резервирования частичной или полной части компьютерной памяти для выполнения программ и процессов. Распределение памяти достигается посредством процесса, известного как управление памятью через операционную систему и программные приложения.

Динамическое выделение памяти имеет два основных типа:

  1. Распределение статической памяти, программе выделяется память во время компиляции.
  2. Динамическое распределение памяти, программы распределяются с памятью во время выполнения.

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

Оптимизация использования памяти

Динамическая память arduino выполнена в виде flash.Там где сама программа хранится и не может быть изменена, кроме случаев, когда пользователь загружает новую программу, называемую «эскизом», с компьютера, и сохраняет то, что загрузил, даже если питание отключено. Когда проверяют или загружают эскиз, ПК сообщит в окне, сколько флэш есть и сколько использовано, если включен «подробный режим» в настройках.

Каждый раз, когда загружается новый эскиз, он перезаписывает старый. Arduino одномоментно имеет только одну программу, и когда в Arduino подается питание, программа запускается навсегда. Большинство современных Arduinos имеют около 32 тыс. флэш-памяти, что довольно мало и ограничивает размер программ (эскизов), которые вам можно загрузить. Но SRAM — реальный предел для многих вещей. Пользователю действительно нужно быть осторожным в планировании, чтобы свести к минимуму то, что действительно нужно сохранить. И если пытаются использовать слишком много — Arduino просто не сработает. Пользователь даже не сможете выполнить самые минимальные отладочные действия, пока не будет перезагружен ПК.

SRAM — самый ценный товар памяти на Arduino. Хотя недостатки SRAM, вероятно, являются наиболее распространенными проблемами памяти на Arduino. Их трудно диагностировать. Если программа терпит неудачу необъяснимым образом, есть хорошие шансы, что пользователь разбил стек из-за нехватки SRAM. Есть ряд вещей, которые можно сделать для сокращения использования SRAM:

  1. Удалить неиспользуемые переменные.
  2. Зарезервировать строки.
  3. Переместите постоянные данные в PROGMEM.
  4. Уменьшение размеров буфера.
  5. Уменьшение негабаритных переменных.

Любая переменная, которую пользователь определяете либо в верхней части программы, внутри функции, либо даже «на лету» в чем-то вроде цикла for, скорее всего, будет использовать SRAM, хотя некоторые переменные никогда не хранятся в SRAM. Каждый раз, когда Arduino запускается с помощью включения или сброса, все его переменные повторно инициализируются по умолчанию, и ей необходимо повторно изучить среду, с которой она работает.

Работа с динамической памятью важный важный аспект, который следует учитывать при разработке системы. На самом деле, есть третий вид памяти — EEPROM, который можно записать, и он будет сохранен в случае прерывания питания. Arduino может записывать 300 EEPROM в секунду, если пользователь будет неосторожен, то теоретически такая скорость может уничтожить ячейку памяти через 5 минут, а весь EEPROM — через два дня.

fb.ru

Статическая и динамическая память

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

Рисунок 6.х Запоминающий элемент статической памяти

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

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

Методы ускорения обменов с ОП

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

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

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

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

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

В памяти Rambus Direct RAM (DRDRAM) ширина выборки уменьшена до 16 бит, но частота увеличена до 800 МГц (и даже до 1600 МГц). Передача осуществляется пакетами: существует три вида пакетов – данных, строк и столбцов. Пакеты строк и столбцов служат для передачи команд управления, которые заменяют обычные сигналы RAS, CAS, WE и CS. Однако память Rambus используется редко из-за дороговизны и возникающих технологических сложностей. Существует множество других видов динамической памяти, предназначенных для будущих персональных компьютеров, например, SLDRAM, ESDRAM, CDRAM. Эти виды памяти используют те же способы сокращения времени доступа, что и рассмотренные выше, но более высокая скорость передачи данных в них связана со значительным усложнением контроллера.

6.4 Кэш-память

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

Кэш-память предназначена для кратковременного хранения информации и выдачи ее в процессор. Она не является программно доступной и служит только для повышения производительности, но не увеличивает общую емкость памяти и не влияет на программирование. Кэш-память бывает нескольких уровней. Кэш первого уровня L1 обычно интегрируется с процессором и служит для предварительной выборки команд и данных. Во многих процессорах кэш первого уровня разделен на два: на кэш команд и кэш данных, см. рисунок 5.х. Его объем в современных процессорах составляет от 4 до 64Кбайт (и даже до 128Кбайт), а время обращения около 10 нс. Когда мы говорим о кэш-памяти, то обычно подразумеваем кэш второго уровня, или L2. Он служит для ускорения обращений процессора к программам и данным при их обработке. Этот кэш строится на базе очень быстрой и довольно дорогой статической памяти (SRAM) и хранит наиболее часто используемую процессором информацию. Физически кэш второго уровня выполняют в виде отдельной микросхемы или интегрированным с процессором в зависимости от возможностей технологии. Объем кэш-памяти второго уровня в процессорах разного назначения составляет от 256Кбайт (в персональных компьютерах) до 8 Мбайт (в серверах), а время обращения 15-20 нс. В некоторых компьютерах предусматривается также кэш третьего уровня L3, однако его эффективность невелика.

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

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

Существует три вида организации кэш-памяти: с прямым отображением, полностью ассоциативная и множественно ассоциативная.

  • В кэш-памяти с прямым отображением информационный блок из ОП записывается всегда в одно и то же фиксированное место. При этом при записи блока в кэш-память используются младшие разряды его адреса ОП. Они также записываются в виде тега вместе с информацией из основной памяти. Для информации, хранящейся в ячейках ОП с одинаковыми младшими разрядами адреса, предназначен один блок кэш-памяти. Так, если основная память разделена на 16384 блока, а объем кэш-памяти позволяет разместить только 128 блоков, то в строке 0 кэш-памяти могут находиться данные из 0, 128, 256,…,16256 блоков ОП, в строке 1 – данные из 1, 129, 257,…,16257 блоков ОП и т.д. Такая кэш-память наиболее дешева, но и требует наиболее частой замены блоков; вероятность «попадания» сравнительно низкая. Кэш с прямым отображением используется в простых недорогих компьютерах.

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

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

На рисунке 6.х приведена одна из возможных организаций множественно ассоциативной кэш-памяти. Такая память состоит из собственно запоминающего устройства, в котором хранятся копии взятых в ОП информационных блоков, таблицы адресов (ТА) и управляющих схем. Рассмотрим операцию чтения. Поступающий из процессора адрес разбивается на три части: поле смещения (Aсм), служащее для выбора нужного байта внутри блока, поле индекса(Aинд), определяющее номер множества, и поле тега (Aт), т.е.

А = Aт, Aинд, Aсм.

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

ЗУ

&

К ЦП

ТА

Aт Aинд Aсм

Рисунок 6.х Одна из возможных схем организации кэш-памяти

Производится выборка этого блока по адресу А = Aинд, Aсм. Если совпадения номеров страниц не произошло, то искомый блок отсутствует в ассоциативной памяти, и адрес нужного слова передается ОП. [Для ускорения работы памяти обычно адрес передается в кэш-память и в ОЗУ одновременно, но если искомое слово находится в кэш-памяти, то там оно будет найдено быстрее, и поэтому результат поиска в ОЗУ будет не нужен.]

Найденное слово из оперативной памяти передается в процессор для обработки, а весь блок переписывается в кэш-память. При копировании блока он направляется в раздел кэш-памяти, адрес которого определяется с помощью таблицы активности блоков (на рисунке она не показана). Эта таблица содержит предысторию обращений к каждому блоку и служит для вытеснения из кэш-памяти неиспользуемых блоков. Используется одна из двух стратегий – случайная или LRU (least recently used – т.е. заменяется блок, который дольше других не использовался). В первом случае новый блок вытесняет из кэш-памяти любой блок, выбираемый случайным образом; эту стратегию значительно проще реализовать в аппаратуре. Во втором случае, из кэш-памяти удаляется блок, к которому в течение последнего времени не было обращений. Эта стратегия требует фиксации обращений в таблице активности, что может значительно усложнить ее реализацию. Обычно реализация этой стратегии выполняется с помощью «очереди», в которую заносятся ссылки на заполняемые строки кэш-памяти. При обращении к строке ссылка на нее перемещается в конец очереди. Таким образом, в начале очереди всегда будет находиться ссылка к строке, к которой обращение производилось раньше, чем к другим строкам.

Теперь остановимся на операциях записи в память. Эти операции встречаются намного реже операций чтения; обычно они составляют менее 10% от общего числа операций, но пренебрегать ими нельзя. Существует две возможности:

  • сквозная запись (write through), при которой запись осуществляется одновременно и в кэш-память, и в ОП. В этом случае наличие кэш-памяти никак не скажется на скорости работы машины при записи обработанной информации в память. Время, необходимое для записи слова в ОП, превышает длительность записи в кэш-память, а пока не завершена запись результата предыдущей операции, продолжать работу невозможно.

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

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

studfiles.net

Динамическая память

Микросхемы памяти. Основные виды памяти

В настоящее время наиболее распространенными являются энергозависимые, теряющие хранимую информацию при снятии питания, статические и динамические микросхемы памяти.

Статические микросхемы памяти запоминают биты данных в триггерах, что требует 4 — 6 транзисторов для хранения бита.

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

Статическая память

Классификация статической памяти:

Статическая память по режимам работы делится на

— асинхронную,

— тактируемую

— синхронную (конвейерную)

Статические ОЗУ (SRAM), как правило, имеют структуру 2DM, часть их при небольшой информационной емкости строится по структуре 2D.

Запоминающими элементами статических ОЗУ служат триггеры с цепями установки и сброса. В связи с этим статические ОЗУ называют также триггерными. Триггеры можно реализовать по любой схемотехнологии (ТТЛ(Ш), И2Л, ЭСЛ, n-МОП, КМОП, AsGa и др.), соответственно которой существуют разнообразные схемы ЗУ. Различие в параметрах этих ЗУ отражает специфику той или иной схемотехнологии. В последнее время наиболее интенсивно развиваются статические ЗУ, выполненные по схемотехнологии КМОП, которая по мере уменьшения топологических норм технологического процесса приобретает высокое быстродействие при сохранении своих традиционных преимуществ.

Среди отечественных серий микросхем хорошо развитыми являются серии К537 технологии КМОП и К132 технологии n-МОП.

Запоминающий элемент ЗУ на n-МОП транзисторах (Рис. 1) представляет собой RS-триггер на транзисторах Т1 и Т2 с ключами выборки Т3 и Т4. При обращении к данному ЗЭ появляется высокий потенциал на шине выборки ШВi (через i, j соответственно обозначены номера строки и столбца, на пересечении которых расположен ЗЭij). Этот потенциал открывает ключи выборки (транзисторы Т3, Т4) по всей строке, и выходы триггеров строки соединяются со столбцовыми шинами считывания-записи. Одна из столбцовых шин связана с прямым выходом триггера (обозначена через Dj), другая — с инверсным ( ). Через столбцовые шины можно считывать состояние триггера (штриховыми линиями показан дифференциальный усилитель считывания). Через них же можно записывать данные в триггер, подавая низкий потенциал логического нуля на ту или иную шину.

Рис. 1 Схема триггерного запоминающего элемента на n-МОП транзисторах

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

Резисторы r служат для уменьшения емкостных токов в моменты открывания ключевых транзисторов и реализуются как части диффузионных областей этих транзисторов.

а) б)
Рис. 2 Варианты нагрузок для схемы триггера

В качестве нагрузки могут быть использованы двухполюсники, показанные Рис. 2, а. В первом случае это n-МОП транзистор со встроенным каналом и нулевым напряжением затвора, т.е. обычный элемент нагрузки в схемах с n-каналом.

Стремление к режиму микротоков привело к схеме с нагрузочным поликремниевым резистором (второй случай, нагрузка типа Рис. 2, б). Высокоомные нагрузочные резисторы изготовляются из поликристаллического кремния и пространственно расположены над областью транзисторов, что придает схеме также и высокую компактность. Режим микротоков нужен для кристаллов высокого уровня интеграции, но создает и ряд трудностей, в первую очередь низкую скорость переключения триггера (микротоки не в состоянии быстро перезаряжать паразитные емкости схемы) и маломощность выходных сигналов. Первый недостаток преодолевается тем, что триггер переключается под воздействием мощных сигналов записи информации через ключевые транзисторы, а не за счет только внутренних токов цепей обратных связей. Вторая особенность требует применения высокочувствительных усилителей считывания. Это объясняет использование так называемых усилителей-регенераторов в статических ЗУ (ранее они были характерны только для динамических).

Рассмотрим различные виды статической памяти, используемые при построении современных цифровых устройств.

1. Статическая память — SRAM (Static Random Access Memory)имеет время выборки данных 15 — 20 нс и используется, как правило, для построения кэш-памяти.

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

2. Синхронный кэш буферизует поступающие адреса. В течение первого такта SRAM запоминает запрашиваемый адрес в регистре. Во время второго такта извлекает и пересылает данные. Поскольку адрес данных хранится в регистре, синхронная статическая память SRAM может получать следующий адрес, пока процессор принимает данные предыдущего запроса. Последовательные элементы данных синхронная SRAM может объединять в «пакеты», не принимая и не дешифрируя дополнительные адреса от процессора. Время доступа для такой памяти уменьшается на 15 — 20% по сравнению с асинхронной и составляет около 10 нс.

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

4. В некоторых случаях проблему повышения быстродействия основной памяти разработчики пытаются решить, встраивая кэш-память в микросхемы динамической памяти. Такой вариант памяти компании Mitsubishi получил название CDRAM (Cashed DRAM). Для данной памяти каждая 4- или 16-мегабитовая микросхема памяти содержит 16 Кбайт быстрой кэш-памяти. Обмен между динамической и статической памятями осуществляется 128-разрядными словами. Выпускаемый компанией Ramtron тип памяти — EDRAM (Enhanced DRAM) содержит 8 Кбайт кэш-памяти для каждых 4 Мбит динамической памяти. Обмен осуществляется 2048-разрядными словами. Благодаря высокому быстродействию CDRAM и EDRAM обычно используются в системах без кэш-памяти 2-го уровня.

Как видим, основным параметром памяти является время доступа.

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

Динамическая память

Классификация статической памяти:

Динамическая память делится на

— стандартную,

— квазистатическую,

— повышенного быстродействия.

В динамических ЗУ (DRAM) данные хранятся в виде зарядов емкостей МОП-структур. Основой такого ЗЭ является просто конденсатор небольшой емкости. Такой ЗЭ значительно проще триггерного, содержащего 6 транзисторов, что позволяет разместить на кристалле намного больше ЗЭ (в 4…5 раз) и обеспечивает динамическим ЗУ максимальную емкость. В то же время конденсатор неизбежно теряет со временем свой заряд, и хранение данных требует их периодической регенерации (через несколько миллисекунд).

Запоминающие элементы динамической памяти

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

Электрическая схема и конструкция однотранзисторного ЗЭ показаны на Рис. 3. Ключевой транзистор отключает запоминающий конденсатор от линии записи-считывания или подключает его к ней. Сток транзистора не имеет внешнего вывода и образует одну из обкладок конденсатора. Другой обкладкой служит подложка. Между обкладками расположен тонкий слой диэлектрика — оксида кремния SiO2.

Рис. 3 Схема и конструкция запоминающего элемента динамического ЗУ

В режиме хранения ключевой транзистор заперт. При выборке данного ЗЭ на затвор подается напряжение, отпирающее транзистор. Запоминающая емкость через проводящий канал подключается к линии записи-считывания и в зависимости от заряженного или разряженного состояния емкости различно влияет на потенциал линии записи-считывания. При записи потенциал линии записи-считывания передается на конденсатор, определяя его состояние.

Процесс чтения состояния запоминающего элемента. Фрагмент ЗУ (Рис. 4) показывает ЗЭ, усилитель считывания УС а также ключи К1 и К0 соответственно записи единицы и нуля. К линии записи-считывания (ЛЗС) подключено столько ЗЭ, сколько строк имеется в запоминающей матрице. Особое значение имеет емкость ЛЗС Сл, в силу большой протяженности линии и большого числа подключенных к ней транзисторов многократно превышающая емкость ЗЭ.

Рис. 4. Фрагмент схемы динамического ЗУ

Перед считыванием производится предзаряд ЛЗС. Имеются варианты ЗУ с предзарядом ЛЗС до уровня напряжения питания и до уровня его половины.

Рассмотрим различные виды динамической памяти, используемые при построении современных цифровых устройств.

1. В качестве основной на нижнем уровне иерархии памяти на сегодняшний день во многих случаях используется относительно медленная динамическая память DRAM(Dynamic Random Access Memory). Память DRAM имеет время выборки 70 — 80 нс.

2. Наряду с памятью с произвольным доступом RAM(Random Access Memory) в настоящее время широко распространена более быстрая память со страничной организацией FPM (Fast Page Mode) DRAM. Этот тип памяти обеспечивает ускорение часто используемого в программах доступа к последовательности элементов данных, благодаря расположению этих элементов в одной строке матрицы ячеек памяти.

Цикл обращения для чтения памяти FPM начинается с активизации строки в матрице DRAM путем выдачи адреса строки и строба RAS (Row Address Strobe). Затем по выдаче адреса столбца и строба CAS (Column Address Strobe) выполняется активизация адресуемой ячейки памяти, содержащей нужные данные. После проверки правильности каждого элемента данные передаются в процессор. Затем столбец деактивизируется и осуществляется подготовка к следующему циклу. Это приводит к ожиданию процессором завершения цикла памяти, поскольку во время деактивизации столбца ничего не происходит. Выходной буфер данных блокируется или до начала следующего цикла, инициируемого выдачей адреса очередного столбца строки и строба CAS, или до запроса новой строки данных. В случае быстрого страничного режима очередной столбец активизируется в предположении, что следующий элемент запрашиваемых данных находится в соседней ячейке памяти. Такая активизация следующего столбца приводит к лучшим результатам только при последовательном чтении ячеек памяти в конкретной строке.

FPM DRAM со временем доступа 60— 70 нс позволяет строить сбалансированные по пропускной способности вычислительные системы с частотой шины 33—40МГц.

Групповые операции обмена с памятью принято описывать формулой, содержащей количества тактов, требуемых для чтения блока данных из четырех элементов данных. Для DRAM эта формула имеет вид 5-5-5-5, для FPM DRAM — 5-3-3-3. Это означает, что для чтения каждого элемента данных в случае DRAM требуется 5 тактов шины данных. Для FPM DRAM чтение первого элемента осуществляется также за 5 тактов, а каждый следующий элемент читается за 3 такта, поскольку считается, что следующий элемент находится в той же строке и нет необходимости передавать ее адрес.

3. В системах с большей тактовой частотой для надежного взаимодействия процессора с памятью используется память EDO DRAM (Extended Data Output — память с расширенной выдачей данных).

Работа EDO во многом напоминает работу FPM DRAM — активизируется строка памяти, а затем активизируется ее столбец. Но после нахождения элемента данных вместо деактивизации столбца и блокирования выходного буфера (что происходит в.FPM FRAM) память типа EDO сохраняет выдаваемые данные в дополнительных выходных регистрах до обращения к следующему столбцу или начала следующего цикла чтения, тем самым, увеличивая интервал времени хранения выходных данных, в связи с чем память и получила название Extended Data Output — память с расширенной выдачей данных. Сохраняя выходной буфер включенным, память EDO устраняет состояние ожидания, и пакетные передачи производятся быстрее. Для страничного режима данный тип памяти Обеспечивает время доступа около 30 нс. Для памяти EDO групповые операции описываются количеством циклов 5-2-2-2.

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

Основным недостатком EDO и BEDO является то, что они предназначены для работы на частотах до 66 МГц, тогда как частота работы системной шины на сегодняшний день значительно выше (75, 83, 100 и более МГц).

5. Более быстродействующей памятью является синхронная динамическая память SDRAM (Synchronous DRAM), изготовляемая по БиКМОП (Bi-CMOS) технологии и имеющая время доступа 7—10нс.

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

Групповой обмен для такой памяти описывается формулой 5-1-1-1, так же, как и для BEDO, однако в отличие от последней SDRAM может работать на частотах 67, 83, 100, 125, 167, 200, 250 МГц.

6. Дальнейшим развитием SDRAM явилась SDRAM-II, разработанная технологическим лидером в производстве микросхем памяти — компанией Samsung. Другое название этого типа памяти — DDR SDRAM (Double Data Rate SDRAM)— память с удвоенной скоростью передачи данных. Операции чтения и записи для такой памяти выполняются дважды за один такт — по переднему и заднему фронтам тактового импульса. Пропускная способность SDRAM-II составляет 1.6 Гбайт/с при тактовой частоте шины 100 МГц. Создана, также, память SDRAM-III, для которой соответствующие значения составляют 2.4 Гбайт/с и 150 МГц.

7. Существуют, также, типы динамической памяти, основанные на концепции канала данных: RDRAM (Rambus DRAM) и SLDRAM (SyncLink DRAM).

Технология Rambus разработанная одноименной компанией, основана на высокоскоростном интерфейсе, который обеспечивает возможность передачи данных со скоростью до 600 Мбайт/с через Rambus Channel — шину данных разрядностью 1 байт. Эффективная пропускная способность достигает величины 480 Мбайт/с, что в 10 раз превышает аналогичный показатель для устройств EDO DRAM. Время доступа к ряду ячеек памяти составляет менее 2 нс в расчете на байт, а время задержки (время доступа к первому байту массива данных) — 23 нс.

Еще более быстродействующей является новый вариант RDRAM — Direct RDRAM. Этот тип памяти обеспечивает скорость передачи данных 1,6 Гбайт/с на один канал и до 6,4 Гбайт/с при четырех каналах.

Подсистема памяти на основе RDRAM включает следующие компоненты: контроллер, канал, модуль памяти RIMM с микросхемами памяти RDRAM, терминатор. Контроллер реализован на специализированной микросхеме Rambus ASIC Cell (RAC), которая генерирует управляющие сигналы для подсистемы памяти, работающей с тактовой частотой до 400 МГц. К одному контроллеру RAC может подключаться до 4 независимо функционирующих каналов. Канал обеспечивает электрическую связь между контроллером и содержит блок управления подключенными к каналу микросхемами памяти (до 32 микросхем RDRAM) и 30 высокоскоростных линий, передающих данные на обоих фронтах синхронизирующих сигналов. Для подавления отраженного сигнала на конце канала устанавливается терминатор. Линии канала разделены на 16- или 18-разрядную шину данных, 5-разрядную шину адреса строки и 3-разрядную шину адреса столбца. Использование раздельных шин для передачи адреса строки и столбца увеличивает быстродействие подсистемы памяти.

Данные и сигналы управления передаются по каналу 8-битовыми пакетами в соответствии с протоколом Direct Rambus. В случае обмена большими массивами данных память Rambus является оптимальным вариантом в смысле отношения производительность/стоимость. Себестоимость производстваэтого типа памяти на 40% ниже, чем у микросхем SDRAM. Данный факт объясняет широкое применение RDRAM в игровых приставках (Nintendo) и графических рабочих станциях (Silicon Graphics).

Технология изготовления памяти RDRAM находится во владении компаний Rambus и Intel и подлежит лицензированию другими производителями. С целью создания открытого стандарта памяти, не уступающей по техническим характеристикам RDRAM, IBM, Apple, Motorola, Micron Technology образовали консорциум, получивший название SyncLink Consortium.

Разработанная память SLDRAMпохожа на RDRAM. Подсистема памяти SLDRAM содержит контроллер, канал передачи команд, адресов и данных, микросхемы или модули памяти (SL-модули) и терминатор. Команды, адреса и управляющие сигналы передаются по однонаправленной 10-разрядной шине — CommandLink, данные считываются и записываются по двунаправленной 18-разрядной шине данных — DataLink. Данные и команды передаются по шинам пакетами по 4 или 8 бит.

К контроллеру, управляющему подсистемой памяти, может быть подключено до 8 запоминающих устройств: микросхем памяти SLDRAM или SL-модулей, содержащих несколько микросхем. Каждой микросхеме памяти в момент включения питания присваивается уникальный номер, что позволяет учитывать ее быстродействие и местоположение в подсистеме памяти для определения временных задержек при передаче сигналов. В управляющие регистры микросхемы записывается значение времени задержки ее реакции на прием и выдачу сигналов, благодаря чему удается добиться одновременного отклика всех микросхем. Учет быстродействия микросхем в подсистеме памяти позволяет использовать их различные модификации, отличающиеся по быстродействию и объему.

В зависимости от быстродействия запоминающих устройств канал может работать на различных частотах. На сегодняшний день выпускается SLDRAM память, работающая по обоим фронтам синхросигнала частоты 200 МГц, 400 МГц и выше.

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


Похожие статьи:

poznayka.org

в чем отличие, как обозначаются, где применяются. (ОргЭвм)

Оперативная память — совокупность специальных электронных ячеек, каждая из которых может хранить конкретную 8-значную комбинацию из нулей и единиц — 1 байт (8 бит). Каждая такая ячейка имеет адрес (адрес байта) и содержимое (значение байта). Адрес нужен для обращения к содержимому ячейки, для записи и считывания информации. Оперативное запоминающее устройство (ОЗУ) хранит информацию только во время работы компьютера. Емкость оперативной памяти современного компьютера 32-138 Мбайт. При выполнении микропроцессором вычислительных операций должен быть в любой момент обеспечен доступ к любой ячейке оперативной памяти. Поэтому ее называют памятью с произвольной выборкой — RAM (Random Access Memory). Оперативная память выполнена обычно на микросхемах динамического типа с произвольной выборкой (Dynamic Random Access Memory, DRAM). Каждый бит такой памяти представляется в виде наличия (или отсутствия) заряда на конденсаторе, образованном в структуре полупроводникового кристалла. Другой, более дорогой тип памяти — статический (Static RAM, SRAM) в качестве элементарной ячейки использует так называемый статический триггер (схема которого состоит из нескольких транзисторов). Статический тип памяти обладает более высоким быстродействием и используется, например, для организации кэш-памяти. Статическая память Статическая память (SRAM) в современных ПК обычно применяется в качестве кэш-памяти второго уровня для кэширования основного объема ОЗУ. Статическая память выполняется обычно на основе ТТЛ-, КМОП- или БиКМОП-микросхем и по способу доступа к данным может быть как асинхронной, так и синхронной. Асинхронным называется доступ к данным, который можно осуществлять в произвольный момент времени. Асинхронная SRAM применялась на материнских платах для третьего — пятого поколения процессоров. Время доступа к ячейкам такой памяти составляло от 15 нс (33 МГц) до 8 нс (66 МГц). Для описания характеристик быстродействия оперативной памяти применяются так называемые циклы чтения/записи. Дело в том, что при обращении к памяти на считывание или запись первого машинного слова расходуется больше тактов, чем на обращение к трем последующим словам. Так, для асинхронной SRAM чтение одного слова выполняется за 3 такта, запись — за 4 такта, чтение нескольких слов определяется последовательностью 3—2—2—2 такта, а запись — 4—3—3—3. Синхронная память обеспечивает доступ к данным не в произвольные моменты времени, а синхронно с тактовыми импульсами. В промежутках между ними память может готовить для доступа следующую порцию данных. В большинстве материнских плат пятого поколения используется разновидность синхронной памяти — синхронно-конвейерная SRAM (Pipelined Burst SRAM), для которой типичное время одиночной операции чтения/записи составляет 3 такта, а групповая операция занимает 3—1—1—1 такта при первом обращении и 1—1—1—1 при последующих обращениях, что обеспечивает ускорение доступа более, чем на 25%. Динамическая память Динамическая память (DRAM) в современных ПК используется обычно в качестве оперативной памяти общего назначения, а также как память для видеоадаптера. Из применяемых в современных и перспективных ПК типов динамической памяти наиболее известны DRAM и FPM DRAM, EDO DRAM и BEDO DRAM, EDRAM и CDRAM, Synchronous DRAM, DDR SDRAM и SLDRAM, видеопамять MDRAM, VRAM, WRAM и SGRAM, RDRAM. В памяти динамического типа биты представляются в виде отсутствия и наличия заряда на конденсаторе в структуре полупроводникового кристалла. Конструктивно она выполняется в виде модуля SIMM (Single in line memory module). Каждый бит информации записывается в отдельной ячейке памяти, состоящей из конденсатора и транзистора. Наличие заряда на конденсаторе соответствует 1 в двоичном коде, отсутствие — 0. Транзистор при переключении дает возможность считывать бит информации или записывать новый бит в пустую ячейку памяти. Поиск ячейки по адресу осуществляется специальными дешифрующими схемами, которые образуют матрицу, то есть пересекают кристалл памяти двумя полосами — по горизонтали и вертикали. Когда центральный процессор сообщает адрес ячейки, горизонтальные дешифраторы указывают нужный столбец, а вертикальные — строку. На пересечении находится искомая ячейка. После нахождения ячейки происходит выборка их нее байта данных. 

studfiles.net

Статическая и динамическая оперативная память

Оперативная память может формироваться из микросхем динамического (Dynamic Random Access Memory — DRAM) или статического (Static Random Access Memory — SRAM) типа.

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

В динамической памяти DRAM ячейки построены на основе полупроводниковых областей с хранением зарядов — своеобразных конденсаторов, занимающих гораздо меньшую площадь, нежели триггеры, и практически не потребляющих энергии при хранении. Конденсаторы расположены на пересечении вертикальных и горизонтальных шин матрицы; запись и считывание информации осуществляется подачей электрических импульсов по тем шинам матрицы, которые соединены с элементами, принадлежащими выбранной ячейке памяти. При обращении к микросхеме на ее входы вначале подается адрес строки матрицы, сопровождаемый сигналом RAS (Row Address Strobe — строб адреса строки), затем, через некоторое время — адрес столбца, сопровождаемый сигналом CAS (Column Address Strobe — строб адреса столбца). Поскольку конденсаторы постепенно разряжаются (заряд сохраняется в ячейке в течение нескольких миллисекунд), во избежание потери хранимой информации заряд в них необходимо постоянно регенерировать, отсюда и название памяти — динамическая. На подзарядку тратится и энергия и время, и это снижает производительность системы. Ячейки динамической памяти по сравнению со статической имеют большее время срабатывания (до десятка наносекунд), но большую удельную плотность (до нескольких тысяч Мбит на корпус) и меньшее энергопотребление. Динамическая память используется для построения оперативных запоминающих устройств основной памяти ПК.

Кэш-память

Кэш-память имеет несколько уровней. Уровни L1, L2 и L3 – регистровая кэш-память, высокоскоростная память сравнительно большой емкости, являющаяся буфером между ОП и МП и позволяющая увеличить скорость выполнения операций. Регистры кэш-памяти недоступны для пользователя, отсюда и название кэш (cache), что в переводе с английского означает «тайник». Кэш-память уровня L4 является буфером между НМД и оперативной памятью, она строится либо на основе DRAM, либо на основе флэш-дисков. В современных материнских платах применяется конвейерный кэш с блочным доступом (Pipelined Burst Cache). В кэш-памяти хранятся копии блоков данных тех областей оперативной памяти, к которым выполнялись последние обращения, и весьма вероятны обращения в ближайшие такты работы. Благодаря кэш возможен быстрый доступ к данным и сокращение времени выполнения очередных команд программы. При выполнении программы данные, считанные из ОП с небольшим опережением, записываются в кэш-память. Туда же записываются и результаты операций, выполненных в МП. По принципу записи результатов в оперативную память различают два типа кэш-памяти:

  • кэш-память «с обратной записью» — результаты операций прежде, чем их записать в ОП, фиксируются, а затем контроллер кэш-памяти самостоятельно перезаписывает эти данные в ОП;

  • кэш-память «со сквозной записью» — результаты операций параллельно записываются и в кэш-память, и в ОП.

МП, начиная от 80486, обладают встроенной в основное ядро МП кэш-памятью (или кэш-памятью 1-го уровня — L1), чем, в частности, и обусловливается их высокая производительность. МП Pentium имеют кэш-память отдельно для данных и отдельно для команд. Емкость этой памяти для МП Pentium и Pentium Pro небольшая — по 8 Кбайт, у следующих версий МП Pentium по 16 Кбайт, а у МП серии Core по 32 Кбайт. У Pentium Pro и выше кроме кэш-памяти 1-го уровня (L1) есть и встроенная на микропроцессорную плату кэш-память 2-го уровня (L2) емкостью от 128 Кбайт до 2048 Кбайт. Эта встроенная кэш-память работает либо на полной тактовой частоте МП, либо на его половинной тактовой частоте.

Следует иметь в виду, что для всех МП используется дополнительная кэш-память 2-го (L2) или 3-го (L3) уровня, размещаемая на СП (вне МП), емкость которой может достигать нескольких мегабайтов (кэш на СП относится к уровню 3, если МП, установленный на этой плате, имеет кэш 2-го уровня). Время обращения к кэш-памяти зависит от тактовой частоты, на которой кэш работает, и составляет обычно 1–2 такта. Так, для кэш-памяти L1 МП Pentium характерно время обращения 2–5 нс, для кэш-памяти L2 и L3 это время доходит до 10 нс. Пропускная способность кэш-памяти зависит от времени обращения, и пропускной способности интерфейса, лежит в широких пределах от 300 до 3000 Мбайт/с. Использование кэш-памяти существенно увеличивает производительность системы. Чем больше размер кэш-памяти, тем выше быстродействие, но эта зависимость нелинейная. Имеет место постепенное уменьшение скорости роста общей производительности компьютера с ростом размера кэш-памяти. Для современных ПК рост производительности, как правило, практически прекращается после 1 Мбайт кэш-памяти L2. Создается кэш-память L1, L2, L3 на основе микросхем статической памяти.

studfiles.net

3 Память

3.1 Статическая и динамическая память

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

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

  1. В ядре

Ядро микросхемы статической оперативной памяти (SRAM — Static Random Access Memory) представляет собой совокупность триггеров — логических устройств, имеющих два устойчивых состояния, одно из которых условно соответствует логическому нулю, а другое — логической единице. Другими словами, каждый триггер хранит один бит информации, — ровно столько же, сколько и ячейка динамической памяти

Между тем, триггер как минимум по двум позициям обыгрывает конденсатор: а) состояния триггера устойчивы и при наличии питания могут сохраняться бесконечно долго, в то время как конденсатор требует периодической регенерации; б) триггер, обладая мизерной инертностью, без проблем работает на частотах вплоть до нескольких ГГц, тогда как конденсаторы «сваливаются» уже на 75-100 МГц.

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

  1. Устройство триггера

В основе всех триггеров лежит кольцо из двух логических элементов «НЕ» (инверторов), соединенных по типу «защелки» (см. рис. 1). Рассмотрим, как он работает. Если подать на линию Q сигнал, соответствующий единице, то, пройдя сквозь элемент D.D1 он обратится в ноль. Но, поступив на вход следующего элемента, — D.D2 — этот ноль вновь превратится в единицу. Поскольку, выход элемента D.D2 подключен ко входу элемента D.D1, то даже после исчезновения сигнала с линии Q, он будет поддерживать себя самостоятельно, т.е. триггер перейдет в устойчивое состояние. Образно это можно уподобить дракону, кусающему себя за хвост.

Естественно, если на линию Q подать сигнал, соответствующий логическому нулю, — все будет происходить точно так же, но наоборот!

Рисунок 1 — Устройство простейшего триггера (слева). Образно это можно представить драконом, кусающим свой хвост

  1. Устройство элемента «НЕ» (инвертора)

Как устроен элемент «НЕ»? На этот вопрос нельзя ответить однозначно. В зависимости от имеющейся у нас элементарной базы, конечная реализация варьируется в очень широких пределах. Ниже в качестве примера приведена принципиальная схема простейшего инвертора, сконструированного из двух последовательно соединенных комплементарых /* взаимно дополняемых */ CMOS-транзисторов — p- и n- канального (см. рис. 2). Если на затворы подается нулевой уровень, то открывается только p-канал, а n-канал остается разомкнутым. В результате, на выходе мы имеем питающее напряжение (т. е. высокий уровень). Напротив, если на затворы подается высокий уровень, размыкается n-канал, а p-канал — замыкается. Выход оказывается закорочен на массу и на нем устанавливается нулевое напряжение (т. е. низкий уровень).

Рисунок 2 — Устройство элемента НЕ (инвертора)

  1. Устройство матрицы статической памяти

Подобно ячейкам динамической памяти, триггеры объединяются в единую матрицу, состоящую из строк (row) и столбцов (column), последние из которых так же называются битами (bit).

В отличии от ячейки динамической памяти, для управления которой достаточно всего одного ключевого транзистора, ячейка статической памяти управляется как минимум двумя. Это не покажется удивительным, если вспомнить, что триггер, в отличии от конденсатора, имеет раздельные входы для записи логического нуля и единицы соответственно. Таким образом, на ячейку статической памяти расходуется целых восемь транзисторов (см. рис. 3) — четыре идут, собственно, на сам триггер и еще два — на управляющие «защелки».

Рисунок 3 — Устройство 6-транзистроной однопортовой ячейки SRAM-памяти

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

Этого ограничения лишена многопортовая память. Каждая ячейка многопортовой памяти содержит один-единственный триггер, но имеет несколько комплектов управляющих транзисторов, каждый из которых подключен к «своим» линиям ROW и BIT, благодаря чему различные ячейки матрицы могут обрабатываться независимо. Такой подход намного более прогрессивен, чем деление памяти на банки. Ведь, в последнем случае параллелизм достигается лишь при обращении к ячейкам различных банков, что не всегда выполнимо, а много портовая память допускает одновременную обработку любых ячеек, избавляя программиста от необходимости вникать в особенности ее архитектуры. (Замечание: печально, но кэш-память x86-процессор не истинно многопортовая, а состоит из восьми однопортовых матриц, подключенных к двух портовой интерфейсной обвязке)

Наиболее часто встречается двухпортовая память, устройство ячейки которой изображено на рис. 4. (внимание! это совсем не та память которая, в частности, применяется в кэше первого уровня микропроцессоров Intel Pentium). Нетрудно подсчитать, что для создания одной ячейки двух — портовой памяти расходуется аж восемь транзисторов. Пусть емкость кэш-памяти составляет 32 Кб, тогда только на одно ядро уйдет свыше двух миллионов транзисторов!

Рисунок 4 — Устройство 8-транзистроной двух портовой ячейки SRAM-памяти

Рисунок 5, 6 — Ячейка динамической памяти воплощенная в кристалле

  1. Устройство интерфейсной обвязки

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

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

Если статическая память выполнена в виде самостоятельной микросхемы, а не располагается непосредственно на кристалле процессора, линии ее входа зачастую объединяют с линиями выхода, и требуемый режим работы приходится определять по состоянию специального вывода WE (Write Enable). Высокое состояние вывода WE готовит микросхему к чтению данных, а низкое — к записи. Статическая память, размещенную на одном кристалле вместе с процессором, обычно не мультиплексирует, и в этом случае содержимое одной ячейки можно читать параллельно с записью другой (линии входа и выхода ведь раздельные!).

Номера столбцов и строк поступают на декодеры столбца и строки соответственно (см. рис. 7). После декодирования расшифрованный номер строки поступает на дополнительный декодер, вычисляющий, принадлежащую ей матрицу. Оттуда он попадает непосредственно на выборщик строки, который открывает «защелки» требуемой страницы. В зависимости от выбранного режима работы чувствительный усилитель, подсоединенный к битовым линейкам матрицы, либо считывает состояние триггеров соответствующей raw-линейки, либо «перещелкает» их согласно записываемой информации.

Рисунок 7 — Устройство типовой микросхемы SRAM-памяти

  1. Временные диаграммы чтения/записи

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

  1. Цикл чтения

Цикл чтения начинается со сброса сигнала CS (Chip Select — Выбор Чипа) в низкое состояние, давая понять тем самым микросхеме, что чип «выбран» и сейчас с ним будут работать (и работать будут, и прорабатывать!).

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

Спустя некоторое время (Address Access), определяемое быстродействием управляющей логики и быстротечностью переходных процессорах в инверторах, на линиях выхода появляются долгожданные данные, которые вплоть до окончания рабочего цикла (Cycle) могут быть непосредственно считаны. Обычно время доступа к ячейке статической памяти не превышает 1 — 2 нс., а зачастую бывает и меньше того!

  1. Цикл записи

Цикл записи происходит в обратном порядке. Сначала мы выставляем на шину адрес записываемой ячейки и одновременно с этим сбрасываем сигнал WE в низкое состояние. Затем, дождавшись, когда наш адрес декодируется, усилиться и поступит на соответствующие битовые линии, сбрасываем CS в низкий уровень, приказывая микросхеме подать сигнал высокого уровня на требуемую линию row. Защелка, удерживающая триггер, откроется и в зависимости от состоянии bit-линии, триггер переключится в то или иное состояние.

Рисунок 8 — Временные диаграммы чтения/записи асинхронной статической памяти

  1. Типы статической памяти

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

    1. Асинхронная статическая память

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

9.2 Синхронная статическая память

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

9.3 Конвейерная статическая память

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

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

За счет большей аппаратной сложности конвейерной памяти, время доступа к первой ячейке пакета увеличивается на один такт, однако, это практически не снижает производительности, т.к. все последующие ячейки пакета обрабатываются без задержек.

Конвейерная статическая память используется в частности в кэше второго уровня микропроцессоров Pentium-II и ее формула выглядит так: 2 — 1 — 1 — 1.

studfiles.net

Статическая и динамическая оперативная память — КиберПедия

Оперативная память — совокупность специальных электронных ячеек, каждая из которых может хранить конкретную 8-значную комбинацию из нулей и единиц — 1 байт (8 бит). Каждая такая ячейка имеет адрес (адрес байта) и содержимое (значение байта). Адрес нужен для обращения к содержимому ячейки, для записи и считывания информации. Оперативное запоминающее устройство (ОЗУ) хранит информацию только во время работы компьютера. Емкость оперативной памяти современного компьютера 32-138 Мбайт.
При выполнении микропроцессором вычислительных операций должен быть в любой момент обеспечен доступ к любой ячейке оперативной памяти. Поэтому ее называют памятью с произвольной выборкой — RAM (Random Access Memory). Оперативная память выполнена обычно на микросхемах динамического типа с произвольной выборкой (Dynamic Random Access Memory, DRAM). Каждый бит такой памяти представляется в виде наличия (или отсутствия) заряда на конденсаторе, образованном в структуре полупроводникового кристалла. Другой, более дорогой тип памяти — статический (Static RAM, SRAM) в качестве элементарной ячейки использует так называемый статический триггер (схема которого состоит из нескольких транзисторов). Статический тип памяти обладает более высоким быстродействием и используется, например, для организации кэш-памяти.

Статическая память
Статическая память (SRAM) в современных ПК обычно применяется в качестве кэш-памяти второго уровня для кэширования основного объема ОЗУ. Статическая память выполняется обычно на основе ТТЛ-, КМОП- или БиКМОП-микросхем и по способу доступа к данным может быть как асинхронной, так и синхронной. Асинхронным называется доступ к данным, который можно осуществлять в произвольный момент времени. Асинхронная SRAM применялась на материнских платах для третьего — пятого поколения процессоров. Время доступа к ячейкам такой памяти составляло от 15 нс (33 МГц) до 8 нс (66 МГц).
Для описания характеристик быстродействия оперативной памяти применяются так называемые циклы чтения/записи. Дело в том, что при обращении к памяти на считывание или запись первого машинного слова расходуется больше тактов, чем на обращение к трем последующим словам. Так, для асинхронной SRAM чтение одного слова выполняется за 3 такта, запись — за 4 такта, чтение нескольких слов определяется последовательностью 3—2—2—2 такта, а запись — 4—3—3—3.
Синхронная память обеспечивает доступ к данным не в произвольные моменты времени, а синхронно с тактовыми импульсами. В промежутках между ними память может готовить для доступа следующую порцию данных. В большинстве материнских плат пятого поколения используется разновидность синхронной памяти — синхронно-конвейерная SRAM (Pipelined Burst SRAM), для которой типичное время одиночной операции чтения/записи составляет 3 такта, а групповая операция занимает 3—1—1—1 такта при первом обращении и 1—1—1—1 при последующих обращениях, что обеспечивает ускорение доступа более, чем на 25%.



Динамическая память
Динамическая память (DRAM) в современных ПК используется обычно в качестве оперативной памяти общего назначения, а также как память для видеоадаптера. Из применяемых в современных и перспективных ПК типов динамической памяти наиболее известны DRAM и FPM DRAM, EDO DRAM и BEDO DRAM, EDRAM и CDRAM, Synchronous DRAM, DDR SDRAM и SLDRAM, видеопамять MDRAM, VRAM, WRAM и SGRAM, RDRAM.
В памяти динамического типа биты представляются в виде отсутствия и наличия заряда на конденсаторе в структуре полупроводникового кристалла. Конструктивно она выполняется в виде модуля SIMM (Single in line memory module). Каждый бит информации записывается в отдельной ячейке памяти, состоящей из конденсатора и транзистора. Наличие заряда на конденсаторе соответствует 1 в двоичном коде, отсутствие — 0. Транзистор при переключении дает возможность считывать бит информации или записывать новый бит в пустую ячейку памяти.
Поиск ячейки по адресу осуществляется специальными дешифрующими схемами, которые образуют матрицу, то есть пересекают кристалл памяти двумя полосами — по горизонтали и вертикали. Когда центральный процессор сообщает адрес ячейки, горизонтальные дешифраторы указывают нужный столбец, а вертикальные — строку. На пересечении находится искомая ячейка. После нахождения ячейки происходит выборка их нее байта данных.

Буферная память

В вычислительных системах используются подсистемы с различным быстродействием, и, в частности, с различной скоростью передачи данных (рис. 4.13). Обычно обмен данными между такими подсистемами реализуется с использованием прерываний или канала прямого доступа к памяти. В первую очередь подсистема 1 формирует запрос на обслуживание по мере готовности данных к обмену. Однако обслуживание прерываний связано с непроизводительными потерями времени и при пакетном обмене производительность подсистемы 2 заметно уменьшается. При обмене данными с использованием канала прямого доступа к памяти подсистема 1 передает данные в память подсистемы 2. Данный способ обмена достаточно эффективен с точки зрения быстродействия, но для его реализации необходим довольно сложный контроллер прямого доступа к памяти.



Организация кэш-памяти

Мы уже не раз отмечали, что оперативная память вычислительных систем реализуется на относительно медленных микросхемах динамической памяти. Если процессор работает непосредственно с памятью такого типа, требуется вводить такты ожидания для процессора. В этом случае процессор частично простаивает. Статическая память, построенная на триггерах, имеет то же быстродействие, что и процессоры и использование такой памяти позволило бы работать процессору без тактов ожидания, но параметр цена/производительность диктует поиски другого выхода из этой ситуации. Разумным компромиссом для построения экономичных и производительных систем явился иерархический способ построения памяти. Обмен процессора с оперативной памятью производится при помощи промежуточной относительно небольшой кэш-памяти на быстродействующих микросхемах SRAM.
В переводе слово кэш (cache) означает склад или тайник. Для выполняемой программы он не представляет собой дополнительной адресуемой памяти. Он выполняет роль быстродействующего хранилища копий блоков информации основной памяти, к которым в ближайшее время ожидается обращение. Объем кэш во много раз меньше объема оперативной памяти. Контроллер кэш памяти ведет каталог и при каждом обращении к кэш памяти по каталогу проверяет, есть ли действительная копия затребованных данных в кэше? Если она там есть, то это случай кэш попадания (cache hit), и обращение за данными происходит только к кэш-памяти. Если действительной копии там нет, то это случай кэш-промаха (cache miss), и данные берутся из основной памяти.
Отношение числа попаданий к общему числу обращений к памяти называется коэффициентом эффективности поиска. Если этот коэффициент достаточно высок, большая часть времени затрачивается на обращение к кэш-памяти, что эквивалентно использованию быстродействующей основной памяти при выполнении программы. Обычно коэффициент эффективности поиска превышает 95%.
Обращение к основной памяти может начинаться одновременно с поиском данных в каталоге кэш, и в случае попадания — прерывается (архитектура Look Aside). При параллельном поиске из — за параллельного обращении к оперативной памяти возрастают затраты энергии.
В другом варианте обращение к внешней памяти начинается только после фиксации случая промаха (архитектура Look Through), на этом теряется, по крайней мере, один такт процессора, зато значительно экономится энергия.
В современных процессорах кэш обычно строится по двухуровневой схеме. Первичный кэш (L1 Cache) имеет сравнительно небольшой объем и для повышения производительности обычно используется раздельный кэш для данных и команд (так называемая Гарвардская архитектура — противоположность Принстонской, использующей общий кэш для команд и данных). Вторичный кэш (L2 Cache) тоже включается в микросхему микропроцессора, но не разделяется на кэш команд и данных. Работает встроенный кэш на внутренней тактовой частоте процессора.

cyberpedia.su