Сергей Суханов - Перелом. Часть 3 [СИ]
- Название:Перелом. Часть 3 [СИ]
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:18
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Сергей Суханов - Перелом. Часть 3 [СИ] краткое содержание
Перелом. Часть 3 [СИ] - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Тут-то я и подсунул им идею управляющей ЭВМ, и даже выделил одну машину для экспериментов - она была из первых восьмибитных экземпляров и уже была старовата для выполнения расчетов (а ведь ей весной сорок третьего было всего полгода !), но для экспериментов ее пятьсот операций пересылки, сложения-вычитания и условных переходов в секунду должно было хватить - все-таки процессы сравнительно медленные, мы оценивали потребности в управляющих сигналах как десять проверок датчиков и десять пересылок данных в минуту на один аппарат. И это максимум.
- Зато - представляете ! - в управляющую последовательность можно будет легко вводить условные переходы, циклы по счетчику, даже выделять отдельные блоки !!! - это мне, программисту с чуть ли не тридцатилетним стажем, взахлеб рассказывали молодые лаборанты.
- Ну да - подпрогаммы.
- Ну да - подпрогаммы ... А точно ! Отличное название !!! А ведь на них можно генерировать и графики изменения сигналов, и тогда операционные усилители вообще не понадобятся ! Только машину бы надо помощнее ...
- Посмотрим. Вы сначала эту освойте. - слова лаборантов были для меня истинным елеем, но и размякать я не собирался, а то расслабишься, надаешь вырванных обещаний - потом ведь придется выполнять. Ставить более мощные машины, конечно, все-равно будем, но уже под соусом заботы руководства. Политика.
Да, "устаревшая" восьмибитная машина уже довольно сильно отстала от последующих поколений - они у нас появлялись каждый квартал - как по расписанию. Причем мы пока законсервировали систему команд центрального процессора - RISC на тридцать команд - а и хватит - сложение-вычитание, умножение-деление, битовые и-или-исключающее или-не, сдвиги вправо-влево, загрузка-выгрузка пользовательских регистров (РОН) - их было 16 штук, и системных - этих было также 16 - для симметрии, но пока использовалось только три - счетчик команд, указатель стека и регистр признаков - там пока использовался только младший бит - он и больше-меньше, он и переполнение - потом будем все разносить, ну в последних версиях появился регистр маски прерываний. И еще команды управления - безусловные и условные переходы - прямые или через регистр. Вызов подпрограмм и возврат был реализован программно, несколькими командами - сохранить нужные пользовательские регистры (нужность решалась по разному - программистом в вызывающей программе либо в вызываемой подпрограмме), счетчик команд, и выполнить безусловный переход - по прямому адресу, если процедура находилась в самой программе, или через регистр, если в общей библиотеке, а возврат - восстановить регистры и счетчик команд - все сохранения - с изменением указателя стека - такого же системного регистра - отдельными командами - то есть программисту надо было очень внимательно считать - на сколько его изменять - отдельных команд сохранения в стек и вытаскивания из него, как например в х86 с его push/pop, не было. Но это позволяло не дергать лишний раз сумматор - нарастить регистр один раз на все сохранения - и все. Подобными способами мы экономили транзисторы на схему управления.
Правда, эти команды - общего уровня, а так - у некоторых были и разновидности. Возможно, в ближайшие лет двадцать больше и не будет. Хотя - нет, в ближайшие несколько лет будет расширение системы команд - тут и нормальный вызов подпрограмм, чтобы сохранение счетчика и переход выполнялись за одну команду, и групповое сохранение-восстановление регистров - это будет и в качестве отдельной команды. Да и сами регистры предполагалось пометить тегами с типом содержимого - чтобы не таскать эти данные в командах - сложение так и останется со своим опкодом, а типы будут его дополнять - причем в тегах будут либо типы, либо ссылки на типы - например, для индексного доступа или наращивания индекса на размер элементов типа, на который он ссылается, а может и совместим использование с наращиванием в одной команде - еще будем думать. Тут уже потребуется дополнять операции загрузки - добавлять в них типы загружаемых значений - откуда-то ведь они должны появляться. Но места в байте, выделенном под опкод, было более чем достаточно - при общей длине команды 16-24 бита - я решил не жаться, под предполагаемое увеличение производства чипов памяти.
Ну и прочего хватало - мы пока определились с вычислительным ядром и переключились на эксперименты с обвязкой - как вычислительного ядра, так и самого процессора - переключение процессов, виртуальная память, конвейеризация (пока без внеочередного исполнения команд - постараемся переложить это на компилятор "псевдо-VLIW"), регистр признаков, кэш, прямой доступ к памяти, система прерываний, часы реального времени, терминалы, сетевые дела, принтеры и сканеры - всего над исследованиями работало порядка тридцати команд численностью пять-десять-пятнадцать человек, ну а я, как самый продвинутый в вычислительной технике в это время, был консультантом и координатором.
Пока же основные усилия были направлены на вспомогательные вычислители - шесть конвейерных вычислителей для чисел с фиксированной точкой уже активно участвовали в экспериментах, прежде всего по цифровой обработке сигналов для гидроакустики и радиолокации, а один вместе с шестью программистами даже плавал в Балтике на одной из подводных лодок, что мы захватили в Кенигсберге - отлаживались. Причем, несмотря на приказ не рисковать и вообще быть тише травы ниже воды, они утопили-таки какой-то крупный транспорт, шедший в Ригу, и потом полдня отбивались от насевших на них миноносцев и прочей мелочи - пару посудин потопили вертикальными торпедами, а потом смогли выставить антенну, вызвать авиацию и уже она отогнала остальных. Но уже появился первый конвейерный числогрыз для операций с плавающей точкой - шкафчик объемом с кубометр. Аппетиты насчет вычислительных мощностей росли с каждым днем, так что это направление у нас сейчас было важнейшим.
Причем набор дискретных микросхем был пока старым - с малой степенью интеграции, как и в другой вычислительной технике, но быстродействие за полгода выросло почти на порядок. И дальнейший рост пока не предвиделся - мы уперлись в технологические проблемы. Да, в экспериментальных образцах делались элементы с нормами порядка десяти микрометров - а это уже начало семидесятых. Но выход годных был очень мал - процент, не более. Все из-за дефектов полупроводниковых пластин и отсутствия чистых комнат. Первую проблемы мы решали проведением десятков экспериментов по выращиванию кристаллов, а по второй пытались сделать что-то типа закрытого конвейера - там основная сложность была в установке и перемещении пластин - насколько я понимал, большие чистые комнаты и были нужны из-за того, что эти действия выполнял человек. И если его изъять из процесса, то необходимый чистый объем существенно уменьшится. Заодно нарабатывали факты для построения теории полупроводников. До этого-то действовали чуть ли не методом тыка - нанести пасту с легирующим веществом, подержать в печи десять минут и измерить электрические параметры. Нанести пасту на другой образец и подержать двадцать минут. Измерить. Увеличить содержание примеси в пасте, нанести на третий образец, подержать в печи, измерить - и так сотни раз.
Читать дальшеИнтервал:
Закладка: