Гетерогенные однокристальные мультипроцессоры
Помимо серверов, однокристальные мультипроцессоры используются во встроенных системах — по большей части в аудиовизуальной бытовой электронике: телевизорах, DVD-плеерах, видеокамерах, игровых приставках, сотовых телефонах и т. д. Подобные системы отличаются повышенными требованиями к производительности и жесткими ограничениями. Несмотря на различия во внешнем виде, по существу, эти устройства представляют собой миниатюрные компьютеры с одним или несколькими процессорами, модулями памяти, контроллерами и специализированными устройствами ввода-вывода. К примеру, сотовый телефон — это компьютер, оснащенный процессором, памятью, компактной клавиатурой, микрофоном, системой воспроизведения звукового сигнала и беспроводным сетевым адаптером.
Рассмотрим для примера портативный DVD-плеер. Размещенный в нем компьютер призван выполнять несколько функций:
1. Управление дешевым и ненадежным сервоприводом, регулирующим положение головки.
2. Преобразования аналогового сигнала в цифровую форму.
3. Коррекция ошибок.
4. Дешифрирование и управление правами.
5. Декомпрессия данных видеоформата MPEG-2.
6. Декомпрессия звуковых данных.
7. Кодирование выходных данных для воспроизведения в телевизионных системах NTSC, PAL или SECAM.
Все эти функции должны выполняться в реальном времени с соблюдением жестких требований по качеству обслуживания, энергопотреблению, отводу тепла, размерам, весу и стоимости.
Данные на DVD-носителях хранятся в виде длинной спирали (см., например, рис. 2.20). Головка воспроизведения должна следовать по спирали вращающегося диска. Цена таких устройств остается невысокой благодаря относительно простой механической конструкции и жесткому программному контролю положения головки. С головки поступает аналоговый сигнал, который перед обработкой необходимо преобразовать в цифровой формат. После оцифровки проводится интенсивная программная коррекция ошибок, которые возникают при прессовке дисков. Видеоданные сохраняются на носителе в формате MPEG-2, для декомпрессии которого требуются сложные вычисления типа преобразований Фурье. Аудиоданные сжимаются по психоакустической модели, которая не менее сложна в части декомпрессии. Наконец, аудио- и видеоданные должны быть приведены в форму, подходящую для вывода сигнала в телевизорах системы NTSС, PAL или SECAM — в зависимости от страны, в которой используется DVD-плеер. Естественно, программно решить все эти задачи в реальном времени на дешевом универсальном процессоре невозможно. Таким образом, нужен гетерогенный мультипроцессор с несколькими специализированными ядрами. Логическая схема DVD-плеера представлена на рис. 8.9.
Ядра, изображенные на рис. 8.9, различаются по функциональной специализации; каждое из них спроектировано с расчетом на достижение максимального результата при минимально возможной цене. К примеру, сжатый видеосигнал для DVD хранится в формате MPEG-2 (это аббревиатура разработавшей данный формат организации Motion Picture Experts Group — группа экспертов в области движущихся изображений). При сжатии каждый кадр разделяется на несколько блоков и в отношении каждого из них выполняются сложные преобразования. Кадр может полностью состоять из измененных блоков или из блоков, присутствующих в предыдущем кадре с указанием смещения (?x, ?у) от текущего положения и измеренных пикселов. Программно подобные вычисления выполняются очень медленно, однако при наличии процессора декодирования MPEG-2 этот процесс значительно ускоряется. Аналогичным образом, декодирование и повторное кодирование композитного аудио-видеосигнала в соответствии с одним из стандартных телевизионных стандартов эффективнее проводить с помощью специализированного аппаратного процессора. В этом контексте совершенно естественно, что в DVD-плеерах и им подобных устройствах применяются гетерогенные мультипроцессоры с несколькими ядрами. В то же время, поскольку управляющий процессор представляет собой универсальное программируемое устройство, такую мультипроцессорную микросхему можно установить в близком в функциональном плане устройстве, например, в устройстве записи DVD.

Гетерогенные мультипроцессоры также устанавливаются в моделях сотовых телефонов (CDMA или GSM), укомплектованных фото- и видеокамерами, игровыми приложениями, браузерами, клиентами электронной почты, приемниками цифрового спутникового сигнала и средствами беспроводного подключения к Интернету (IEEE 802.11, или WiFi). Сейчас не все телефоны оснащены этими функциями, но в будущем они, вероятно, распространятся повсеместно. По мере того, как в современных условиях устройства постоянно усложняются, часы становятся GPS-навигаторами, а солнечные очки — радиоприемниками, потребность в гетерогенных мультипроцессорах только растет.
Довольно скоро обычным явлением станут микросхемы из 500 миллионов транзисторов. Проектировать столь громоздкие устройства в цельном варианте очень сложно — к моменту завершения работ они имеют все шансы устареть. Значительно разумнее разместить несколько ядер (которые, фактически, представляют собой библиотеки) с относительно большим числом транзисторов на одной микросхеме и объединить их. При этом разработчики должны принять решение о том, какой процессор будет управляющим, а какие — специализированными. Увеличение нагрузки на программную часть управляющего процессора замедляет работу системы, но удешевляет и уменьшает размер микросхемы. Наличие нескольких специализированных процессоров для обработки звуковых и видеоданных требует увеличения площади микросхемы и повышает ее стоимость, но, с другой стороны, обеспечивает высокую производительность при относительно низкой тактовой частоте, в связи с чем снижаются энергопотребление и теплоотдача. Иными словами, проектируя мультипроцессоры с несколькими ядрами, разработчики думают не о том, где разместить дополнительные транзисторы, а о том, каким образом и в каких вопросах можно идти на компромисс.
Программы обработки звуковых и видеоданных работают с огромными объемами информации. Поскольку все эти данные требуется обрабатывать быстро, от 50 до 75 % площади микросхемы отводится под размещение того или иного типа памяти. В этой связи возникают многочисленные вопросы. Сколько уровней кэш-памяти нужно в том или ином случае? Какими должны быть модули кэш-памяти, раздельными или объединенными? Каким должен быть объем каждого модуля? Насколько быстро он должны работать? Нужно ли размещать на микросхеме модули памяти других видов? Каких именно: SRAM или, может быть, SDRAM? От ответов на эти вопросы во многом зависит производительность, энергопотребление и параметры тепловыделения микросхемы.
Помимо процессоров и памяти, необходимо разработать схему взаимодействия ядер друг с другом. В небольших системах для этой цели вполне подойдет единственная шина, однако в более крупных системах такое решение может привести к тому, что схема взаимодействия ядер окажется узким местом всей системы. Во многих случаях проблема решается установкой нескольких шин или организацией кольцевой топологии. В последнем случае арбитраж осуществляется путем отправки по кольцу небольшого пакета — так называемого маркера, или токена (token). Перед передачей данных ядро должно удержать полученный то-кен. Завершив передачу, ядро пускает токен далее по кругу. Таким образом, исключаются конфликты при передаче данных.
В качестве примера механизма взаимодействия ядер на микросхеме рассмотрим архитектуру CoreConnect компании IBM (рис. 8.10). Она предназначена для объединения ядер в однокристальных гетерогенных мультипроцессорах. Для однокристальных мультипроцессоров CoreConnect выполняет примерно ту же роль, что и шина PCI для Pentium. С другой стороны, в отличие от PCI, архитектура CoreConnect разрабатывалась без расчета на обратную совместимость с устаревшими аппаратными компонентами и протоколами и без оглядки на ограничения, связанные с передачей данных на уровне плат, в частности, с количеством выводов на торцевых соединителях.
Архитектура CoreConnect состоит из трех шин. Шина процессора представляет собой высокоскоростную синхронную конвейеризированную шину с 32, 64 или 128 информационными линиями, работающими на тактовой частоте 66, 133 или 183 МГц. Ее максимальная пропускная способность равна 23,4 Гбит/с (для сравнения, у шины PCI этот показатель составляет 4,2 Гбит/с). Конвейеризация позволяет ядрам запрашивать шину в процессе передачи данных. Кроме того, как и в шине PCI, ядра могут одновременно передавать данные по разным линиям. Шина процессора оптимизирована для передачи коротких блоков данных и призвана обеспечивать взаимодействие между быстрыми ядрами — процессорами, декодерами MPEG-2, высокоскоростными сетями и тому подобными устройствами.

Поскольку одной шины процессора на всю микросхему недостаточно, для передачи данных между низкоскоростными устройствами ввода-вывода (UART, таймерами, USB-контроллерами, последовательными устройствами ввода-вывода и т. д.) предусмотрена вторая, периферийная, шина. Она упрощает взаимодействие между 8-, 16- и 32-разрядными периферийными устройствами, используя для этой цели всего несколько сотен вентилей. Периферийная шина также является синхронной, а ее максимальная пропускная способность достигает 300 Мбит/с. Эти две шины соединяются с помощью моста, напоминающего мосты, которыми до недавнего времени соединялись шины PCI и ISA, пока некоторое время назад шина ISA не была вытеснена окончательно.
В архитектуре CoreConnect есть также шина регистров устройств. Это крайне медленная асинхронная шина квитирования, позволяющая процессорам обращаться к регистрам периферийных устройств с целью управления этими устройствами. Передачи по ней проводятся нерегулярно, по несколько байтов.
Сочетание стандартной шины на микросхеме, интерфейса и подобающей инфраструктуры позволяет рассматривать CoreConnect как миниатюрную версию архитектуры PCI, для которой в перспективе можно наладить производство совместимых процессоров и контроллеров. Разница лишь в том, что в мире PCI производители разрабатывают и продают платы продавцам и конечным пользователям. В случае с CoreConnect разработчики ядер предоставляют лицензии на их производство изготовителям бытовой электроники и другим компаниям, которые затем разрабатывают гетерогенные мультипроцессоры на основе собственных и лицензированных ядер. Поскольку для производства больших и сложных микросхем требуются масштабные инвестиции в производственные мощности, в большинстве случаев изготовители бытовой электроники готовят проекты в расчете на заказ микросхем в специализированных компаниях. В настоящее время существуют ядра для процессоров различных типов (ARM, MIPS, PowerPC и т. д.), декодеров MPEG, цифровых процессоров сигналов и всех стандартных контроллеров ввода-вывода.
Помимо CoreConnect, существуют и другие архитектуры встраиваемых в микросхему шин. В частности [67], но популярности ей ничем не уступает шина АМВА (Advanced Microcontroller Bus Architecture — расширенная шинная архитектура для микроконтроллеров). Несколько менее популярны [116, 157] шины VCI (Virtual Component Interconnect — взаимодействие виртуальных компонентов) и OCP-IP (Open Core Protocol-International Partnership — международный консорциум по открытому протоколу ядра). Впрочем, встроенные в микросхему шины — это только начало; уже сейчас проектируются целые сети на одной микросхеме [22].
Поскольку производителям микросхем не удается постоянно повышать тактовую частоту из-за проблем, связанных с тепловыделением, разработка однокристальных мультипроцессоров становится крайне актуальной.

Ваш отзыв