Перейти к содержанию
    

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

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

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

===================================================================
вопрос номер один
===================================================================
[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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде это предел для ARMов.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вроде это предел для ARMов.

 

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

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

я же писал

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

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

 

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

 

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

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

 

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

 

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

 

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как же тогда "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 любит посмеиваться над растерянными людьми в новостях. "

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы не путайте обычные 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 /]$

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как же тогда "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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

post-6610-1175162496.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно еще сделать из мат-демона мат-драйвер...

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а это при 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 /]$

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а это при 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 такта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

×
×
  • Создать...