От Грозный Ответить на сообщение
К NV Ответить по почте
Дата 16.03.2010 02:21:44 Найти в дереве
Рубрики Прочее; Память; Политек; Версия для печати

Немного фактов и ссылка

Вот в чем была крутость БЭСМ-6:

* Конвейерный центральный процессор (ЦП) с отдельными конвейерами для устройства управления (УУ) и арифметического устройства (АУ), так что арифметические прерывания были неточные, как в последних РИСКах;
* Виртуальная адресация памяти и расширяемые регистры страничной приписки, так что позднейшие БЭСМ имели до нескольких мегабайт памяти - не ферромагнитной, а обычной статической, конечно;
* Совмещенное АУ для целой и плавающей арифметики: на самом деле, команд для целочисленной арифметики как таковых не было (одна не считается :-) ). Вместо них использовалась блокировка нормализации, отчего целое деление было непростым делом (деление на ненормализованные числа, как и в современной IEEE f.p., считалось делением на 0);
* У каждого слова в памяти было два бита четности - по одному на полуслово; четность всего слова должна была быть "нечет". Таким образом, можно было отличать команды от данных - у одних четность полуслов была "чет-нечет", а у других - "нечет-чет". Переход на данные или затирание кода ловилось элементарно, как только происходила попытка выполнить слово с данными. (Для генерации выполняемого кода нужно было попросить ОС переключить режим команды записи в память или пользоваться специальным экстракодом - так на БЭСМ назывались системные вызовы - так что самомодифицирующийся код был не в чести.);
* Времена выполнения команд были ближе к РИСКовским, чем к КИСКовским. Большинство логических и арифметических команд (за исключением умножения и деления) выполнялись за 2 такта в УУ и в среднем 5 тактов в АУ;
* Контрольные регистры адреса выполняемой команды и адреса операнда, или, на более понятном сейчас языке, breakpoint и watchpoint registers.

Вот здесь есть таблица, иллюстрирущая динамику развития БЭФСМ-6 и Эльбрусов. Там же - про преемственность

http://www.mailcom.com/besm6/index_ru.shtml


===> dic duc fac <===