Jump to content

    
Sign in to follow this  
prst

Linux + AT91RM9200 + настройка...

Recommended Posts

задачка не для слабонервных....

Предлогаю продолжать здесь обсуждение старой темы, но уже с привязкой к более высокому уровню системы...

===================================================================
вопрос номер один
===================================================================
[root@AT91RM9200_SK /]$dmesg |grep MIPS
Calibrating delay loop... 85.19 BogoMIPS (lpj=425984)
[root@AT91RM9200_SK /]$
...

сейчас у меня контроллер наботает на таких частотах, если верить показаниям ядра...
Clocks: CPU 170 MHz, master 42 MHz, main 18.432 MHz

Хочу увеличить скорость производительности линукса..
...кто нибудь знает как увеличить число 85.19 BogoMIPS
я пробовал увеличить скорость производительности гдето месяц назад - получалось только методом умеличения тактовой частоты шины памяти до 89 MHz....

никому не секрет, и известно что BogoMIPS это юмор Торвальдса, и отоброжает производительность в "попугаях", но как опорная величина мне кажется на нее можно надеяться
кратко про это сказано здесь - http://ru.wikipedia.org/wiki/BogoMIPS

Надеюсь тут есть светилы мысли у опыта именно в данном вопросе...
Посоветуйте, подскажите плиз если знаете...

Share this post


Link to post
Share on other sites
Вроде это предел для ARMов.

А как же тогда "200 MIPS at 180 MHz" для AT91RM9200? Понятно что это пиковая производительность и для Linux ничего общего не имеет. Может имеет смысл абстрагироваться от "более высокого уровня системы...", т.е. вести речь не о Linux, и написать синтетический тест, вычисляющий реальную пиковую скорость? Сразу возникает вопрос, кусок кода, вернее цикл, где будет идти подсчёт машинных тиков, резоннее написать на asm? Какие инструкции использовать?

Share this post


Link to post
Share on other sites
Вроде это предел для ARMов.

 

Дык, как же так?

должно быть какоето решение, значит еще не предел....

я же писал

я пробовал увеличить скорость производительности гдето месяц назад - получалось только методом умеличения тактовой частоты шины памяти до [b]89 MHz[/b]....

а все это значит - что нужно искать какие-то оптимальные решения "данной микропроблемки"

 

- тоесть это метод повушения производительности номер 1

 

вот я и интересуюсь, может ктото знает - какие еще могут быть методы по провышению производительности ядра.

хотелось бы поболее чем 85.19 BogoMIPS хотябы 120, вот...

 

Вкратце объясню, откуда ростут ноги этого вопроса :

 

Нужна более высокая производительность системы, так как ты данном котроллере будет выполняться операция матиматической обработки, и хочется что бы пользовательские задачи не отбирали временнай ресурс у мат-демана.

 

Производительность почти 1/2 (почти 100 - из 200ста ) от производительности контроллера, под такой осью как linux, конечно впечятляет, но если смотреть на решаемую задачу, то хочется чуть-чуть по производительнее ...

 

Может как то шедулерами в ядре можно отобрать немного юзерского времени....

или еще как то?

Share this post


Link to post
Share on other sites
я пробовал увеличить скорость производительности гдето месяц назад - получалось только методом умеличения тактовой частоты шины памяти до 89 MHz....

И сколько BogoMIPS получилось в результате?

Share this post


Link to post
Share on other sites
А как же тогда "200 MIPS at 180 MHz" для AT91RM9200?

Вы не путайте обычные MIPS c BogoMips :)

 

"`MIPS - это аббревиатура, миллионы операций в секунду (Millions of Instructions Per Second). Это измерение скорости выполнения программы. Как и большинство таких мер, ей больше злоупотребляют, чем правильно используют (очень трудно сравнивать MIPS различных типов компьютеров). BogoMips - это изобретение Linus Torvalds. Ядру требуются (или это драйвер устройства?) временные задержки состоящие, из пустых циклов, которые должны быть отрегулированы по отношению к скорости процессора. Так как ядро вычисляет при загрузке, сколько времени занимает каждый тип цикла. "Bogo" происходит от "bogus" (фальшивый, поддельный). Так как величина BogoMips дает представление о скорости процессора, но она настолько антинаучна, что ее назвали не иначе, как BogoMips. Причины (а их две), почему это выводится во время загрузки, являются: a) удобство для отладки и проверки работы кэша и режима турбо, и B) потому что Linus любит посмеиваться над растерянными людьми в новостях. "

Share this post


Link to post
Share on other sites
Вы не путайте обычные MIPS c bogomips :)

не-е-е-е, я не путаю

я просто пытаюсь разобраться в вопросе - существуетли такая возможность

 

для уточнения что это такое привожу следующее

-----------------------------------------------------------------------------------

<h3 id="siteSub">Материал из Википедии — свободной энциклопедии</h3> Перейти к: навигация, поиск BogoMIPS (от англ. bogus (поддельный) и MIPSангл. Millions of Instructions Per Second) — в ядре Линукс ненаучный способ измерения производительности компьютера, предназначенный для калибровки внутренних циклов. Термин изобрёл Линус Торвальдс в 1993. BogoMIPS шутливо определяется как «сколько миллионов раз в секунду компьютер может делать абсолютно ничего».

 

Причина возникновения такой величины в том, что для работы с некоторыми видами оборудования ядру системы требуются короткие временны́е задержки, которые реализуются в форме пустых циклов. Чтобы узнать, сколько именно раз надо повторять пустой цикл, необходимо выяснить скорость его выполнения на данной машине — именно для этого используется BogoMIPS.

 

При начальной загрузке ядра выдаётся сообщение примерно такого вида:

 

Calibrating delay loop… 2994.99 BogoMIPS

Во время работы значение BogoMIPS можно узнать, прочитав файл /proc/cpuinfo

 

Величина BogoMIPS обычно пропорциональна тактовой частоте процессора, но также зависит от архитектуры процессора и работы кэша.

 

 

 

 

[<a href="http://ru.wikipedia.org/w/index.php?title=BogoMIPS&action=edit&section=1" title="Править секцию: Ссылки">править] Ссылки

---------------------------------------------------------------------------------------------------

 

из написанного хотелось бы поставить упор на фразу, от которой стоит оттолкнуться для разворота данного вопроса в более объемленый ответ, и найденое решение....

Величина BogoMIPS обычно пропорциональна тактовой частоте процессора, но также зависит от архитектуры процессора и работы кэша.

 

 

 

 

 

 

И сколько BogoMIPS получилось в результате?

я же писал в первом посте

[root@AT91RM9200_SK /]$dmesg |grep MIPS

Calibrating delay loop... 85.19 BogoMIPS (lpj=425984)

[root@AT91RM9200_SK /]$

Share this post


Link to post
Share on other sites
А как же тогда "200 MIPS at 180 MHz" для AT91RM9200? Понятно что это пиковая производительность и для Linux ничего общего не имеет. Может имеет смысл абстрагироваться от "более высокого уровня системы...", т.е. вести речь не о Linux, и написать синтетический тест, вычисляющий реальную пиковую скорость? Сразу возникает вопрос, кусок кода, вернее цикл, где будет идти подсчёт машинных тиков, резоннее написать на asm? Какие инструкции использовать?

 

не-не-не

погодите как плиз....

 

вот смотрите, простой пример, может правда и не совсем удачный пример для сравнения, но всеже....

тут-же у меня под боком - стоит BlackFin (кстати он даже без MMU, да еще и 16-ти разрядный)

смотрим его производительность....

 

root:~> dmesg

Linux version 2.6.12.1-BFIN-2005R4 (root@alexxx) (gcc version 3.4.4 (Blackfin 05R4 20051205)) #6 Wed Oct 18 08:51:13 EEST 2006

Blackfin support © 2004 Analog Devices, Inc.

ADSP-BF533 Rev. 0.3

uClinux/BF533

...

Memory available: 59648k/130142k RAM, (49k init code, 873k kernel code, 231k data, 69632k dma)

Blackfin Scratchpad data SRAM: 4 KB

Blackfin DATA_A SRAM: 16 KB

Blackfin DATA_B SRAM: 16 KB

Calibrating delay loop... 794.62 BogoMIPS (lpj=3973120)

...

...

 

чувствуете?

794.62 BogoMIPS

правда на BlackFin стоит uLinux, а на AT91RM9200 Linux... может это еще както влияет на BogoMIPS

....понятно что архитиктура там совершенно иная , но можно сделать интересный вывод:

BlackFin BF533 ( к томуже он еще и 16-ти разрядный ) работает почти в 9 раз быстрее чем AT91RM9200...

 

не очень то приятно за чип - AT91RM9200

Share this post


Link to post
Share on other sites

А что вы собственно хотите? У вас цикл занимает 2 команды - 2 такта, соответственно количество богомипсов будет в 2 раза меньше тактовой проца. Цикл выполняется из кеша, так что больше вы никак не получите. Минус естественно накладные расходы (небольшие)

 

На последок - телефон Siemens S75, ARM926EJ-S, тактовая частота процессора 104МГц:

 

post-6610-1175162496.jpg

Share this post


Link to post
Share on other sites
Можно еще сделать из мат-демона мат-драйвер...

Ты думаеш что особый прирост значения BogoMIPS при этом будет?

может, может, не знаю..

хотя и не уверн...

нада взять на вооружение и испробовать...

Share this post


Link to post
Share on other sites

а это при 89 MHz....

 

Clocks: CPU 179 MHz, master 89 MHz, main 18.432 MHz

 

[root@AT91RM9200_SK /]$cat /proc/cpuinfo |grep MIPS

BogoMIPS : 89.70

[root@AT91RM9200_SK /]$

 

не ужто так все печально?

пойдука я еше поищю....

Share this post


Link to post
Share on other sites
а это при 89 MHz....

 

Clocks: CPU 179 MHz, master 89 MHz, main 18.432 MHz

 

[root@AT91RM9200_SK /]$cat /proc/cpuinfo |grep MIPS

BogoMIPS : 89.70

[root@AT91RM9200_SK /]$

 

не ужто так все печально?

пойдука я еше поищю....

 

Ну? 179(тактовая частота ядра)/2(2 такта цикл)=89.5(богомипсов)

 

Что не так? Вот листинг самого цикла (правда иар, но не суть)

     26          #pragma optimize=no_inline
     27          /* portable version */

   \                                 In segment CODE, align 4, keep-with-next
     28          volatile static void delay(int loops)
     29          {
     30            long i;
     31            for (i = loops; i >= 0; i--)
   \                     delay:
   \   00000000   000050E3           CMP      R0,#+0
   \   00000004   0EF0A041           MOVMI    PC,LR
   \   00000008   010080E2           ADD      R0,R0,#+1
   \                     ??delay_0:
   \   0000000C   010050E2           SUBS     R0,R0,#+1
   \   00000010   FDFFFF1A           BNE      ??delay_0
     32             ;
     33          }
   \   00000014   0EF0A0E1           MOV      PC,LR           ;; return

 

собственно от delay0 - 2 комманды, 2 такта.

Share this post


Link to post
Share on other sites
Ну? 179(тактовая частота ядра)/2(2 такта цикл)=89.5(богомипсов)

 

собственно от delay0 - 2 комманды, 2 такта.

Вы похоже правы...

возможно, больше не получится....

 

прийдется чтото придумывать...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this