Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник_Вс.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
13 Мб
Скачать
☆

7.8.Исполнение команд

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

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

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

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

Метод резервирующей станции был разработан Р.Л.Томасуло в 1967 году и впервые воплощён в вычислительный модульной системе IBM 360/95. После выборки и декодирования команды распределяются по схемам резервирования тех функциональных блоков, где команда будет исполняться. В резервирующей станции команда запоминается и по готовности выдается в соответствующий данному пункту функциональный блок. Выдача происходит только, если команда получила все необходимые операнды, и функциональный блок свободен. Иногда резервирующая станция содержит не сами операнды, а указатели на них в регистровом файле или в переупорядочивающем буфере. Отметим одну особенность рассматриваемой схемы: не требуется, чтобы операнд был обязательно занесен в отведенный для него регистр – он может быть ускоренно передан прямо в резервирующую станцию для немедленного использования или сохранён там для последующего использования.

Рисунок 2.1.1. Процесс функционирования процессора с внеочередным исполнением команд

Эффективность применения внеочередного исполнения команд [18] демонстрирует таблица 2.1.1, в которой приведены значения производительности для микропроцессоров без изменения порядка исполнения команд и с внеочередным исполнением команд, имеющих одинаковое количество функциональных устройств. Процесс функционирования процессора с внеочередным исполнением команд иллюстрирует рисунок 2.1.1.

Таблица 2.1.1

Микропроцессор

SPECint

Ускорение

Mips R5000/180

Mips R10000/180

4,82

8,59

1,78

Pentium/200

Pentium Pro/200

5,47

8,09

1,48

Alpha 21164/600

Alpha 21264/575

19,3

30,3

1,57

2.1.6. Работа с памятью

Часто при применении ВМ случается ситуация, когда вся программа не помещается в оперативной памяти целиком из-за своего большого размера. Но без этого можно обойтись, так как в каждый момент времени «внимание» машины концентрируется на определенных сравнительно небольших участках программы. Таким образом, нужно хранить только используемые в данный момент времени части программ, а остальные части могут быть во внешней памяти. Сложность такого варианта решения проблемы в том, что процессы обращения к оперативной памяти и запоминающих устройствах существенно различаются, и это затрудняет программирование. Решением этой проблемы было появление в 1959 году идеи виртуализации памяти, под которой понимается метод автоматического управления иерархической памятью, при котором программист представляет, что он имеет дело с единой памятью большого размера и высокого быстродействия (виртуальной памятью).

Если используется виртуализация памяти оперативная память выглядит как линейное пространство К адресов. Для задач, которым не хватает такого размера памяти, выделяется большее пространство адресов (виртуальное пространство). При написании программы используют виртуальные адреса, но при выполнении необходимо, чтобы текущие команды и операнды были в оперативной памяти, т. е. нужно соответствие между виртуальными и физическими адресами. Для этого при выполнении программы необходимая информация, на которую ссылается виртуальный адрес, из внешней памяти переписывается в оперативную, а потом её адрес заменяется на физический. Этими операциями занимается операционная система, которая заменяет номера виртуальных страниц на номера физических страниц, находящихся в основной памяти. Трансляция адресов происходит с помощью таблицы страниц, в которой число записей соответствует количеству виртуальных страниц. От способа реализации страничной таблицы зависит эффективность техники виртуальной адресации, потому что при каждом обращении к памяти необходимо прочитать информацию из таблицы страниц. Самый быстрый способ – хранение в специальных регистрах, но если объем таблицы большой, то практически можно использовать только один вариант – хранение таблицы в основной памяти, хотя время доступа к такой информации в два раза больше. Чтобы уменьшить время доступа, можно использовать дополнительное устройство в составе ВМ – буфер быстрого преобразования адреса, которое представляет собой кэш память.

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

Номер виртуальной страницы

V

R

M

A

Номер физической страницы

Память тегов Память данных

Рисунок 2.1.2. Структура буфера быстрого преобразования адресов

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

Каждая запись содержит четыре признака:

  1. Признак присутствия V равен единице, если виртуальная страница в данный момент загружена в основную память. И в памяти данных находится соответствующий номер физической страницы. Если V=0, то преобразователь адреса генерирует сигнал страничного сбоя, и операционная система выполняет загрузку страницы с диска в оперативную память.

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

3) Признак модификации страниц М служит для определения идентичности страниц, находящихся в ОП и на диске. При удалении страницы из ОП проверяется равенство M=1 (страница изменена), тогда страницу перед удалением обязательно нужно переписать на диск.

4) Признак прав доступа А необходим для защиты информации. Он определяет вид доступа к странице: только для чтения (R), только для записи (W), для чтения и для записи (RW).

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