БЭСМ-6
(II-е
поколение)
БЭСМ-6
была разработана в 1965 году группой
инженеров в Институте точной механики и
вычислительной техники им. С.А.Лебедева.
Производство
началось в 1967 году, на заводе САМ (Счетно-Аналитических
машин) в Москве. В базовую конфигурацию
входило: ЦП, 192 Кб ферромагнитной памяти (несколько
рядов шкафов), магнитные барабаны (емкостью
те же 192 Кб каждый, размером с большой сундук),
накопители на магнитных лентах (на ленту
помещалось 3 Мб, это было очень много),
телетайпы, пишущие машинки "Консул" с
параллельным интерфейсом, АЦПУ (алфавитно-цифровые
печатающие устройства) и устройства
считывания и перфорации перфокарт и
перфолент. Примерно 350 экземпляров было
сделано до начала 80-х годов. Позднейшие
конфигурации включали ЕС-овские
лентопротяжки и дисководы (для дисков
емкостью 7.25, а позднее 29 Мб; стандарного
размера - со стиральную машину), алфавитно-цифровые
видеотерминалы (Видеотоны и др.),
графопостроители и т.д. Обращение к памяти
было только пословным.
Для
БЭСМ существовали реализации многих
распространенных в то время языков
программирования: Алгол-60 ("Курочкинский",
-ГДР и система Альфа), Фортран (-Дубна, -ГДР и
Форекс), Паскаль (-Монитор и -Дубна), а также,
АПЛ, Лисп, Плэнер, РЕФАЛ, Форт и С.
Вот
в чем была крутость БЭСМ-6:
·
Конвейерный центральный
процессор (ЦП) с отдельными конвейерами для
устройства управления (УУ) и
арифметического устройства (АУ), так что
арифметические прерывания были неточные,
как в последних РИСКах;
·
Виртуальная адресация
памяти и расширяемые регистры страничной
приписки, так что позднейшие БЭСМ имели до
нескольких мегабайт памяти - не
ферромагнитной, а обычной статической;
·
Совмещенное АУ для целой и
плавающей арифметики: на самом деле, команд
для целочисленной арифметики как таковых
не было. Вместо них использовалась
блокировка нормализации, отчего целое
деление было непростым делом (деление на
ненормализованные числа считалось
делением на 0);
·
У каждого слова в памяти было
два бита четности - по одному на полуслово;
четность всего слова должна была быть "нечет".
Таким образом, можно было отличать команды
от данных - у одних четность полуслов была
"чет-нечет", а у других - "нечет-чет".
Переход на данные или затирание кода
ловилось элементарно, как только
происходила попытка выполнить слово с
данными. (Для генерации выполняемого кода
нужно было попросить ОС переключить режим
команды записи в память или пользоваться
специальным экстракодом - так на БЭСМ
назывались системные вызовы - так что
самомодифицирующийся код был не в чести.);
·
Времена выполнения команд
были ближе к РИСКовским, чем к КИСКовским.
Большинство логических и арифметических
команд (за исключением умножения и деления)
выполнялись за 2 такта в УУ и в среднем 5
тактов в АУ;
·
Контрольные регистры адреса
выполняемой команды и адреса операнда, или,
на более понятном сейчас языке, breakpoint и
watchpoint registers.
Техническая информация:
Характеристики |
БЭСМ-6 (1967) |
Эльбрус-1 (1980) | Эльбрус-Б (1988) 64-разрядный режим | |
Производительность |
Около
1 млн оп/с |
Около 2.5 млн оп/с |
Около
3 млн оп/с |
|
Тактовая частота |
9
МГц |
20 МГц |
||
Элементная база |
60
тыс. транзисторов и 170 тыс. диодов |
ЭСЛ ИС (100
серия) |
||
Разрядность машинного слова |
48 |
48 |
64 |
|
Разрядность адреса |
15 |
15 |
27 |
|
Адресуемая память |
192
Кб |
192 Кб |
1
Гб |
|
Зернистость памяти |
Машинное
слово |
|||
Набор команд |
одноадресный |
|||