Проектирование специализированных СБИС. Рындин Е.А. - 96 стр.

UptoLike

Составители: 

98
время и, кроме того, площадь, поскольку можно использовать меньше регист-
ров и вентильных управляющих устройств.
Вторая возможность повышения производительности проектируемой
СБИС связана с раскрытием (разворачиванием) циклов. В приведенном выше
примере фрагмента описания схемы присутствует цикл, которому соответст-
вует следующая последовательность операций:
i := 1; read A[i]; sum := sum + A[i]; i := 2; read A[i]; sum := sum + A[i];...
i := 16; read A[i]; sum := sum + A[i]; write sum;
Таким образом, данный цикл предполагает выполнение 65 операций: 16
операций чтения, 16 - сложения, 32 - присваивания и 1 - записи.
Цикл может быть раскрыт, то есть записан в виде простой последова-
тельности операций. При этом переменную управления i можно исключить,
так как выполняемая ею фу нкция в раскрытом цикле теряет смысл. Кроме
того, известно, что значение переменной sum на первом шаге равно нулю. Это
позволяет исключть первый оператор сложения. Таким образом, раскрывая
цикл, получим последовательность, состоящую из 48 операций вместо 65 (16
операций чтения, 15 - сложения, 16 - присваивания и 1 - записи).
read A[1]; sum := A[1]; read A[2]; sum := sum + A[2];...
read A[16]; sum := sum + A[16]; write sum;
Конечно, описанные возможности компилятор должен автоматически
реализовывать в промежуточном коде. Описание на высоком уровне должно
сохранять стиль традиционного программирования, дающий необходимую
лаконичность и наглядность.
Существует три способа обнаружения переменных управления кремние-
вым компилятором:
1) исходный язык может требовать объявления переменных управления как
таковых;
2) можно использовать анализ потока данных для обнару жения переменных,
значения которых никогда не зависят, хотя бы и ко свенно, от введенных
значений переменных;
3) можно осуществить символическое выполнение программы. При этом все
вводимые значения переменных становятсянеопределенными”. Тогда при
выполнении программы значения всех переменных, которые получены как
результат операций над введенныминеопределеннымизначениями, так-
же будутнеопределенными”. Очевидно, что все переменные, имеющие
определенные значения, являются переменными управления и могут быть
соответствующим образом исключены из промежуточного кода и из инте-
гральной схемы.
Имеется также возможность дополнительно сократить время выполнения
развернутого цикла за счет введения дополнительных структурных единиц, то