Многопроцессорные системы на кристалле MPSoC представляют собой важную тенденцию в цифровых встраиваемых электронных системах.
MPSoC - это системы на микросхеме с несколькими процессорами. Новые приложения в современных встраиваемых системах требуют сложных многопроцессорных решений для достижения сроков работы в режиме реального времени и преодоления других критических ограничений, таких как энергопотребление и низкая площадь.
MPSoC, похоже, является решением для таких сложных систем. Множество приложений, таких как сети, мультимедиа и системы управления, выигрывают от такого типа системы. Идеальным примером этого является мобильный телефон. Текущие модели должны обеспечивать низкое энергопотребление и интегрировать большое количество функций, таких как кодирование аудио и видео, обработка изображений и доступ в Интернет.
MPSoC предлагает лучшую производительность при более низком энергопотреблении в таких сложных системах по сравнению с одно процессорными встраиваемыми системами. Традиционно в одно процессорных системах наблюдалась тенденция к повышению производительности за счет увеличения тактовой частоты, теперь же тенденция заключается в работе параллельно с более низкими частотами для снижения энергопотребления.
В области MPSoC, основанный на FPGA мультипроцессор является новой и все более важной тенденцией. Это облегчает быстрое создание прототипов и позволяет проводить исследования новых архитектур и коммуникационных технологий без проблем производства MPSoC .
Теперь с помощью FPGA реализуются не только прототипы, но и готовые проекты. Рост пропускной способности FPGA позволяет проектировщикам реализовать комплексную многопроцессорную систему в одном FPGA . Основные компании предлагают возможность использования софтформенных процессоров, специально разработанных для FPGA; некоторые FPGA позволяют использовать твердотельные процессоры. Кроме того, FPGA оснащены встроенными блоками памяти, периферийными устройствами и схемами межсоединений.
Реконфигурируемость во время работы является одной из сильных сторон многопроцессорных систем на базе FPGA. Эта функция позволяет адаптировать многопроцессорные системы к конкретным условиям применения, обеспечивая гибкость в проектируемой системе.
Жизнеспособность многопроцессорных систем на базе FPGA
Есть ли смысл в реализации многопроцессорной системы на FPGA?
Ответ в том, что это зависит от обстоятельств. Основным недостатком такого рода мультипроцессоров является снижение производительности по сравнению с многопроцессорными системами ASIC. Однако многопроцессорные системы FPGA имеют ряд преимуществ, которые в какой-то мере компенсируют это.
- Гибкость и реконфигурация. Количество программных процессоров, которые могут быть включены, ограничено только возможностями FPGA. Также можно настроить каждый процессор отдельно, добавляя кэш, модули FPU и так далее.
- Меньше времени для вывода на рынок. Процесс проектирования не включает в себя изготовление IC, при этом время проектирования значительно сокращается.
- Сокращение расходов. Этот процесс дешевле. В настоящее время современная FPGA относительно дешева, что позволяет создать собственный дизайн с небольшой рабочей группой. Кроме того, если при проектировании системы возникает ошибка, это не является решающим фактором.
- Масштабируемость. Многопроцессорные системы на базе FPGA могут вмещать все большее число микропроцессоров или периферийных устройств, если в них имеются логические ресурсы.
Таким образом, использование FPGA является лучшим выбором в некоторых случаях.
- Малообъемные проекты, имеющие критически важное значение для выполнения поставленных задач (например, радиолокационные и военные прикладные программы).
- Быстрое проектирование новых, реконфигурируемых многопроцессорных систем.
- Область исследований. Могут разрабатываться новые архитектуры, иерархии памяти, межпроцессорное взаимодействие и так далее.
- Естественно выращенные системы. Системы, которые должны уметь расти в чертах в зависимости от стадии разработки.
Использование технологии FPGA дает многочисленные преимущества при проектировании встраиваемых систем. Эти преимущества включают в себя возможность исправления ошибок в конструкции аппаратного обеспечения FPGA , модернизации системы в полевых условиях или просто замены аппаратного обеспечения без перепроектирования физической платы, содержащей FPGA .
FPGA уже обеспечивают неоспоримое преимущество перед ASIC по времени выхода на рынок, а передовые инструменты, ориентированные на потребности высококлассных проектировщиков FPGA, помогут установить четкое лидерство.
Основные процессоры на базе FPGA.
В многопроцессорных системах на базе FPGA наиболее широко используемые программные процессоры FPGA производятся одной из двух основных компаний-производителей FPGA: Силинкс или Альтера.
Другой вариант - использовать программные процессоры с открытым исходным кодом. Xilinx является наиболее широко используемым брендом в системах MPoPC.
Он поставляет три основных процессора:
- софтформенный MicroBlaze (MB),
- PicoBlaze (8-битный уменьшенный процессор)
- твердотельный PowerPC.
Количество PowerPcs ограничено моделью FPGA максимум четырьмя. Количество процессоров MicroBlaze и PicoBlaze ограничено только логическими ресурсами. MicroBlaze - 32-разрядный RISC софтформенный процессор. Он использует архитектуру Гарвардской памяти, т.е. имеет отдельную память команд и память данных.
MicroBlaze может выпускать новые инструкции для каждого цикла, поддерживая одноцикловую пропускную способность в большинстве случаев. Решением с общей шиной является CoreConnect On-Connect On-Chip Peripheral Bus (OPB), и каждый MicroBlaze имеет порты Fast Simplex Link (FSL) для создания эффективных соединений "точка-точка". PicoBlaze базируется на 8-битной RISC архитектуре и может достигать скорости до 100 MIPS в FPGA семейства Virtex-4. Процессоры имеют 8-битный адрес и порт данных для доступа к широкому спектру периферийных устройств.
Системная структура.
Обычно структуру определяет целевое приложение мультипроцессора на базе FPGA. Существует три основные структуры системы:
- Мастер-ведомый. В системах типа "ведущий-ведомый" один или несколько процессоров выступают в качестве ведущего процессора, контролируя поведение других ведомых процессоров.
- Потоковый. Потоковый подход полезен для потоковых приложений; архитектура сложена с цепочкой процессоров, каждый процессор выступает в качестве этапа трубопровода. Задачи разделены во времени, что приводит к лучшей производительности, если приложение является адекватным.
- Сетевой. Сетевая архитектура относится к многопроцессорным системам, где нет иерархии между процессорами, все процессоры могут взаимодействовать друг с другом, когда это необходимо. Одним из примеров такой системы является симметричный многопроцессор (SMP). Особенностью SMP является то, что все процессоры идентичны, поэтому они являются однородными многопроцессорными системами.
Кроме того, их можно комбинировать: например, "ведущий-ведомый" с потоковым является очень распространенным явлением.
Другим важным вопросом является то, как физически реализуются коммуникационные соединения.
Существует 3 подхода:
- Точка к точке, где процессоры подключены напрямую. Высокая пропускная способность является преимуществом, поскольку нет необходимости в совместном использовании канала связи, но когда системы растут, это не является эффективным зональным решением.
- Shared-bus, традиционный подход, который берет начало в однопроцессорных системах. Это наиболее известный механизм взаимодействия ядер, но он не эффективен с точки зрения производительности, поскольку шина может использоваться только одним процессором за раз.
- Самым последним и перспективным подходом является подход "сеть на кристалле" (NC). Основой этого метода соединения ядер является применение сетевого фона к системам на кристалле. Когда на микросхеме много ядер, это решение лучше всего сочетает в себе область и производительность. Идея заключается в использовании небольших маршрутизаторов внутри чипа для обеспечения связи между всеми ядрами системы с низкими задержками.