Pull to refresh
4
0.1
Алексей@f-tech

User

Send message

Кто-то на чипах первой половины 1980-х запускает 3D шутер. А у кого-то на Core i7 рендер кнопки в браузере тормозит.

( Ушёл, стирая слёзы с седой бороды )

Глянул иллюстрации к прошлой статье. Получается, что (Тацп + Тсохр) всегда меньше того периода, в который требовалось уложиться. И мешал только вклинивающийся между этих операций процесс вычислений, верно?

А возможна ли была такая реализация, когда мы разделяем приоритеты задач: опрос АЦП и сохранение в EEPROM выполняются с высоким, а обработка данных - с низким? Сейчас поясню.

Нам понадобится два программных неблокирующих FIFO буфера. В один прерывание складывает данные от АЦП, а в другой функция обработки данных помещает результат.

Обработчик прерываний:
• В начале каждого цикла опрашиваем АЦП и помещаем данные во входной буфер.
• Если в выходном буфере есть данные для записи, стартуем цикл записи в EEPROM, иначе сразу выходим - пусть работает основная функция.

Функция вычислений (крутится в poll-цикле):
• Если во входном буфере появились данные, извлекаем их и обрабатываем.
• Если в результате получили полезные данные для записи, помещаем их в выходной буфер. Они будут записаны в EEPROM при старте очередного цикла.

Если какой-либо из буферов у нас переполнился при записи, делаем аварийный останов - у нас явно ошибка либо в логике, либо при подсчёте таймингов.

Дополню сам себя. Я не очень понимаю, как этому чипу подавать входные данные. Потому что даже типичный рукописный символ потребует матрицы 64х64 при разрешении сканирования 300dpi. То есть 4К входных аналоговых параметров. В МРТ, как мне выдал гугл, матрица до 256х256, то есть 64К входных сигналов. Это столько ножек у чипа?!
(да-вы-угораете?!.jpg)

Значит, надо как-то организовать чипу ввод-вывод во вменяемом форм-факторе.

  • Вариант самый безумный: на материнской плате 4К миниатюрных лазерных диодов, N фотодиодов в качестве приёмников, в корпусе чипа тысячи отшлифованных microfiber выводов, ответный разъем такой же.
    PRO: скорость ограничена только временем включения-выключения лазерных диодов.
    CON: стоимость нескольких тысяч лазерных диодов.

  • Ввод данных по быстродействующему последовательному интерфейсу. Интерфейс аналоговый, уровни храним как DRAM, очень недолго (но нам хватит). Чтобы было ещё быстрее, используем multi-lane.
    PRO: вменяемое количество линий ввода-вывода.
    CON: нам по-прежнему нужны 4К лазерных диодов, только уже на чипе.

  • Вариант сродни предыдущему, но лазерных диодов сильно меньше. Мы их используем только как условные источники питания, а фотонный поток на входы нейросети делим и регулируем отдельными элементами. Что это может быть? На ум приходят микрозеркала (MEMS) или жидкие кристаллы.
    PRO: требуемый размер кристалла и его цену мы скорее всего уменьшили.
    CON: MEMS и ЖК имеют быстродействие переключения на порядки больше пикосекунд. Мы не можем использовать на полную быстродействие собственно фотонного перемножителя матриц.

С лучом света вы правы. А вот на печатной плате из текстолита FR4 сигналы распространяются примерно вдвое медленнее.
(Это очень грубо, без учёта частоты и соседних слоёв / дорожек)

Ух! В детстве первым компом был клон ZX Spectrum. До сих пор храню схемы как память ) И замечательная книга Ларченко и Родионова помогла научиться не только игрушки на нём запускать.

А потом, уже в сознательном возрасте, пришлось и археотехом заняться. Когда потребовалось эмулировать дисковод для старых японских ЧПУ. Всё, что можно было сделать "не как у современных IBM PC/AT", там было сделано. Интерфейс Shugart, формат дискеты с чередованием секторов 1:3, файловая система RT-11.

Много пафоса, мало фактов о том, как же это на самом деле работает.

Про нулевой нагрев – очевидно неправда.
- Затухание и рассеяние в оптоволокне никто не отменял.
- Лазерное излучение на входах чипа надо чем-то генерировать, а КПД маломощных полупроводниковых лазеров обычно не более 50%.
- Далее, если сами вычисления используют интерференцию, и на приёмнике случилось взаимное гашение волн (деструктивная интерференция), то где-то обязана случиться и конструктивная интерференция. С большой вероятностью эта энергия тоже уйдёт в тепло.

Не раскрыт механизм "обучения в реальном времени". Из текста скорее напрашивается обратный вывод: после обучения получили нужные веса, по ним сгенерировали топологию кристалла, вытравили это в кремнии. Получили этакий ASIC, только с оптикой.

И ещё один момент, но он скорее для обсуждения. Не знаю, насколько это окажется важным в реальных сценариях. КМОП чипы потребляют энергию только на переключение состояния. С ростом частоты потребление и тепловыделение, понятное дело, растут. Зато с уменьшением – падают, вплоть до полного останова с потреблением в пикоамперы. В случае с оптикой для поддержания внутреннего состояния лазеры на входе всегда должны быть включены, даже если вычисления в данный момент не производятся.

Честно говоря, нет. Чем меньше у отдела HR ресурсов, тем больше резюме станут рандомно отправляться в помойку. А токсичные практики никуда не денутся.

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

Я не Ванга, но прям вижу, что этим же людям рассказывали про "мы одна семья", и что "сейчас надо потерпеть, зато потом заживем по-королевски" когда оправдывали бесплатные овертаймы и отстающую от инфляции ЗП.

Спасибо за список. Allwinner и Rockchip довольно нишевые, кмк, я раньше в эту сторону не смотрел. Теперь буду иметь в виду.

Всем чипам из списка нужна внешняя NAND, большинству – DDR. Было бы честно плюсовать их к стоимости процессоров. В целом решение получается намного круче "голого" STM32F7xx, это очевидно.

Но иногда такие объемы памяти просто не нужны. А нужен deep sleep с потреблением в несколько мкА и сохранением состояния системы.

Что было в моем случае: если упрощенно - приемник и ретранслятор. Слушал несколько каналов (цифровой поток порядка 1 Mbps); демодуляция, декодирование и разбор протокола – в софте. Снаружи там чисто аналоговая часть, выход компаратора с детектора огибающей смотрел прямо в чип.

Сохранял услышанное на SD карту. Что-то должен был передать дальше. Собственно, большую часть SRAM съели буферы, сам код и логика были достаточно простые. Батарейное питание. Конфигурация – через файл на той же SD карте.

Точную модель контроллера уже не вспомню, простите. Что-то из F7хх серии в корпусе LQFP-144.

Из личного опыта: не больше 10% в виде разных бонусов (премии, повышения, небольшой процент с продаж конкретно этих девайсов и пр). Но собственный опыт – слишком маленькая выборка )

Я-то этот пример приводил с другой целью. Показать ситуацию, когда дополнительные затраты на оптимизацию экономически выгодны для организации в целом.

Предвидя возражения, уточню: это не про затягивание разработки (сроки и TTM никто не отменял), а про окупаемость затрат на "мозги" и на "сделать хорошо".

Процессоры под линукс зачастую дешевле

Не соглашусь с формулировкой. Иногда дешевле, но не зачастую.

Если не трудно, приведите конкретный пример недорого SoC и задачи, которую мы решаем, работая под Linux. Чтобы понимать, какие в этом случае есть альтернативы.

Инструмент выбирается под задачу. Где-то линукс в самый раз, где-то RTOS, и там тоже есть драйвера периферии и различные стеки "из коробки". А иногда приходится отказываться не только от ОС, но и от HAL библиотек, и делать закат солнца вручную. Глазами отсматривать, какой ассемблерный код сгенерил компилятор и бороться, без преувеличения, за несколько тактов на самых горячих участках. Задачи разные бывают, как и железо.

Что выгоднее: влить деньги в "железо подороже + Linux" или "железо подешевле + bare metal + ФОТ", тоже зависит от вводных. Это если по уму. А если жить по принципу "пофиг на себестоимость, за все платит пользователь", то мы с этого и начали ветку )

Почти :)

Например, ужался и в STM32F7xx серии влез в младшую модель на $1.4 дешевле (там цены в районе $10). А тот чип еще и в корпусе LQFP-144 вместо LQFP-208 (допустим линий I/O нам хватает там и там). Это 64 точки пайки, примерно по $0.01 каждая. Чуть меньше надо места на плате, чуть проще трассировка, чуть выше ремонтопригодность...

Мелочи. И все-таки на крупных сериях из них набегает заметная дельта по стоимости производства и обслуживания.

Борьба за проценты все еще выгодна, только уже в другой области – где используют слабые однокристаллки (SoC). Там "влез" по памяти и быстродействию в более дешевый чип – сэкономил, например, $2 на каждом устройстве. А серия в 10 тыс. штук. Как правило профит в $20k окупает содержание программистов, умеющих в оптимизацию.

Потому что в любом варианте транскрипцией адекватно звучание все равно не передать.
На слух его кто-то мог бы записать и как Хван Ен-Шин.

Здесь же сначала китайское имя подстроили под привычно звучащий для англоязычных вариант, а потом по буквам скопировали на русский. И получилось то, что получилось.

Имелись в виду совсем старые клавиатуры, времён первых IBM PC/XT и AT

Вот такие

Хотя на самом деле и чистить/тестить память и остальное не обязательно и можно было сделать эти фичи опциональными.

Если я правильно помню, то в старых IBM PC регенерация памяти была завязана на таймер + DMA. И аппаратный Reset транслировался на шину (RESET DRV).

То есть почти всё глохло или переходило в начальное состояние. И поэтому BIOS приходилось делать заново полную инициализацию.

А начиная с 286 стало возможно отдельно дернуть сброс на CPU через контроллер клавиатуры. Такой аппаратный костыль, чтобы возвращаться в real mode. И логика работы внешнего сигнала сброса несколько изменилась.

Спасибо!

Простите, что торможу с ответами.Я пробую запихнуть в программу все, что вы написали.

Пока что вводные такие: дистанция до источника света, дистанция до линзирующей массы, угловое смещение линзирующей массы относительно оси 'наблюдатель-источник света' и, собственно, масса линзирующего обекта.

Дальше как вы говорите искать в евклидовой плоскости лучи, которые спроецировались от источника и дошли до наблюдателя. Но честная трассировка лучей -- это очень медленно.

Знаете, у меня всегда было плохо с чистой математикой. Я электронщик и немного электромеханик. В профессиональной деятельности для меня весь матан сводится к логарифмам в графике АЧХ и экспоненте в переходных процессах R-L и R-C.

Но я стараюсь искать сложные для себя вещи, чтобы мозги не закисали. Вот как эта проблема. Но с абстракциями все равно беда. Мне бы формулировку вида: "Наблюдатель и источник света находятся на одной прямой, считаем её нулем в полярной системе координат. Можно задать дальность до источника. Есть массивное тело между источником света и наблюдателем. Можно задать его смещение в сторону относительно прямой 'наблюдатель-источник света' и расстояние до него. Считаем, что источник света и наблюдатель достаточно удалены от массивного тела, чтобы пренебречь релятивистскими эффектами в точке излучения и наблюдения".

И вот тебе, Алексей, формула, описывающая максимумы яркости в поле зрения наблюдателя. Я искал, даже читал англоязычные статьи, к которым есть доступ без платной подписки. Не нашёл. Если вам где-то попадалась, поделитесь ссылкой, буду очень благодарен.

1

Information

Rating
4,086-th
Location
Россия
Registered
Activity

Specialization

Инженер встраиваемых систем, Системный инженер
Старший
C
Программирование микроконтроллеров
Embedded linux
Разработка драйверов
Обратная разработка
Git
Английский язык