Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Системы адресации кэш-памяти

Назначение и общая схема подключения кэш-памяти

Упрощенная схема виртуальной памяти на основе таблицы физических страниц

Виртуальная память на основе таблицы математических страниц

Схема построения виртуальной памяти на основе таблицы математических страниц представлена на рис. 8.3. Это один из первых вариантов виртуальной памяти. Она была использована в ЭВМ "Атлас" (Англия).

На рис. 8.3. использованы обозначения:

ОП – страничная оперативная память, разбитая на страницы от 0 до m.

МП А – программа А, разбитая на страницы.

МП В – программа В, разбитая на страницы,

НМД – дисковая память, поддерживающая страничную структуру данных.

Изначально, программы А и В хранятся на магнитных дисках. При активизации этих программ, часть страниц по мере выполнения программы, переписывается в оперативную память.

Размещение страниц программ фиксируется в таблице математических страниц. На рис. 8.3 нулевая и вторая страницы программы А размещены, соответственно, в нулевой и первой странице оперативной памяти, а нулевая и первая страница программы В, соответственно в 3 и 2 странице.

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

Процедура переадресации программ производится следующим образом.

При обращении к памяти номер математической страницы из регистра математического адреса (Рег.МА) поступает в таблицу математических страниц. Таблица математических страниц строится на основе ассоциативной памяти. Входной адрес (из Рег.МА) параллельно сравнивается с содержимым всех строчек. Для представленного на рис. 8.3 примера совпадение фиксируется для первой и третий строчки, т.е. для всех совпадающих значений входного и записанных номеров.

Одновременно со сравнением номеров производится сравнение бита доступности (d). Выбирается строка с d=0.

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

Адрес обращения формируется на регистре физического адреса (Рег. ФА на рис. 8.3.) контрактацией номера страницы с номером байта в странице.

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

Страничный промах является стартовым сигналом свопинга с использованием прерывания (прерывания по страничному промаху).

Процедура свопинга

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

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

Таким образом, во время свопинга процессор не простаивает, а вычисляет адрес страницы-кандидата на удаление из оперативной памяти.

Рассмотренная система виртуальной памяти является полной. Она выполняет функции переадресации (реализует независимость подготовки программ) и свопинга (организации памяти единого уровня).

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

Преимуществом этой системы виртуальной памяти является малый размер таблицы.

Вопросы для самопроверки:

1. Содержимое страниц таблицы математических страниц.

2. Бит доступности.

3. Тип адресации таблиц математических страниц.

4. Бит доступности в таблицах математических страниц.

5. Определение номера физической страницы.

6. Определение страничного промаха.

7. Процедура свопинга.

8. Положительные и отрицательные стороны организации виртуальной памяти на основе таблицы математических страниц.

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

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

Таблицы физических страниц составляются для каждой задачи. В каждой строке таблицы физических страниц содержится номер страницы физической памяти (оперативной памяти или на магнитных дисках). Страницы, расположенные в оперативной памяти, отмечаются признаком доступности d = 0, а расположенные на магнитных дисках – d = 1.

Для привязки таблиц к задачам используется регистр базового адреса таблицы физических страниц (БА ТФС), индивидуальный для каждой задачи.

Процедура трансляции страниц имеет следующие этапы:

1. Вычисление адреса обращения к строке таблицы сложением номера страницы математического адреса с базовым адресом таблицы физических таблиц (БА ТФС).

2. Чтение по вычисленному адресу из таблицы физических страниц значения адреса физической памяти и бита доступности (d=0).

3. В случае доступности данных (d=0) – обращение по физическому адресу с учетом номера байта внутри страницы данных для записи или чтения в зависимости от кода операции.

4. В случае страничного промаха (d=1) – свопинг данных, коррекция таблицы и повтор обращения к данным.

Вопросы для самопроверки:

1. Назначение признака доступности.

2. Назначение регистра БА ТФС.

3. Этапы процедуры трансляции страниц.

4. Основные недостатки схемы.

 

Глава 9. Организация кэш-памяти

 

 

Кэш-память – это промежуточная память между оперативной памятью и процессором.

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

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

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

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

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

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

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

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

Память, представленная на рис.9.2 является однобитовой. Память для полноразрядных данных реализуется параллельной работой системы из множества однобитовых.

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

Рассмотрим схему оперативной памяти, например, емкостью в 1Мбайт. Для задания адреса байта в такой, относительно небольшой, памяти требуется 20 разрядов. Для уменьшения оборудования адресных схем запоминающие элементы памяти располагают в виде восьми равносторонних матриц (1024 строки по 1024 бита). В соответствии с этим распределением адрес конкретной ячейкив разрядных матрицах определяется пересечением соответствующих строки и столбца.

Выбор строки и столбца производится двумя дешифраторами: строки и столбца (см. рис. 9.2).

Входами дешифраторов являются, соответственно, адресные шины строки и столбца. Каждый дешифратор имеет 10 входных адресных шин и 1024 выходные шины.

Полезный сигнал формируется только на одной "выбранной шине". На остальных шинах (не выбранных) входные токи выходных шин шунтируются диодами при несовпадении разрядов адресов (поданного и "прошитых" в дешифраторе). Таким образом, ток чтения "выбранных строк" уменьшается по отношению к входному на все строки в 102 раза, и этот ток должен создать "канал" чтения (заряд на затворе МПД транзисторов) для транзисторов всей строки матрицы (1024 транзистора). Затвор МДП-транзистора является емкостной нагрузкой, и время заряда затвора обратно пропорционально току заряда.

Эта задержка в адресных цепях является основной задержкой при использовании любой памяти.

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

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

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

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

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

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

Но это еще не кэш-память, а просто выборка данных с упреждением.

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

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

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

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

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

Схема использования многоблочной оперативной памяти с расслоением адресов и использования дополнительной (промежуточной) кэш-памяти представлена на рис. 9.4.

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

Взаимодействие устройств, представленных на рис. 9.4, следующее.

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

 

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

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

Альтернативой многоблочной памяти с расслоением (рис.9.4) является одноблочная память с внутренним регистром на статических триггерах на строку (или несколько строк) кэш-памяти. Схема матрицы однобитовой динамической памяти с внутренним регистром строки кэш-памяти представлена на рис.9.5.

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

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

Дополнительной проблемой для кэш-памяти остается задержка первого чтения строки данных из оперативной памяти. Но и эта проблема в современных ЭВМ решается разделением команд на команды действия и команды обращения к памяти.

Команды действия – это команды типа регистр/регистр, без обращения к оперативной памяти.

Команды обращения к памяти – это команды только обращения к оперативной памяти по чтению или записи (загрузки данных в РОН или сохранения данных в ячейке памяти).

Проблема задержек при первом обращении к памяти может решатьсявынесением команд загрузки данных вперед на несколько команд до их исполнения.

 

Вопросы для самопроверки:

1. Цель использования кэш-памяти.

2. Особенности схемы ячейки динамической памяти.

3. Природа основных задержек при обращении к оперативной памяти.

4. Механизм считывания информации из ячейки динамической памяти.

5. Простейший механизм согласования плотности информационных потоков памяти и процессора.

6. Взаимодействие устройств: процессор – оперативная память – кэш-память.

7. Взаимодействие устройств в системе: процессор, кэш-память, оперативная память.

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

 

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

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

В настоящее время широко известны три схемы адресации, удовлетворяющие этому требованию. Это системы адресации на основе:

· аппаратной ассоциативной выборки,

· адресации с прямым отображением адресов,

· множественно-ассоциативной выборки.

Рассмотрим эти схемы применительно к процессору с параметрами МП intel 486:

· ширина обработки данных – 4 байта,

· размер адресного пространства – 4 Гбайта,

· размер строки кэш-памяти – 128 байт,

· размер адресного пространства кэш-памяти – 8 Кбайт.

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

Последнее требование упрощает схему, но не соответствует большинству реальных схем. В МП Intel 486 это требование не соблюдается и адреса данных по интерфейсу передаются с использованием 34х бит. 30 бит определяют адрес двойного слова, 4 бита (сигналы #BE0, #BE1, # BE2и #BE3 ) используются для индивидуального указания позиций передаваемых байтов (см. 7. 5.1. Особенности локального интерфейса i486).

<== предыдущая лекция | следующая лекция ==>
Страничная организация памяти | Организация кэш-памяти на основе ассоциативной выборки. Упрощенная функциональная схема кэш-памяти на основе аппаратной ассоциативной выборки информации представлена на рис
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 1074; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.