Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Переупорядочивание команд

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

В основе переупорядочивания команд лежит использование окна команд, т.е. буферной памяти, куда помещаются все команды, прошедшие декодирование. Окно команд обеспечивает отсрочку передачи команд на исполнение до момента готовности операндов, а также нужную очередность завершения команд и загрузки их результатов в регистры АРФ. Окно команд может быть двух видов: централизованное и распределенное.

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

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

1. поля операции, в которое записан дешифрированный код операции;

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

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

4. поля битов достоверности (ЗD);

5. поля доступности функциональных блоков.

Табло работает совместно с буфером переименования (БУП). Каждая команда программы после декодирования и переименования регистров записывается в свободную ячейку табло. Дешифрированный код операции команды помещается в поле операции. Если результат выполнения команды должен быть записан в регистр, то в поле результата табло записывается номер ячейки БУП, в которой находится последняя ссылка на данный регистр. После этого заполняются остальные поля табло. Процессор производит поиск операндов сначала в аппаратном регистровом файле (АРФ). Если бит достоверности (ЗD) регистра операнда в АРФ установлен в 0, то это значит, что операнда нет в АРФ, и его следует искать в БУП. Для нахождения операнда в БУП, выполняется операции ассоциативного поиска ячейки БУП, которая в поле RGr содержит номер искомого логического регистра. Если такая ячейка найдена в БУП, то проверяются значения битов достоверности ЗD и последнего переименования ПП. При единичном значении этих битов, т.е. при ЗD=ПП=1, требуемое значение операнда выбирается из буфера переименования БУП и записывается в поле операнда табло. Поле достоверности ЗD, соответствующее найденному операнду в табло при этом устанавливается в единицу.

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

Команда выбирается из табло и передается на исполнение после того, как будут заполнены поля операндов команды в табло, а необходимый для исполнения команды функциональный блок ФБ свободен. После того, как команда выполнена в ФБ, ее результат записывается в ту ячейку БУП, на которую указывает поле результата табло. Одновременно, полученный результат записывается в поле операнда тех команд табло, которые в поле операнда содержат ссылку на ячейку БУП, в которую только что был записан результат выполнения команды. При записи полученного результата в табло значение бита достоверности ЗD, соответствующего записанному результату, устанавливается в единицу. После этого выполненная команда удаляется из табло, уступая место новой команде программы. Удаление команды из табло является основанием для перезаписи полученного результата из БУП в регистр АРФ, после чего соответствующая запись удаляется из БУП.

 

 

<== предыдущая лекция | следующая лекция ==>
Переименование регистров | Сегментация памяти и вычисление адресов
Поделиться с друзьями:


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


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



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




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