Компоненты и технологии, № 5'2005
Новый процессор
для встроенных применений от AMCC
Американская компания AMCC недавно выкупила у IBM лицензию на семейство процессоров для встроенных применений серий 405 и 440. Эти процессоры гармонично дополнили ассортимент продукции AMCC. Теперь AMCC сможет более успешно конкурировать с другими фирмами в сфере сетевых устройств и систем управления.
Все процессоры данной линейки базируются на архитектуре PowerPC и работают под управлением ОС типа Linux. В данной статье рассматривается один из новейших представителей семейства — процессор PPC440SPe.
Максим Плетнев
Описание внутренней структуры
maxim.pletnyov@ Начнем описание процессора с его структуры
macro-peterburg.ru (рис. 1). Ключевым элементом здесь является ядро PPC440Core. Это ядро специально спроектировано для high-end применений. В нем используется 7-ступенчатый конвейер, что позволяет выполнять за один цикл сразу две инструкции. Кэш-память в ядре представлена отдельно для данных и отдельно для инструкций. В ней предусмотрена дополнительная функция проверки паритета для выявления ошибок.
Архитектура ядра — 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.in-tel.com). В данном процессоре таких интерфейсов три. Один восьмиканальный и два четырехканальных. Также имеется один интерфейс PCI-X. Это улучшенный интерфейс PCI. Новый PCI-X работает на частоте 266 МГц (против 66 МГц у PCI), существует обратная совместимость со стандартным PCI. Интересной особенностью является то, что все интерфейсы PCI-Express и PCI-X могут быть соединены внутри процессора между собой в любом сочетании для обмена информацией между ними. Ядро при этом может быть занято другими задачами.
Перейдем к рассмотрению контроллера SDRAM-памяти. Этот контроллер обслуживает четыре модуля
Компоненты и технологии, № 5'2005
16 IRQs
Такты,
упр.,
сброс
Упр.
пит.
Универс.
контроллер
прерыв.
Таймеры
MMU
Ядро
РРС440Соге
МАСІ
Регистры
DCR
JTAG Трассир.
32КБ Кэш данных 32КБ Кэш инстр.
Шина DCR
Таймеры
ОН
Порты
ОН
ПС
*2
UART
*3
Встроенная периферийная шина (ОРВ)
256КБ L2 Кэш/SRAM
Обработчик
прерываний
PCI-Express
Мост
ОРВ
Локальная процессорная шина (PLB)
Сегмент с низкими задержками
I20/DMA контроллер (DMA0 и DMA1)
і
Сегмент
с высокой полосой проп.
Очередь
памяти
DDRI&II SDRAM Контр.
XOR/DMA
ускоритель
(DMA2)
PLB
Арб.
MAL
Ethernet
10/100/
1000
PCI-Express
РС1-Е0 PCI-E1 PCI-E2
DDR PCI-X 64 бита
Контроллер внешней шины (ЕВС)
МП,
GMII
16
Рис. 1. Блок-схема процессора PPC440SPe
памяти современного стандарта 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):
• частота ядра до 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, 27x27 мм;
• технология 130 нм CMOS;
Компоненты и технологии, № 5'2005
• выделяемая процессором мощность на частоте 533 МГц — не более 10 Вт;
• рабочий диапазон температур от 0 до +95 °С. Потребляемая процессором мощность
может гибко регулироваться программным способом. Это очень полезно для систем, где важным критерием является низкое энергопотребление.
Для отладочных целей в процессоре предусмотрен стандартный JTAG-интерфейс. Он позволяет производить отладку разработанного устройства в реальном времени. Фирмой AMCC для данного процессора поставляются все необходимые аппаратные и программные средства отладки, которые существенно ускоряют сроки изготовления новых изделий.
Применение PPC440SPe
Несколько слов о применении процессора. Прежде всего, он предназначен для реализации RAID-контроллеров, сетей SAN, SCSI-контроллеров, маршрутизаторов, принтеров. Благодаря же богатому набору встроенных периферийных устройств, высокой производительности и малому энергопотреблению данный процессор с большим успехом может применяться и в любых других системах, где важны все эти качества. Это могут быть, например, бортовые навигационные системы на самолетах, различные системы промышленного контроля на предприятии, измерительные комплексы и т. д. Как было сказано в начале статьи, PPC440SPe
работает под управлением ОС типа Linux. В частности, это ОС BlueCat от компании LynuxWorks (www.lynuxworks.com). Данная система совместима со стандартом POSIX и может быть использована как в малых устройствах, так и в мощных мультипроцессорных комплексах. Данная ОС является очень надежной и годится для очень ответственных применений. МММ
Литература
1. www.amcc.com
2. PowerPC 440SPe Embedded Processor. Data Sheet. AMCC. 2005.
3. PPC440SPe Embedded Processor. User's Manual. AMCC. 2005.