ВУЗ:
Составители:
97
граммирования, - различие между переменными, представляющими данные и
управление. Например, пусть в поведенческом описании присутствует опре-
деление операции суммирования содержимого шестнадцати регистров
А[1]...А[16]. В соответствии с традиционными приемами программирования,
такую операцию удобно представить в виде цикла:
for i := 1 to 16 do begin
read A[i];
sum := sum + A[i];
end
write sum;
В данном цикле переменные А[1]...А[16] и sum представляют данные.
Этим переменным в реальной микросхеме будут соответствовать конкретные
структурные единицы, в данном случае - регистры.
В противоположность им, переменная i используется только для управ-
ления, чтобы показать, над каким регистром из массива производятся дейст-
вия оператором присвоения.
Формально различие между переменными управления и данных состоит
в том, что значения переменных управления на каждом шаге программы не
зависят от вводимой информации. Остальные переменные являются перемен-
ными данных.
В принципе, переменные управления также можно реализовать в виде
соответствующих регистров. Но такая реализация схемы, естественно, будет
неоптимальной, поскольку требует размещения на кристалле дополнительных
структурных единиц для переменных управления и, кроме того, дополнитель-
ного времени на выполнение операций, связанных с записью и считыванием
информации этих регистров. Способ, который приводит к разработке более
быстродействующих и, по возможности, более компактных микросхем, состо-
ит в том, что компилятор должен автоматически учитывать все возможные
аспекты управления в программе, оставляя интегральной схеме только опера-
ции над переменными данных.
Первая возможность связана с расширением компилятором вызова про-
цедур. Вызов процедуры (подпрограммы) занимает определенное время, так
как микропроцессор должен сохранить содержимое регистров и другую ин-
формацию во временном стеке и восстановить их после возврата из процеду-
ры. Реализация без вызова процедур потребует значительного увеличения
объема программы в промежуточном коде, поскольку вместо кода вызова
подпрограммы дублируется тело подпрограммы. Но конечной целью проекти-
рования является не промежуточный код, а интегральная схема. А при реали-
зации промежуточного кода без вызова подпрограмм в виде ИС экономится
Страницы
- « первая
- ‹ предыдущая
- …
- 93
- 94
- 95
- 96
- 97
- …
- следующая ›
- последняя »