nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 18:51



Reply to topic  [ 4 posts ] 
Timer V2 
Author Message
Maniac

Joined: 05 Oct 2009 19:44
Posts: 223
Location: 212.164.105.5
Reply with quote
Приветствую. Когда-то давно, Иван (он же Imak, он же Winglion) создал утилиту для замера "производительности" в основной памяти и быстрой памяти (исполнение разных команд).
По прошествии длительного времени я считал (наверное многие так считали), что тест довольно точный и полагался на его результаты. Однако, в какой-то момент я усомнился в "чистоте" результатов. Начал смотреть во внутренности timer.exe и обнаружил, что тесты составлены с ошибками.
1. в тестах в основных циклах (где тестируется непосредственно сами команды) допущены лишние (мусорные) команды.
2. в тесте Push/Pop допущено, что обе команды внутри одного цикла. С моей точки зрения это не верно, ведь команды выполняют разные функции и тестировать их нужно по отдельности.
3. так же в этом тесте (push/pop) были дописаны команды, которым точно не место в цикле тестирования.
Я понимаю, что команды были вписаны для выравнивания по тактам, однако, если читать комментарии, в той части где он ведёт подсчёт тактов, то можно заметить, что часть команд не подсчитаны. Когда я начал сам всё подсчитывать, то и сам ошибся несколько раз в подсчётах. чтобы подсчёт был более точным, я использовал Visual Studio Code с плагином для подсчёта тактов для мнемоники Z80. Как следствие - более точный подсчёт всех тактов в каждом тесте. По итогу, ни одна цифра не сошлась с комментариями автора, все тесты имеют завышение по затраченным тактам. Посмотрев на это всё и проведя несколько тестов я понял, что так дальше жить нельзя и надо что-то менять. Ну, т.е. я начал пилить свой тест, но на базе оригинала.
От оригинала я взял первые 2 процедуры. Это процедура контроля времени и самый первый тест для Inc/Dec (и то с правками). Так же в оригинале CMOS_TEST вызывается дважды для того, чтобы повысить точность замера, на тот случай, если первый вход попал на самый конец секундного "тика". Я этот момент доработал, отфильтровав текущую секунду. Тест не начинается. пока она не закончится. Ну и далее, все оригинальные тесты были сильно переписаны. В частности, из основного цикла убраны все мусорные команды (кроме команд организации цикла), все тесты полностью подогнаны под 10000 тактов (за секунду). Добавил так же ещё 2 тестируемые команды. На основе модификации от Shaos`а добавил поддержку для памяти ISA. при этом, в отличии от его мода, мой может работать с обоими слотами. т.е. если в оба слота вставить что-то с доступом к памяти через ISA, то оба слота будут обнаружены и протестированы. Остаётся место ещё под 1 команду. Далее, когда-нибудь (возможно), я добавлю тест производительности ldir, ldi и акселератора (в мегабитах или килобитах).
Во вложении архив с timerv2.exe и исходниками к нему.

ЗЫ. Чуть не забыл. в утилите были использованы части нового Fdisk от Дмитрия aka Hard/WCG. Спасибо за идею цветной печати! Хотя сама печаталка (printf) была выбрана из Solid C и модицифирована.

 было (timer v.1)
Image

 стало (timer v.2)
Image


Attachments:
timerv2.zip [372.63 KiB]
Downloaded 270 times
26 Jan 2021 04:45
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Sayman wrote:
Иван ... создал утилиту для замера "производительности" в основной памяти и быстрой памяти (исполнение разных команд).

А какова на ваш взгляд в принципе производительность Sprinter-а объективно?

Мне почему интересно: когда я переносил в своё время расчеты со "Специалиста" 2 МГц
на IBM XT i8086 (4.77MHz "Искра 1030"), я ожидал повышения производительности ну
хотя бы вдвое: и частота выше, и проц 16-разрядный.
Но к моему удивлению этого не произошло... :roll:
Было ощущение "ну вроде как оно чутка быстрее, но не на много..."

Заметный прирост производительности я ощутил явно лишь на IBM PC i286 (20MHz Harris)
с математическим сопроцессором.

_________________
iLavr


26 Jan 2021 22:52
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22413
Location: Silicon Valley
Reply with quote
Прогнал на своём Спринтере со своей сетевушкой воткнутой во ВТОРОЙ (крайний) слот:


Attachments:
TimerV2-small.jpg
TimerV2-small.jpg [ 199.67 KiB | Viewed 3308 times ]

_________________
:dj: https://mastodon.social/@Shaos
26 Jan 2021 22:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22413
Location: Silicon Valley
Reply with quote
Lavr wrote:
Sayman wrote:
Иван ... создал утилиту для замера "производительности" в основной памяти и быстрой памяти (исполнение разных команд).

А какова на ваш взгляд в принципе производительность Sprinter-а объективно?

Мне почему интересно: когда я переносил в своё время расчеты со "Специалиста" 2 МГц
на IBM XT i8086 (4.77MHz "Искра 1030"), я ожидал повышения производительности ну
хотя бы вдвое: и частота выше, и проц 16-разрядный.
Но к моему удивлению этого не произошло... :roll:
Было ощущение "ну вроде как оно чутка быстрее, но не на много..."

Заметный прирост производительности я ощутил явно лишь на IBM PC i286 (20MHz Harris)
с математическим сопроцессором.

Тут зависит от того откуда ты программу пускаешь - если из основной памяти (4 Мб), то из-за торможения при обращении к симу она работет как будто на 7-10 МГц (см. на картинку выше - зависит сколько обращений к памяти делает команда - чем больше, тем медленне и ближе к 7 МГц будет получаться эффективная скорость).
Если из быстрой памяти пускаться (64 Кб без вейтов, но доступные только по 16 Кб в одном окне), то на 21 МГц.
А если из памяти в ISA-карточке (тоже только одно окно 16 Кб, но карточка может уметь подставлять разные страницы в это окно), то 14 МГц.
Если отключить турбу, то везде будет ровно 3.5 МГц (на картинке замеры показаны оранжевым цветом), как на оригинальном ZX-спектруме и это несколько медленновато...

_________________
:dj: https://mastodon.social/@Shaos


27 Jan 2021 00:24
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 4 posts ] 

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.