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