Spectra IP Core ORB (ICO) – это специализированная среда разработки, предназначенная для аппаратной реализации протокола GIOP CORBA, является одним из высокопроизводительных решений для обмена сообщениями PrismTech Spectra Common Data Bus (CDB). ICO обеспечивает реализацию протокола GIOP и поддерживает высокооптимизированное подмножество функций ORB, благодаря чему обеспечивается единый бесшовный промышленный протокол данных для множества процессорных архитектур. Специально разработана для поддержки высокопроизводительных приложений программно-определяемого радио (SDR), основанного на открытой архитектуре SCA v4.0. ICO можно так же использовать в качестве интеграционного решения общего назначения в FPGA приложениях без требований к SCA.
ICO была написана на языке VHDL и поддерживает широкий ассортимент ПЛИС и интегральных схем специального назначения (ASIC): Xilinx и Altera. Среда разработки ICO является модульной и конфигурируемой средой и состоит из механизма обработки сообщений основного ядра ICO IP, компилятора IDL в VHDL, пользовательской документации.
ICO используется как механизм обработки сообщений GIOP для FPGA и ASIC, что позволяет использовать стандартный протокол для нескольких процессорных архитектур (GPP, DSP и FPGA). Это снижает необходимость поддерживать пользовательские протоколы и проприетарные интерфейсы. Эти нестандартные типы интерфейса в среде FPGA часто называются слоями аппаратной абстракции (HAL). Основная проблема с подходом HAL заключается в том, что их сложно реализовать и поддерживать, и требуется, чтобы разработчик оборудования понимал детали низкого уровня каждого проприетарного протокола обмена сообщениями. Они также должны быть переписаны, если основные аппаратные изменения снижают переносимость приложений и увеличивают время выхода на рынок и стоимость новых приложений.
ICO при разработке учитывает минимальную логику, необходимую для поддержки требований обработки сообщений для каждого интерфейса. Компилятор ICO IDL генерирует метаданные для конкретного проекта, который используется Core ICO для обработки каждого сообщения наиболее эффективным способом. Потребление памяти зависит от размера полезной нагрузки сообщения.
ICO обрабатывает сообщения CORBA GIOP на аппаратных скоростях, которые в сотни раз выше, чем могли бы быть достигнуты с помощью обычного программного обеспечения ORB. Например, для простого интерфейса, который поддерживает двухсторонний синхронный вызов CORBA и передает полезную нагрузку 1024 байта в качестве параметра IN (реализована на FPGA Altera Cyclone III с тактовой частотой 100 МГц) для обработки сообщения требуется приблизительно 3 мкс от первого байта входящего сообщения, считываемого ICO, до последнего байта ответного сообщения, записываемого в транспорт через ICO. Таким образом, обеспечивается пропускная способность данных более 350 Мбайт/сек. При более высоких тактовых частотах скорость передачи данных может быть увеличена еще больше.