Важная информация

User Tag List

Страница 1 из 26 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 257

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

  1. #1
    Member
    Регистрация
    19.05.2013
    Адрес
    г. Ейск
    Сообщений
    180
    Благодарностей: 83
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

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

    Уважаемые форумчане, имеющие доступ к реальным советским ПК 80-х годов, если будет время, измерьте, пожалуйста, скорость выполнения на ваших ПК известных тестов на Бейсике, применявшихся в 80-е годы для сравнения быстродействия тогдашних зарубежных ПК. Эти результаты есть для множества иностранных ПК начала-середины 80-х, а вот для наших, к сожалению, почти нет.

    Сразу скажу, что проведённые мной тесты на эмуляторах показали довольно неожиданную картину: оказывается, на многих из наших ПК Бейсик работал ничуть не медленнее, чем на самых популярных зарубежных компьютерах аналогичного класса, хотя раньше всегда как-то считалось, что наши должны были отставать из-за более медленных процессоров (у них – Z80 с частотой 3,5-4 МГц или 6502 на 1-2 МГц, а у нас – почти поголовно КР580ВМ80А с частотой 1,78-3 МГц, в лучшем случае – К1801ВМ1 с частотой 3-4 МГц, но с эффективной частотой порядка 2 МГц). Посмотрите на таблицу – наши 8-битные ПК уверенно держатся на уровне MSX, Apple II, Commodore 64 т.д. и заметно опережают ZX Spectrum и Atari XL. А советские 16-битные и вовсе близки к уровню американских на процессоре 68000! Впрочем, все данные по нашим ПК (кроме УКНЦ) – с эмуляторов, что, конечно, не совсем солидно и может вызывать вопросы.

    Поэтому и нужны результаты на реальных ПК. И нужны данные с любых отечественных ПК тех лет: «Вектора-06Ц», ПК8000, «Ориона-128», «Специалиста», «Корвета», БК-0010/0011М, «Радио-86РК» и совместимых («Микроша», «Апогей», «Партнёр» и т.д.), «Львова ПК-01», недорогих IBM-совместимых («Поиска», «Ассистента» и т.д.), а также любых других ПК. Только есть просьба – указывать название Бейсика, использовавшегося для теста (особенно, если это не штатный Бейсик из ПЗУ).

    Эту тему я уже поднимал в разделе УКНЦ/ДВК (см. http://zx-pk.ru/showthread.php?t=25632), но очень важно иметь реальные результаты и для других ПК, кроме УКНЦ.

    Огромное спасибо участникам hobot, form, MM, nzeemin, Titus и другим, принявшим активное участие в обсуждении темы о реальной скорости работы УКНЦ. Теперь у нас гораздо больше информации о реальном быстродействии и возможностях не только УКНЦ, но и БК-0010/0011М и даже PDP-11/83 .

    Текущие результаты для разных ПК и ЭВМ 80-х годов в секундах (чем меньше, тем быстрее), все показатели даны для 1000 повторений, на всех ПК используются самые стандартные версии Бейсика (т.е. из ПЗУ или из комплекта ПК на кассетах, дискетах и т.п.):



    Более новый вариант (04-02-2016) в другом виде

    https://docs.google.com/spreadsheets...it?usp=sharing

    Если не работает сортировка по столбцам, нажмите в верхнем горизонтальном меню Данные -> Фильтры… -> Фильтр 1.

    Ещё одна табличка — основные параметры разных ПК 80-х (однако, пока далеко не в законченном виде): https://docs.google.com/spreadsheets...it?usp=sharing. Она даёт неплохую картину того, какие ПК разрабатывались и выпускались в разных странах с 1979 до 1989 год.

    ---------- Post added at 00:28 ---------- Previous post was at 00:26 ----------

    Вот сами тесты ВМ1-ВМ8
    (стандартное число повторений каждого – 1000 раз, но для слишком быстрых тестов желательно увеличить число итераций до 3000 и более, чтобы не терялась точность при ручном измерении секундомером; вообще, можно указывать любое удобное число повторений (только желательно, чтобы тест выполнялся несколько десятков секунд опять же для сохранения приемлемой точности измерений), но результаты обязательно нужно привести для 1000 повторений, чтобы не было путаницы).

    В тестах используются только самые распространенные операторы и функции Бейсика, которые есть практически у всех ПК.

    Измерять время нужно между выводом надписей START и STOP (поскольку некоторые Бейсики имеют заметную задержку между подачей команды RUN и началом выполнения программы). Для измерений лучше, конечно, использовать какой-то секундомер (в часах, в телефоне, смартфоне, на планшете и т.д.), а не просто часы.

    Для ускорения ввода программ каждый тест приведён в виде отличий от предыдущего теста (заново набирается только ВМ8).

    BASIC Benchmark
    Benchmark from Personal Computer World (впервые предложенные американским журналом Kilobaud Magazine), who included the 8th trigonometric test.

    The benchmarks are written in Basic.
    Add or replace lines as specified, or start from scratch when (new) is written:

    BENCHMARK 1 (new)

    110 PRINT "START"
    120 FOR K=1 TO 30000
    130 NEXT K
    500 PRINT "STOP"
    550 STOP


    BENCHMARK 2

    120 K=0
    130 K=K+1
    190 IF K<3000 THEN GOTO 130


    BENCHMARK 3

    140 A=K/K*K+K-K


    BENCHMARK 4

    140 A=K/2*3+4-5


    BENCHMARK 5

    150 GOSUB 600
    600 RETURN


    BENCHMARK 6

    125 DIM M(5)
    155 FOR L=1 TO 5
    160 NEXT L


    BENCHMARK 7

    157 M(L)=A


    BENCHMARK 8 (new)

    110 PRINT "START"
    120 K=0
    130 K=K+1
    140 A=K^2
    150 B=LOG(K)
    160 C=SIN(K)
    170 IF K<1000 THEN GOTO 130
    180 PRINT "STOP"
    190 STOP

    ---------- Post added at 00:37 ---------- Previous post was at 00:28 ----------

    Комментарии к тестам ВМ1-ВМ8

    Общие замечания.

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

    Безусловно, тесты ВМ1-ВМ8, использовавшиеся для тестирования скорости ПК (точнее, трансляторов Бейсика разных ПК) ещё в конце 70-х–начале 80-х годов, далеко не идеальны и имеют немало недостатков: слишком короткие и простые программы, слишком простые имена переменных и простые числовые константы, достаточно узкий набор тестируемых операторов и функций (в том числе не измеряется скорость работы с внешней памятью, скорость вывода текста и графики) и т.д. Тем не менее, эти тесты очень неплохо показывают скорость работы основных вычислительных конструкций Бейсика – циклов FOR и IF, увеличения на единицу, основных арифметических операций, обработки массивов, вычисления сложных стандартных функций и др., т.е., в общем-то, прекрасно охватывают большинство основных задач, решаемых средствами Бейсика – а это, как правило, простые программы для вычислений, обучения, игр и т.д.

    Есть у этих тестов и некоторые неявные свойства: например, в них используются числовые константы внутри циклов, хотя более правильно было бы вынести их за пределы циклов, чтобы более объективно сравнивать скорость разных ПК, имеющих довольно большие отличия в скорости распознавания (преобразования во внутренний формат) чисел; в том числе какие-то версии Бейсика могут использовать предварительное (сразу после ввода строки) преобразование числовых констант из текстового вида во внутренний (непосредственно используемый процедурами вычислений с плавающей запятой), как это делает, скажем, Бейсик Amstrad CPC (и это отчасти объясняет столь высокую скорость его работы, хотя, наверное, ещё больше влияют на его скорость очень эффективные алгоритмы вычислений с плавающей запятой, особенно нахождения сложных функций). Вынесение констант за пределы циклов также позволило бы более объективно сравнивать результаты, полученные на интерпретаторах и полукомпиляторах, уменьшив разрыв в скорости между ними.

    Другое неявное свойство этих тестов – их малая пригодность для оценки скорости работы с целочисленными переменными и константами, поскольку в тестах ВМ3-ВМ7 используется операция деления, которая в подавляющем большинстве трансляторов Бейсика реализуется только процедурой с плавающей запятой (даже при использовании целочисленных аргументов), что резко уменьшает скорость выполнения тестов ВМ3-ВМ7 с целочисленными аргументами, и это прекрасно видно в таблице (см. результаты Amstrad CPC, «Корвета» и БК-0010-01). Тест ВМ8, естественно, также выполняется с плавающей запятой при любом типе аргументов. То есть для сравнения скорости целочисленных вычислений фактически пригодны только самые простейшие тесты ВМ1 и ВМ2, не содержащие команд деления и вычисления сложных функций.

    Как видно из таблицы, скорость вычисления сложных функций (возведение в квадрат (обычно делается с использованием логарифмов), логарифма и синуса – тест ВМ8) у схожих по мощности процессоров моделей ПК может отличаться очень сильно – до 12 раз! Поэтому общий средний показатель по тестам ВМ1-ВМ8 не всегда объективно показывает разницу между ПК, и в таблице приведён также средний показатель по тестам ВМ1-ВМ7, лучше показывающий соотношение скоростей в случае, когда сложные функции не используются или используются мало (по этому среднему показателю различия между большинством ПК не превышают 3-х раз).
    [свернуть]
    Последний раз редактировалось vladtru; 08.04.2016 в 14:20.

  2. Эти 2 пользователя(ей) поблагодарили vladtru за это полезное сообщение:
    litwr (13.11.2015), Бука (16.11.2015)

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

  4. #2
    Member
    Регистрация
    19.05.2013
    Адрес
    г. Ейск
    Сообщений
    180
    Благодарностей: 83
    Записей в дневнике
    1
    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) был оснащён даже специальным ускорителем для вычислений с плавающей запятой, которого у БК и УКНЦ, естественно, не было).
    [свернуть]

  5. Эти 2 пользователя(ей) поблагодарили vladtru за это полезное сообщение:
    AzAtom (09.08.2016), litwr (20.11.2015)

  6. #3
    Member
    Регистрация
    19.05.2013
    Адрес
    г. Ейск
    Сообщений
    180
    Благодарностей: 83
    Записей в дневнике
    1
    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.

  7. Этот пользователь поблагодарил vladtru за это полезное сообщение:
    AzAtom (09.08.2016)

  8. #4
    Member
    Регистрация
    19.05.2013
    Адрес
    г. Ейск
    Сообщений
    180
    Благодарностей: 83
    Записей в дневнике
    1
    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.

  9. Эти 2 пользователя(ей) поблагодарили vladtru за это полезное сообщение:
    AzAtom (09.08.2016), Бука (16.11.2015)

  10. #5
    Veteran
    Регистрация
    30.08.2005
    Адрес
    Питер
    Сообщений
    1,011
    Благодарностей: 169
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Чтобы правильно сравнивать скорость надо иметь одинаковые Бейсики с одинаковой точностью и одинаковой реализацией.
    Собираю в коллекцию советские калькуляторы и компьютеры.
    Мой сайт: http://www.leningrad.su/museum/

  11. #6
    Guru Аватар для hobot
    Регистрация
    29.08.2011
    Адрес
    Зеленоград
    Сообщений
    4,936
    Благодарностей: 1142
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergei Frolov Посмотреть сообщение
    Чтобы правильно сравнивать скорость надо иметь одинаковые Бейсики с одинаковой точностью и одинаковой реализацией.
    Здесь объединяющую роль берут на себя сами бенчмарки + реализации бейсиков
    достаточно близки в принципе (назовём это - "сходны"), ещё детальнее бейсик11 для прогона тестов на
    живой УК-НЦ как и сами тесты были адаптированы [form]'ом (см. соотв. тему), если эти бенчмарки
    считались неким показателем в прошлом, что мешает просто прогнать их на живом железе и дать vladtru результат? ) Или предложите более правильные бенчмарки для абсолютно несовместимых платформ?
    Последний раз редактировалось hobot; 31.10.2015 в 17:32.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  12. #7
    Member
    Регистрация
    19.05.2013
    Адрес
    г. Ейск
    Сообщений
    180
    Благодарностей: 83
    Записей в дневнике
    1
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sergei Frolov Посмотреть сообщение
    Чтобы правильно сравнивать скорость надо иметь одинаковые Бейсики с одинаковой точностью и одинаковой реализацией.
    Вообще-то, речь вовсе не идёт о том, что результаты этих тестов дают точное соотношение скоростей самих ПК. Конечно, формально можно говорить только о соотношении скоростей конкретных Бейсиков на этих ПК. Но, тем не менее, эти результаты очень показательны и неплохо позволяют сравнить скорость и разных ПК, и разных процессоров (и напоминаю, что сравниваются самые основные для каждого ПК версии Бейсика, а не какие-то редкие варианты). Например, при достаточно большом количестве результатов для разных ПК (а их, кстати, гораздо больше, чем приведено в таблице) можно определить средний уровень скорости для каждого типа процессора (скажем, на единицу тактовой частоты), и этот показатель будет вполне достоверен - ведь он будет вычислен на основе реальных популярных моделей ПК.

    Либо есть другой вариант – взять скорость самых быстрых ПК (на единицу «эффективной» тактовой частоты) на основе каждого процессора и считать именно её показателем реального быстродействия для всех ПК на этом процессоре (опять же с учётом эффективной тактовой частоты (с учётом торможения процессора) каждой модели ПК). Однако при этом надо как-то выяснить и каким-то образом учесть особенности интерпретаторов этих самых быстрых ПК – например, у того же лидера среди ПК на основе Z80 – Amstrad CPC – использована «хитрость» с предварительным преобразованием констант во внутренний формат, которая, конечно, влияет на скорость работы (возможно, тогда взять в качестве лидера не Амстрад, а МТХ-500 (его нет в таблице) или поискать и найти какой-то другой быстрый ПК на основе Z80; а можно попробовать пересчитать показатели Амстрада с учётом этой особенности его Бейсика).

    Так что эти тесты вполне позволяют сравнивать скорости не только Бейсиков, но и (с оговорками) самих ПК: я например в комментариях написал, что, если судить по скорости интерпретаторов Бейсика, УКНЦ превосходил по скорости средний уровень 8-битных ПК примерно в 3 раза (а все представленные 8-битные ПК, кстати, имеют достаточно близкую мощность процессора (с разбросом раза в 1,5), за исключением, пожалуй, BBC Micro), и это вполне значимый и достоверный результат, поскольку в таблице есть показатели аж для 18 восьмибитных ПК, среди которых все самые популярные модели: С64, Apple II, ZX Spectrum, VIC-20, MSX и т.д.

    Кстати, многие Бейсики не так уж сильно отличаются друг от друга: например, видно, что VIC-20, Apple II и Commodore 64 показывают очень близкие результаты (у них почти одинаковые процессоры с близкой частотой и, очевидно, очень близкие Бейсики). На многих советских 8-битных ПК Бейсики обычно также довольно похожи (их изначальная основа – ещё первые Бейсики от Майкрософта), а на БК и УКНЦ есть вообще практически одинаковые по применяемым алгоритмам версии (Бейсик-11 и вильнюсский Бейсик).

    А вообще, ваша мысль об одинаковых Бейсиках очень интересная – такие Бейсики для некоторых типов ПК есть! Например, для моделей, поддерживающих CP/M (а это большинство нормальных ПК на основе Z80, КР580ВМ80А и т.п.) можно сравнивать стандартный майкрософтовский Бейсик для CP/M (я, правда, не уверен, есть ли он для 8080, поскольку помню его только для Z80, но вроде должен быть). А для PDP-11-совместимых прекрасно подойдёт всё тот же Basic-11/RT-11 (у него, однако, есть несколько вариантов для разных типов процессоров). Правда, это несколько усложняет задачу – для запуска этих Бейсиков надо обязательно иметь дисковод. Но если у кого-то будет возможность проверить на своих ПК стандартный Бейсик для CP/M или Бейсик-11, то эти результаты были бы очень интересны! Они, действительно, позволили бы достаточно достоверно сравнить скорость соответствующих ПК.
    Возможно, и для ПК на основе семейства 6502 есть какие-то общие Бейсики – тут я совсем не в курсе. Кстати, как я уже упоминал, по крайней мере у Apple II и С64 (а также VIC-20) Бейсики в основе своей практически одинаковые, а эти ПК – самые массовые на базе 6502 (наряду с Атари). Так что, если подобный Бейсик (насколько я понимаю, от Майкрософт) есть и на Атари, то можно считать, что общий Бейсик для 6502 мы нашли.

    Ещё хочу добавить, что, насколько я помню, на основных ПК с процессором 6809 (a это, прежде всего, Tandy CoCo разных модификаций (см. Dragon 32)) тоже использовался Бейсик от Майкрософт, и, судя по результатам тестов, этот Бейсик совершенно аналогичен Бейсику С64, Apple II и VIC-20. Так что, как ни странно, вполне может быть, что на всех основных семействах ПК можно найти почти одинаковые Бейсики . Во всяком случае, происхождение у большинства стандартных Бейсиков одно - от Майкрософт.

    Может быть, кто-то прояснит нам ситуацию с Бейсиками для CP/M – как они называются, чем отличаются, есть ли версия для процессора 8080? А также, есть ли подобные Бейсики для ПК на основе 6502?
    Последний раз редактировалось vladtru; 31.10.2015 в 20:16.

  13. #8
    Master Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    778
    Благодарностей: 311
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Использовал для тестов своей поделки программу из приложения к журналу "Информатика и образование", выпуск января 1993 года, стр. 125-128 (скачать можно тут, http://vk.com/doc-72949118_387237081 ). Поделка показала время 44 секунды, что на две секунды быстрее Второяблока (по таблице в статье). Указанные выше тесты являются кусочками из этой программы,.. теперь не знаю, как тестировать заново... Может, остановиться на полном варианте? Насколько "кусочные" бенчмарки интереснее?

    А может под Бейсик есть что-то типа вычисления числа Пи (как обычно сейчас используют)?

    ЗЫ. Про историю Бейсиков под 6502 ( и для 6809 думаю тоже), читаем тут, http://www.pagetable.com/?p=46
    Последний раз редактировалось rw6hrm; 31.10.2015 в 20:46.

  14. Эти 2 пользователя(ей) поблагодарили rw6hrm за это полезное сообщение:
    hobot (31.10.2015), vladtru (31.10.2015)

  15. #9
    Guru Аватар для hobot
    Регистрация
    29.08.2011
    Адрес
    Зеленоград
    Сообщений
    4,936
    Благодарностей: 1142
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb

    Цитата Сообщение от vladtru Посмотреть сообщение
    о всяком случае, происхождение у большинства стандартных Бейсиков одно - от Майкрософт.

    offtop


    Я бы только уточнил, что вряд ли указанная в копирайте компания
    является подлинным разработчиком Бейсика, думаю исторически это
    не так. Теорией вероятностей
    локальной структуры пространства-времени
    пользовались и до Эйнштейна и после него.

    http://www.linuxfocus.org/Russian/Ja...ml#277lfindex2
    [свернуть]
    Последний раз редактировалось hobot; 31.10.2015 в 21:59.
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  16. #10
    Master Аватар для rw6hrm
    Регистрация
    10.07.2005
    Адрес
    Ставрополь
    Сообщений
    778
    Благодарностей: 311
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    указанная в копирайте компания
    Тут уже зависело от того, кто и в каком виде сделал свою поделку, интертрепатора или компилятора...

  17. Этот пользователь поблагодарил rw6hrm за это полезное сообщение:
    hobot (31.10.2015)

Страница 1 из 26 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 588
    Последнее: 10.11.2018, 22:31
  2. Отечественные компьютеры: Разное.
    от KALDYH в разделе Разное
    Ответов: 140
    Последнее: 25.06.2018, 06:02
  3. Раздел про отечественные компьютеры
    от CityAceE в разделе Форум
    Ответов: 47
    Последнее: 22.02.2012, 00:31
  4. Ответов: 59
    Последнее: 01.05.2011, 23:35

Ваши права

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