Формирование потока трехадресных команд
В ИУ АЛУ в основном выполняются двуместные операции. Для выполнения такой операции надо знать код операции, адреса двух операндов (как правило, — в СОЗУ) и адрес результата. Т.е. АЛУ в общем случае оперирует трехадресными командами вида .
Для эффективного использования многофункционального АЛУ надо в каждый момент иметь в рассмотрении большое число таких команд, чтобы на их основе производилась полная загрузка заданиями и параллельная работа всех ИУ.
Значит, надо иметь некоторый буфер команд АЛУ (рис. 3.7), в котором формируется и поддерживается в достаточном количестве множество команд данной структуры. Готовые к выполнению команды из этого буфера назначаются на ИУ. Буфер "снизу" пополняется устройством управления новыми командами взамен назначенных для выполнения.
Рис. 3.7. Обработка буфера команд АЛУ
В ЦП МВК "Эльбрус-2" для загрузки 10 ИУ разной специализации просматривается до 30 команд.
Такой буфер и есть "окно просмотра", через которое проходят исполнительные команды, сформированные на основе выполняемой программы, m — максимальное число команд в "окне просмотра". Буфер может заполняться УУ после базирования и индексации команд.
Выше говорилось, что стек максимально снижает число обращений к ОП. Кроме того, ПОЛИЗ - естественный и простой результат трансляции с любого алгоритмического языка. Однако выполнение операций на стеке заключается в последовательном преобразовании его вершины. Это, казалось бы, исключает параллелизм, но и на ПОЛИЗ он виден. Например, по приведенной выше записи можно выделить первые параллельные операции счета:
— две двуместные операции умножения и вычитания, которыми можно бы было загрузить два ИУ.
Значит, чтобы распараллелить выполнение программы на стеке, надо выполнить промежуточный перевод
— динамически, в процессе выполнения программы. Т.е. от безадресной системы необходимо перейти к системе программирования, использующей адреса. Тогда команды будут иметь вид тех процедур, о которых говорилось выше.
Для этого предполагается, что стек формируется не на основе данных, как выше, а на основе их адресов в СОЗУ, вне стека. Т.е. данные и промежуточные результаты располагаются в регистрах СОЗУ, а их адресами загружается стек; в стеке представлены не данные, а их адреса. Такой стек называется адресным стеком. Расположение же данных (включая промежуточные результаты) в СОЗУ планируется аппаратно, динамически так, чтобы оптимально использовать ограниченный объем СОЗУ (или предоставляемой его области) при достижении максимального параллелизма. Быстрые регистры СОЗУ являются распределяемым ресурсом.
Подобная общая схема работы АЛУ представлена на рис. 3.8.
Do'stlaringiz bilan baham: |