Декодирование команд, переименование ресурсов и диспетчеризация — КиберПедия 

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Декодирование команд, переименование ресурсов и диспетчеризация

2017-06-02 1107
Декодирование команд, переименование ресурсов и диспетчеризация 0.00 из 5.00 0 оценок
Заказать работу

На этой фазе определяются существенные зависимости (RAW) по данным между командами и преодолеваются несущественные (WAW, WAR), произво­дится распределение команд по буферам команд функциональных устройств.

При декодировании команды создается одна или несколько упорядо­ченных троек, каждая из которых включает: 1) исполняемую операцию, 2) указатели на операнды, 3) указатель на место помещения результата.

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

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

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

Рассмотрим пример реализации данного способа переименования. Пусть требуется выполнить команду sub r3, г3, 5 (из значения регистра г3 вычесть константу 5 и поместить результат в регистр r3). Логические имена регистров начинаются со строчной буквы, а физические — с прописной. Пусть также в момент исполнения команды в таблице регистру r3 соответствует R1. Пер­вым регистром в списке свободных пусть является R2. Поэтому в поле ре­зультата команды sub r3, r3, 5 регистр r3 заменяется на R2. Исполнимая ко­манда приобретает вид sub R2, R1, 5. Любая следующая за sub команда, ис­пользующая ее результат, должна использовать в качестве операнда R2.

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

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

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

Значение логического регистра может быть размещено либо в физиче­ском регистре, либо в переупорядочивающем буфере. В момент декодиро­вания команды значению ее результата сопоставляется соответствующая результату позиция упорядоченной тройки команды в элементе переупо­рядочивающего буфера, в котором размещается рассматриваемая декоди­рованная команда, и делается отметка в таблице соответствия значений, которая указывает, что значение результата может быть найдено в соот­ветствующем элементе буфера. Поля источников и результата команды используются для доступа к полям таблицы. Таблица показывает, что со­ответствующий регистр содержит требуемую величину либо она может быть найдена в переупорядочивающем буфере. Когда переупорядочиваю­щий буфер полон, диспетчеризация команд приостанавливается.

Рассмотрим выполнение переименования на примере команды sub r3,r3,5. Пусть значение г3 находится или будет находиться в переупорядочивающем буфере в элементе 6. Регистр г3 как источник заменяется на соответствую­щее поле результата элемента 6 буфера. Команда sub помещается в конец переупорядочивающего буфера, например, в элемент 7. Этот номер затем записывается в таблицу для использования командами-потребителями ре­зультата. Следует заметить, что переупорядочивающий буфер фактически вводит потоковую модель вычислений по готовности операндов.

Независимо от способа переименования в суперскалярном процессоре устраняются лишние зависимости по данным.

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

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

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

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

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

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

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

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

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

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


Поделиться с друзьями:

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

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

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.