long (07.06.2005 18:29, просмотров: 1) ответил Andy Mozzhevilov на Вот и интересует, насколько притормаживает?
Ответ: На примере одной задачи привожу результаты сравнений производительности LPC2106 и AT91SAM7S64. Исходный проект занимается сбором и обработкой данных по одному каналу. Вычисления представляют собой свертку входных данных с массивами констант. TI MSP430 на 7,37 MHz справлялся с задачей в притык (умножение реализовано прямым обращением к регистрам умножителя). Теперь возникла необходимость расширить проект до трех каналов, как следствие появилась вопрос выбора нового контроллера. Начальство системно подошло к вопросу и достало два кита – KS for LPC2106 и KS for AT91SAM7S64, поэтому появилась возможность опробовать оба варианта и сравнить их с MSP430.
Для MSP430 использовался IAR C/C++ Compiler for MSP430 3.30A, для ARM – IAR C/C++ Compiler for ARM 4.11A. Оптимизация – High Speed. Для ARM рассматривалась и ARM- и Thumb-конфигурация. Для обоих случаев рассматривался вариант выборки кода и данных из Flash и вариант код – в RAM, данные – во Flash. Для AT91SAM7S64 привожу данные при FWS=0 и при FWS=1. Для LPC2106 только в одном варианте – MAM=2, MAMTIM=3. Результаты приводятся в тысячах тактов процессора.
MSP430 - 6392,3
LPC2106, ARM (MAM = 2, MAMTIM=3)
RAM/ROM - 3389,1
ROM/ROM - 3630,3
LPC2106, Thumb (MAM = 2, MAMTIM=3)
RAM/ROM - 5249,4
ROM/ROM - 5375,0
AT91SAM7S64, ARM (FWS=0; FWS=1)
RAM/ROM - 3311,2; 3562,8
ROM/ROM - 3311,2; 6006,2
AT91SAM7S64, Thumb (FWS=0; FWS=1)
RAM/ROM - 5155,4; 5416,1
ROM/ROM - 5155,4; 6115,1
Выводы:
1. В ARM-режиме при работе из Flash для AT91SAM7S64 производительность таки падает в два раза при FWS=1 по сравнению с FWS=0 – с 3311,2 до 6006,2 тыс. тактов (при FWS=2 производительность падает в три раза – до 8703,4, при FWS=3 – в четыре – до 11400,8). В Thumb производительность падает на 20% при переходе от FWS=0 к FWS=1 (и ровно в два раза при переходе от FWS=0 к FWS=3 – с 5155,4 до 10347,9)
2. При работе из Flash, для AT91SAM7S64 при FWS=0 ARM-режим существенно быстрее Thumb, при FWS=1 времена выполнения сопоставимы (для FWS=2 и FWS=3 Thumb уже быстрее)
3. С MAM=2, MAMTIM=3 LPC2106 побыстрее будет, чем AT91SAM7S64 при FWS=1 (штатные режимы работы c Flash при частотах > 40 MHz). Но стоит обратить внимание на один интересный момент – для AT91SAM7S64 при FWS=0 время выборки что из ROM, что из RAM одинаково, для LPC2106 при MAM=2 - нет. Должно быть Flash у AT91SAM7S64 получше, чем у LPC2106.