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