2. Совмещение времени работы нескольких устройств (Coprocessing)
Быстродействие системы может быть повышено путем введения дополнительного специализированного процессора. При этом, независимо от размещения, сопроцессор является подчиненным элементом по отношению к процессору.
Задачи применения сопроцессоров:
- Ввод/вывод;
- Мультимедиа;
- Операции с плавающей точкой;
- Сетевые протоколы;
- Криптография;
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-контроллеров у всех сетевых процессоров имеется управляющий процессор для выполнения всех действий, не относящихся напрямую к обработке пакетов. Кроме того может быть несколько специализированных интегральных схем для выполнения критически важных операций (например, для поиска целевого адреса в таблице маршрутизации).