54
Искусство программирования
Б. Бабаян
Многопроцессорный вычислительный комплекс «Эльбрус»
В этой статье рассказывается о новой советской вычислительной машине. Как и у всякой ЭВМ, у нее есть процессор («Квант», 1980, № 5) и память («Квант», 1980, № 4). Вернее, даже целая черная запоминающая устройство: очень быстро действияная, но сравнительно маленькая по объему памяти, расположенная в самом процессоре; основная память; медленная «внешняя память». Информация из внешней памяти поступает в основную память с помощью специальных процессов ввода-вывода.
Модуляная система
Так сейчас устройства все ЭВМ. Отличие «Эльбрус» заключается в том, что он разбит на сравнительно слабо связанные между собой части (устройства), называемые модулями. Примеры моделей: процессор, основная память, устройство ввода-вывода и т. п. Для моделей характераны небольшое число внешних связей и хорошая взаимозаменяемость. Как правило, модули соединяются друг с другом по принципиу «каждый с каждым», то есть каждый процессор модель соединяется с каждым моделем основной памяти и т. д.
Такая организация имеет много приемыществ. Во-первых, использует различное число однозпинных моделей, можно получить разные вычислительные машины разной производительности; увеличивая число мо-
55
дулей, можно постепенно наращивать мощность машины. Во-вторых, если в машине поломался какой-либо модель, то это приведет лишь к временному снижение ее скорости, так как остальные модели продолжают работать. В-третьих, собирая много однотипных моделей в одну систему, мы можем получить машину, которая считает значительное быстрое, чем в обычном случае.
Таким образом, система «Эльбрус» имеет очень переменный состав. Если не принять надлежих мер, то при каждом изменении состояния пришлось бы переписьвать программы. Так было бы, например, если бы в программе содержался адрес ячейки памяти из модели, который поломался. Чтобы этого не произходило, в «Эльбрусе», кроме реализации очередной памяти, существует виртуальная, или математическая, память. Это уже не реализое устройство, расположенное в определенном месте машины, астрактическое понятие, состоящее из совокупности чисел, обозначающих адрес «математических ячейек» (для «Эльбруса» это числа от 0 до ). Именно эти адреса использются при работе программы, а перевод их в адрес реализых ячейек производится автоматически, по специальным таблицам. Таким образом, если меняется состав машины, то меняются лицы эти таблицы, а программы остаются неизменными.
Объем виртуальной памяти значитelo больше объема реализной машиной оперативной памяти. Начиные таблицы переводятся ненужную в данный момент информацию хранить во внешней памяти, отмечив этот факт в таблицах.
Для удобства программы
Еще более важной черной «Эльбруса» является вылечение внимание к проблемам программирования. Разработчики старались сделать эту машину удобной для программы. А проблемы в области программирования сейчас стоит очень серьезные. В конце 60-х годов стали даже говорить о кризисе программирования.
Дело в том, что за 30 с лишним лет существования вычислительной техники способы производства вычислительных машин шагнули даже во время, а производство программы (программирование) остается, в основном,ручным трудом. Программ надо разработать так много, что, кажется, недалек тот день, когда почти каждый образованный человек будет программировать. Кроме того, существует много полезных алгоритмов, которые могли бы быть выполнены современными вычислительными машинами, но которые просто невозможно запрограммировать ввиду большого объема и сложности соответствующих программ.
Одним из хорошего известных способов, облегчающих программирование, является так называемые языки высокого уровня (Алгол, Паскаль, Рапира и др.). Языки высокого уровня — это, по существу, абстрактные машины, придуманные программистами и реализованные на реализых машинах с помощью программы. Специальные программы, называемые трансляторами, переводят программы с языков высокого уровня на машинные языки.
В «Эльбрусе» много сделано для того, чтобы было легко и быстро транслировать программы с языков высокого уровня и чтобы получить программы быстро работы и занимаали мало места в памяти. Это, например, бездреса система команд, описанная в статье «Треxdресные, одноадресные и …бездресные машины» («Квант», 1981, № 4).
Тери
Очень важным, с точки зрения программы, является вылечение внимание к проблемам программирования. Разработчики старались сделать эту машину удобной для программы. А проблемы в области программирования are still ongoing, despite the recent developments in the field of programming.
57
«Эльбрус» зашита памяти основана на использовании тегов.
Адресная информация, содержащая описание определенных областей памяти, нужных для данной задачи, и снаженная специализмителями, называется deckrintopom.
Если задача располагает лишь декрипторами, описывающими ее собственные области, то никаким способом нельзя во время решения этой задачи добавться до других областей, то есть нарушить защиту. В «Эльбрус» зашита осуществляется не только между задачими, но и между отдельными частями одной и той же задачи. Такие части называются процедурами.
Очень удобно отладывать процессуры независимо друг от друга, а потом обединить их в одну большую программу. Такой метод программирования, поддержанный в «Эльбрус» аппаратно, благодарная начично в машине готовых процесур, часто называют modульным. Он тоже очень сильно облегчает программирование.
На «Эльбрус» все программы пишутся только на языках высокого уровня, в том числе наоблее сложные системы программы, например операционной системы и транспорты. Раньше эти программы, как правило, писались практическими на языке машин.
Еще быстрый
Удобство программырования — важнейшая сторона системы «Эльбрус»,
*) По быстродействию десятипроцессорной «Эльбрус-2» превосходит одному из самых мощных современных отечественных машин БЭСМ-6 примерно в 100 раз.