Установив Debian, скачиваем исходники теста Dhrystone и измеряем скорость процессора MediaTek MT7688, установленного на плате LinkIt Smart.

(mylinkit) ~ # svn checkout https://subversion.assembla.com/svn/vak-opensource/trunk/utilities/dhrystone
A dhrystone/Makefile
A dhrystone/RATIONALE
A dhrystone/README
A dhrystone/README_C
A dhrystone/VARIATIONS
A dhrystone/dhry.h
A dhrystone/dhry_1.c
A dhrystone/dhry_2.c
A dhrystone/dhry_c.dif
A dhrystone/submit.frm
Checked out revision 30.
(mylinkit) ~ # cd dhrystone/
(mylinkit) dhrystone # make
cc -O3 -DNRUNS=100000000 -Wall -Werror -c -o dhry_1.o dhry_1.c
cc -O3 -DNRUNS=100000000 -Wall -Werror -c -o dhry_2.o dhry_2.c
cc -o dhrystone dhry_1.o dhry_2.o
(mylinkit) dhrystone # ./dhrystone
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 100000000 runs through Dhrystone
Execution ends
[...]
Nanoseconds for one run through Dhrystone: 896.8
Million Dhrystones per Second: 1.115
DMIPS: 634.7
Сравнивая с таблицей результатов в интернете и интерполируя, можно видеть, что процессор MT7688 580MHz работает примерно со скоростью Pentium II 400MHz. Некоторая "отсталость" объясняется тем, что MT7688 имеет 16-битную шину памяти DRAM, а Pentium II - 64-битную. Ну и потребление отличается на два порядка.

(mylinkit) ~ # svn checkout https://subversion.assembla.com/svn/vak-opensource/trunk/utilities/dhrystone
A dhrystone/Makefile
A dhrystone/RATIONALE
A dhrystone/README
A dhrystone/README_C
A dhrystone/VARIATIONS
A dhrystone/dhry.h
A dhrystone/dhry_1.c
A dhrystone/dhry_2.c
A dhrystone/dhry_c.dif
A dhrystone/submit.frm
Checked out revision 30.
(mylinkit) ~ # cd dhrystone/
(mylinkit) dhrystone # make
cc -O3 -DNRUNS=100000000 -Wall -Werror -c -o dhry_1.o dhry_1.c
cc -O3 -DNRUNS=100000000 -Wall -Werror -c -o dhry_2.o dhry_2.c
cc -o dhrystone dhry_1.o dhry_2.o
(mylinkit) dhrystone # ./dhrystone
Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 100000000 runs through Dhrystone
Execution ends
[...]
Nanoseconds for one run through Dhrystone: 896.8
Million Dhrystones per Second: 1.115
DMIPS: 634.7
Сравнивая с таблицей результатов в интернете и интерполируя, можно видеть, что процессор MT7688 580MHz работает примерно со скоростью Pentium II 400MHz. Некоторая "отсталость" объясняется тем, что MT7688 имеет 16-битную шину памяти DRAM, а Pentium II - 64-битную. Ну и потребление отличается на два порядка.

no subject
Date: 2016-01-10 05:03 (UTC)no subject
Date: 2016-01-10 05:15 (UTC)Вообще, этот чип MT7688 может произвести некоторую революцию в мире микроконтроллеров.
Уж больно он могучий и дешевый получается.
no subject
Date: 2016-01-10 15:10 (UTC)PS. Как раз вчера эту платку с почты забрал, а тут и пост про Debian подоспел...:)
no subject
Date: 2016-01-10 18:40 (UTC)Так что цена модуля выглядит разумной, с прибылью.
no subject
Date: 2016-01-10 19:54 (UTC)no subject
Date: 2016-01-10 17:47 (UTC)Как, например, не взлетает ESP8266 - шума много, а выхлопа особого нет
no subject
Date: 2016-01-10 19:00 (UTC)Экосистема для Linkit давно готова: это OpenWRT, динамично развивающийся дистрибутив с огромной клиентской базой. Библиотеки MRAA и UPM дают доступ к сотням разнообразных сенсоров. Ориентация на скриптовые языки программирования Lua, Python и JavaScript кроет Arduino и ESP8266 как бык овцу. Конечно, Raspberry Pi тоже все это может, но проигрывает в разы по потреблению и деньгам.
no subject
Date: 2016-01-10 19:53 (UTC)> Конечно, Raspberry Pi тоже все это может, но проигрывает в разы по потреблению и деньгам.
Если будет продолжен выпуск Raspberry Pi Zero по цене в $5, то проигрыша особого то и нет. По данным в MagPi в формате Raspberry Pi Zero с ТВ подключенным по HDMI и подключенными клавиатурой и мышкой потребляет 160 мА.
По крайней мере, я свой экземпляр Raspberry Pi Zero уже получил :)
no subject
Date: 2016-01-10 22:55 (UTC)А все эти микроплатформы сильно губит их сегментация - подобных контроллеров куча, но им всем далеко даже до Raspberry Pi по тиражности, там какие то десятки тысяч против миллионов. Оттого и сырой софт, проблемы с поддержкой устройств и т.д и т.п.
no subject
Date: 2016-01-11 06:53 (UTC)Фактически только ESP8266, AR9331, и теперь еще MT7688.
no subject
Date: 2016-01-16 21:15 (UTC)В этом смысле выделяется как раз ESP8266, он спать умеет, но он слабый. Ты не смотрел в сторону переноса на него Retro или Light? Вроде памяти должно хватить.
Развитое управление питанием есть у процессоров для сматрфонов, но они заметно дороже, насколько я понимаю.
no subject
Date: 2016-01-30 06:20 (UTC)Причем у каждого чипа оно сделано по-своему.
Подробное описание внутренностей MT7688 Медиатек пока не открыл, так что сложно сказать.
Обычно у таких чипов больше всего кушает кэш.
Его можно на ходу отключать, но процедура хитрая.
Можно LiteBSD перенести, но нет большого смысла, если полный Линукс помещается.
LiteBSD хорошо смотрится, когда памяти в 100 раз меньше.
no subject
Date: 2016-01-31 14:17 (UTC)no subject
Date: 2016-01-31 21:35 (UTC)no subject
Date: 2016-01-31 14:24 (UTC)no subject
Date: 2016-01-31 21:47 (UTC)Но MMU в этом процессоре (L108) отсутствует, так что LiteBSD не получится.
no subject
Date: 2016-02-01 03:14 (UTC)no subject
Date: 2016-02-01 21:17 (UTC)Или крутить на первом процессоре RetroBSD, а на втором FreeRTOS с TCP/IP.
no subject
Date: 2016-01-11 06:40 (UTC)Я померял - у Linkit Smart 7688 ток потребления прыгает от 130 мА (при работе Wi-Fi на прием и без microSD) до 230 мА (при работе Wi-Fi на передачу и активном обмене с microSD).
Pi Zero за пять баксов это разовая чисто рекламная акция. Вероятно, у чуваков просто зависла неликвидная партия процессоров, и они решили таким образом от нее избавиться.
no subject
Date: 2016-03-01 17:29 (UTC)Тут скорее наоборот, какой-нибудь суровый статически типизированный Haskell с Ocaml'ом взлетели бы. Ну или go, на худой конец.
no subject
Date: 2016-01-10 20:47 (UTC)no subject
Date: 2016-01-10 22:53 (UTC)no subject
Date: 2016-01-10 23:13 (UTC)no subject
Date: 2016-01-11 02:23 (UTC)http://cdn.imgtec.com/mips-documentation/login-required/eEffective_programming_of_the_24ke_and_the_34k_core_families_for_dsp_code.pdf
http://cdn.imgtec.com/mips-documentation/login-required/five_methods_of_utilizing_the_mips_dsp_ase.pdf
no subject
Date: 2016-01-20 23:35 (UTC)Точнее там есть нюансы для Пентиума - специально оптимизированные компилятором программы он может выполнять две команды за дакт, но без оптимизации будет одна.
А начиная с Pentium-MMX уже х86 выполняли почти любые две команды за один такт.
Ну точнее Pentium-MMX по каким-то причинам оказался тупиковой ветвью эволюции, но Pentium-pro и он-же Pentium-II и последователи, уже полноценно почти всегда исполняли две команды за такт.
И да, как раз за счет отсутствия суперскалярности потребление значительно меньше, конечно не на два порядка но в разы точно.
А скорость памяти и ширина шины памяти не сильно влияют, потому что данная задача считается в кеше.
- Если-бы данная задача была завязана на память то там бы проседание ARM было намного больше, потому что RISC принципиально очень медленно работают с памятью.
no subject
Date: 2016-01-20 23:49 (UTC)Я где-то пытался разбираться с особенностями архитектуры MIPS, и пришел к выводу, что там всё сложнее чем с ARM в том смысле что коэффициент отношения команд к тактам у MIPS получается нецелый, но кажется несколько лучше чем у ARM, там у меня выходило что-то типа 1.3 команды за такт, при том что у Pentium Pro 2 команды за такт.
Почему так - это как раз какой-то компромисс между суперскалярностью и потреблением - точно подробности не помню, но по-моему он какие-то команды просто не может выполнять сразу две парой и в среднем и выходит число между 1 и 2.
no subject
Date: 2016-01-21 00:56 (UTC)no subject
Date: 2016-01-21 07:04 (UTC)Если это чего-то не микроархитектура, то возможно это чего-то в ключах компилятора, а может даже где-то баг, или чего-то недокументированное вылезло, типа известной фичи х86, когда он инвалидирует линейку кеша которую прочитали.
- Ну просто как на мой на данный момент очень поверхностный взгляд, размер кеша слишком большой чтобы этим тестом получить настолько много кеш-промахов, чтобы производительность просела аж на десятки процентов.