И первая же мысль: что скрыто под наклейкой? - «кого» переименовали, и чторешили этим замаскировать? Известно, что для сколь-нибудь крупной затеи сейчасне представляет сложности заказать производство партии любыхсамоспроектированных чипов на каком-нибудь китайском заводе (хоть на том же UMC) – разумеется, в промышленном количестве (от1000 штук), с собственной заводской гравировкой (так например, во времена более15 лет назад «русская» Денди содержала единственный «заказной» чип – UM6561, совмещающий в себе весьма разные компоненты).В данном же случае разработчики uM-FPU поступили иначе. И тут вторая мысль:в какой микроконтроллер зашили софтину, выполняющую вещественную арифметику? –но тут я подумал, что это я наверное слишком лихо хватил… Начались «гугления»на предмет получения более детальной информации об этом uM-FPU, в том числегде дешевле его можно заказать чтобы пощупать самому софтово и т.п.
А вместе с тем читал и изучал я материал с официальногосайта Ардуино, где работе с данным сопроцессором посвящена готовая библиотека,а также пользовательскую документацию разработчика на сам сопроцессор.
С одной стороны (с точки зрения универсальности) казался логичным фактподключения сопроцессора к базовому микроконтроллеру по шине SPI (есть практически во всех современныхконтроллерах). С другой стороны – эта шина не обладает достаточнымбыстродействием чтобы «тягаться» производительностью с ядром контроллера и небыть при этом узким местом. Одновременно с этим понятно, что сам uM-FPU это некомбинационная схема (в любом случае), а некоторый автомат, имеющий своеограниченное быстродействие (т.е. срабатывает не мгновенно). И вот всему этому«бутерброду» (контроллер -> SPI -> FPU -> SPI -> контроллер)предстоит (по задумке разработчика) показывать более высокую производительностьпри оперировании с вещественными типами данных, чем алгоритму, исполняемому наядре ATmega! То, чтоесть возможность в железе реализовать более оптимальные алгоритмы обработкивещественных чисел (чисел «с плавающей точкой»), чем программно на ядре ATmega – нет никаких сомнений, хотя,разумеется также, что процессор (сопроцессор) для обработки вещественнойарифметики должен имеет располагающую оптимизации таких операций архитектуру.Но даже с весьма технически (алгоритмически) продвинутым сопроцессоромнеобходимо иметь быстрый канал передачи данных, при отсутствии которого весьвыигрыш во времени на операциях вычислений будет теряться на передаче данных междусопроцессором и базовым (центральным) процессором. В рассматриваемом случае нампредлагают в качестве шины сопроцессора последовательныйинтерфейс SPI.
Но наверное всегда хочется верить в лучшее. И я в надежде на чудо, котороепо логике вещей ждать вроде не от куда – решил все же купить этот uM-FPU, и занялсяпоиском наиболее оптимального магазина с точки зрения затрат на приобретение.Каково же было мое удивление (а вернее все встало на свои места), когда в одном измагазинов, сопроцессор uM-FPU сопровождала следующая картинка.
Конечно же – как я сразу и предположил uM-FPU – это прошивка(программа) для контроллера dsPIC30F3012 !!! Комментарии думаю излишни… Предлагают жекупить «программу uM-FPU» по цене эквивалентной цене самого контроллера (т.е.за контроллер прошитый софтиной uM-FPU платишь как за два чистых контроллера). Нафорумах же, где обсуждают возможности контроллера dsPIC30F3012 поманипулированию с вещественными числами высказывается множество нелестных словв его адрес, в том числе, что касается точности вычислений. В общем никакой «сказки»с сопроцессором uM-FPU не вышло – очередной развод, будьтевнимательны…
MiGeRA (декабрь2011)