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

User Tag List

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

Тема: Дискуссии вокруг УКНЦ и прочее.

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    4,135
    Спасибо Благодарностей отдано 
    471
    Спасибо Благодарностей получено 
    519
    Поблагодарили
    412 сообщений
    Mentioned
    42 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Дискуссии вокруг УКНЦ и прочее.

    О измерениях быстродействия 1801-й и некотрых 1806 процессоров уже было написано.
    А вот практические задачи по типу как копирование массива ОЗУ ( например, 1 Кбайт ) - пока что-то не было написано.
    Прошу принять участие владельцев всех типов ЭВМ, особенно на Z80 - 3.5 мгц, 580ВМ80-2.5 мгц и некотрых др.
    Допускаются любые способы оптимизации исполняемого кода.
    ( Очень даже вероятно, что БК11М-4 мгц существенно отстанет от Z80-3.5 мгц 48 Кбайт ДОЗУ ).

    Образец текста программы для ДВК/БК , набирать с 1000 адресу :
    001000 : 012700 010000 012701 000200 012702 002000 012703 004000
    001020 : 012223 012223 012223 012223 012223 012223 012223 012223
    001040 : 077111 077020 000000
    Что делает программа ?
    Копирует 4096 раз массив 1 2 Кбайт ( длина 002000 слов / 004000 байтов ) с адреса 002000 в адрес 004000.
    Для особо точного измерения можно потом в адресе 001040 число 077111 заменить на 077101 и замерить время Холостого Хода ( чисто время организации цикла ).
    Результат мумрулятора ДВК-2 МС1201.01 5.3 мгц :
    33 сек, ХХ - 2.5 сек, производительность - 134.3 Кбайт/с ( 1 Кбайт = 1024 байт ).
    Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения [email protected]

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

  3. #2
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Провел тест на железной УКНЦ. За 250 тиков (50Гц) скопировался мегабайт. Пять секунд. Итого грубо 200кб/с.
    Негусто, ну что-ж, и так попрет

    Команды тупее некуда:
    Код:
    	mov	#100., R4
    	clr	VSYCNT	
    
    10$:	mov	#BUF1, R0
    	mov	#BUF2, R1
    	mov	#5000., R3
    20$:	mov	(R0)+, (R1)+
    	sob	R3, 20$
    	sob	R4, 10$
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  4. #3
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Провел тест на железной УКНЦ.
    Я как-то прикидывал другой вариант - на ВМ3 с памятью без ожидания копирование в VM: получалось где-то в районе 600-800 кб.. Не помню точно, надо в теме по 1201.2018 поискать..

  5. #4
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Резюмирую, что УКНЦ - в целом, на момент выпуска, была приличной машиной. Хотя её вполне можно было бы оптимизировать.
    Для того, чтобы что-то новое сделать, надо сделать было хоть как-то... Потом началась работа над ошибками по мелочам, но УКНЦ-2 в массы не пошла ...


    litwr, увидел, что лёгким движением руки программиста, скорость чтения-записи памяти можно поднять на треть... Сферический конь в вакууме во всей своей красе ...

    Достопочтимый дон Hunta, как доберётся до программы измерения скорости быстродействия, при наличии некоторого времени, возможно, загадочно улыбнётся и добавит в программу измерения быстродействия измерение скорости работы памяти в разных вариантах

    Мне, да и полагаю, что не только мне, была бы интересна разница в скорости обращения к памяти на разных системах. Как скажется на скорости предвыборка, конвейер, кэш....?

    Для уважаемых обладателей УКНЦ есть некоторый пример оптимизации кода по быстродействию, но я полагаю, что они и так всё знали в теории. А тут конкретная суровая правда жизни

  6. #5
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    litwr, увидел, что лёгким движением руки программиста, скорость чтения-записи памяти можно поднять на треть... Сферический конь в вакууме во всей своей красе ...
    На самом деле как-бы тут не относились к litwr и чтобы он за срачи тут не разжигал - он говорит ведь зачастую верно. Знает пдп архитектуру (в части укнц или двк). От него были очень неплохие темы мол померяйте производительность бейсика с пи-затвором и т.д., но его тут подзагнобили ибо как-бы ну тут часть форума для пдп-совместимых, а не для срача что мос6502 обходит всех по тактам.
    (обычное для форума, залез на zx-pk - сам виноват, это я от программеров диззи на синклер слышал, мол форум ну он такой, своеобразный, там начнут за три такта меряться)
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  7. #6
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    измерение скорости работы памяти в разных вариантах
    Технически это возможно, но как отделить скорость работы проца от скорости работы памяти?

  8. #7
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Кстати вроде даже на правду похоже если я верно вспомнил тайминги УКНЦ:
    mov (R0)+, (R1)+ 42 такта
    sob с переходом 32 такта
    Итого 74 такта, всего на копирование мегабайта 500 000 операций итого 37М тактов. На частоту процессора в 8МГц ну примерно около 5 сек. (скидка еще на то что где-то видеочип слегонца в такты не попал и т.д.)

    Можно разумеется разворачивать циклы ускорять и прочую шнягу использовать, но это уже от лукавого.

    (вот только не надо господа с mos6502 бугага устраивать, навроде ахахах укнц тормоз, операция в 42 такта курам на смех как-бы и в 92 бывает ashc сдвиг на 15 бит если.. как-то с этим живем)
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  9. #8
    Master
    Регистрация
    13.07.2018
    Адрес
    г. Переславль-Залесский
    Сообщений
    691
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    44
    Поблагодарили
    40 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тут ещё надо учитывать, что время доступа тратится на считывание потока команд из памяти...
    Одна команда на перенос слова... Плюс одна команда для случая с SOB или две без оного или даже более в других случаях...
    Итого на копирование одного слова - выборка двух команд из той же памяти, как минимум.
    Можно провести оптимизацию кода за счёт увеличения объёма кода. Ну на 30% быстрее...
    Возможно ускорение будет ещё более за счёт предвыборки... Но это не точно. Надо смотреть каждый аппаратный случай отдельно.
    Типа того :
    Код:
    	
            mov	#100., R4
    	clr	VSYCNT	
    
    10$:	mov	#BUF1, R0
    	mov	#BUF2, R1
    	mov	#500., R3
    20$:	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    	mov	(R0)+, (R1)+
    ; SOB в коде выполняется в 10. раз реже  :)
    
    	sob	R3, 20$
    	sob	R4, 10$


    Плюс-минус можно оценить по скорости копирование на(с) VM: для компьютеров с MMU

  10. #9
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex Посмотреть сообщение
    Тут ещё надо учитывать, что время доступа тратится на считывание потока команд из памяти...
    Так с этим кодом стало ну почти 300кб/с. 294 или навроде. Впрочем логично.
    А насчет предварительного считывания очередной команды - у меня есть такие подозрение что видеоконтроллер в УКНЦ гробит эту хорошую фишку ВМ2 процессора (все-равно проц сидит и ожидает доступа к ОЗУ сколько-то тактов).
    Возможно для последовательных команд скажем inc R0 - оно и ускорится, а вот для команд с доступом к ОЗУ - даже не знаю.
    Последний раз редактировалось Arseny; 24.06.2023 в 13:33.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  11. #10
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,209
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    608
    Поблагодарили
    400 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    А насчет предварительного считывания очередной команды - у меня есть такие подозрение что видеоконтроллер в УКНЦ гробит эту хорошую фишку ВМ2 процессора (все-равно проц сидит и ожидает доступа к ОЗУ сколько-то тактов).
    Возможно для последовательных команд скажем inc R0 - оно и ускорится, а вот для команд с доступом к ОЗУ - даже не знаю.
    Ускорится. Пока декодируется команда MOV (R0)+,(R1)+, по предвыборке уже читается следующая. Вот её чтение может притормозить исполняющуюся команду. Декодирование завершилось, надо память читать, а там ещё следующая команда по предвыборке не прочлась. Но это низкая вероятность.
    А вот если вместо SOB использовать DEC/BNE, будет ли быстрее?

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

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Получилось СИЛЬНО тормознее почему-то. Не ставил разворачивание циклов. Копирование мегабайта с банальным sob - 435тиков. Тормознее в 1.7 раза.
    Довольно странно ибо ПП по мегагерцам не во столько раз медленнее.
    А в ПП доступ к памяти 8-битный, потому что слово контроллером считывается за два приёма. С записью вроде там получше, положилось слово для записи в контроллер, он выдал RPLY, процессор дальше продолжает работу, а он за два приёма слово записывает.

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

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

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

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

Похожие темы

  1. Материнки от УКНЦ и прочее.
    от tntpro в разделе Барахолка (архив)
    Ответов: 31
    Последнее: 13.06.2011, 23:21
  2. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16

Ваши права

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