Семейство ARC HS в Synopsys Designware: процессорные ядра для встраиваемых применений

Статья описывает семейство высокоскоростных процессоров ARC HS (High Speed) в Synopsys DesignWare. ARC HS34 и HS36 — первые члены новейшего семейства лицензируемых процессорных ядер для встраиваемых применений, в которых требуется производительность 32-разрядного RISC на малой площади кремния при минимальном потреблении энергии. Статью подготовили специалисты Linley Group по результатам оценки производительности и технических возможностей ARC HS.

Synopsys — ведущая компания в области автоматизации разработки электроники EDA (Electronic Design Automation), располагающая широким набором лицензируемых компонентов интеллектуальной собственности IP (Intellectual Property) в фирменной системе разработки DesignWare, в который входят интерфейсы, аналоговые компоненты, встроенная память и библиотеки элементов. Для большинства разработчиков чипов не секрет, что DesignWare включает лицензируемые процессорные ядра и подсистемы, однако многие удивятся, узнав, что Synopsys является второй в мире компанией после ARM по числу чипов, использующих ее процессорные ядра. В настоящее время Synopsys ежегодно поставляет около 1,3 млрд ядер ARC, и объемы этих поставок возрастают примерно на 300 млн в год. Многие заказные разработки содержат по нескольку ядер ARC на чипе.

Анонсированное в ноябре 2013 г. и немедленно ставшее доступным новое семейство ARC HS увеличивает производительность, добавляет реакцию реального времени и улучшает условия разработки как аппаратуры, так и программного обеспечения (ПО). Оно обеспечивает широчайший диапазон рабочих частот для современных и будущих разработок чипов, а главное — достигает этих целей, сохраняя исключительную плотность программного кода, энергетическую эффективность, компактность, конфигурируемость и расширяемость, которые давно уже стали фирменными признаками процессорной архитектуры ARC.

ОБЗОР СЕМЕЙСТВА ARC HS
На широко используемые процессорные ядра ARC в DesignWare приобретено более 170 лицензий, в числе держателей — фирмы Aptina, Broadcom, Fujitsu, Infineon, SanDisk, SiliconMotion и CSR/Zoran. Продукты, основанные на 32-разрядной архитектуре набора инструкций ISA (Instruction Set Architecture) ARCv1, включают семейство ARC 600 для маломощных встраиваемых систем, семейство ARC 700 для более мощных встраиваемых приложений, нуждающихся в цифровой обработке сигналов, и семейство ARC Audio для потребительских цифровых аудио-продуктов.

В 2011 г. Synopsys представила улучшенную 32-разрядную ISA ARCv2 и семейство ARC EM для глубоко встраиваемых и очень мало потребляющих приложений. Новое семейство ARC HS тоже базируется на ISA ARCv2, но обеспечивает более высокую, чем ARC EM производительность (не в ущерб энергетической эффективности или площади кристалла) и фактически повышает плотность кода. Предназначенные для более производительных встраиваемых приложений ядра семейства ARC HS программно совместимы с ядрами ARC EM4 и ARC EM6.

Первыми членами семейства ARC HS стали два новых процессорных ядра ARC HS34 и ARC HS36. Первое из них предназначено в первую очередь для приложений управления в реальном времени, таких как твердотельные драйверы SSD (Solid-State Drives), сетевая память NAS (Network-Attached Storage), домашние сети и шлюзы, мобильные продукты. Более простой член HS34 хранит инструкции и данные в отдельной тесно связанной памяти CCM (Closely Coupled Memories), более детерминистической, чем кэши. Размер каждой CCM конфигурируется пользователем и может достигать 1 Mбайт. Опционально поддерживается код коррекции ошибок ECC (Error Correction Code) с исправлением однобитовой и обнаружением двубитовой ошибок.

Высокопроизводительное ядро HS36 предназначено главным образом для требующих большей вычислительной мощности встраиваемых приложений, таких как цифровые камеры, цифровое ТВ, компьютерные приставки, системы управления автомобилем и интернет вещей (автономные или полуавтоном-ные сетевые устройства). Разработчик может конфигурировать HS36 раздельными CCM инструкций и данных, до 1 Mбайт каждая, или кэшами инструкций и данных. Размер кэшей конфигурируется от 4 до 64 байт. И CCM, и кэши опционально поддерживают ECC.

Моделирование показывает, что ARC HS34 и ARC HS36, произведенные процессом КМОП с нормами 28 нм и ориентацией на высокую производительность, таким как 28-нм HPM компании TSMC, могут в наихудшем случае обеспечивать максимальную частоту 1,6 ГГц. Процессу HKMG (high-k metal-gate), использующему под металлом затвора вместо окиси кремния диэлектрик с высокой диэлектрической постоянной, отдает предпочтение большинство перспективных заказчиков, с которыми Synopsys консультировалась при разработке своих ядер. Хотя сегодня лишь немногие встроенные системы нуждаются в рабочей частоте 1,6 ГГц, потенциальная высокая тактовая частота ядра оставляет широкие возможности для будущих разработок. При такой частоте производительность достигает 3100 Dhrystone MIPS или 5440 CoreMark, т.е. 3,4 CoreMark/МГц. У минимальной реализации ARC HS34 потребление энергии составляет всего 53 мВт на 1,6 ГГц (0,033 мВт/МГц), а занимаемая площадь кремния — 0,12 мм2. Плотность кода на 18% лучше, чем у процессоров с архитектурой ARCv1.

АРХИТЕКТУРНЫЕ ЧЕРТЫ СЕМЕЙСТВА ARC HS
Поскольку ядра ARC HS базируются на той же ISA ARCv2, что и ядра ARC EM, их фундаментальные свойства в целом схожи. Эта 32-разрядная RISC-архитектура имеет традиционные 32-разрядные инструкции и поднабор 16-разрядных инструкций для большей плотности кода во встраиваемых приложениях с малыми объемами памяти. Эта ISA была специально разработана для встраиваемых применений, и поэтому из нее исключили некоторые устаревшие особенности, которые ухудшают производительность и требуют необязательной логики в некоторых других архитектурах.

Замечательная особенность всех процессорных ядер ARC — их необычная способность к конфигурированию и расширению. Разработчики чипов могут подстраивать ядра под специфические рабочие программы модификацией существующих возможностей и добавлением новых инструкций, регистров и других особенностей. Например, заказчики могут организовать файл размером от 16 до 32 32-разрядных регистров либо на триггерах, либо на ячейках памяти. С регистрами расширения процессоры ARC HS могут поддерживать до 60 регистров. Регистровый файл имеет по два порта чтения и записи.

Разработчики могут добавлять таймеры, прерывания, умножители, аппаратные делители, а также конфигурировать шину памяти для любого типа адресации, big- или little-endian. Конфигурируемость позволяет исключать ненужные свойства ядра и оптимизировать его характеристики, размеры и потребление энергии для конкретного приложения. На рисунке 1 показана блок-схема ядра ARC HS.

Семейство ARC HS использует 32-разрядную гарвардскую архитектуру с 10-ступенчатым конвейером. ARC HS34 имеет тесно связанную память CCM для инструкций и данных. ARC HS36 поддерживает либо CCM, либо кэши инструкций и данных первого уровня. Пунктиром выделены опциональные и конфигурируемые компоненты.

В дополнение к конфигурируемости семейство ARC HS предоставляет расширения ISA. Например, можно добавить блок плавающей запятой ARC FPX, который отвечает требованиям стандарта IEEE-754.2008 и поддерживает данные с одинарной и двойной точностью. Большинство операций полностью конвейеризировано, что позволяет процессору выполнять последовательные инструкции с плавающей запятой в каждом такте. Инструкции деления и извлечения квадратного корня выполняются за несколько тактов, но при этом не блокируют выполнения других инструкций в тех же тактах.

Заказчики могут расширять ISA добавлением собственных новых инструкций, которые процессор деко- дирует и выполняет точно так же, как инструкции базового набора. Новые инструкции, добавленные с помощью средства конфигурации ARChitect, становятся частью среды разработки, которая включает покомандный симулятор nSIM (усредненная производительность 475 MIPS в режиме турбо), а также обеспечивает поцикловую симуляцию с использованием средства xCAM (40…60 кГц). Для разработки ПО Synopsys предлагает оптимизированную версию набора инструментальных средств ARC MetaWare, которая включает компилятор C/C++, ассемблер и отладчик в интегрированной среде разработки IDE (Integrated Development Environment). В качестве альтернативы программисты могут использовать инструментальные средства GNU-C.

ВЫСОКОПРОИЗВОДИТЕЛЬНЫЙ КОНВЕЙЕР СЕМЕЙСТВА ARC HS
Несмотря на принципиальную схожесть с другими процессорами на основе ARCv2, ядра ARC HS характеризуются несколькими новыми свойствами, которые значительно повышают производительность. Прежде всего, речь идет о высокопроизводительной микроархитектуре с полностью обновленным 10-ступенчатым конвейером, позволяющим достичь намного более высоких рабочих частот в любом конкретном технологическом процессе, чем простой трехступенчатый конвейер процессоров ARC EM.

Еще раз подчеркнем, что самый глубокий конвейер из когда-либо разработанных для процессорных ядер ARC позволяет процессорам ARC HS работать на частотах до 1,6 ГГц (в наихудших условиях) при производственном процессе 28 нм HPM.

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

Новые опциональные инструкции могут загружать и сохранять 64-разрядные двойные слова, исключая тем самым необходимость выполнения последовательности 32-разрядных загрузок и сохранений. В действительности компилятор ARC MetaWare автоматически задействует загрузки и сохранения двойных слов, когда находит последовательность соответствующих однословных операций. Такие инструкции в частности полезны для быстрого копирования регистров в стек или из стека при смене контекста. Еще одна инструкция, которая сохраняет или восстанавливает состояние процессора, используя эти загрузки и сохранения двойных слов, — это вызов подпрограммы. (Для еще более быстрого переключения контекстов пользователь может добавить второй регистровый файл, благодаря которому исключается сама необходимость каждый раз сохранять и восстанавливать регистры.)

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

После выравнивания инструкций на ступени 3 конвейер передает их декодеру ступени 4. На ступени 5 процессор выбирает операнды из регистрового файла. Специальная обходная логика этой ступени может продвинуть операнд из любой последующей ступени, если он там был только что вычислен. Если же нужный операнд еще не готов, обходная логика может притормозить конвейер до появления нужных данных. (Процессоры ARC HS могут выдерживать до четырех промахов в кэше данных без торможения конвейера.)

Ступени 6, 7, 8 и 9 исполняют инструкции. Если операнд для однооперанд-ной операции в АЛУ готов на ступени 5 (не имеет значения из регистрового файла или обходной логики), то «раннее АЛУ» (ALU-0) будет вычислять результат на ступени 6. Если один или более операндов не готово на ступени 5, и операция может быть отложена для «позднего АЛУ» (ALU-1) ступени 9, то операция передается без вычислений на этой ступени. Инструкции получают все нужные им операнды по мере прохождения к «позднему АЛУ» через дополнительные обходные цепи на ступенях 6, 7 и 8. Инструкции загрузки/ сохранения выполняются в собственном четырехступенчатом подконвейе-ре блока загрузки/сохранения.

Примечательной особенностью конвейера ARC HS является разрешение неверно предсказанных переходов на ступени 7, что исключает простой трех последних ступеней конвейера в случае неверно предсказанного перехода и позволяет более эффективно использовать конвейер.

Ступень 9 («позднее АЛУ») может выполнять простые целочисленные инструкции и принимать решения о переходах в зависимости от данных. Таким образом, большинство инструкций не требуют предварительной загрузки данных, т.к. данные, вновь появившиеся из ступени 4 (DC4) под-конвейера загрузки/сохранения, передаются прямо нуждающимся в них инструкциям на ступени 8 или раньше. Поскольку большинство целочисленных инструкций подпадает под эти условия, процессоры ARC HS могут «прятать» доступы к памяти данных и таким образом тратить меньше времени на ожидание данных перед выполнением операций в АЛУ.

Если целочисленная инструкция достигает «раннего АЛУ» на ступени 6, пока предыдущая инструкция еще выполняется в «позднем АЛУ» ступени 9, то обе могут выполняться параллельно. (Несмотря на такую способность, ARC HS не является истинно супер-скалярным процессором, поскольку на каждом такте в конвейер выдается только одна инструкция.)

Следует также отметить, что под-конвейер загрузки/сохранения отводит две из четырех своих ступеней выборке данных из кэша или CCM. Распределение этих операций с памятью на две ступени снижает временные ограничения, позволяя использовать однопортовую SRAM и более высокие тактовые частоты. Дальнейшее повышение производительности достигается за счет наличия у кэшей или CCM 64-разрядного интерфейса и двух банков. Степень ассоциативности кэша конфигурируется пользователем, а кэш инструкций использует предсказатель для уменьшения расхода энергии на выборку ненужных линеек кэша.

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

ДОПОЛНИТЕЛЬНЫЕ ОСОБЕННОСТИ ПРОИЗВОДИТЕЛЬНОСТИ ARC HS
10-ступенчатый конвейер дополняется и другими, ориентированными на производительность, особенностями. Подобно ядрам ARC EM у ядер ARC HS имеется улучшенный делитель по основанию 4, который выполняет операции за 4-19 тактов в зависимости од разрядности данных. Новый аппаратный умножитель ускоряет 64-разрядное умножение. Несколько опциональных инструкций поддерживают цифровую обработку сигналов DSP (Digital Signal Processing) и векторные операции SIMD (Single-Instruction Multiple-Data). Компилятор ARC MetaWare автоматически генерирует эти инструкции, когда обнаруживает такую возможность в исходном коде C/C++ программиста. Новые инструкции включают несколько вариантов 64-разрядных операций умножения с накоплением MAC (Multiply-ACcumulate), векторное сложение и вычитание. Векторные операнды могут иметь разрядность 16, 32 или 64.

Еще одной опцией конфигурации является блок плавающей запятой FPU (Floating-Point Unit), аппаратно выполняющий 32- и/или 64-разрядные операции с плавающей запятой и полностью соответствующий последней спецификации IEEE-754.2008. В отличие от предыдущих FPU, в нем реализовано аппаратное извлечение квадратного корня. Таблица 1 суммирует различия в ISA между семействами ARC HS и ARC EM. Хотя оба семейства, ARC EM и ARC HS, основываются на одной и той же ISA ARCv2, новое семейство имеет ряд дополнительных возможностей, а некоторые опциональные свойства ARC EM стали стандартными в ARC HS.

Системные интерфейсы семейства ARC HS — это стандартные шины AXI и AMBA-AHB, которые конфигурируются как 32- или 64-разрядные. Шина AXI допускает до девяти невыполненных транзакций памяти, включая четыре промаха в кэш, четыре некэшируемые загрузки и одну некэшируемую запись. Тактовые частоты шины кратны тактовой частоте ядра и конфигурируются пользователем. Самая быстрая возможная кратность составляет 1:4. Они могут меняться в процессе работы под управлением программы. Внутренний мост между родным интерфейсом ядра BVCI и шиной AXI или AHB характеризуется меньшими задержками по сравнению с более старым ядром ARC 700.

В качестве альтернативы AXI или AHB для подключения устройств разработчики могут ввести опциональную 32-разрядную шину, которая обеспечивает доступ к CPU за один такт. Еще одна конфигурируемая опция — устройство защиты памяти (лицензируемое отдельно), которое предохраняет критические области памяти от случайного и неавторизированного доступа. Ядра ARC HS реализуют те же улучшенные свойства прерываний, которые впервые появились в семействе ARC EM. Все эти процессоры поддерживают до 240 конфигурируемых пользователем прерываний с 16 уровнями приоритета. Для упрощения обработки прерываний все они могут автоматически сохранять регистры в стеке при входе в программу обработки прерывания и восстанавливать их при выходе из нее. Программисты могут указать, какие регистры подлежат сохранению. Как уже отмечалось, ускоренное переключение контекстов возможно за счет введения при конфигурации ядра опционального альтернативного регистрового файла. В этом случае CPU может переключаться с контекста на контекст без сохранения и восстановления регистров, всего лишь меняя регистровые файлы.

БОЛЕЕ ПРОСТАЯ РАЗРАБОТКА И ВЕРИФИКАЦИЯ
Ряд возможностей упрощает работу разработчиков чипов и ПО. ARC HS34 и ARC HS36 — первые процессоры ARC, предлагающие в процессе наладки полную трассировку извне в реальном времени RTT (Real-Time Trace). Для поддержки этой особенности требуется параллельный трассировочный порт, поскольку последовательный порт JTAG не имеет достаточной пропускной способности, чтобы пропустить столь большой объем генерируемых при трассировке данных. Пользователь может выбрать, сохранять ли данные трассировки в системной памяти, памяти зонда или и там, и там.

Пользователи могут настраивать трассировку для отслеживания данных внутри определенных областей и от различных источников, включая программный счетчик, регистры ядра, интерфейсы памяти или вспомогательные интерфейсы (при их наличии). Управлять параметрами трассировки также помогают программируемые триггеры и фильтры. Механизм RTT соответствует стандарту Nexus 5001, он работает как в разработках с одним единственным ядром, так и в многоядерных с числом CPU до четырех. Процесс трассировки никоим образом не влияет на работу процессора.

В случае, если расширенных возможностей наладки не требуется, разработчики чипов могут обойтись более компактным малым трассировочным модулем SmaRT (Small Real-Time Trace). Он использует стандартный двухпроводной порт JTAG (JTAG или JTAG7) и позволяет устанавливать переменное число (от 2 до 64) активных точек. Возможности порта в семействе ARC HS те же, что и у семейства ARC EM.

Общими для обоих семейств процессоров являются также два симулятора Synopsys. Более быстрый из них — симулятор набора инструкций nSIM — лишь частично обеспечивает потактовую точность. В режиме NCAM его точность превышает 95%. В типовой системе разработки он моделирует процессор ARC HS с частотой около 30 МГц. Отладчик ARC MetaWare полностью поддерживает этот симулятор, который также совместим с Virtualizer^ компании Synopsys и виртуальными платформами OSCI SystemC. Если же для профилирования, оптимизации или верификации требуется потактовая точность не ниже 100%, разработчики могут прибегнуть к услугам симулятора Synopsys xCAM.

Для достижения более высокой производительности, чем могут обеспечить программные симуляторы, Synopsys предложит новую версию ARC HS своей более высокопроизводительной системы разработки. Эта макетная плата будет поддерживать новые дочерние карты, реализующие ядра ARC HS либо на FPGA, либо в кремнии. В первом случае неоптимизированное ядро ARC HS работает на частоте около 100 МГц. В середине 2014 г. Synopsys будет иметь новый чип для разработок, который реализует многочисленные конфигурации ARC HS и будет смонтирован на дочерней карте для макетной платы. Разработчики также применяют основанные на FPGA системы создания прототипов HAPS от Synopsys, реализуя их с помощью DesignWare IP (в т.ч. ядра ARC HS) и добавляя к ним интерфейсы ввода-вывода на дочерних картах. По существу, плата HAPS превращается в прототип системы на кристалле.

Сравнительные оценки

Семейство ARC HS предлагает путь перехода к нему от семейства ARC EM с сохранением программной совместимости и расширением линейки продуктов для встраиваемых приложений, требующих более высокой производительности. Недорогие модели семейства ARC EM конкурируют с такими процессорными ядрами как 108Mini компании Cadence (в прошлом Tensilica), microAptiv компании Imagination Technologies (прежде MIPS) и Cortex-M компании ARM. В этом сегменте рынка не столько важна пиковая производительность, сколько площадь кристалла и потребление мощности, и ARC EM должна сохранить здесь свое лидерство по эффективности характеристик. Семейство ARC HS, наоборот, предлагает более высокие тактовые частоты и возможности повышения производительности, такие как обработка SIMD.

Даже несмотря на то, что ARC HS достигает уровней производительности, способных конкурировать с процессорами для приложений среднего класса, Synopsys не покушается на рынки, которые сохраняют приверже-ность ARM или MIPS ввиду программной совместимости. ARC HS конкурирует в сегменте высокопроизводительных встраиваемых разработок, которые требуют эффективной работы со специфическими, четко определенными задачами. Таблица 2 позволяет сравнить ARC HS с некоторыми похожими лицензируемыми процессорными ядрами от ARM, Cadence и Imagination.

Достижение максимальной рабочей частоты некоторого ядра IP, даже начиная с проверенной RTL, обычно требует немалых усилий по «доведению до ума» раскладки и таких аспектов разработки как динамический ток потребления и помехи в сигнальных цепях. По этой причине ядра IP редко достигают номинальных скоростей. Аналогичным образом большинство оценок по площади и потреблению энергии предлагаются для оптимальных сценариев. Даже когда продавцы предоставляют информацию для самого функционального узла, она может быть не вполне адекватной, поскольку давление конкуренции приводит к приукрашиванию спецификаций, особенно в отношении потребления энергии и площади кремния. Кроме того надо иметь в виду, что некоторые продавцы раскрывают только часть конфигураций CPU. Следовательно, читатель не должен придавать слишком большого значения несущественным различиям в публикуемых продавцами данных. Разработчикам SoC всегда следует удостовериться, что в измерения мощности и площади включены все необходимые блоки RTL.

Бенчмарк CoreMark консорциума EEMBC лучше устаревшего теста Dhrystone, но самые последние подсчеты EEMBC отражают компиляторные оптимизации, которые способны существенно, до 50%, увеличить размер кода. Хотя некоторые продавцы CPU применяют агрессивную развертку циклов, удаление обращений к подпрограммам и другие компиляторные оптимизации, повышающие производительность за счет длины программы, EEMBC не требует, чтобы оценки по CoreMark декларировали размер кода. Поскольку микроконтроллеры часто хранят программы в памяти на кристалле, раздувание кода может оказаться дорогой альтернативой, если компиляторные оптимизации всего лишь улучшают оценку по бенчмарку. Потребителям встраиваемых приложений нужно увидеть улучшения в реальных программах, прежде чем устанавливать соответствующие флажки компилятора. Следует заметить, что в компиляторах также имеются флажки минимизации размера кода, но при их установке может ухудшиться оценка по CoreMark. Потребителям следует самим проводить собственное тестирование реальных программ при различных установках компилятора.

Благодаря более глубокому 10-ступенчатому конвейеру ядра ARC HS характеризуются большим запасом по тактовым частотам даже при низких напряжениях. Пока что в своей минимальной конфигурации ARC HS34 характеризуется практически теми же размерами и потреблением энергии, что и конкурирующие маломощные процессорные ядра с трехступенчатыми конвейерами. Некоторые конкурирующие более мощные разработки CPU гораздо сложнее ядер ARC HS, за что расплачиваются большим потреблением мощности и числом транзисторов. В ядрах ARC HS используется изящный подход, который требует меньше транзисторов и меньше мощности, но при этом обеспечивает высокую производительность необычайно гибкого процессора, который разработчики SoC могут в широких пределах подгонять под свои требования.

Процессор MIPS interAptiv компании Imagination будет в некоторых применениях конкурировать с ARC HS. Его 8-ступенчатый инструкционный конвейер может достичь высоких рабочих частот и обеспечить отличную производительность с многопоточным кодом, но многопоточность предполагает и большую сложность. В однопоточных приложениях или приложениях с интенсивной DSP ARC HS будет гораздо эффективнее.

Tensilica, до ее приобретения компанией Cadence, была нацелена на высокоскоростную обработку задач плоскости данных (dataplane), особенно — на цифровую обработку сигналов в основной полосе беспроводной связи, потребительское радио и компьютерное зрение. Diamond 570T — это разработка семилетней давности, которую инструментальные средства Xtensa от Tensilica могли генерировать в качестве либо заранее сконфигурированного ядра, либо стартовой точки для заказного CPU. Его спецификации слегка менялись год от года, обновляясь по мере введения улучшений в Xtensa.

Базовая архитектура Xtensa использует 5-ступенчатый конвейер, что обеспечивает малый размер кристалла и низкое потребление энергии, но в высокоскоростных разработках SoC заказчику может потребоваться доработка этого скалярного конвейера путем добавления дополнительных ступеней для доступа к памяти. Оценки 570T в таблице 2 подразумевают процесс 28 нм и синтез с оптимизацией по скорости, которая требует примерно вдвое большей площади и мощности по сравнению с 60-МГц 570T при том же процессе. Расширения VLIW с выдачей трех инструкций превращают 570T в процессор, ориентированный на DSP, но ARC HS должен превзойти его в задачах высокоскоростного управления.

ARM подает серию Cortex-R как ядро для встраиваемого управления в реальном времени, однако все CPU поддерживаются операционными системами реального времени и предлагают детерминистическое исполнение. Cortex-R5 использует 8 ступенчатый конвейер с поочередным (in-order) исполнением инструкций и ограниченной способностью одновременной обработки двух инструкций (dualissue). Более мощный Cortex-R7 имеет и более сложный 11-ступенчатый конвейер с внеочередным (out-of-order) исполнением и лучшей способностью к параллельной обработке двух инструкций. Хотя конвейер Cortex-R5 очень похож на конвейер предыдущего Cortex-R4, более новый Cortex-R7 включает много элементов из CPU Cortex-A9 и добавляет такие особенности как ECC и толерантную к отказам симметричную многопроцессорность SMP (Symmetric Multi-Processing). Cortex-R5 и ARC HS тоже поддерживают ECC, но они могут обеспечить толерантность к отказам только в конфигурации из пары CPU, строго «шагающих в ногу» (in lockstep), выполняя две копии одного и того же кода. В противоположность им Cortex-R7 может выполнять одну задачу на двух кэш-когерентных CPU со всеми достоинствами SMP. Однако из-за очень большой сложности Cortex-R7 ядра ARC HS имеют существенное преимущество по размеру и мощности, предлагая при этом больший диапазон производительности.

РЕЗЮМЕ
При создании семейства ARC HS Synopsys преследовал доминирующую цель — разработать по возможности самое быстрое процессорное ядро, которое сохранило бы как простоту и энергетическую эффективность скалярного конвейера, так и компактность на кристалле кремния. Суперскалярное исполнение могло бы обеспечить еще большую производительность, однако необходимая для множества конвейеров логика вывела бы потребление энергии и размер кристалла за желательные пределы. Микроархитектура с полностью внеочередным исполнением инструкций и более глубокой конвейеризацией могла бы аналогичным образом увеличить пропускную способность, но, опять же, — за счет рассеиваемой мощности и дополнительной логики, неизбежной при сложной диспетчеризации инструкций.

Разработка высокопроизводительных процессоров не так уж трудна, когда нет ограничений по мощности и числу транзисторов. Гораздо сложнее разрабатывать компактные эффективные процессоры, которые сочетают достаточную на сегодня производительность с возможностями дальнейшего роста. Наиболее важные свойства ARC HS, которые на практике имеют значение для разработчиков встраиваемых систем:

высокие потенциальные тактовые частоты (до 1,6 ГГц при популярном КМОП процессе 28 нм HPM) и даже более высокие в будущих технологиях;
хорошая энергетическая эффективность (вплоть до 0,033 мВт/МГц для ядра ARC HS34 при 28 нм HPM);
дешевизна за счет небольшой занимаемой площади (вплоть до 0,12 мм2 при 28 нм HPM);
плотность кода приблизительно на 18% лучшая, чем у процессорных ядер ARCv1;
детерминистический отклик в реальном времени для критических встраиваемых применений;
необычайно широкая конфигурируемость и расширяемость, включая добавляемые пользователем инструкции и регистры; быстрое переключение контекстов с использованием множества регистровых файлов;
новые векторные инструкции для применений с интенсивными вычислениями;
опциональная плавающая запятая с одинарной и двойной точностью, полностью соответствующая IEEE-754.2008;
интерфейсы и шины AXI и AHB с минимальными задержками;
полная поддержка трассировки извне в реальном времени;
обширная экосистема средств разработки аппаратуры и ПО, средств отладки, макетных плат и широкая поддержка сторонних фирм;
возможность использования DesignWare IP и средства верификации компании Synopsys.

Понравилась статья? Поделиться с друзьями:
TRIAL NEWS