Форк 1941
Шрифт:
Глава 6. Сломать мозги об прошлое
Стартовавший апрель одарил ощущением завершения очередного важного этапа в выглядевшем бесконечным списке «что надо делать», альфа-версия которого родилась под приглядом Моисеевича в купе поезда Молотов-Москва. Причём ныне список адресовался именно что себе, а не «в целом… стране».
Согласован и реализован набор машинных команд. АЛУ М-1 функционирует, отрабатывает первые написанные тестовые программы в автоматическом режиме. Наверное, именно сейчас, а не рассказами Сталину, Берии, не книгами с HDD и даже не реализацией системы распознавания для массивов данных от «научников» и прикладным ПО, созданным мной,
Именно сейчас. Личное авторство и ответственность за разработку системы машинных команд первой в мире полноценной ЭВМ, при всех имевшихся заимствованиях, которые я «творчески адаптировал» в машкод М-1 из материалов и логики работы полноценных 8-разрядных процессоров 70-х годов 20-го века «моего времени». Конечно, я опирался на эти знания, как на фундамент, но… скажем так – гордость присутствует. И пока хватит об литаврах и барабанах:-)
Полная готовность же проекта задерживалась теперь, в первую очередь, работами над внешней памятью – магнитный барабан ждём в конце апреля-мае. А над блоком работы с магнитной лентой ещё и «конь не валялся». Кроме общих набросков, «что и как» и включения в архитектуру М-1, там ничего не существовало. Причём решение о необходимости второго накопителя являлось однозначным – он, однозначно нужен, но отказ от распыления имеющихся сил коллектива был осознанным выбором – АДВЭМ должна пойти в серию и начать функционировать в научных институтах и КБ СССР как можно скорее, а накопители на магнитной ленте пойдут позже, по мере освоения промышленностью СССР производства на основе полученных германских образцов и доведения качества магнитной ленты до требуемых параметров долговечности.
Набор машкодов (с некоторыми несущественными лакунами из-за специфической аппаратной реализации), на который я ориентировался при проектировании, был фактически набором интеловского 8080. Отбросив первоначальные самопальные варианты, я очень быстро пришёл к трём альтернативам – «навороченному как у Z80», промежуточному – «максимально креативному»:-) и тому, «как у i8080».
«Лист3» и был реализован на аппаратном уровне, причём главным фактором, определившим выбор в пользу последнего, была возраставшая стоимость, сложность, избыточность на данный момент и время, потребное на реализацию первого варианта системы команд наподобие того, что был в основе самого популярного 8-разрядного процессора, имевшемся в «моём прошлом». Кроме того, на том объёме ОЗУ, который имела М-1, особо развернуться с ПО было не просто трудно, а невозможно. Он был просто мизерным. Даже первый вариант «спекки» с 16 килобайтами памяти казался в 1941-м немыслимой роскошью. Про сравнение же с моей «инопланетной» по местным меркам техникой вообще и речи не шло. Только теперь по настоящему мне стала понятны запавшие в память строки из читаного в сети эссе кого-то из первого поколения советских программистов. Полное страданий и жалоб:-) Разбиение программы на этапы, запись-считывание всех промежуточных результатов между ними на магнитный барабан/ленту, постоянные аварийные остановки, зависания, перегрев и выход оборудования из строя и всё в таком духе…
Вернусь к машкодам АЛУ М-1. Почти 8 десятков команд. Команды передачи данных – пересылка и загрузка из регистра в регистр, из ячеек памяти по известному адресу в выделенной регистровой паре, команды для их обработки, команды для переходов, команды управления. Данный выбор обуславливался тем, что его можно было в дальнейшем, сохранив обратную совместимость, нарастить набор команд в новых моделях громоздких пока праотцов будущих местных процессоров. Мой «пунктик» по поводу сквозной, на десятилетия вперёд, совместимости по прежнему давал себя знать. Да и материалов из своего времени, по Z80 (являвшимся, в каком-то роде «потомком на стороне» процессора 8080)/самого 8080 (точнее, его советского полноценного аналога КР580) было больше всего.
Разумеется, быстродействие и близко не как у того, кто взят в качестве образца, но даже такая техника, после доведения её до серийного выпуска и полноценного освоения в КБ промышленности и институтах АН СССР нужна как воздух. Она решит многие проблемы, а задачи учёных, промышленности, бухгалтеров и статистиков после наладки выпуска серийных образцов М-1 потребуют соответствующего числа программистов.
Обучение их и качественная, подробная и изложенная доступным языком документация по программированию. С примерами реальных задач и способов их решения на М-1. Обо всём этом я толкую и настаиваю… Не только «принципиальные электрические схемы», но обширные «мануалы по юзанию»:-)
Очень сильно подозреваю, что итоговый облик «процессора», в том виде, в котором он существовал – множество частей, реализовывавших на текущей элементной базе арифметико-логическое устройство М-1, был обусловлен прилежным чтением местами обрывочных, местами весьма полезных и много разъяснивших нам материалов по Z80, 6502, КР580, 8080. «Что было под рукой», короче. Замечу, что ограничение в лаборатории товарища Брука (+ ныне и Лебедева) числа «тех кто знает и понимает, откуда это взялось и почему надо делать так, а не иначе» обоими главными конструкторами, мной и двумя другими прогерами, бывавшими там набегами, изрядно попортило нам всем нервы. Особенно когда приходилось исключительно командно-административными мерами пресекать рационализаторские предложения и творческий (без кавычек) дух реализовывавших наше видение «первой советской ЭВМ». Конечно, кое-какие доводы и мнение о путях будущего развития «электровычислителей», выходящие из моих знаний будущего, я мог довести до остальных сотрудников лаборатории электросистем энергетического института, но по настоящему мои слова превратились в их глазах в весомые только тогда, когда М-1 первый раз, ещё в не автоматическом режиме, выполнила операции сложения и умножения. А в тот день, когда АЛУ «ДЭВ-ика» отработало первый раз малюсенькую программку с циклом, я ощутил в словам и подметил в выражениях лиц присутствовавших некий «пиетет к пророку будущих автоматизированных дискретно-электрических вычислительных устройств». Тогда же до большинства участвовавших в проекте создания М-1, имхо, по настоящему стало доходить то истинное значение, которое я вкладывал в понятие программирование. Многие из них часто начали прикидывать, какие расчёты (пока не постановка задач и использование во всех гранях деятельности цивилизации, хехе, так далеко товарищи ещё не пытались пока заглянуть) можно возложить на электровычислитель. А кое-кто просёк, почему так однозначно и категорично в техзадании на проект было заложена возможность будущего лёгкого (почти-что на уровне «добавить в стойку новый блок») увеличения объёма оперативной памяти.
В итоге, для расширившегося «под новую задачу» коллектива лаборатории электросистем, ныне исключительно работавшего на проект первой советской ЭВМ, известной в «этой истории» пока как «дискретный электровычислитель», и насчитывавшего (помимо Брука, Лебедева и приходящих меня, Шуры-Буры и Лебедева) ещё почти 30 инженеров, техников и монтажниц, мой авторитет, как идеолога проекта, стал расти при каждом удачном запуске первых образцов ПО для М-1, демонстрировавших, что электровычислитель работает так, как задумывалось и даёт те результаты, которые ожидались от него.
Товарищи, прикидывавшие будущие расчётные задачи, которые будут по плечу М-1 и её улучшенным вариантам, пока ещё не левел-апнулись с пониманием, потребным для перехода к логике системного и прикладного программного обеспечения, но важнейшие шаги «в ту сторону» уже были сделаны.
Замечу, что вывод результатов работы ПО М-1 пока был организован простейшим образом – в виде «набора лампочек», отображающих при необходимости содержимое регистров АЛУ на пульте управления электровычислителя.
Один факт – я использую, и фактически навязываю привычную мне терминологию работающим со мной. Пульт управления все, вслед за мною называют консолью. Увы, «заглядыванию в будущее» неизбежно ведёт к внедрению англоязычной терминологии. Мы уже обсуждали этот вопрос и пришли к выводу, что, как и в случае с «ассемблером М-1» (о чём речь ещё пойдёт далее), надо просто везде в документации использовать двойную терминологию. Официальное обоснование чего – «на будущее, для всего человечества». Закрытость нашего проекта, его декларируемые цели и его функционирование под крылом академического института, хотя и с результатами пока под грифом «Секретно», никак не мешают подобному толкованию. Изрядная свобода от идеологических пут и прямая, хотя и не особо афишируемая руководящая и надзирающая роль ведомства наркома Берии тому способствуют весьма и весьма. Хотя, замечу, весь штат лаборатории прекрасно знает, что инициатор проекта работает главным техническим специалистом в одном из отделов самого ГУГБ НКВД.