Введение

Микроэлектронный компонент

Система на чипе, или SoC (/,/'/ɛ//s//oʊ//s//iː/; мн. ч. SoCs /,/'/ɛ//s//oʊ//s//iː//z/) – это интегральная схема, объединяющая большинство или все компоненты компьютера или другой электронной системы. Эти компоненты почти всегда включают в себя центральный процессор (CPU), интерфейсы памяти, устройства и интерфейсы ввода-вывода, а также интерфейсы вторичной памяти, часто вместе с другими компонентами, такими как радиомодемы и графический процессор (GPU), – все на одной подложке или микрочипе. SoC могут содержать цифровые, а также аналоговые, смешанные сигналы и часто функции обработки радиочастотных сигналов (в противном случае они могут рассматриваться как отдельные процессоры приложений). Более производительные SoC часто используются с выделенной и физически отдельной памятью и вторичными накопителями (например, LPDDR и eUFS или eMMC соответственно), которые могут быть установлены поверх SoC в так называемой конфигурации «чип на чипе» (PoP) или размещены рядом с SoC. Кроме того, SoC могут использовать отдельные беспроводные модемы. SoC объединяет микроконтроллер, микропроцессор или, возможно, несколько процессорных ядер с периферийными устройствами, такими как GPU, Wi-Fi и радиомодемы сотовой связи, и/или один или несколько сопроцессоров. Подобно тому, как микроконтроллер интегрирует микропроцессор с периферийными схемами и памятью, SoC можно рассматривать как интеграцию микроконтроллера с еще более продвинутыми периферийными устройствами. По сравнению с многочиповой архитектурой, SoC с эквивалентной функциональностью потребляет меньше энергии и имеет меньшую площадь полупроводникового кристалла. Это достигается за счет снижения возможности замены компонентов. По определению, конструкции SoC полностью или почти полностью интегрированы между различными модулями компонентов. По этим причинам в индустрии компьютерного оборудования наблюдается общая тенденция к более тесной интеграции компонентов, отчасти благодаря влиянию SoC и опыту, полученному на рынках мобильных и встраиваемых вычислений. SoC широко распространены на рынках мобильных вычислений (например, в смарт-устройствах, таких как смартфоны и планшетные компьютеры) и граничных вычислений (Edge Computing).

Приложения

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

Встроенные системы

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

Персональные компьютеры

В 1992 году Acorn Computers выпустила линейку персональных компьютеров A3010, A3020 и A4000 с системой на кристалле (SoC) ARM250. Она объединила оригинальный процессор Acorn ARM2 с контроллером памяти (MEMC), видеоконтроллером (VIDC) и контроллером ввода-вывода (IOC). В предыдущих компьютерах на базе Acorn ARM эти функции выполнялись четырьмя отдельными чипами. Чип ARM7500 был их SoC второго поколения, основанным на контроллерах ARM700, VIDC20 и IOMD, и широко лицензировался для использования во встроенных устройствах, таких как приставки, а также в более поздних персональных компьютерах Acorn. Производители планшетов и ноутбуков учли опыт, полученный на рынках встроенных систем и смартфонов, в отношении снижения энергопотребления, повышения производительности и надежности за счет более тесной интеграции аппаратных и прошивочных модулей, а также интеграции на чипе (интегрированных контроллеров сетевого интерфейса) LTE и других средств беспроводной связи.

Структура

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

Ядра процессоров

SoC должен содержать как минимум одно процессорное ядро, но обычно SoC содержит более одного ядра. Процессорные ядра могут быть микроконтроллером, микропроцессором (μP), цифровым сигнальным процессором (DSP) или ядром процессора с набором специализированных инструкций (ASIP). ASIP имеют наборы инструкций, оптимизированные для конкретной области применения и разработанные для повышения эффективности по сравнению с универсальными инструкциями при работе с определенным типом задач. Многопроцессорные SoC по определению содержат более одного процессорного ядра. Архитектура ARM является распространенным выбором для процессорных ядер SoC, поскольку некоторые ядра архитектуры ARM являются программно-реализуемыми процессорами, представленными в виде IP-ядер. Или они могут быть интегрированы непосредственно в SoC, например, если в SoC встроен аналоговый датчик, и его показания необходимо преобразовать в цифровые сигналы для математической обработки.

Процессоры цифровых сигналов

Ядра цифровых сигнальных процессоров (DSP) часто включаются в состав систем на кристалле (SoC). Они выполняют операции обработки сигналов в SoC для датчиков, исполнительных механизмов, сбора данных, анализа данных и обработки мультимедиа. Ядра DSP обычно используют архитектуры с очень длинными командами (VLIW) и множественными данными (SIMD), что позволяет эффективно использовать параллелизм на уровне команд посредством параллельной обработки и суперскалярного выполнения.

Автобусная связь

Исторически, общая глобальная компьютерная шина обычно соединяла различные компоненты, также называемые "блоками" SoC. Продукты HLS, известные как "алгоритмический синтез", позволяют разработчикам использовать C++ для моделирования и синтеза систем, схем, программного обеспечения и уровней верификации, все на одном языке высокого уровня, общепринятом среди инженеров-компьютерщиков, независимо от временных характеристик, которые обычно задаются в HDL. Другие компоненты могут оставаться программным обеспечением и компилироваться и встраиваться в мягкие процессорные ядра, включенные в SoC, в виде модулей в HDL как IP-ядра. После определения архитектуры SoC любые новые аппаратные элементы записываются на абстрактном языке описания аппаратуры, называемом уровнем передачи регистров (RTL), который определяет поведение схемы, или синтезируются в RTL из языка высокого уровня посредством высокоуровневого синтеза. Эти элементы соединяются вместе с использованием языка описания аппаратуры для создания полной конструкции SoC. Логика, используемая для соединения этих компонентов и преобразования между различными интерфейсами, предоставляемыми разными поставщиками, называется "логикой согласования".

Проверка конструкции

Чипы проверяются на корректность валидации перед отправкой на полупроводниковый завод. Этот процесс называется функциональной верификацией, и на него приходится значительная часть времени и ресурсов, затрачиваемых в жизненном цикле разработки чипа, часто оцениваемая в 70%. С ростом сложности чипов используются языки верификации аппаратного обеспечения, такие как SystemVerilog, SystemC, e и OpenVera. Об обнаруженных на этапе верификации ошибках сообщается разработчику. Традиционно инженеры применяют ускорение моделирования, эмуляцию или прототипирование на перепрограммируемом оборудовании для верификации и отладки аппаратного и программного обеспечения SoC до окончательной доработки проекта, известной как подготовка к производству. Для прототипирования SoC предпочтительны ПЛИС (FPGA), поскольку прототипы на их основе перепрограммируемы, обеспечивают возможность отладки и более гибки, чем специализированные интегральные схемы (ASIC). Благодаря высокой производительности и быстрому времени компиляции, ускорение и эмуляция моделирования являются мощными технологиями, обеспечивающими широкий обзор системы. Однако обе технологии работают относительно медленно – порядка МГц, что может быть значительно ниже – до 100 раз ниже – рабочей частоты SoC. Устройства ускорения и эмуляции также очень большие и дорогие, их стоимость превышает 1 миллион долларов США. Прототипы на FPGA, напротив, используют ПЛИС напрямую, позволяя инженерам проводить валидацию и тестирование на полной или близкой к полной рабочей частоте системы, используя реальные входные сигналы. Инструменты, такие как Certus, используются для вставки зондов в RTL-код FPGA, что делает сигналы доступными для наблюдения. Это позволяет отлаживать взаимодействие аппаратного, прошивочного и программного обеспечения на нескольких FPGA с функциональностью, аналогичной логическому анализатору. Параллельно аппаратные элементы группируются и подвергаются логическому синтезу, в ходе которого применяются ограничения производительности, такие как рабочая частота и ожидаемые задержки сигналов. В результате формируется выходной файл, известный как сетевой список, описывающий схему как физическую цепь и ее соединения. Эти сетевые списки объединяются с логикой коммутации, соединяющей компоненты, для создания принципиальной схемы SoC, которую можно нанести на чип. Этот процесс известен как трассировка и размещение, и он предшествует подготовке к производству, если SoC производятся в виде специализированных интегральных схем (ASIC).

Цели оптимизации

SoC должны оптимизировать энергопотребление, площадь кристалла, коммуникацию, позиционирование для обеспечения локальности между модульными блоками и другими факторами. Оптимизация является неотъемлемой целью проектирования SoC. Если бы оптимизация не была необходима, инженеры использовали бы архитектуру многочипового модуля, не уделяя такого внимания занимаемой площади, энергопотреблению или производительности системы. Ниже приведены типичные цели оптимизации при проектировании SoC с пояснениями к каждой из них. В общем случае, оптимизация любой из этих характеристик может представлять собой сложную комбинаторную задачу оптимизации, и довольно легко может оказаться NP-трудной. Поэтому часто требуются сложные алгоритмы оптимизации, а в некоторых случаях может быть целесообразно использовать приближенные алгоритмы или эвристики. Кроме того, большинство проектов SoC содержат несколько переменных, которые необходимо оптимизировать одновременно, поэтому при проектировании SoC стремятся к поиску парето-оптимальных решений. Зачастую цели оптимизации некоторых из этих характеристик напрямую противоречат друг другу, что еще больше усложняет оптимизацию проектирования SoC и приводит к компромиссам в системном проектировании. Более широкое освещение компромиссов и анализа требований можно найти в области инженерной разработки требований.

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

Исследования и разработки в области SoC часто включают сравнение множества вариантов. Для помощи в таких оценках разрабатываются эталоны, такие как COSMIC.