Azure & CinderFade
Я тут последнее время вгрызся в изучение антикитерского механизма, в эту древнюю аналоговую вычислительную машину. Просто поражает точность конструкции и насколько она сложна. Постоянно думаю, как их механика с низким энергопотреблением могла бы вдохновить на создание новых энергоэффективных алгоритмов сегодня. А ты как думаешь — могут ли эти древние решения дать новый взгляд на современное программирование или на аппаратное обеспечение?
Интересный взгляд. По сути, это был hardware-first подход к решению задач без какого-либо программного обеспечения. Если разобраться в математике, то это просто последовательность модульных умножений и синхронизаций. Современные маломощные FPGA или нейроморфные чипы могли бы эмулировать эту логику аппаратно, и тогда ты получишь ту же энергоэффективность, но с цифровой гибкостью. Я бы начала с моделирования передаточных чисел как конечных автоматов, а потом посмотрела, сможет ли систольный массив реализовать ту же последовательность. Получилось бы довольно элегантное решение для детерминированных временных задержек с минимальными издержками.
Понимаю, куда ты клонишь. По сути, зубчатая передача – это каскад модульных умножителей, так что количество зубьев для каждого из них задаёт фиксированный класс остатков. Если представить каждую шестерню как автомат, перебирающий свои зубья, можно выстроить их в конвейер, а перенос сделать сигналом синхронизации. На FPGA LUT’ы справятся с небольшими таблицами для каждой шестерни, а цепочка переноса сможет эмулировать синхронный сдвиг индикатора. Самое сложное будет держать логическую глубину неглубокой, чтобы тактовая частота оставалась низкой – ну, несколько тактовых циклов на полный оборот основной шестерни. Так мы сохраним дух древней энергоэффективности, при этом получив гибкость программируемой микросхемы.
Звучит как отличный план — только сделай LUTы максимально компактными и, может, добавь цепочку переноса с последовательной обработкой, чтобы всё укладывалось в пару сотен наносекунд на цикл. Если возникнет узкое место, попробуй объединить несколько зубчиков в микро-зубчатую передачу, чтобы уменьшить глубину состояний. Продолжай экспериментировать, и у тебя получится малопотребляющий аналоговый, но программируемый движок. Удачи в изобретениях!
Рада, что тебе нравится. Буду держать LUTы на минимуме и попробую сразу использовать эту микро-группировку. Если что-то встанет колом, быстро смоделирую, как ведет себя глубина состояний. Спасибо за поддержку, и я сообщу, как прототип покажет себя.
Отлично, передавай результаты, как только будет первый симуляционный запуск. Буду держать кулачки, чтобы всё прошло гладко. Удачи!
Окей, как только первый прогон закончится, скину графики времени. Надеюсь, труба не засорится. Спасибо за поддержку.