TGViewer
Записки CPU designer'a Записки CPU designer'a @cpu_design · 3.59K subscribers
Post #228 2.5K
Вернемся к новому чипу от RaspberryPi.
Особенности микроархитектуры RP2350.

Микроконтроллер RP2350 на базе ядра Cortex-M33 обладает интересными микроархитектурными решениями в области работы с числами с плавающей запятой.

Одной из особенностей является интеграция кастомного математического сопроцессора двойной точности (DCP), который обеспечивает ускорение операций с числами double, включая сложение, вычитание, умножение, деление и извлечение квадратного корня.

Вместо использования стандартного IP-блока FPU двойной точности от ARM, который занимает значительную площадь кристалла, разработчики RP2350 внедрили компактный сопроцессор, меньший по площади в сравнении с типовым IP-core для поддержки double precision операций. Данное решение позволяет существенно ускорить операции с числами double по сравнению с программной реализацией, при этом минимизируя затраты на аппаратные ресурсы.

Модель программирования для кастомного сопроцессора DCP в RP2350 существенно отличается от стандартного FPU от ARM. При использовании стандартного FPU операции с плавающей запятой выполняются с помощью стандартных ARM-инструкций, и компилятор автоматически генерирует эти инструкции на основе кода высокого уровня, что упрощает разработку. В случае с DCP, разработчикам необходимо использовать специальные последовательности инструкций сопроцессора, известные как "canned instruction sequences", для выполнения операций с числами двойной точности. Это требует более низкоуровневого подхода к программированию и прямого взаимодействия с сопроцессором, что отличается от автоматизированного использования стандартного FPU.

С DCP возможно работать только в ARM режиме, RISC-V ядра не поддерживают работу с кастомным DCP, что обусловлено особенностями микроархитектуры RP2350.

За компактность DCP приходиться платить. Любое решение это компромисс, в данном случае компромисс в вопросах поддержки стандарта ieee-754. В DCP все денормализованные числа обрабатываются как ноль, что негативно сказывается на точности вычислений.

Подробности об ограничениях компактного FPU можно найти в разделе 3.6.2.9 "IEEE 754 compliance" спецификации микроконтроллера RP2350.

Больше деталей про устройство DCP можно найти в разделе 3.6.2 Double-precision Coprocessor (DCP) спецификации на микроконтроллер RP2350.

Примеры кода для работы с DCP можно найти в github репозитории микроконтроллера: https://github.com/raspberrypi/pico-examples/tree/develop/dcp

Библиотека Canned instruction sequences: https://github.com/raspberrypi/pico-sdk/blob/develop/src/rp2_common/hardware_dcp/include/hardware/dcp_canned.inc.S

🖥
  • 👍 14
  • 👀 8
  • ✍ 3
More from @cpu_design
  1. Oct 1, 2026OpenAI and Synopsys Announce GPT-Synopsys Ну что, вот они и пришли за нами. Если кратко, т…
  2. Sep 30, 2026Уже влезли в долги, чтобы наскрести на подписку ChatGPT за 500$? Пока убеждаете друзей зан…
  3. Sep 29, 2026Нидерланды продолжают укреплять свои позиции как один из ключевых полупроводниковых хабов…
  4. Sep 28, 2026Плюс-минус такие же вайбы, когда в Codex после релиза Astra прилетело три бесплатных reset…
  5. Sep 27, 2026RTL/Verif/PhysDesign-инженеры, теперь наша пора радоваться (либо трястись, что нас всех ск…
  6. Sep 14, 2026How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip https://spectrum.ieee.org/llms-fo…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →