Новый процессор для встроенных применений от AMCC
Американская компания AMCC недавно выкупила у IBM лицензию на семейство процессоров для встроенных применений серий 405 и 440. Эти процессоры гармонично дополнили ассортимент продукции AMCC. Теперь AMCC сможет более успешно конкурировать с другими фирмами в сфере сетевых устройств и систем управления. Все процессоры данной линейки базируются на архитектуре PowerPC и работают под управлением ОС типа Linux. В данной статье рассматривается один из новейших представителей семейства — процессор PPC440SPe.
Описание внутренней структуры
Начнем описание процессора с его структуры (рис. 1). Ключевым элементом здесь является ядро PPC440Core. Это ядро специально спроектировано для high-end применений. В нем используется 7-ступенчатый конвейер, что позволяет выполнять за один цикл сразу две инструкции. Кэш-память в ядре представлена отдельно для данных и отдельно для инструкций. В ней предусмотрена дополнительная функция проверки паритета для выявления ошибок.
Блок-схема процессора PPC440SPe (Рис. 1)

Архитектура ядра — PowerPC. Ее основой является традиционная RISC-архитектура. Она имеет следующие отличительные особенности: фиксированная длина команд, архитектура «регистр-регистр», простые команды и способы адресации, трехоперандный формат команд и большой регистровый файл. Также имеют место и особенности, присущие именно архитектуре PowerPC: набор команд основан на идее суперскалярной обработки, добавлены некоторые команды, ускоряющие время выполнения (команды для манипуляции битовыми полями, команды для одноциклового умножения-сложения и др.), отсутствие механизма «задержанных переходов», специальная методика реализации условных переходов и некоторые другие.
Система команд содержит дополнительные 24 команды, применяемые для обработки сигналов, которые позволяют использовать этот процессор как сигнальный. Операции целочисленного умножения 32-разрядных чисел и операции умножения с накоплением выполняются за один такт. Также в ядре имеется механизм динамического предсказания ветвления, что повышает эффективность выполнения программ.
В ядро встроен модуль управления памятью (MMU). В этом модуле предусмотрен специальный буфер быстрого преобразования адреса (TLB). Это специальная дополнительная кэш-память, используемая для ускорения страничного преобразования. Для данных и для инструкций предусмотрены отдельные микробуферы TLB.
Теперь перейдем к рассмотрению внутренних шин процессора. Их всего три: локальная процессорная шина (PLB), встроенная периферийная шина (OPB) и шина DCR. Самые высокопроизводительные модули процессора, такие как ядро, SDRAM-контроллер, интерфейсы PCI-Express и PCI-X подключены к скоростной шине PLB. Шина OPB используется менее производительной периферией. Специальная шина DCR предназначена для обмена данными между ядром этого процессора и ядрами подключаемых к нему других процессоров.
У шины PLB имеется crossbar-арбитр, который служит для связи между главным сегментом шины и ее двумя slave-сегментами: сегментом с низкими задержками и сегментом с высокой полосой пропускания. Сегмент с низкими задержками управляет I2O/DMA-контроллером и другой периферией, где очень важно иметь малые величины задержек. А сегмент с высокой полосой пропускания управляет обменом данных между шинами PCI-Express, PCI-X, SDRAM, модулем XOR/DMA, то есть там, где важна скорость.
Главная «изюминка» этого процессора — современный высокоскоростной последовательный интерфейс PCI-Express. На данный момент таким интерфейсом оснащены очень немногие процессоры для встроенных применений. Этот интерфейс является очень перспективным для новых разработок.
Подробнее о нем можно почитать на сайте разработчика интерфейса — компании Intel (www.intel.com). В данном процессоре таких интерфейсов три. Один восьмиканальный и два четырехканальных. Также имеется один интерфейс PCI-X. Это улучшенный интерфейс PCI. Новый PCI-X работает на частоте 266 МГц (против 66 МГц у PCI), существует обратная совместимость со стандартным PCI. Интересной особенностью является то, что все интерфейсы PCI-Express и PCI-X могут быть соединены внутри процессора между собой в любом сочетании для обмена информацией между ними. Ядро при этом может быть занято другими задачами.
Перейдем к рассмотрению контроллера SDRAM-памяти. Этот контроллер обслуживает четыре модуля памяти современного стандарта DIMM DDR/DDR2 со 184 контактами. В последнее время данный стандарт имеет очень широкое распространение. Каждый модуль может иметь объем до 4 Гбайт (всего 16 Гбайт). Этого более чем достаточно для большинства современных встроенных применений. Карта распределения адресного пространства может быть сконфигурирована так, как необходимо разработчику. Контроллер подключен к шине PLB через так называемый «организатор очередей». Этот блок содержит шесть буферов типа FIFO объемом 1 кбайт каждый для распределения очередности передачи данных.
Внутренняя память процессора (не считая кэш-память ядра) состоит из 256 кбайт SRAM-памяти, которая может использоваться программами в качестве дополнительной быстрой памяти. Если надобности в ее использовании у разработчика нет, то ее можно сконфигурировать как кэш-память второго уровня. Это еще больше повысит общее быстродействие системы.
Разработчики процессора не обошли стороной и возможность подключения модулей памяти других типов. Предусмотрена шина, к которой может быть подключено до трех модулей памяти ROM, EPROM, Flash и SRAM. Один из модулей может использоваться для стартовой загрузки программы. Его объем может достигать 16 Мбайт. Объем двух других модулей — до 128 Мбайт каждый.
Чтобы обмен данными между периферией, памятью и ядром производился как можно быстрее и эффективнее, в процессор встроен еще один интересный модуль. Это модуль I2O/DMA. Он не только обеспечивает прямой двухканальный обмен данными между памятью и периферией (ПДП). В нем, кроме этого, реализована и так называемая архитектура интеллектуального ввода-вывода I2O (Intelligent Input/Output). Архитектура I2O (не путать с I2C) является достаточно новой архитектурой, которая призвана решить две ключевые проблемы при операциях ввода-вывода. Во-первых, это освобождение ядра от обработки этих операций при поступлении сигналов низкоуровневых прерываний, что значительно ускоряет процессы обмена данными. Это важно, например, в задачах видеообработки или в серверных системах. А во-вторых, существенное упрощение такого больного на сегодняшний день вопроса, как наличие драйверов для какого-либо устройства под какую-либо ОС. Теперь драйвер разделен на две части или два драйверных модуля: Operating system Services Module (OSM) и Hardware Device Module (HDM). Модуль OSM, который обеспечивает совместимость с ОС, пишется программистами ОС на целый класс однотипных устройств (например, дисковые контроллеры). Модуль HDM, обеспечивающий совместимость с периферийным устройством, пишется разработчиками этого устройства, которых теперь не будет интересовать вид ОС. Оба этих модуля объединяет стандарт I2O. Задача состыковки программы с периферийным устройством целиком возлагается на специализированный процессор ввода-вывода (IOP), который включает в себя архитектура I2O. Технология I2O существенно упрощает работу производителям периферийных устройств и ОС, а, следовательно, ускоряет время выхода на рынок новых аппаратных и программных продуктов.
Еще один интересный узел — ускоритель XOR/DMA. Он предназначен для проверки битов в потоках данных. Например, при использовании данного процессора как контроллера в дисковом RAID-массиве необходимой процедурой становится проверка потоков данных, поступающих с дисков, на наличие (или отсутствие) сбоев. Эта задача возложена на ускоритель XOR/DMA. Ядро опять же освобождено от такой «рутины». Модулем XOR/DMA осуществляется проверка целостности каждого бита данных. Контрольные суммы и адреса сохраняются в специальном буфере. Также этот модуль может использоваться и как дополнительный канал ПДП.
Среди стандартных интерфейсов, представленных в процессоре, имеется Ethernet-порт, скорость обмена по которому составляет от 10 до 1000 Мбит/с. Работа может осуществляться как в полно-, так и в полудуплексном режимах. Кроме того, процессор содержит два последовательных интерфейса IIC и три интерфейса UART. Также имеются и 32 порта общего назначения, каждый из которых может быть запрограммирован разработчиком по его усмотрению для ввода или вывода любых данных. Каждый вывод может работать в режиме открытого стока, имеется возможность подключения внутренних подтягивающих резисторов к питающей или к общей шине.
Контроллер прерываний процессора достаточно универсален. Он обеспечивает обработку большого числа источников прерываний: до 16 внешних и до 101 внутреннего. Каждый вход контроллера программно настраивается на запуск либо по фронту, либо по уровню. Активным может быть как положительный, так и отрицательный уровень. Очередность обработки задается программно в произвольном порядке. В качестве источников прерываний могут выступать и внутренние таймеры общего назначения. Также эти таймеры могут использоваться в другом качестве, например, как сторожевые таймеры. Отсчет может быть прямым или обратным.
Приведем технические характеристики данного процессора (рис. 2):
Внешний вид PPC440SPe (Рис. 2)

- частота ядра до 667 МГц;
- производительность до 1334 DMIPS;
- объем кэш-памяти данных 32 кбайт;
- объем кэш-памяти инструкций 32 кбайт;
- объем памяти SRAM/L2-кэш 256 кбайт, скорость до 2,6 Гбайт/с;
- разрядность шины PLB 128 бит, скорость до 5,2 Гбайт/с при одновременных операциях чтения и записи;
- скорость шины PCI-Express до 2,5 Гбайт/с;
- скорость SDRAM-интерфейса до 5,32 Гбайт/с;
- корпус 675-Ball FC-PBGA, 27×27 мм;
- технология 130 нм CMOS;
- выделяемая процессором мощность на частоте 533 МГц — не более 10 Вт;
- рабочий диапазон температур от 0 до +95 °С.
Потребляемая процессором мощность может гибко регулироваться программным способом. Это очень полезно для систем, где важным критерием является низкое энергопотребление.
Для отладочных целей в процессоре предусмотрен стандартный JTAG-интерфейс. Он позволяет производить отладку разработанного устройства в реальном времени. Фирмой AMCC для данного процессора поставляются все необходимые аппаратные и программные средства отладки, которые существенно ускоряют сроки изготовления новых изделий.
Применение PPC440SPe
Несколько слов о применении процессора. Прежде всего, он предназначен для реализации RAID-контроллеров, сетей SAN, SCSI-контроллеров, маршрутизаторов, принтеров. Благодаря же богатому набору встроенных периферийных устройств, высокой производительности и малому энергопотреблению данный процессор с большим успехом может применяться и в любых других системах, где важны все эти качества. Это могут быть, например, бортовые навигационные системы на самолетах, различные системы промышленного контроля на предприятии, измерительные комплексы и т. д. Как было сказано в начале статьи, PPC440SPe работает под управлением ОС типа Linux. В частности, это ОС BlueCat от компании LynuxWorks (www.lynuxworks.com). Данная система совместима со стандартом POSIX иможет быть использована как в малых устройствах, так и в мощных мультипроцессорных комплексах. Данная ОС является очень надежной и годится для очень ответственных применений.
Литература
- www.amcc.com
- PowerPC 440SPe Embedded Processor. Data Sheet. AMCC. 2005.
- PPC440SPe Embedded Processor. User’s Manual. AMCC. 2005.