Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭВМ-шаблонответа.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
299.37 Кб
Скачать

Ассоциативная память

Элементы выбираются не по адресу2, а по содержимому. Поясним последнее понятие более подробно:

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

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

Особо отметим, что при таком запросе возможен один из трех результатов:

  1. имеется в точности одна строка с заданным тегом

  2. имеется несколько строк с заданным тегом

  3. нет ни одной строки с заданным тегом

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

При записи в ассоциативную память элемент данных помещается в СтрАП вместе с присущим этому элементу тегом. Для этого можно использовать любую свободную СтрАП.

  1. Каков типовой размер КЭШ строки и чем он определяется.

Типовой объем кэш-памяти в современной системе – 8…1024 кбайт, а длина кэш-строки 4…32 байт. Дальнейшая оценка делается для значений объема кэша 256 кбайт и длины строки 32 байт, что характерно для систем с процессорами Pentium и PentiumPro. Длина тега при этом равна 27 бит, а количество строк в кэше составит 256К/32=8192. Именно столько цифровых компараторов 27 битных кодов потребуется для реализации вышеописанной структуры. Приблизительная оценка затрат оборудования для построения цифрового компаратора дает значение 10 транз/бит, а общее количество транзисторов только в блоке компараторов будет равно 10278192= 2 211 840, что приблизительно в полтора раза меньше общего количества тарнзисторов на кристалле Pentium. Таким образом ясно, что описанная структура полностью ассоциативной кэш-памяти реализуема только при малом количестве строк в кэше, т.е. при малом объеме кэша (практически не более 32…64 строк). Кэш большего объема строят по другой структуре.

  1. Каковы основные недостатки программ с оверлейной структурой по сравнению с программами, работающими в системе с виртуальной памятью ?

Вначале стали использовать оверлейную структуру программ, когда большая программа разбивается на отдельные модули перекрытия (оверлеи overlays). Первый модуль загружается в память и работает. Если ему нужен код или данные, содержащиеся в других модулях, то работающий модуль вызывает функции, загружающие другие модули. При этом программист сам должен отследить: 1) вызов функций загрузки, 2) передачу управления вновь загруженным модулям, 3) контроль суммарного объема загруженных модулей (объем не должен превышать имеющегося объема памяти), 4) размещение модулей в памяти, и другие подобные вопросы. Эта работа оказывается весьма трудоемкой.

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

Как альтернатива оверлейной структуре, возникла концепция виртуальной памяти (1961 г, Манчестер). Фактически используется та же идеология перезагрузки модулей (свопинг swapping), однако замена осуществляется аппаратурой и операционной системой автоматически, без какого-либо участия программиста и незаметно для него.

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

  1. Как в архитектуре x86 в защищенном режиме формируется физический адрес?

Физический адрес — адрес, передаваемый на внешнюю шину для обращения к ячейкам памяти

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

  1. Что такое дескриптор сегмента (страницы) ?

Сегментные дескрипторы - дескрипторы, описывающие сегменты. Существует три основных типа сегмента:

  • Сегмент кода.

  • Сегмент данных.

  • Сегмент задачи.

Все дескрипторы имеют размер 8 байт и представляются следующим рисунком:

Файл:X86.seg.descriptors.png

Base

G

D/B

L

AVL

Limit

P

DPL

S

Type

Base

Base

Limit

  1. Какую информацию может содержать дескриптор сегмента (страницы) ?

  2. Где находится дескриптор сегмента (страницы) ? ?

  3. Откуда берется дескриптор сегмента (страницы) ? ?

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

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

*)*) Единица в старшем разряде HEX-представления изображена условно, чтобы показать значение знакового бита. Реально, например в 16-разрядной сетке старшаяHEX-цифра отрицательных чисел может быть от 8 до F.

2