-
- о. забиваем на переносимость, на изменение тактовой, на замену камня, на модификацию кода. в общем лепим отборный, рафинированный говнокод. Mahagam(950 знак., 24.02.2016 22:38)
- В случае с ручным рассовыванием — стопудово так. Поэтому приём и не используется обычно. Я потому тему компилятора и поднял, что не вижу осмысленности вручную так извращаться — случись чего, дык не перепишешь ни в жисть. - Николай Коровин(25.02.2016 18:19)
- А пример "LVDS чипа" можете привести? - Evgeny_CD(24.02.2016 22:53)
- Думаю, можно расслабиться насчет хитрых способов программизма и активно начать вкуривать гетерогенную многоядерность, которая нынче в QFP64 за $5 доступна -> - Evgeny_CD(23.02.2016 23:12)
- Тю - #pragma inline хучь 100500 раз подряд, и все в шоколаде. Иначе будет закат солнца вручную с труднопредсказуемыми моментами ветвлений и т.д. Либо нужен проц с нешуточным [Timed] Event Coprocessor'ом - MBedder(23.02.2016 23:00 - 23:04)
- Cortex M4 + M0 задешево в мелком корпусе -> - Evgeny_CD(23.02.2016 23:13 - 24.02.2016 01:16, ссылка)
- я думаю сначала надо придумать в какой форме задача будет поставлена компилятору, я так понимаю это должна быть какая-то прагма IBAH(101 знак., 23.02.2016 20:20)
- "3) Лишних тактов на прерывания, вызовы и возвраты у нас нет." - неправильно выбран камень. - TimeZoneDefault(23.02.2016 18:47, )
- Не-не-не-не, подразумевается, что на асме это всё решаемо, т. е. камень выбран вполне даже. Речь об инструменте разработки, более вменяемом, чем ручной подсчёт тактов в простыне. - Николай Коровин(23.02.2016 20:37)
- вражеский бэкграунд здесь -> TimeZoneDefault(112 знак., 23.02.2016 21:38, )
- То есть это хороший, качественный баянище, так и не получивший распространение в виде джентльменского набора более-менее общепринятых прагм. Хххха. Подозревал такой исходЪ :) - Николай Коровин(25.02.2016 18:27)
- тулза здесь -> TimeZoneDefault(38 знак., 23.02.2016 21:45, )
- и туториал, который не скачивается по ссылке со странички загрузки -> TimeZoneDefault(67 знак., 23.02.2016 21:58, )
- Или компилятор самому заваять, или профайлер, двигающий коды команд в заданном участке кода. - VL(23.02.2016 21:25, )
- ЕМНИП, ручной подсчет тактов годился только для древних процессоров. В современных процессорах сплошь и рядом out of order execution. - Хаос(23.02.2016 20:45, )
- А также шинный коммутатор, в котором много чего сталкивается, и кеш, порой многоуровневый. - Evgeny_CD(23.02.2016 23:21)
- вражеский бэкграунд здесь -> TimeZoneDefault(112 знак., 23.02.2016 21:38, )
- кстати, прозвучало уже второе за сутки предложение резервировать регистры подсвоюзаблуду до компиляции. прям падучая какая-то. или это от импортозамещения так рвёт..? :) - TimeZoneDefault(23.02.2016 19:17, )
- Не-не-не-не, подразумевается, что на асме это всё решаемо, т. е. камень выбран вполне даже. Речь об инструменте разработки, более вменяемом, чем ручной подсчёт тактов в простыне. - Николай Коровин(23.02.2016 20:37)
- Если "тупорылая операция" неподъемна для DMA, то задача как раз в впору двуядерному МК, когда одно ядро делает "тупорылую операцию", а второе "сложную задачу". В этой связи встречный вопрос ко всем - бывают ли двуядерные МК? Ксения(370 знак., 23.02.2016 18:41)
- например, с переключением регистрового пула на запасной ← а кстааааати! - Николай Коровин(25.02.2016 18:36)
- Например LPC4300 - Cortex M3 + Cortex M0 Оба частотой до 204 МГц - NickB53(23.02.2016 19:49, )
- Только от людей, которые его юзали в своих проектах, довелось слышать и читать в нашем форуме, что не удается достичь полной скорости от двух ядер. Интерконнект и шина подкачали. Т.е. они-то тактируются, да по большей части бамбук курят. - Evgeny_CD(23.02.2016 21:33)
- А нафиг "полная скорость"? 204 МГц - так много, что не понятно, как только flash на этой частоте работает. - Ксения(23.02.2016 21:59)
- В самый раз! - Ксения(23.02.2016 19:53)
- Только от людей, которые его юзали в своих проектах, довелось слышать и читать в нашем форуме, что не удается достичь полной скорости от двух ядер. Интерконнект и шина подкачали. Т.е. они-то тактируются, да по большей части бамбук курят. - Evgeny_CD(23.02.2016 21:33)
- У TI вот какая штучка вышла -> Аж о трех ядрах. Одно ядро "бдит", другое "молотит", третье "связует". - Гудвин(23.02.2016 19:23 - 19:28, ссылка)
- Офигеешь его программировать :) - Ксения(23.02.2016 19:49)
- Есть и попроще, с CLA (control law accelerator). Вполне себе сопроцессор, и программируется легко. - serge_dem(23.02.2016 21:45, ссылка)
- Набортные объемы ОЗУ невелики. Цена приятная, но жаль, что основной проц там не ARM. Против Cortex-M7, скорее всего, проиграет по скорости - а удобство точно на стороне ARM. - Evgeny_CD(23.02.2016 22:12)
- Там рядом Delfino лежит. Памяти больше, частоты выше. Ядро хоть и древнее, но бодрое. - mr-x(24.02.2016 09:24)
- Набортные объемы ОЗУ невелики. Цена приятная, но жаль, что основной проц там не ARM. Против Cortex-M7, скорее всего, проиграет по скорости - а удобство точно на стороне ARM. - Evgeny_CD(23.02.2016 22:12)
- Есть и попроще, с CLA (control law accelerator). Вполне себе сопроцессор, и программируется легко. - serge_dem(23.02.2016 21:45, ссылка)
- Офигеешь его программировать :) - Ксения(23.02.2016 19:49)
- ESP32, наследник ESP8266, вроде как с двумя ядрами идет. - ASDFS(23.02.2016 19:02)
- TI Concerto - прекрасные двухъядерные МК --> - MBedder(23.02.2016 18:57, ссылка)
- Для своей области применения - вне всякого сомнения. Но цена не маленькая. Обилие багов склоняет к использованию фирменных библиотек, DSP как сопроцессор - к использованию фирменных средств разработки. В целом это не универсальное решение почти на Evgeny_CD(18 знак., 23.02.2016 22:09)
- У Миландра есть нечто аналогичное, как ни странно. Видать актуально. - Lightelf(23.02.2016 21:04)
- Здесь как раз нужна конкретика. Без точного понимания этой "тупорылой операции" осмысленный ответ на вопрос невозможен. Хаос(53 знак., 23.02.2016 18:53, )
- Важнее, полагаю, размер паузы между ними. Если пауза велика, то прерывания в самый раз, а когда пауза мала, то тут и начинаются проблемы. - Ксения(23.02.2016 19:44)
- Ну да, 33 попугая по любому больше одного удава.. :) - Хаос(23.02.2016 20:20, )
- Одним выстрелом в десяточку. - Николай Коровин(23.02.2016 20:11)
- Intel Hyper-threading technology. Фсе украдено до нас. - Lightelf(23.02.2016 21:15)
- Важнее, полагаю, размер паузы между ними. Если пауза велика, то прерывания в самый раз, а когда пауза мала, то тут и начинаются проблемы. - Ксения(23.02.2016 19:44)
- Осмысленно только для RISC типа MIPS с большим числом регистров. - fk0(23.02.2016 17:54)
- Второй банк регистров не? Кроме мипса вроде у RXv2 есть. - Lightelf(23.02.2016 21:19)
- NIOS-II (до 16 наборов), RL78 многие чипы (4 набора). В целом это редкая, но не экзотическая фича. Отличная идея по стилю программирования! - Evgeny_CD(23.02.2016 21:30)
- И 8051 пророк его. - Lightelf(23.02.2016 21:41)
- NIOS-II (до 16 наборов), RL78 многие чипы (4 набора). В целом это редкая, но не экзотическая фича. Отличная идея по стилю программирования! - Evgeny_CD(23.02.2016 21:30)
- Второй банк регистров не? Кроме мипса вроде у RXv2 есть. - Lightelf(23.02.2016 21:19)
- Ага, подгонять такты. Не только лишь все процы это могут (разве что старое унылое гамно). - SciFi(23.02.2016 17:15)
- Нужно вернуться к классике 186 с входом ожидания! - VL(23.02.2016 18:27, )
- как просчитать такты при наличии ветвлений,вызовов функций,прерываний ? и код раздуется. проще выделить 1 таймер и DMA - zeleny(23.02.2016 17:04)
- Код не просто раздуется, а достигнет размера цен в «Азбуке Вкуса». Прерывания отпадают. Остальное легко разруливается NOP'ами. Да, если нужен просто вывод — DMA, а если какая-нибудь другая тупорыловка? :) - Николай Коровин(23.02.2016 17:21)
- на AVR вход/выход в прерывание 12..17 + 12 циклов, при 16МГц 1+1мкс. Можно выделить для задачи несколько регистров и не сохранять ничего в стеке - отработка прерывания по таймеру получается очень быстрая. - zeleny(23.02.2016 23:19)
- …когда вся задача — 8..10 циклов, а на остальную жизнь камню остаётся 6..8… - Николай Коровин(25.02.2016 18:50)
- под такого типа задачу идеально пойдет Propeller или многоядерный Forth-процессор напр.Greenarrays. И код не раздуется, и задачи абсолютно не пересекаются - zeleny(23.02.2016 19:24 - 19:28, ссылка, ссылка)
- Для особо тяжелых случаев существуют SoC. Zynq, Cyclone, Arriа и даже Stratix-10. Внутри один-два Cortex'а и бонусом - FPGA. - Хаос(23.02.2016 18:33, )
- А также более реалистичные по цене SmartFusion®2 от Microsemi -> - Evgeny_CD(23.02.2016 23:28, ссылка)
- при наличии ОС или интерпретатора типа Форта эти простые операции проще встроить в планировщик. Но все равно рулить с точностью до такта не получится. - zeleny(23.02.2016 17:37)
- на AVR вход/выход в прерывание 12..17 + 12 циклов, при 16МГц 1+1мкс. Можно выделить для задачи несколько регистров и не сохранять ничего в стеке - отработка прерывания по таймеру получается очень быстрая. - zeleny(23.02.2016 23:19)
- Код не просто раздуется, а достигнет размера цен в «Азбуке Вкуса». Прерывания отпадают. Остальное легко разруливается NOP'ами. Да, если нужен просто вывод — DMA, а если какая-нибудь другая тупорыловка? :) - Николай Коровин(23.02.2016 17:21)
- Не взлетит, ибо не в тренде. В тренде: добавить еще пару ядер Cortex-A7, натянуть на них жЫрного пингвина и, помолясь, заняться нанотехнологиями. - LightElf(23.02.2016 16:40)
- Вот же ж каркуша злорадная… - Николай Коровин(23.02.2016 16:55)
- Шутка только частично. А если серьезно - напрашивается тупой сопроцессор для тупой задачи, типа техасского PRUSS или XGATE от Freescale. Но тренд - вкрючивать Cortex-M. Видать их бесплатно дают внагрузку к Cortex-A. Куда не плюнь - четыре ядра A7 Lightelf(40 знак., 23.02.2016 21:12)
- Это полумера.. Вот пару CPLD - одну на шину где периферия, а другую в ядро для добавления sherr(191 знак., 24.02.2016 20:41)
- Он - буревестник будущего. Так что стоит прислушаться.... - Evgeny_CD(23.02.2016 18:21)
- Шутка только частично. А если серьезно - напрашивается тупой сопроцессор для тупой задачи, типа техасского PRUSS или XGATE от Freescale. Но тренд - вкрючивать Cortex-M. Видать их бесплатно дают внагрузку к Cortex-A. Куда не плюнь - четыре ядра A7 Lightelf(40 знак., 23.02.2016 21:12)
- Вот же ж каркуша злорадная… - Николай Коровин(23.02.2016 16:55)
- о. забиваем на переносимость, на изменение тактовой, на замену камня, на модификацию кода. в общем лепим отборный, рафинированный говнокод. Mahagam(950 знак., 24.02.2016 22:38)