User Tag List

Показано с 1 по 10 из 282

Тема: Отечественные компьютеры: быстродействие

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    20.05.2013
    Адрес
    г. Ейск
    Сообщений
    197
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    УКНЦ

    Скрытый текст

    Основная версия Бейсика для УКНЦ – очень быстрый «вильнюсский Бейсик», условно называемый «полукомпилятором» (хотя по скорости выполнения программ он намного ближе к интерпретаторам, чем к настоящим компиляторам). Этот вид Бейсика может использоваться с УКНЦ в любой конфигурации – он загружается с дисковода, магнитофона, картриджа ПЗУ или по локальной сети. Работает он примерно так: сразу после подачи команды RUN транслятор довольно быстро (за несколько секунд или десятков секунд, в зависимости от длины программы) преобразует исходную программу в так называемый «шитый» код, представляющий собой адреса подпрограмм, выполняющих соответствующие команды Бейсика, арифметические операции и т.д., после которых идут данные для работы этих подпрограмм (например, адреса переменных или числовые константы, преобразованные к внутреннему представлению). То есть «полукомпилятор» один раз выполняет «трансляцию» Бейсик-программы в некий внутренний код, после чего запускает выполнение уже этого кода. Выигрыш в скорости достигается благодаря тому, что в «шитом» коде все арифметические выражения преобразованы в так называемую обратную бесскобочную («польскую») запись, которая быстро исполняется без дополнительных преобразований, все константы переведены из текстового вида во внутреннее представление (с которым непосредственно работают процедуры целочисленной или вещественной арифметики), в командах переходов и вызова подпрограмм вместо номеров строк подставлены соответствующие адреса в памяти и т.д. Всё это даёт преимущество над интерпретаторами примерно в 2-3 раза при использовании вещественной арифметики и до 10-15 раз при целочисленных операциях. Впрочем, чем сложнее выполняемые функции, тем меньше разница между интерпретаторами и полукомпиляторами – как видим, в тесте ВМ8 вильнюсский Бейсик оказался даже заметно медленнее классического интерпретатора Бейсик-11, имеющего более эффективные процедуры вычисления сложных функций. Аналогичная ситуация и при выводе графики – скорость исполнения команд рисования линий, окружностей, спрайтов, закраски областей и т.д. практически не зависит от типа транслятора, поэтому при работе с графикой полукомпиляторы зачастую также не имеют заметного преимущества над обычными интерпретаторами.

    Как видно из таблицы, по средней скорости всех тестов вильнюсский Бейсик на УКНЦ значительно опережает все остальные ПК, включая и модели на базе почти 32-разрядного процессора 68000. Однако сравнивать его напрямую с классическими интерпретаторами, конечно, некорректно, поскольку интерпретаторы, имея другой принцип работы, должны заметно уступать по скорости «полукомпиляторам». А вот сравнение с другими «полукомпиляторами» вполне уместно и, как мы видим, УКНЦ опережает ближайшего преследователя – БК-0010 – в среднем на 32%, 8-битные шведские ПК ABC 800 (имеющие чрезвычайно быстрый транслятор Бейсика, особенно по скорости арифметики с плавающей запятой) – на 53% и бельгийский DAI PC – ровно в 2 раза (хотя последний измерялся с установленным ускорителем для операций с плавающей запятой).

    Другой вариант Бейсика, иногда использовавшийся на УКНЦ – стандартный Бейсик-11 (Basic-11/RT-11) для операционной системы RT-11 (или её аналогов), применявшийся на многих компьютерах, совместимых с архитектурой PDP-11. Это как раз типичный, классический интерпретатор, и его показатели вполне можно сравнивать с другими ПК. И, как мы видим из таблицы, по средней скорости в тестах ВМ1-ВМ8 он тоже показывает выдающийся результат, уступая лишь таким ПК, как Amiga-500 и HP Integral PC (оба на основе процессора 68000). Однако, как видно по отдельным результатам тестов, Бейсик-11 вовсе не отличался какой-то выдающейся скоростью, скорее наоборот – например, циклы FOR/NEXT (а это одни из наиболее часто востребованных операторов) у него выполняются заметно медленнее, чем у Бейсиков большинства других ПК (у BBC Micro тест ВМ1 работает в 4 раза быстрее!). Соответственно и другие тесты, задействующие FOR/NEXT (ВМ6 и ВМ7), тоже выполняются сравнительно медленно (а результаты ВМ6 и ВМ7 очень сильно влияют и на общий средний результат). Причём дело здесь явно не в медлительности самого ПК, так как эти тесты довольно неторопливо выполняются и на однозначно в разы превосходящем все ПК по скорости PDP-11/83 (ВМ1 на нём работает почти с такой же скоростью, как на BBC Micro, хотя PDP-11/83 имеет в 9 раз бОльшую частоту процессора, 16-разрядную архитектуру и даже специальный ускоритель для операций с плавающей запятой). Если бы, скажем, тесты ВМ6 и ВМ7 выполнялись на УКНЦ со скоростью BBC Micro, то средний показатель ВМ1-ВМ8 был бы уже порядка 10,5 (а не 12,9). Впрочем, у Бейсика-11 есть и большое достоинство – сложные вычисления (тест ВМ8) он выполняет заметно быстрее не только остальных ПК из таблицы, но даже быстрее вильнюсского Бейсика на том же УКНЦ. Кроме того, будучи обычным интерпретатором, Бейсик-11 гораздо экономнее использует оперативную память, чем вильнюсский Бейсик, и максимальный размер программ у Бейсика-11 примерно в 2 раза больше.

    Итак, однозначно можно сказать, что УКНЦ был одним из самых быстрых ПК среди недорогих моделей 80-х годов. Причём, сравнивая его результаты с другими ПК, нужно учитывать, что его центральный процессор К1801ВМ2 работал далеко не на полную мощность – из-за сильнейшего торможения контроллерами памяти (а оно связано, в том числе, с наличием второго процессора и довольно сложного видеоконтроллера) его «эффективная частота», судя по всему, не превышала 3 МГц (при «формальной» тактовой частоте целых 8 МГц). Т.е. можно сказать, что основной процессор УКНЦ фактически работал примерно на той же частоте, что и типичные процессоры 8-битных ПК на основе Z80 и КР580ВМ80А, и мы хорошо видим, какое преимущество он имеет относительно среднего уровня упомянутых 8-битных ПК – в большинстве тестов УКНЦ быстрее в 2-3 раза, а в сложных вычислениях (ВМ8) – примерно в 5 раз!

    Таким образом, если судить по скорости работы интерпретаторов Бейсика, УКНЦ превосходил средний уровень 8-битных ПК примерно в 3 раза, то есть 16-битная архитектура процессора К1801ВМ2 давала 3-кратное преимущество в скорости в условиях близкой эффективной тактовой частоты. И это несмотря на значительно большее число тактов, необходимое для выполнения одной команды (от 8 тактов, у 8-битных процессоров - от 2-4-х тактов) и далеко не самый быстрый интерпретатор Бейсика.

    Ещё один интересный вывод, который можно сделать на основании таблицы – советские оригинальные процессоры серии К1801 (не имеющие прямых американских прототипов) с системой команд PDP-11 ничуть не уступали самым мощным американским моделям по эффективности архитектуры – их производительность на единицу эффективной тактовой частоты не меньше, чем у самого продвинутого из PDP-11-совместимых американских микропроцессоров DEC J-11: процессоры К1801ВМ1 и К1801ВМ2 (в БК-0010 и УКНЦ), имея примерно в 6-9 раз меньшую эффективную частоту процессора, работают в 5,5-7,5 раз медленнее, чем PDP-11/83 (причём протестированный PDP (а это самая быстрая модель из всей линейки PDP-11) был оснащён даже специальным ускорителем для вычислений с плавающей запятой, которого у БК и УКНЦ, естественно, не было).
    [свернуть]

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    20.05.2013
    Адрес
    г. Ейск
    Сообщений
    197
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    БК-0010 и БК-0010-01

    Скрытый текст

    Первый советский домашний компьютер БК-0010 всегда считался, скажем так, небыстрым ПК. И на то был ряд серьёзных причин: ещё с 80-х годов хорошо известно, что процессор БК сильно тормозится контроллером ОЗУ и дисплея (примерно на 1/3), из-за чего для выполнения простейших команд ему требуется целых 12 тактов (у 8-битных ПК в 3-6 раз (!) меньше – обычно 2 такта (процессоры 6502 и 6809) или 4 такта (процессоры Z80, КР580ВМ80А, ИМ1821ВМ85А и подобные)) и максимальное его быстродействие составляет всего лишь 250 тысяч операций в секунду. На фоне самых быстрых 8-битных ПК, выполняющих до 1 миллиона простых операций в секунду, эти показатели БК выглядят откровенно слабо. Вполне укладываются в это русло и показатели быстродействия большинства распространённых трансляторов для БК – и стандартный для БК-0010 Фокал, и перенесённый на БК простейший 8-килобайтный Бейсик с компьютеров ДВК работают чрезвычайно медленно. Даже вильнюсский Бейсик-полукомпилятор для БК-0010-01, имея отличную скорость при работе с целыми числами, показывал откровенно грустные результаты при вычислениях с плавающей запятой.

    Но есть у БК одна особенность, сильно отличающая его от привычных в 80-е годы 8-битных ПК – 16-битный процессор К1801ВМ1 (плюс 16-битные ОЗУ и ПЗУ) с совсем другой, более совершенной, архитектурой, чем у 8-битных моделей. И эта «незначительная деталь» полностью меняет реальное «соотношение сил»: во-первых, процессор БК может обрабатывать сразу два байта вместо одного (например, пересылать из одной области памяти в другую, сдвигать, сравнивать, выполнять логические операции, складывать, вычитать и т.д.), что во многих случаях уже само по себе даёт преимущество в два раза при прочих равных условиях; во-вторых, процессор БК располагает шестью универсальными 16-битными регистрами, каждый из которых может быть аккумулятором, индексным регистром и т.д. (у 8-битных процессоров, как правило, роли регистров разделены – есть один-два «аккумулятора» и один-два «индексных» регистра); в-третьих, архитектура процессора БК позволяет использовать во всех командах любые регистры (включая указатель стека и счётчик команд) и любые способы адресации (а их набор намного шире, чем у таких 8-битных процессоров, как Z80 и КР580ВМ80А). В результате, несмотря на кажущуюся медлительность процессора (большое число тактов на команду), 16-битный К1801ВМ1 зачастую легко обходит 8-битные модели за счёт того, что для выполнения одних и тех же функций требует намного меньшего количества команд. К примеру, для копирования данных из одной области памяти в другую для К1801ВМ1 достаточно выполнять в цикле одну команду (скажем, MOV (R1)+,(R2)+), причём копируется сразу по 2 байта; а для процессора КР580ВМ80А (примерно аналогично и у 6502) в стандартном случае (без использования стековых операций) требуется циклическое выполнение уже 4-х команд (скажем, MOV A,M/STAX D/INX H/INX D), которые копируют лишь по одному байту. При этом максимальная скорость копирования у БК-0010 составляет 150 тысяч байт в секунду (без учёта затрат времени на команды организации циклов), а, например у «Вектора-06Ц» (имеющего такую же тактовую частоту, как у БК – 3 МГц) – всего 93 тыс. байт/с. И это при том, что «Вектор» имеет втрое более высокий показатель максимального быстродействия, чем БК-0010 – 750 тыс. операций в секунду против 250 тысяч. Похожая ситуация и с другими типичными задачами – сдвигом областей памяти, поиске совпадений, наложении данных логическими операциями и т.д. – везде вместо одной команды у БК на 8-битных процессорах требуется исполнение до 8 команд.

    Убедиться в преимуществах 16-битной архитектуры позволяет самая простая версия вильнюсского Бейсика, предназначенная для загрузки с магнитофона в ОЗУ БК-0010 (её объем – всего 9 килобайт). Этот Бейсик не поддерживает двойную точность вычислений и работает с вещественными числами в разы быстрее обычного 24-килобайтного Бейсика в ПЗУ БК-0010-01, показывая результаты, близкие к стандартному Бейсику УКНЦ! Причём эти Бейсики (9-килобайтный «вильнюсский» на БК и 27-30-килобайтный «вильнюсский» на УКНЦ) имеют совершенно одинаковую точность вычислений, что явно указывает на то, что в них использованы одинаковые алгоритмы вычислений с плавающей точкой (тем более, учитывая, что у них одни и те же авторы из Вильнюсского госуниверситета). Поэтому есть все основания считать, что БК был очень близок по скорости к быстрейшему из недорогих ПК 80-х – УКНЦ. Как видно из таблицы, в тестах «полукомпиляторов» БК -0010 отстаёт от УКНЦ по общему среднему результату (тесты ВМ1-ВМ8) всего на 25%, а по тестам ВМ1-ВМ7 – всего на 17%. А ближайшего иностранного ПК – очень быстрого ABC 800, имеющего очень эффективный «полукомпилятор» Бейсика, БК опережает на 16% (ВМ1–ВМ8) либо на 45% (ВМ1-ВМ7).

    То есть, в общем-то, мы вполне можем сделать вывод: БК-0010 опережал средний уровень 8-битных ПК по скорости работы сложных программ (вроде трансляторов Бейсика) в 2 с лишним раза! А самых быстрых 8-битных на основе процессора Z80 – примерно на 30%. При этом, надо заметить, что при выполнении многих простых программ в машинных кодах, особенно не требующих использования многоразрядных (более 8 бит) чисел, БК мог и уступать типичным 8-битным компьютерам, поскольку на таких программах преимущества 16-битной архитектуры и большой набор методов адресации могли быть просто не востребованы.

    Кстати, ещё несколько слов о «странном» 24-килобайтном Бейсике БК-0010-01. По среднему показателю в тестах ВМ1-ВМ8 он действительно оказался ближе к концу рейтинга, немного уступая MSX (SVI-328) и заметно опережая ZX Spectrum. При этом хорошо видно, что «тянет вниз» его в основном тест ВМ8 (вычисление сложных функций), а остальные выполняются очень быстро (средний показатель ВМ1-ВМ7 – на уровне самых быстрых 8-битных ПК). Причиной такой низкой скорости этого Бейсика является очень странный способ работы с вещественными числами: поскольку он поддерживает не только целые числа и числа с плавающей запятой одинарной точности (4 байта), но и числа с двойной точностью (8 байт), для упрощения транслятора все вычисления над всеми вещественными числами (не только 8-байтными, но и 4-байтными!) производятся одними и теми же процедурами двойной точности; при этом числа одинарной точности приходится ещё предварительно преобразовывать в числа двойной точности, а после совершения арифметической операции или вычисления функции делать обратное преобразование (из двойной точности в одинарную). Понятно, что числа двойной точности обрабатываются гораздо медленнее, чем одинарной (требуется примерно вдвое большее количество сложений, умножений и т.д.), поэтому и скорость работы с вещественными числами у этой версии вильнюсского Бейсика намного ниже, чем у трансляторов, работающих только с числами одинарной точности или имеющих раздельные процедуры вычислений для чисел одинарной и двойной точности. Аналогичную неприятную особенность имеют и компьютеры MSX (SVI-328), что также сильно снижает их показатели. У стандартного Бейсика БК-0010-01 есть и ещё один недостаток – он не только медленно работает с вещественными числами в целом, но и особо медленно вычисляет сложные функции (логарифмические и тригонометрические), поэтому тест ВМ8 резко снижает его общий средний показатель. С другой стороны, такие ПК, как БК-0010-01 и MSX имеют и большое достоинство – чрезвычайно высокую точность вычислений в режиме двойной точности (17 знаков), что позволяет использовать их для весьма сложных и серьёзных расчётов (ошибка вычислений будет минимальна даже при длинной цепочке операций или большом количестве повторений цикла). И надо заметить, что трансляторы, поддерживающие только одинарную точность (а таких, пожалуй, большинство среди 8-битных ПК, они имеют точность 6-7 знаков) или «упрощённую» двойную точность (как у «Корвета», 7-8 знаков для сложных функций), во многих случаях дают огромную ошибку в вычислениях, неприемлемую на практике (а вот средний вариант, с 40-битными числами, использовавшийся во многих зарубежных ПК очень интересен - он и достаточно быстр, и точность на хорошем уровне - 9 знаков).
    [свернуть]
    Последний раз редактировалось vladtru; 03.11.2015 в 08:48.

  4. #3

    Регистрация
    20.05.2013
    Адрес
    г. Ейск
    Сообщений
    197
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    15
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ZX Spectrum

    Скрытый текст

    Очень низкая скорость работы «родного» Бейсика «Спектрума» (а по среднему показателю в тестах ВМ1-ВМ8 он уступает близкому по мощности процессора Amstrad CPC «всего лишь» в 4 раза) всегда объяснялась примерно так. В 1980 году фирма Синклера выпустила очень дешёвый компьютер ZX80, в котором решила максимально сэкономить на всём, в том числе и на объеме ПЗУ – он был всего 4 килобайта (а ОЗУ – всего 1 (ОДИН!) Кб). Соответственно, разработчики Бейсика для ZX80 были просто вынуждены любой ценой «запихивать» интерпретатор в эти несколько килобайт, пожертвовав всем, чем можно, в том числе и скоростью работы. Естественно, у «гениальных» программистов, нанятых Синклером, в такой объём не поместилась и арифметика с плавающей запятой, поэтому ZX80 мог работать только с целыми числами (что автоматически делало его практически непригодным для любого мало-мальски серьёзного применения, поскольку он не мог заменить даже простейший калькулятор). Тут надо заметить, что, к примеру, первый интерпретатор Бейсика от «Майкрософт», написанный в 1975 году для компьютера «Альтаир» с участием самого Билла Гейтса, тоже занимал всего 4 Кбайта, но, тем не менее, поддерживал вычисления с плавающей запятой и даже умел находить квадратные корни и синусы. Через год Синклер выпустил ещё один сверхдешёвый «шедевр» – ZX81, отличавшийся от предшественника невероятно щедрым подарком для пользователей – объём ПЗУ увеличили аж до 8 килобайт, добавив в основном вполне стандартную для всех остальных производителей возможность работы с вещественными числами и числовыми функциями (типа тригонометрических). Ну а ещё через год случилось подлинное чудо – Синклер выпустил компьютер, имевший целых 16 килобайт ПЗУ и умопомрачительные 16 килобайт ОЗУ (а в более дорогом варианте – вообще 48 килобайт!). И это ещё не всё – новый супер-ПК (а речь идёт, конечно, о нашем ZX Spectrum) имел даже поддержку графики, и не просто графики, а цветной! (ZX80 и ZX81, как вы понимаете, работали только с текстом, поскольку о какой графике может идти речь при штатном объеме ОЗУ в 1 килобайт). Вот только Бейсик у «Спектра», само собой, в целях экономии сильно переделывать не стали – взяли ПЗУ от ZX81, добавили простейшие функции для работы с графикой и ещё чего-то (а часть 16-килобатного ПЗУ осталась вообще незадействованной!) и получили в результате тот самый, мягко говоря, «задумчивый» Бейсик, о котором и идёт речь сейчас.

    Всё это вполне похоже на правду (известно, что самого Клайва Синклера компьютеры интересовали мало, и самой главной «функцией» ПК для него была его минимальная себестоимость), но есть в этой истории два загадочных момента. Первое: сам прототип, на «тормознутость» которого обычно «переводят стрелки» поклонники «Спектрума», ZX80, вовсе не отличается особой медлительностью: он выполняет тесты ВМ1-ВМ7 (а ВМ8 для него вообще недоступен по причине отсутствия поддержки сложных функций) в 2 с лишним раза быстрее «Спектрума», показывая результаты чуть ли не на уровне IBM PC. Второе: непонятно, что помешало разработчикам Бейсика для ZX81 реализовать хотя бы среднюю по скорости арифметику с плавающей запятой, имея для этого порядка 3 килобайт памяти (чего должно быть достаточно) и, очевидно, зная о скорости работы других подобных по мощности процессора компьютеров (например, Acorn Atom и Apple II+). Впрочем, поскольку речь шла о разработке Бейсика для самого дешёвого ПК, и на «модернизацию» Бейсика ZX80 выделялись самые минимальные средства, вполне возможно, что программисты просто не стали напрягаться и использовали первые попавшиеся алгоритмы или библиотеки подпрограмм. Тем более что уместить по-настоящему хороший Бейсик в 8 Кбайт ОЗУ, действительно, было непросто (объём ПЗУ у большинства ПК тех лет был не менее 16 Кбайт, достигая в середине 80-х 32-64 килобайт). Ну и в оправдание создателей ZX Spectrum можно напомнить, что этот ПК всё же имел не самый медленный Бейсик: по среднему показателю всех тестов ему уступают и очень популярные 8-битные Atari (имеющие к тому же более быстрый процессор) и даже TI-99/4A, оснащённый 16-битным процессором. А учитывая чисто игровую направленность «Спектрума», придираться к его Бейсику и вовсе нет смысла – в подавляющем большинстве случаев Бейсик был нужен только для загрузки и запуска игр и программ в машинных кодах, и скорость работы самого Бейсика не имела никакого значения.

    Если же рассматривать конкретные причины низких показателей «Спектрума» в этих тестах, то их в основном две: чрезвычайно низкая скорость циклов FOR/NEXT (в тесте ВМ1 он отстаёт от большинства 8-битных ПК в 3-4 раза, а от BBC Micro – в 8 раз!), которая сильно снижает показатели ВМ1, ВМ6 и ВМ7 (и, естественно, средний показатель тоже), а также весьма неторопливая вещественная арифметика, особенно вычисление стандартных функций (в тесте ВМ8 отставание от похожего по скорости процессора ПК Amstrad CPC – в 7,5 раз, причём оба ПК имеют одинаковую длину чисел с плавающей запятой (40 бит) и одинаковую точность вычислений).

    Таким образом, для радикального ускорения работы Бейсика разработчикам ZX Spectrum, в общем-то, достаточно было просто исправить явный «косяк» с циклами FOR/NEXT и увеличить скорость вычисления сложных функций (логарифмов, синусов и т.п.), использовав какие-то более быстрые алгоритмы (а резерв в этом направлении хорошо показывает Бейсик Amstrad CPC). Тем более, увеличенный в 2 раза (до 16 Кбайт) объем ПЗУ вполне это позволял. Но, к сожалению, ничего этого сделано не было – как мы видим, по скорости выполнения всех тестов Бейсик «Спектрума» совершенно аналогичен Бейсику ZX81, только примерно на 20% медленнее (очевидно, из-за торможения процессора видеоконтроллером). При этом, если ZX80 и ZX81 действительно были сверхдешёвыми ПК, и им многое можно было простить (и Бейсик, и клавиатуру, и проблемы с выводом на экран, и ОЗУ объёмом 1 Кбайт), то «Спектрум» уже стоил значительно дороже и претендовал на роль настоящего домашнего ПК. Но подход его производителя остался прежним: простейшая клавиатура, кое-как «слепленный» Бейсик, минимальный набор разъёмов и т.д.
    [свернуть]
    Последний раз редактировалось vladtru; 31.10.2015 в 23:45.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Отечественные компьютеры: Разное.
    от KALDYH в разделе Разное
    Ответов: 172
    Последнее: 26.11.2025, 02:28
  2. Ответов: 674
    Последнее: 18.11.2024, 15:27
  3. Раздел про отечественные компьютеры
    от CityAceE в разделе Форум
    Ответов: 47
    Последнее: 22.02.2012, 01:31
  4. Ответов: 59
    Последнее: 02.05.2011, 01:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •