2. Совмещение времени работы нескольких устройств (Coprocessing)

Быстродействие системы может быть повышено путем введения дополнительного специализированного процессора. При этом, независимо от размещения, сопроцессор является подчиненным элементом по отношению к процессору.

Задачи применения сопроцессоров:

  1. Ввод/вывод;
  2. Мультимедиа;
  3. Операции с плавающей точкой;
  4. Сетевые протоколы;
  5. Криптография;

ASIC (Application Specific Integral Circuit) – заказная интегральная схема.

Недостатки: длительность проектирования; длительность производства (около месяца уходит лишь на изготовление кремниевой маски); кроме того, процесс очень сложен и дорог (расходы на изготовление маски для технологии 45 нм оцениваются в среднем в 1 – 5 млн $). ASIC – это жестко запрограммированные устройства, для внесения изменений необходимо разрабатывать новую схему.
Достоинства: высокая производительность. Целесообразно применять для больших партий.

FPGA (Field Programmable Gate Array) - Такая матрица представляет собой набор вентилей, из которых путем перекоммуникации строится требуемая схема.

Достоинства: время производства меньше, FPGA можно перепрограммировать (при этом отсутствует длительная и дорогая фаза создания маски). Это позволяет вносить изменения в устройство после изготовления. Стоимость изготовления существенно ниже. Кроме того, FPGA можно использовать для прототипирования ASIC. Более того, в настоящее получает распространение динамическая реконфигурация (т. е. устройство может изменять свою функциональность «налету»).
Недостатки: достаточно дорогие при очень больших партиях, более медленные, чем схемы ASIC

Мультимедиа-процессоры

Мультимедийные процессоры рассмотрим на примере процессора Nexiperia (Philips) – это семейство микросхем для различных тактовых частот. Он представляет собой гетерогенный однокристальный мультипроцессор и включает несколько ядер: управляющий VLIW-процессор TriMedia, а также отдельные ядра для обработки изображений,звука, видео и сетевых операций. Может использоваться как самостоятельный центральный процессор для CD-, DVD-, MP3-плееров, видеокамер и т.п., а также в качестве сопроцессора. В любом режиме Nexiperia работает под управлением собственной операционной системы реального времени.

Криптопроцессоры

В криптографии сейчас распространены два основных подхода к защите данных: шифрование с симметричным ключом и шифрование с открытым ключом. Первый основан на перемешивании битов. В основе второго – умножение и возведение в степень больших чисел (1024-разрядных), что требует больших временных затрат. Эти процессоры могут представлять собой карты расширения. В настоящее время наблюдается переход к реализации криптографических алгоритмов на базе аппаратуры, и в частности сопроцессоров. Это вызвано не только низкой скоростью программных решений, но и их уязвимостью к атакам. Стоит упомянуть взлом современных программных криптосистем с использованием атак по сторонним каналам (например, взлом программной реализации RSA с использованием акустического криптоанализа шумов конденсаторов цепи питания процессора. В этом случае запись шумов может осуществляться даже с использованием мобильного телефона в качестве микрофона.

Сетевые процессоры

Сетевые процессоры – устройства, позволяющие обрабатывать входящие и исходящие пакеты со скоростью их передачи. Обычно они реализуются в виде платы, которая помимо кристалла процессора содержит память и вспомогательную логику. К плате подключается одна или несколько линий.

Обычно на плате имеется как статическая (SRAM) так и синхронная динамическая (SDRAM) память. Эти виды памяти применяются для разных целей. SRAM быстрее SDRAM, но она и дороже. SRAM используется для хранения таблиц маршрутизации и ключевых структур данных. В SDRAM хранятся непосредственно пакеты. Поскольку память располагается вне кристаллов, можно гибко подойти к вопросу объема каждого вида.

Сетевые процессоры оптимизированы для обработки большого числа входящих и исходящих пакетов. По каждой сетевой линии приходят миллионы пакетов, а маршрутизатор поддерживает десятки таких линий. Такое быстродействие может обеспечить процессор в высоким уровнем параллелизма. В процессор обязательно входит несколько PPE-контроллеров (Protocol/Programmable/Packet Processing Engine – программируемая система обработки пакетов и протоколов), каждая из которых состоит из RISC-ядра и внутренней памяти небольшого объема для хранения программы и нескольких переменных.

В совершенных сетевых процессорах PPE-контроллеры поддерживают многопоточность, т.е. каждый из них имеет несколько наборов регистров и аппаратный регистр, показывающий, какой из наборов используется.

Помимо PPE-контроллеров у всех сетевых процессоров имеется управляющий процессор для выполнения всех действий, не относящихся напрямую к обработке пакетов. Кроме того может быть несколько специализированных интегральных схем для выполнения критически важных операций (например, для поиска целевого адреса в таблице маршрутизации).