М. Фон-Дер-Флаасс
Кронос - общее название семейства 32-разрядных процессоров с аппаратной поддержкой языков высокого уровня, предназначающихся для конструирования ЭВМ открытой архитектуры: от встроенных микро-ЭВМ и однопроцессорных рабочих станций до многопроцессорных ЭВМ класса супер-мини.
История рождения
В 1984 году, в Академгородке, в одной из комнат общежития Новосибирского университета родился Кронос. Точной даты рождения нет: трудно решить, считать ли датой рождения день, когда встретились его создатели - студенты-физики и студенты-математики, и родилась идея сделать свою машину со своей операционной системой, или момент, когда заработала пультовая микропрограмма процессора. Трудно назвать точно и всех родителей Кроноса - тех, кто принимал в нем участие и вложил в него кусочек жизни.
Зато с уверенностью можно назвать дедушку. Им является Никлаус Вирт, профессор из Цюриха, который создал язык программирования Модула-2 и реализовал его на своей машине Лилит. Унаследовав лучшие черты языка Паскаль, Модула-2 имеет ряд отличительных особенностей, которые делают ее незаменимой при разработке программного обеспечения. Прежде всего это, конечно, модульность (и возможность разбиения модуля на определяющую и реализующую части), развитые структуры данных и управления, строгий контроль типов, наличие процедурных типов, что позволяет динамически параметризовать процедуры внешними действиями, а также наличие средств программирования низкого уровня, позволяющих ослабить жесткий контроль типов и отображать структурные данные на память.
Со статьей Вирта познакомил одного из программистов его научный руководитель, Игорь Васильевич Поттосин. И пока Дима Кузнецов (так звали программиста) писал свою курсовую работу - Модула-2-компилятор для интерпретатора системы команд Лилит, появилась мысль - сделать свою машину с системой команд, ориентированной на этот замечательный язык. Вот тут и произошла та самая встреча с физиками, которые, в свою очередь, тоже хотели сделать машину, которая была бы в их личном распоряжении, и чтобы таких машин было столько, сколько потребуется, а не одна на шесть персон.
Тогда же встретились ребята и с Александром Гурьевичем Марчуком, который впоследствии пригласил их работать в ВНТК "Старт", но об этом позже.
Начальный капитал - сломанная Электроника-60 – собирался по частям из разных институтов Сибирского отделения, в которых специализировались студенты - Вычислительного центра, Институты автоматики и, конечно, университета. Все части надо было вернуть. А пока они расставлены по комнате, блок питания вставлен в... посылочный ящик, и в этом забавном "конструктиве" вместо процессора Электроники-60 работает первый Кронос, который еще пока никак не называется.
История названия - это маленькая тайна создателей. Можно только сказать, что назван он так в честь греческого титана Кроноса, пожиравшего - увы! - своих детей, и свергнутого в Тартар своим сыном Зевсом. Позже Зевс пожалел старика и отправил его царствовать на "острова блаженных". Отсюда в представлении древних греков "царство Кроноса" соответствовало сказочному "золотому веку". Считаясь первоначально богом жатвы, Кронос изображался старцем с покрытой головой и серпом в руке. Позднейшее представление о Кроносе, как о боге времени, возникло вследствие созвучия имени Кронос и греческого слова "хронос" - "время".
Можно вспомнить много забавных историй из биографии Кроноса. Как, например, чтобы положить конец спорам и разногласиям, все поставили свои подписи на утвержденном варианте архитектуры процессора. По утвержденному варианту машина должна была быть 16-разрядной (а хотелось иметь 32-разрядную). Буквально через пару дней, ночью, Женя Тарасов придумал, как сделать процессор 32-разрядным. В ту же ночь он переделал всю систему команд. Когда он сказал об этом по телефону Диме Кузнецову, тот только слабо возразил:
- Но мы же договорились...
В начале 1985 года ребятам была выделена первая комната в ВЦ СОАН СССР, и с этих пор все работы по Кроносу проводились здесь, в Вычислительном центре, при поддержке А.Г.Марчука. Здесь у Кроноса-первого родились братья Кронос-2, Кронос-2.2, Кронос-2.5, Кронос-2.6, три последних известны в настоящее время как семейство процессоров КРОНОС. Здесь стали работать после окончания университета создатели Кроносов, здесь сформировалась группа Кронос в том составе, как она существует сейчас: Дмитрий Кузнецов, Алексей Недоря, Евгений Тарасов и Владимир Филиппов. Они составляют ядро, вокруг которого сплотились еще 14 кроносоведов и кроносолюбов, большая часть которых - студенты университета, выросшие и воспитанные на Кроносе.
Операционная система
Все процессоры семейства работают под управлением операционной системы Excelsior. На вопрос, почему они не воспользовались какой-нибудь готовой, широко известной системой, авторы отвечают, что им подошла бы система, которая отвечала бы их собственной концепции операционной системы, которую в нескольких словах можно было бы выразить так: открытость, модульность, интегрируемость результатов, удобство интерфейсов. Кроме того, система должна быть не застывшей раз и на всегда, а развиваемой, живой. И представляется нелепым опираться изначально на программный продукт, при создании которого имелись в виду совсем другие идеи. Кроме того, если что-то уже сделано, то значит, это делалось вчера, и потому не годится сегодня.
Как Кронос попал на МАРС
В 1985 году был организован временный научно-технический коллектив "Старт" (ВНТК "Старт"), руководителем которого стал Вадим Евгеньевич Котов. Цель этого ВНТК - в течение трехлетнего срока создать макет МАРС (Модульные Асинхронные Развиваемые Системы). Подробнее о МАРСе и работе "Старта" будет рассказано в будущих выпусках, скажем лишь, что проект был успешно завершен в 1988 году.
Почти все кроносоведы приняли участие в ВНТК "Старт", а именно, в работе над частью проекта, называемой МАРС-Т (Т – от слова "транспьютер").
МАРС-T реализует такую модель вычислений, когда задача разбивается на множество процессов, которые могут исполняться на разных процессорах. Аппаратно он представляет собой многопроцессорную систему, элементами которой являются процессоры Кронос 2.6, объединенные специальной аппаратурой межпроцессорной связи, обеспечивающей синхронизацию процессов и имеющей относительно невысокие накладные расходы.
Какая от него польза?
Как видно из краткого экскурса в историю, создатели Кроноса стремились сделать машину прежде всего для себя. Получилось так, что Кронос стал не только целью разработки, но и инструментом для достижения этой цели. Все программное обеспечение Кроноса писалось на Кроносе, на Модуле-2. Отсюда - первое и основное его применение: разработка и реализация развиваемого программного обеспечения. Развиваемого - значит, легко перестраиваемого и дополняемого. Этому способствует главное, на наш взгляд, качество Кроноса: programmability - легкость программирования.
Добавьте сюда широкое адресное пространство (до 8 гигабайт у 2.6) и неплохую производительность, а также наличие графического bitmap-дисплея, и вы получите машину для реализации и функционирования всевозможных систем автоматизированного проектирования, то есть рабочее место конструктора.
А опыт работы ВНТК "Старт" показал возможность использования процессоров семейства Кронос в сложных многопроцессорных комплексах.
Кроме того, применим Кронос и для широкого ряда вычислительных задач, и опыт такого применения уже имеется.
А что из себя представляют процессоры?
В настоящее время семейство 2.X включает три разработки: 2.2, 2.5, 2.6. У всех процессоров одна система команд; они полностью совместимы программно и различаются лишь по внутреннему функциональному устройству, быстродействию и конструктивному исполнению.
Логику функционирования всех блоков процессора реализует блок микропрограммного управления. Две шины данных объединяют арифметико-логическое устройство, блок регистров, быстрый аппаратный стек на 7 слов, устройства выборки команд и ввода/вывода.
Двухшинная внутренняя структура процессоров позволяет выполнять бинарные операции на стеке (сложение, вычитание, логические И, ИЛИ и т.д.) за один такт. Таким образом, за один такт исполняется большинство команд, что отвечает основным идеям RISC-архитектуры. Микропрограммное управление упрощает устройство процессоров и дает возможность реализовать сложные команды типа вызова процедуры.
Все узлы процессоров выполнены на советских ТТЛ и ТТЛШ микросхемах широкого применения серий 155, 531, 1802, 1804, 589, 556.
Семейство КРОНОС: сходства и различия
Процессор | Кронос 2.2 | Кронос 2.5 | Кронос 2.6 |
---|---|---|---|
Конструктив | Электроника-60 | Intel | Евромеханика |
Количество плат | 1 | 2 | 22 |
Шина | Q-bus 22 | Multibus-1 | Локальная3 |
Ширина микрокоманды, бит | 56 | 64 | 64 |
Объем микропрограмм, Кслов | 2 | 2 | 4 |
Прямо адресуемая память | 4 Мбайт | 2,5 Мбайт1 | 8 Гбайт |
Тактовая частота, мГц | 4 | 3 | 3 |
Число простых операций над стеком, млн/сек | 0,6 | 1 | 1,5 |
1) Существенным отличием Кронос 2.5 является наличие локальной памяти объемом 0,5-2 Мбайт - в зависимости от применяемых микросхем. Остальная память - на шине Multibus-1 (до 1 Мбайт).
2) В минимальный комплект входят: плата обрабатывающего тракта (АЛУ, стек, регистры), плата микропрограммного управления, плата локальной памяти (0.5-2 Мбайт), плата адаптера шины ввода/вывода.
3) Все устройства объединены локальной синхронной 32-разрядной шиной. Сам процессор не зависит от конкретной шины ввода/вывода. Настройка на конкретную шину производится с помощью соответствующего адаптера. К локальной шине могут быть добавлены платы памяти, адаптера межпроцессорной связи, контроллера к локальной сети и накопителя на магнитных дисках, плата памяти кода (при разделении плат кода и данных), bitmap-дисплея, арифметического вычислителя с плавающей запятой и других устройств, расширяющих возможности процессора.
Что читать о Кроносе
- N.Wirth Programming in Modula-2. Third, Corrected Edition. Springer-Verlag. Berlin, Heidelberg, New-York, 1985.
- N.Wirth A Fast and Compact Compiler for Modula-2. ETH. Zurich, 1985.
- Кузнецов Д.Н., Недоря А.Е., Осипов А.Е., Тарасов Е.В. Процессор КРОНОС в мультипроцессорной системе. В сб.: Вычислительные системы и программное обеспечение. ВЦ СОАН СССР, Новосибирск, 1986, c. 13-19.
- Кузнецов Д.Н., Недоря А.Е. Проектирование таблиц символов для языков со сложными правилами видимости. В сб.: Методы трансляции и конструирования программ. ВЦ СОАН СССР, Новосибирск, 1984, с. 153-158.
- Васекин В.А., Кузнецов Д.Н., Недоря А.Е., Тарасов Е.В. КРОНОС: аппаратная и программная поддержка языков высокого уровня. Тезисы докладов Всероссийского методического совещания-семинара по обмену опытом использования ЭВМ в учебной и научно-исследовательской работе студентов. Новосибирск, 1986, с. 92-94.
- Кузнецов Д.Н., Недоря А.Е. Симфайлы как интерфейс операционной системы. В сб.: Информатика. Технологические аспекты. ВЦ СОАН СССР, Новосибирск, 1987, с. 68-75.
- Кузнецов Д.Н., Недоря А.Е., Тарасов Е.В., Филиппов В.Э. КРОНОС - автоматизированное рабочее место профессионального программиста. В сб.: Автоматизированное рабочее место программиста. Новосибирск, 1988 (в печати).