Читать «Перелом. Часть 3» онлайн - страница 78

Сергей Владимирович Суханов

Тут-то я и подсунул им идею управляющей ЭВМ, и даже выделил одну машину для экспериментов - она была из первых восьмибитных экземпляров и уже была старовата для выполнения расчетов (а ведь ей весной сорок третьего было всего полгода !), но для экспериментов ее пятьсот операций пересылки, сложения-вычитания и условных переходов в секунду должно было хватить - все-таки процессы сравнительно медленные, мы оценивали потребности в управляющих сигналах как десять проверок датчиков и десять пересылок данных в минуту на один аппарат. И это максимум.

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

- Ну да - подпрогаммы.

- Ну да - подпрогаммы ... А точно ! Отличное название !!! А ведь на них можно генерировать и графики изменения сигналов, и тогда операционные усилители вообще не понадобятся ! Только машину бы надо помощнее ...

- Посмотрим. Вы сначала эту освойте. - слова лаборантов были для меня истинным елеем, но и размякать я не собирался, а то расслабишься, надаешь вырванных обещаний - потом ведь придется выполнять. Ставить более мощные машины, конечно, все-равно будем, но уже под соусом заботы руководства. Политика.

Да, "устаревшая" восьмибитная машина уже довольно сильно отстала от последующих поколений - они у нас появлялись каждый квартал - как по расписанию. Причем мы пока законсервировали систему команд центрального процессора - RISC на тридцать команд - а и хватит - сложение-вычитание, умножение-деление, битовые и-или-исключающее или-не, сдвиги вправо-влево, загрузка-выгрузка пользовательских регистров (РОН) - их было 16 штук, и системных - этих было также 16 - для симметрии, но пока использовалось только три - счетчик команд, указатель стека и регистр признаков - там пока использовался только младший бит - он и больше-меньше, он и переполнение - потом будем все разносить, ну в последних версиях появился регистр маски прерываний. И еще команды управления - безусловные и условные переходы - прямые или через регистр. Вызов подпрограмм и возврат был реализован программно, несколькими командами - сохранить нужные пользовательские регистры (нужность решалась по разному - программистом в вызывающей программе либо в вызываемой подпрограмме), счетчик команд, и выполнить безусловный переход - по прямому адресу, если процедура находилась в самой программе, или через регистр, если в общей библиотеке, а возврат - восстановить регистры и счетчик команд - все сохранения - с изменением указателя стека - такого же системного регистра - отдельными командами - то есть программисту надо было очень внимательно считать - на сколько его изменять - отдельных команд сохранения в стек и вытаскивания из него, как например в х86 с его push/pop, не было. Но это позволяло не дергать лишний раз сумматор - нарастить регистр один раз на все сохранения - и все. Подобными способами мы экономили транзисторы на схему управления.