ЗНАЕТЕ ЛИ ВЫ?

Где может размещаться блок в кэш-памяти?



Принципы размещения блоков в кэш-памяти определяют три основных типа их организации.

1) Если каждый блок основной памяти имеет только одно фиксированное место, на котором он может появиться в кэш-памяти, то такая кэш-память называется кэшем с прямым отображением. Это наиболее простая организация кэш-памяти, при которой для отображения адресов блоков основной памяти на адреса кэш-памяти просто используются младшие разряды адреса блока.

2) Если некоторый блок основной памяти может располагаться на любом месте кэш-памяти, то кэш называется полностью ассоциативным.

3) Если некоторый блок основной памяти может располагаться на ограниченном множестве мест в кэш-памяти, то кэш называется множественно-ассоциативным.

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

Как найти блок, находящийся в кэш-памяти?

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

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

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

Какой блок кэш-памяти должен быть замещен при промахе?

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

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

Во втором случае, чтобы уменьшить вероятность выбрасывания информации, которая скоро может потребоваться, все обращения к блокам фиксируются. Заменяется тот блок, который не использовался дольше всех (LRU – Least-Recently Used).

Что происходит во время записи?

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

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

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

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

1) Сквозная запись – информация записывается в два места: в блок кэш-памяти и в блок более низкого уровня памяти;

2) Запись с обратным копированием – информация записывается только в блок кэш-памяти. Модифицированный блок кэш-памяти записывается в основную память, только когда он замещается. Для сокращения частоты копирования блоков при замещении обычно с каждым блоком кэш-памяти связывается так называемый бит модификации. Этот бит состояния показывает, был ли модифицирован блок, находящийся в кэш-памяти. Если он не модифицировался, то обратное копирование отменяется, поскольку более низкий уровень содержит ту же самую информацию, что и кэш-память.

Оба подхода к организации записи имеют свои преимущества и недостатки.

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

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

При промахе во время записи имеются две дополнительные возможности:

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

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

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

Пути увеличения производительности кэш-памяти

Видны из формулы для среднего времени доступа к памяти:

Среднее время доступа = Время обращения при попадании + Доля промахов x Потери при промахе

 

Набор параметров, который используется для описания кэш-памяти

1. Размер блока (строки) 4-128 байт.

2.Время попадания (hit time) 1-4 такта синхронизации.

3.Потери при промахе 8-32 такта синхронизации.

(Время доступа - access time) (6-10 тактов синхронизации).

(Время пересылки - (2-22 такта синхронизации).

4.Доля промахов (miss rate) 1%-20%.

5.Размер кэш-памяти 4 Кбайт - 16 Мбайт.

Принципы организации основной памяти

Общие положения

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

Задержка памяти традиционно оценивается двумя параметрами: временем доступа (access time) и длительностью цикла памяти (cycle time).

Время доступа представляет собой промежуток времени между выдачей запроса на чтение и моментом поступления запрошенного слова из памяти.

Длительность цикла памяти определяется минимальным временем между двумя обращениями к памяти.

Полупроводниковая оперативная память в настоящее время делится на статическое ОЗУ (SRAM) и динамическое ОЗУ (DRAM). (Random Access Memory – запоминающее устройство с произвольной выборкой).

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

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

Память, основанная на триггерах, называется статической (SRAM).

Принцип устройства DRAM следующий: система металл-диэлектрик-полупроводник способна работать как конденсатор, т.е. способна некоторое время держать на себе электрический заряд. Обозначив заряженное состояние как 1 и незаряженное как 0, получим ячейку памяти емкостью 1 бит. Поскольку заряд на конденсаторе рассеивается через некоторый промежуток времени, то его необходимо периодически подзаряжать (регенерировать), считывая и вновь записывая в него данные. Из-за этого и возникло понятие «динамическая» для этого вида памяти.

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

Развитие оперативной памяти

Динамическое ОЗУ со времени своего появления прошло несколько стадий роста. Вначале микросхемы динамического ОЗУ производились в DIP-корпусах. Затем их сменили модули, состоящие из нескольких микросхем: SIPP, SIMM и, наконец, DIMM и RIMM. Рассмотрим эти разновидности поподробнее.

1) DIP- корпус – это самая древняя реализация DRAM. Обычно это маленький черный корпус из пластмассы, по обеим сторонам которого располагаются металлические контакты.

Микросхемы (по-другому, чипы) динамического ОЗУ устанавливались так называемыми банками. Банки бывают на 64, 256 Кбайт, 1 и 4 Мбайт. Каждый банк состоит из девяти отдельных одинаковых чипов. Из них восемь чипов предназначены для хранения информации, а девятый чип служит для проверки четности остальных восьми микросхем этого банка. Чипы памяти имели емкость 64 Кбит, 256 Кбит, 1 и 4 Мбит.

Памятью с DIP-корпусами комплектовались персональные компьютеры с микропроцессорами i8086/88, i80286 и, частично, i80386SX/DX. Установка и замена этого вида памяти была сложной задачей. Поэтому уже в компьютерах с процессором i80386DX эти микросхемы стали заменять памяти SIPP и SIMM.

2) SIPP-модули представляют собой маленькие платы с несколькими напаянными микросхемами DRAM.

SIPP является сокращением слов Single Inline Package. SIPP-модули соединяются с системной платой с помощью 30 контактных штырьков, которые вставляются в соответствующую панель системной платы. Модули SIPP имели определенные вырезы, которые не позволяли вставить их в разъемы неправильным образом.

3) SIMM-модули.

SIMM расшифровывается как Single Inline Memory Module (Модуль памяти с однорядным расположением выводов.) Модули SIMM могут иметь объем 256 Кбайт, 1, 2, 4, 8, 16 и 32 Мбайт. Соединение SIMM-модулей с системной платой осуществляется с помощью колодок. Модуль вставляется в пластмассовую колодку под углом 70 градусов, а потом зажимается пластмассовым держателем. При этом плата встает вертикально. Специальные вырезы на модуле памяти не позволяют поставить их неправильным образом.

Модули SIMM для соединения с системной платой имеют позолоченные полоски (пины).

SIMM-модули в своем развитии прошли два этапа. Первыми представителями SIMM-модулей были 30-пиновые SIMM. Их максимальная частота работы – 29 МГц. Стандартным же временем доступа к памяти считалось 70 нс. Эти модули уже с трудом работали на компьютерах с микропроцессорами i80486DX2, и были вытеснены сначала 72-пиновыми FPM (Fast Page Mode) DRAM, а затем EDO (Extended Data Output) RAM.

SIMM EDO RAM имеют только 72 пина и могут работать на частоте до 50 МГц. Этими модулями памяти оснащались компьютеры с процессорами Intel 80486DX2/DX4, Intel Pentium, Pentium Pro и Pentium MMX, а также AMD 80586 и K5.

Несмотря на небольшие конструктивные различия, и FPM, и EDO RAM делаются по одной и той же технологии, поэтому скорость работы должна быть одна и та же. Однако в EDO RAM применен метод считывании последовательных ячеек. При обращении к EDO RAM активизируется не только первая, но и последующие ячейки в цепочке. Поэтому, имея то же время при обращении к одной ячейке, EDO RAM обращается к следующим ячейкам в цепочке значительно быстрее. Поскольку обращение к последовательно следующим друг за другом областям памяти происходит чаще, чем к ее различным участкам (если отсутствует фрагментация памяти), то выигрыш в суммарной скорости обращения к памяти значителен. Однако даже для EDO RAM существует предел частоты, на которой она может работать (66 МГц). С появлением Intel Pentium II частота локальной шины возросла до 100 МГц, что заставило производителей динамического ОЗУ перейти на другие технологии, прежде всего DIMM SDRAM.

4) SDRAM.

Аббревиатура SDRAM расшифровывается как Synchronic DRAM (динамическое ОЗУ с синхронным интерфейсом). Этим они отличаются от FPM и EDO DRAM, работающих по асинхронному интерфейсу.

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

В настоящее время выпускаются модули SDRAM, работающие на частотах 100 и 133 МГц. Также разработаны SDRAM на частоты 143 МГц и выше.

DIMM

Аббревиатура DIMM расшифровывается как Dual Inline Memory Module (Модуль памяти с двойным расположением выводов). В модуле DIMM имеется 168 контактов, которые расположены с двух сторон платы и разделены изолятором. Также изменились и разъемы для DIMM-модулей.

В настоящее время выпускаются модули DIMM, работающие на частотах 100 и 133 МГц.

5) ESDRAM

Следующим оригинальным решением, увеличившим частоту работы SDRAM, явилось создание кэша SRAM на самом модуле динамического ОЗУ. Так появилась спецификация Enhanced (расширенная) SDRAM.

Это позволило поднять частоту работы модуля до 200 МГц. Назначение кэша на модуле хранить наиболее часто используемых данных.

6) Память от Rambus (RDRAM, RIMM)

RDRAM представляет собой спецификацию, созданную и запатентованную фирмой Rambus, Inc. Достигается частота работы памяти в 800 МГц.

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

7) DDR SDRAM, SDRAM II (Double Data Rate SDRAM, SDRAM с удвоенной скоростью передачи данных)

Дальнее развитие синхронной памяти привело к появлению DDR-SDRAM – Double Data Rate SDRAM (SDRAM удвоенной скорости передачи данных). Удвоение скорости достигается за счет передачи данных и по фронту, и по спаду тактового импульса (в SDRAM передача данных осуществляется только по фронту). Благодаря этому эффективная частота увеличивается в два раза – 100 MHz DDR-SDRAM по своей производительности эквивалента 200 MHz SDRAM. В настоящее время разработаны спецификации оперативной памяти DDR-II и DDR-III, которые отличаются от своего предшественника более высокими характеристиками производительности.





Последнее изменение этой страницы: 2016-06-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.219.31.204 (0.009 с.)