Задача распределения основных регистров

Ранее было показано, что традиционный под­ход к использованию A/S регистров не может удовлетворить компилятор для ВК ЭВМ. При таком подходе к основным ре­гистрам стремятся использовать их как память для сохранения промежуточных результатов вычислений или результатов об­щих подвыражений. При этом сокращается число «активных» A/S регистров, на которых можно производить собственно вы­числения. Для машин, обладающим одним последовательным функциональным устройством это оправдано, но для машин со многими параллельными конвейерными функциональными устройствами это будет приводить к неэффективному использо­ванию устройств, поскольку, сохраняя на регистре данные, мы не можем использовать его для вычислений.

Предполагая, что в процессе вычисления выражения необ­ходимое максимальное число объектов размещено на В/Т ре­гистрах, лучше при необходимости сохранять и считывать дан­ные на В/Т регистрах (имея при этом незначительные затраты, 1 такт), но использовать все A/S регистры для организации максимально распараллеленных вычислений.

Учитывая, что время выполнения, например, команды пла­вающего сложения 6 тактов, очевидно, что этот путь предпоч­тительнее.

Таким образом, A/S регистры мы рассматриваем, прежде всего, как активные сумматоры. Поэтому задачу распределения Л/5 регистров в общем виде формулируем следующим об­разом.

Выполнить распределение A/S регистров, обеспечивающее максимальное распараллеливание вычислительных команд в их потоке. Это, однако, потребует дальнейшего пояснения.

Метки: ,

Связанные записи