prst 0 27 марта, 2007 Опубликовано 27 марта, 2007 · Жалоба продолжение темы - http://electronix.ru/forum/index.php?showtopic=25634AT91RM9200 - мистика? SPI? или romboot.bin? задачка не для слабонервных....Предлогаю продолжать здесь обсуждение старой темы, но уже с привязкой к более высокому уровню системы... ===================================================================вопрос номер один =================================================================== [root@AT91RM9200_SK /]$dmesg |grep MIPSCalibrating 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 Надеюсь тут есть светилы мысли у опыта именно в данном вопросе... Посоветуйте, подскажите плиз если знаете... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
COMA 1 28 марта, 2007 Опубликовано 28 марта, 2007 · Жалоба Вроде это предел для ARMов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bzx 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба Вроде это предел для ARMов. А как же тогда "200 MIPS at 180 MHz" для AT91RM9200? Понятно что это пиковая производительность и для Linux ничего общего не имеет. Может имеет смысл абстрагироваться от "более высокого уровня системы...", т.е. вести речь не о Linux, и написать синтетический тест, вычисляющий реальную пиковую скорость? Сразу возникает вопрос, кусок кода, вернее цикл, где будет идти подсчёт машинных тиков, резоннее написать на asm? Какие инструкции использовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба Вроде это предел для ARMов. Дык, как же так? должно быть какоето решение, значит еще не предел.... я же писал я пробовал увеличить скорость производительности гдето месяц назад - получалось только методом умеличения тактовой частоты шины памяти до [b]89 MHz[/b].... а все это значит - что нужно искать какие-то оптимальные решения "данной микропроблемки" - тоесть это метод повушения производительности номер 1 вот я и интересуюсь, может ктото знает - какие еще могут быть методы по провышению производительности ядра. хотелось бы поболее чем 85.19 BogoMIPS хотябы 120, вот... Вкратце объясню, откуда ростут ноги этого вопроса : Нужна более высокая производительность системы, так как ты данном котроллере будет выполняться операция матиматической обработки, и хочется что бы пользовательские задачи не отбирали временнай ресурс у мат-демана. Производительность почти 1/2 (почти 100 - из 200ста ) от производительности контроллера, под такой осью как linux, конечно впечятляет, но если смотреть на решаемую задачу, то хочется чуть-чуть по производительнее ... Может как то шедулерами в ядре можно отобрать немного юзерского времени.... или еще как то? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gmax 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба я пробовал увеличить скорость производительности гдето месяц назад - получалось только методом умеличения тактовой частоты шины памяти до 89 MHz.... И сколько BogoMIPS получилось в результате? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
COMA 1 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба А как же тогда "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 любит посмеиваться над растерянными людьми в новостях. " Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба Вы не путайте обычные 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§ion=1" title="Править секцию: Ссылки">править] Ссылки BogoMips mini-Howto Он же по-русски, довольно устаревшая версия. --------------------------------------------------------------------------------------------------- из написанного хотелось бы поставить упор на фразу, от которой стоит оттолкнуться для разворота данного вопроса в более объемленый ответ, и найденое решение.... Величина BogoMIPS обычно пропорциональна тактовой частоте процессора, но также зависит от архитектуры процессора и работы кэша. И сколько BogoMIPS получилось в результате? я же писал в первом посте [root@AT91RM9200_SK /]$dmesg |grep MIPS Calibrating delay loop... 85.19 BogoMIPS (lpj=425984) [root@AT91RM9200_SK /]$ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gmax 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба Можно еще сделать из мат-демона мат-драйвер... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба А как же тогда "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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба А что вы собственно хотите? У вас цикл занимает 2 команды - 2 такта, соответственно количество богомипсов будет в 2 раза меньше тактовой проца. Цикл выполняется из кеша, так что больше вы никак не получите. Минус естественно накладные расходы (небольшие) На последок - телефон Siemens S75, ARM926EJ-S, тактовая частота процессора 104МГц: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба Можно еще сделать из мат-демона мат-драйвер... Ты думаеш что особый прирост значения BogoMIPS при этом будет? может, может, не знаю.. хотя и не уверн... нада взять на вооружение и испробовать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба а это при 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 /]$ не ужто так все печально? пойдука я еше поищю.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба а это при 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 такта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
prst 0 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба Ну? 179(тактовая частота ядра)/2(2 такта цикл)=89.5(богомипсов) собственно от delay0 - 2 комманды, 2 такта. Вы похоже правы... возможно, больше не получится.... прийдется чтото придумывать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
COMA 1 29 марта, 2007 Опубликовано 29 марта, 2007 · Жалоба А почему такие требования по скорости? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться