Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / doc92 / Белоглазов (2).doc
Скачиваний:
27
Добавлен:
03.08.2013
Размер:
261.63 Кб
Скачать

4. Разработка блока преобразования виртуальных адресов.

Структура ОП, а также формат виртуального адреса рассмотрены в разделе 3.4., поэтому перейдём к описанию общей последовательности действий при преобразовании виртуального адреса:

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

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

  3. Физический адрес начала страничной таблицы сегмента суммируется с номером страницы.

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

  5. Анализируется значение бита присутствия:

  • 1 — страница находится в ОП;

  • 0 — страница выгружена из ОП.

В случае, когда страницы нет в ОП и микрокомандой разрешены страничные прерывания, в контроллер прерываний подаётся запрос на страничное прерывание.

В результате выполнение активной задачи прерывается, управление передаётся операционной системе. Операционная система копирует запрошенную страницу с диска в ОП и возвращает управление прерванной задаче. При отсутствии свободного места в ОП, нужно удалить одну из страниц, уже имеющихся в ОП. Выбор удаляемой страницы возлагается на алгоритм замещения страниц. Наиболее популярным алгоритмом является алгоритм удаления наиболее давно использовавшихся страниц (Least Recently Used, LRU), но в данной реализации ОП в дескрипторе страницы не выделяется место под биты, необходимые для алгоритма LRU. В связи с этим, операционной системой может быть использован алгоритм случайного выбора заменяемой страницы. Так как количество страниц в памяти велико, то вероятность удачного выбора высока и этот алгоритм даёт хорошую эффективность [4]. Бит модификации указывает на то, была ли страница изменена во время хранения в ОП. Модифицированная страница перед удалением из ОП должна быть записана на диск.

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

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

Рис. 4.1. Схема преобразования виртуального адреса в физический

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

Рассмотрим особенности реализации блока:

  1. Установкой соответствующего биты микрокоманды осуществляется разрешение и блокировка работы блока преобразования адресов. При отключении блока процессор может обращаться к ОП по физическому адресу, что необходимо для первоначальной инициализации системы, построения таблиц векторов прерываний, сегментных и соответствующих им страничных таблиц, а также для адресации внешних запоминающих устройств, таких как: «винчестер», НГМД, оперативная память видеоадаптера.

  2. Преобразование адресов, замещение виртуальных, чтение и запись в кэш требуют значительного числа циклов процессора. Для этого в блок включено три регистра для хранения промежуточных значений: RG1, RG2 и RG3, которые могут быть использованы операционной системой на своё усмотрение. Но при проектировании им отводились следующие роли:

  • RG1 — хранение смещение в странице (младшие 12 разрядов адреса);

  • RG2 — хранение номер страницы (10 разрядов адреса);

  • RG3 — хранение первоначального значения виртуального адреса.

  • Кэш строится на 10-ти микросхемах SRAM информационной организацией 1Kx4, что позволяет хранить 1K слов разрядностью 40. В каждой слово входят:

    • тэг, в качестве которого используется номер сегмента, так как смена сегмента происходит относительно редко, поэтому можно рассчитывать на высокую эффективность КЭШа — 8 разрядов;

    • физический адрес начала страницы, это также сделано для повышения эффективности использования КЭШа и уменьшения числа его перезаписей, для получения физического адреса ячейки остаётся только прибавить смещение в 8 младших разрядов — 30 разрядов;

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

    Адресация КЭШа происходит номером страницы (10 разрядов). После чтения слова из КЭШа происходит сравнение полученного тэга с искомым (8 разрядов) и далее анализ бита достоверности. Результат анализа передаётся на селектор выбора условий в МУУ в качестве бита Cache hit / miss (попадание / промах — 0 / 1) для использования микропрограммой.

    1. Для управления КЭШем имеются сигналы WE# (разрешение записи) и RS# (стирание).

    Схема подключения буфера TLB и блока преобразования виртуальных адресов представлена на структурной схеме операционного блока (рис. 3.1.1.).

    На схеме блока используются следующие обозначения:

    • MK — бит микрокоманды;

    • P — бит присутствия;

    • D — бит достоверности;

    • Cache hit / miss — бит попадания / промаха КЭШа;

    • Тэг — номер сегмента;

    • CLK — системный синхросигнал.

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

    на рис. 4.2.

    На схеме используются следующие номиналы микросхем:

    • 74LCX32646 — 32-разрядный регистр;

    • CY7C150 — SRAM 1Kx4;

    • 74AC520 — 8-разрядный компаратор;

    • IDT74ALVC1G08 — логический элемент И;

    • IDT74ALVC1G32 — логический элемент ИЛИ;

    • IDT74ALVC1G04 — инвертор.

    Рис. 4.2. Функциональная схема блока преобразования виртуальных адресов

  • Соседние файлы в папке doc92