User Tag List

Страница 14 из 19 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя
Показано с 131 по 140 из 189

Тема: Сравнение скорости копирования ОЗУ разными камнями и ЭВМ

  1. #131

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Не ведаю точно , надо смотреть коды операций и разбираться.
    Я их тебе все расписал
    И - ты путаешь команды условного перехода и команды Cxx/Sxx вот там действительно битовая маска - какие флаги сбросить или установаить

  2. #132

    Регистрация
    18.03.2011
    Адрес
    Воронеж
    Сообщений
    558
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    вижу тут много спецов по PDP-11 собралось, поэтому напишу не в тему : не знаю как кому, а мне неинтересен сам тест скорости копирования памяти, т.к. сама скорость памяти вещь не конкретная при одинаковых процессорах PDP-11. Да и применений компьютеров много разных и далеко не всегда это так важно. Тем более еще менее интересна скорость вычисления пи. А вот по-быстрому определить быстродействие процессора и сравнить его с другими - хочется.
    При этом часто - нет возможности запустить тест в операционной системе и задействовать прерывания от таймера. Вот и хочется иметь тестик, который можно быстро набить в пульте и засекая секундомером за сколько секунд он выполняется определять быстродействие. Тест для удобства должен иметь минимум команд, выполняться достаточно долго - удобно и более-менее точно - секунд 10...20 на процессорах средней производительности. Что касается конкретной команды которой циклически тестировать, то что бы не задумываться о статистике наиболее часто используемых, да еще и в разных сферах применения - взять самую короткую по времени исполнения и что бы она имелась для всех процессоров - наверное это пересылка регистр - регистр (или сумма - забыл какая из них быстрее выполняется). Чтобы как-то минимизировать влияние скорости работы памяти нужно как-то попробовать свести к минимому обращение к памяти по-возможности. Думаю что это будет 177777 циклов по 177777 циклов (или один из циклов по-короче - надо пробовать практически по комфортному для засекания времени исполнения). Кажется, что задача тривиальна, но если сильно стараться и применить всякие "трюки", то, может будет кому-то интересна. А мне пойдет любой вариант (но хотелось бы - лучший).
    Последний раз редактировалось ra3qdp; 25.05.2023 в 08:21.

  3. #133

    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    710
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    41 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Там, как я понял, команды подстроены под логику в процессоре первых PDP-11(или наоборот, логика под команды???)...
    С командами Cxx/Sxx всё просто. Там тупо флаги в теле команды. А с командами переходов условных, там хитрее... Там есть ещё функции взаимодействия по условиям с флагами. И в той книге была таблица этих недокументированных команд.
    Но читал я эту книгу давно, библиотечная, что помню - издательство "Мир", год издания и автора не помню. Название что-то вроде: "Введение в архитектуру миниЭВМ PDP-11"" А вот про команды запомнил
    Точнее я там много чего запомнил. Там многие вещи на пальцах объяснялись. И мне многое стало понятнее по прочтении
    Я так понимаю, что книга для американских студиосов написана.

    - - - Добавлено - - -

    У достопочтимого
    Hunta, были версии программы по измерению быстродействия, в том числе и для CIS на F11(1811). Чего более ни у кого нет
    С ним можно договориться Главное, чтобы ему это интересно было. Если интересно будет, то он горы свернёт.

  4. #134

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    А с командами переходов условных, там хитрее...
    Я расписал все условия - https://zx-pk.ru/threads/30199-sravn...=1#post1179145

    Цитата Сообщение от Alex Посмотреть сообщение
    Там есть ещё функции взаимодействия по условиям с флагами. И в той книге была таблица этих недокументированных команд.
    Вот ОЧЕНЬ сильно сомневаюсь, что хоть на какой-то модели это есть. Могу только предположить, что, ВОЗМОЖНО, в книге рассматривалось МИКРОПРОГРАММИРОВАНИЕ (та же LSI-11 М1/М2 или, скажем, PDP-11/60 это позволяет) и показывалось - КАК это можно сделать. Но что бы это где-то существовало.. Ссылку в студию.


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

    - - - Добавлено - - -

    Цитата Сообщение от Hunta Посмотреть сообщение
    они
    Точнее говоря - программа одна, но есть подварианты, скажем - только BR . и MOV R0,R1 (если мне не изменяет память насчёт второй)
    Ну и есть подвариант под J-11 с кэшем - сделано так, что бы уместиться в кэш
    Но основной исходник один.
    Правда, я его слегка сломал, пытаясь сделать под Э85 и руки никак не доходят починить

  5. #135

    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    710
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    41 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Исходник не могу
    Дело очень давнее, я тогда студентом ещё был...

    В ней я в первый раз прочитал, что на разных моделях в режимах -(R...) и (R...)+ инкремент и декремент на разных моделях обрабатываются в разные моменты выполнения команды, в итоге результат двуадресной команды типа
    MOV -(R0),-(R0) на разных моделях мог быть сильно разным ... Хотя DEC и прописала, что и как работать должно, но вот сама же и нарушала свой стандарт
    К счастью сее было несмертельно...

    Про микропрограммы там не упоминалось
    Про изменение микропрограммы процессора, я вычитал уже в книжке про VAX. Там в качестве примера упоминалась микропрограмма вычисления какого-то хитрого полинома. Один операнд указатель на массив памяти, второй операнд на результат. Но ни текста, ни как её замикропрограммировать не объяснялось
    Хотя было бы прикольно сравнить скорость исполнения программы с скоростью микропрограммы
    Про то, что так можно на некоторых моделях PDP-11 узнал сильно позже
    Но по факту с изменением микропрограммы процессора никогда не сталкивался.
    В теории вроде понятно, что LSI-11 М1/М2, и процессоры на секционных комплектах(например 1804) читал в однотомнике про микропроцессорные комплекты, потом вышел уже в двух томах, чуть более мутно представляю F11, так там не просто ROM, там ROM+PGA в одном флаконе...
    Последний раз редактировалось Alex; 25.05.2023 в 11:23.

  6. #136

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Исходник не могу
    В общем, пока КРАЙНЕ сомнительно.

    Цитата Сообщение от Alex Посмотреть сообщение
    на разных моделях в режимах -(R...) и (R...)+ инкремент и декремент на разных моделях обрабатываются в разные моменты выполнения команды
    Это известно, учитывается и в PDP-2011 и, естествнно, в PDP-11X. Единственное но - проверяется это тестами и если какой-то тест для какой-то модели особенность поведения не проверяет и/или не учитвает.. PDP-11X может и ошибаться - по таблицам, где описаны отличия моделй процов я не всё проверял.

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

  8. #137

    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    710
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    41 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    За что купил, за то и продаю

    По поводу особенностей - DEC сама нарушила принцип ортогональности
    то есть регистры ведут себя сильно по разному

    С одной стороны MOV (PC)+, (PC)+ здесь всегда всё хорошо, иначе большая часть программ работать не будет
    с другой MOV (R0)+,(R0)+ тут возможно западло ... А если ещё MOV -(R0),-(R0) ...
    Но к счастью большая часть народа в курсе, и ничего такого не пишет Либо если пишут, то проверяют отладчиком ...

  9. #138

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Подробнее про выигрыш от стековых операций 8080 при копировании

    Цитата Сообщение от litwr Посмотреть сообщение
    В итоге сомнительно, что и 5% прибавки к скорости получится в итоге.
    Я приводил фрагменты кода для 8080 и могу расписать пару примеров для него:
    Дополнительные действия в прерывании, связанные с методом Медноногова занимают в районе 146 тактов, пусть даже возьмем с запасом 200, это не принципиально. Пусть частота процессора 2.5 МГц.
    При кадровых прерываниях с частотой 50 Гц длительность кадра 2.5e6/50=50000 тактов.
    200/50000=0.0040 или 0.4% накладные расходы связанные с методом Медноногова. Посмотрим как это сказывается на выигрыше от стековой пересылки. Если берем развернутые циклы, то без стека 24 такта/байт, стеком - 17 тактов/байт.
    1. Если пересылки исходно занимают хотя бы половину прерывания (для пересылок графики в современной насыщенной динамичной игре это даже мало), то при 24 тактах на байт 25000/24=1041 байт.
    При 17 тактах/байт 1041*17=17697 тактов.
    Итого: 25000-17697-200=7103 тактов чистого выигрыша/кадр при использовании метода Медноногова в описанных условиях.
    7103/50000=0.1421= округлю в меньшую сторону 14.2%
    2. Аналогично можно посчитать менее напряженный вариант, когда пересылки занимают 1/10 прерывания.
    Сразу итог: 1264/50000=0.0253= округлю в меньшую сторону 2.5%

    Можно дальше уменьшать число пересылаемых байт и в районе 30 байт на прерывание вариант без стека станет выгоднее. Но при таком незначительном количестве пересылок речь уже идет не о скорости, а о занимаем месте (значит никаких развернутых циклов) и об удобстве использования. Т.е. это предмет для обсуждения в другой ветке.
    [свернуть]

  10. #139

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Чего хотеть - Архимед на ядре ARM , первый компьютер более-менее массовый...
    Но вот зараза, за рубежом он остался экзотикой.
    Так что не только СССР проморгал его...
    Архимедов было сравнительно мало не из-за качества техники, а из-за темных штучек глобального маркетинга, тесно связанного с политикой. Американцы сделали свои риски намного раньше британцев, уже к 1981 было не менее трех изделий. Одно потом стало POWER, другое после 30 лет выдержки RISC V, а третье даже немного использовалось в тени уже тогда. Однако, глобальный тренд был показывать лидерство IBM, продвигать x86, славить Вакса и тормозить сторонние инновации. Арм лишь ускорил неизбежные перемены. Хотя считаю, что ассемблер Арма был реально самым крутым среди всех процессоров. Когда столкнулся с Архимедом в начале 1991, это было очень сильное впечатление.

    - - - Добавлено - - -

    Цитата Сообщение от Alex Посмотреть сообщение
    С одной стороны MOV (PC)+, (PC)+ здесь всегда всё хорошо, иначе большая часть программ работать не будет
    с другой MOV (R0)+,(R0)+ тут возможно западло ... А если ещё MOV -(R0),-(R0) ...
    Но к счастью большая часть народа в курсе, и ничего такого не пишет Либо если пишут, то проверяют отладчиком ...
    Интересно, откуда взялась мнемоника SOB - это же ругательство? Может там менеджмент обидел кого из инженеров? Интересно, что даже такая базовая операция как XOR есть не на всех PDP-11. Вообще писать переносимые коды для всех PDP-11 штука непростая. Не уверен, что даже MOV (PC)+,(PC)+ везде работает одинаково.

    - - - Добавлено - - -

    Цитата Сообщение от ra3qdp Посмотреть сообщение
    а мне неинтересен сам тест скорости копирования памяти, т.к. сама скорость памяти вещь не конкретная при одинаковых процессорах PDP-11.
    Как это не учитывать скорость памяти? Это ключевой параметр. На Raspberry Pi регулировал скорость кэша, это заметно влияло на быстродействие. Конечно, можно делать тесты на регистровые расчеты, но тут разница будет сильно зависить от числа регистров и особенностей расчета и от скорости памяти всё равно будет зависимость.

    - - - Добавлено - - -

    Цитата Сообщение от ivagor Посмотреть сообщение

    Подробнее про выигрыш от стековых операций 8080 при копировании


    Я приводил фрагменты кода для 8080 и могу расписать пару примеров для него:
    Дополнительные действия в прерывании, связанные с методом Медноногова занимают в районе 146 тактов, пусть даже возьмем с запасом 200, это не принципиально. Пусть частота процессора 2.5 МГц.
    При кадровых прерываниях с частотой 50 Гц длительность кадра 2.5e6/50=50000 тактов.
    200/50000=0.0040 или 0.4% накладные расходы связанные с методом Медноногова. Посмотрим как это сказывается на выигрыше от стековой пересылки. Если берем развернутые циклы, то без стека 24 такта/байт, стеком - 17 тактов/байт.
    1. Если пересылки исходно занимают хотя бы половину прерывания (для пересылок графики в современной насыщенной динамичной игре это даже мало), то при 24 тактах на байт 25000/24=1041 байт.
    При 17 тактах/байт 1041*17=17697 тактов.
    Итого: 25000-17697-200=7103 тактов чистого выигрыша/кадр при использовании метода Медноногова в описанных условиях.
    7103/50000=0.1421= округлю в меньшую сторону 14.2%
    2. Аналогично можно посчитать менее напряженный вариант, когда пересылки занимают 1/10 прерывания.
    Сразу итог: 1264/50000=0.0253= округлю в меньшую сторону 2.5%

    Можно дальше уменьшать число пересылаемых байт и в районе 30 байт на прерывание вариант без стека станет выгоднее. Но при таком незначительном количестве пересылок речь уже идет не о скорости, а о занимаем месте (значит никаких развернутых циклов) и об удобстве использования. Т.е. это предмет для обсуждения в другой ветке.
    [свернуть]
    Благодарю вас за столь детальный анализ, однако, возможно вы лишь скорее подтвердили моё мнение. Писал про выигрыш от нетипичной работы с указателем стека на фоне издержек на реализацию ВСЕЙ игровой логики. Возможно выигрыш будет и чуть больше, чем 5%, но очень сомнительно, что достигнет 10%. Это для микрош совсем неплохо: когда спрайты двигаются недостаточно плавно, то это раздражает. И даже 5-10% это приятное улучшение. Но в итоге операции копирования занимают гораздо больше места, отнимая память у общей игровой логики, и тем самым превращая игру скорее в демку. О чем и писал с самого начала.
    Последний раз редактировалось litwr; 26.05.2023 в 19:05.

  11. #140

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    мнемоника SOB - это же ругательство.
    Кому ругательство, кому Subtract One and Branch

    - - - Добавлено - - -

    Цитата Сообщение от litwr Посмотреть сообщение
    Вообще писать переносимые коды для всех PDP-11 штука непростая.
    И как это RT-11 на всех PDP работает

    - - - Добавлено - - -

    Цитата Сообщение от litwr Посмотреть сообщение
    Не уверен, что даже MOV (PC)+,(PC)+ везде работает одинаково.
    Ключевое слово
    Цитата Сообщение от litwr Посмотреть сообщение
    Не уверен
    Последний раз редактировалось Hunta; 26.05.2023 в 19:07.

Страница 14 из 19 ПерваяПервая ... 101112131415161718 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Сравнение: AY8930/AY8910/YM2149F
    от newart в разделе Звук
    Ответов: 56
    Последнее: 02.07.2022, 10:27
  2. Как сопрягать микросхемы с разными VCC?
    от dhau в разделе Несортированное железо
    Ответов: 22
    Последнее: 08.06.2012, 16:59
  3. Скорости загрузки в ОЗУ
    от ASDT в разделе ZX Концепции
    Ответов: 56
    Последнее: 07.01.2011, 14:22

Ваши права

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