Уважаемые владельцы реальных УКНЦ, если будет свободная минута, запустите, пожалуйста на вильнюсском Бейсике такую программу и измерьте время её выполнения:
Тест ВМ3
10 J=0
20 J=J+1
30 A=J/J*J+J-J
40 IF J<10000 THEN 20
Это тест ВМ3 из известного набора бенчмарков Бейсика, использовавшегося в начале 80-х некоторыми иностранными журналами.
Попробую кратко объяснить, зачем это нужно.
Как известно, ЦП УКНЦ очень сильно тормозится контроллерами памяти и дисплея, но я так нигде и не нашёл конкретных данных, насколько сильно.
Давно пытаюсь измерять тестами и сравнивать скорость работы разных советских (и несоветских) ПК, но делаю это исключительно на эмуляторах, поэтому, конечно, есть сомнения в достоверности результатов (хотя до сих пор у меня не было претензий к точности основных эмуляторов). Насчет УКНЦ есть очень противоречивые данные: тесты скорости выполнения машинных команд показывают, что ЦП УКНЦ примерно в 2-2,5 раза быстрее, чем, например, БК-0010. Примерно в том же русле и результаты сравнения тестов на вильнюсском Бейсике (при использовании целых чисел): УКНЦ в 1,5-2,5 раза быстрее классического Бейсика БК-0010-01.
Однако на БК есть ещё один вариант вильнюсского Бейсика – упрощенный, размером 9 Кбайт, предназначенный для загрузки в ОЗУ БК-0010. Мне известны две его разновидности – 1985 и 1987 года, я использовал только 1987-го. Так вот этот Бейсик-87 не поддерживает вещественные числа двойной точности (а 24-килобайтный Бейсик БК-0010-01, как известно, не просто поддерживает, но и принудительно выполняет все вычисления с плавающей запятой только в режиме двойной точности, поэтому все вещественные вычисления у него работают очень медленно, причем такая особенность была и у его прототипа – Бейсика MSX/MSX2), но зато вычисления с вещественными числами одинарной точности выполняет в разы быстрее, чем 24-килобайтный Бейсик (например, тест ВМ8 (возведение в квадрат, логарифм и синус) – в 10,5 раз быстрее!). Так вот этот 9-килобайтный Бейсик-87 (имеющий, кстати, точно такую же точность вычислений (совершенно одинаковые результаты), что и Бейсик УКНЦ, в том числе и сложных функций, что явно говорит об одинаковости используемых алгоритмов вычислений) работает практически с такой же скоростью, что и Бейсик УКНЦ! Т.е. УКНЦ в среднем чуть быстрее – в разных тестах на 10-30% (до 50% в тесте ВМ8), но не намного. А в этом самом тесте ВМ3 (см. начало поста), УКНЦ даже уступает БК на 10%! При этом преимущество в 30-50% (не говоря уже о 10%) вполне можно списать на наличие у УКНЦ дополнительных команд целочисленного умножения/деления и арифметического сдвига, а также и конвейера команд.
Соответственно, если эти данные верны, то получается очень странная ситуация: при выполнении программ на Бейсике эффективная тактовая частота ЦП УКНЦ примерно равна эффективной частоте процессора БК – т.е. порядка 2 МГц (а то и меньше, учитывая наличие конвейера и дополнительных команд). А это значит, что ЦП УКНЦ работает примерно в 4 раза (!!!) медленнее, чем мог бы работать на частоте 8 МГц без торможения со стороны контроллеров.
Не хочется в это верить, но пока получается именно так.
__________________________________________________ __________________________________________________ __________
Результаты тестов ВМ1-ВМ8 на ПК 80-х годов:
Текущий вариант таблицы результатов ВМ1-ВМ8 для ПК 80-х (на 15-11-2015):
https://docs.google.com/spreadsheets...it?usp=sharing