
Процессорные решения компании Loongson Technology
Введение
В последнее время на российском рынке появилось немало новых компаний азиатского происхождения. С продукцией одной их них, китайской компанией Loongson, мы ознакомим вас в этой статье. Историю компании можно разделить на три этапа. В первом из них, длящемся с 2001 по 2009 гг., исследовательская команда Loongson финансировалась по государственной программе. На этом этапе, в 2006 г., им удалось впервые в Китае создать процессор с тактовой частотой 1 ГГц.
Отсчет второго этапа начался в 2010 г., когда была создана компания Loongson Technology. Этот период характеризуется значительным ростом производства: в 2019 г. был изготовлен и отправлен заказчикам 1 млн СнК (Система-на-Кристалле). Нынешний, третий этап начался в 2021 г., и по планам компании он должен продлиться до 2030 г. За это время компания должна стать ведущим игроком на мировом рынке микроконтроллеров. Первый шаг к этой цели компания сделала уже в 2021 г., когда анонсировала 16‑ядерный микропроцессор (МП) 3С5000 с тактовой частотой 2,5 ГГц и полностью независимой архитектурой LoongArch.
Историю компании иллюстрирует рис. 1, на котором показаны все созданные компанией СнК. В серию Loongson 3 (Big CPU) входят наиболее производительные многоядерные 64‑бит МП. Она предназначена для использования в настольных компьютерах и серверах, а также в рабочих станциях.
В серию Loongson2 (Medium CPU) входят 32/64‑бит МП с широким набором интерфейсов. Они используются в сетевых и промышленных приложениях. Серия Loongson1 (Small CPU) состоит из 32‑бит микроконтроллеров (МК) с малым энергопотреблением, которые предназначены для применения в интернете вещей, терминалах и сетях.
Микропроцессор 2K1000LA
Структурная схема 64‑бит двуядерного суперскалярного МП 2K1000LA с архитектурой LoongArch серии Loongson2 приведена на рис. 2. МП базируется на двух процессорных 64‑бит ядрах LA264. Каждое из ядер С0 и С1 имеет кэш-память данных и команд уровня L1 объемом по 32 Кбайт, а также кэш-память уровня L2 емкостью 1 Мбайт.
Ядра могут менять очередность выполнения команд, что позволяет увеличить производительность за счет их параллельного выполнения. Пиковая производительность МП достигает внушительной цифры 8 Гфлопс. Ядра также поддерживают 128‑бит векторные операции. Можно предположить, что речь идет об аналоге векторного сопроцессора NEON. Тактирование ядер производится частотой 1 ГГц. Обмен данными между ядрами осуществляется с помощью восьми специально выделенных регистров.
В МП интегрирован контроллер внешней памяти 64‑бит DDR2/3-1066, соответствующий требованиям стандарта JESD79-3. Он поддерживает четыре сигнала выбора кристалла CS и 19‑бит шину адреса. Контроллер можно сконфигурировать для поддержки двух микросхем памяти разных типов, в том числе с рабочей частотой 133–533 МГц. Для надежного обмена данных встроена функция динамической компенсации задержки (DCC).
Контроллер NAND предназначен для работы с внешней флэш-памятью объемом до 16 Гбайт с максимальным объемом страницы 8 Кбайт. Контроллер поддерживает код исправления ошибок ECC, но для страниц объемом 512 байт.
Два матричных коммутатора (crossbar switch) позволяют сконфигурировать МП. Коммутатор Х1 коммутирует процессорные ядра С0, С1, ввод/вывод (IO) и кэш-память уровня L2. Коммутатор Х2 (рис. 3) конфигурируется. Он коммутирует кэш-память уровня L2, контроллеры SPI, LIO и ввод/вывод.
Отметим некоторые функциональные особенности МК. Начнем с графики и мультимедиа. Аудиоконтроллер HDA отвечает требованиям спецификации High Definition Audio Specification 1.0a. Он работает с аудиосигналами 44,1 и 48 кГц. Контроллер камеры, обрабатывающий 8‑бит видеоданные, совместим с интерфейсом стандарта ITU-R BT 601/656. Модуль видеопроцессора VPU поддерживает стандарты сжатия H 264, MPEG 4, MPEG 2, MPEG 1, JPEG.
Встроенный графический процессор GPU обрабатывает 2D-графику с помощью API Open VG. Он также реализует преобразование цветности YOU и масштабирование графики. Контроллер дисплея поддерживает два параллельных интерфейса дисплея, аппаратный курсор и гамму-коррекцию. Его тактовая частота достигает 165 МГц. Каждый параллельный интерфейс способен управлять дисплеем размерностью 1920×1080 пикс. при частоте 60 кадров/с. Используется кодировка цветности: RGB444, RGB555, RGB565, RGB888.
В МК 2K1000LA встроен широкий набор интерфейсов. Поскольку они хорошо известны, мы их только перечислим:
- два канала РCIE2.0;
- SATA2.0;
- четыре канала USB2.0;
- Ethernet MAC и2 канала RGMII;
- 12 каналов UART;
- два канала CAN;
- SDIO;
- два канала I2
Управление питанием осуществляется специальным модулем ACPI. Предусмотрен режим динамического изменения тактовой частоты, отключения тактирования. Кроме того, предусмотрены режимы пониженного энергопотребления, а среди них — режим гибернации, останов. Интересной особенность является возможность выведения из режима пониженного потребления не всего МК, а лишь отдельных модулей.
Микропроцессор 3C5000
16‑ядерный 64‑бит МП 3C5000 с архитектурой LoongArch серии Loongson 3 является мощным вычислительным средством. Его производительность достигает 560 Гфлопс при частоте тактирования 2,0–2,2 ГГц. МП базируется на высокопроизводительных процессорных ядрах LA464. Каждое из них имеет кэш-память данных и команд уровня L1 объемом по 64 Кбайт, кэш-память уровня L2 емкостью 256 Кбайт и общую память уровня L3 объемом 32 Мбайт. Реализована когерентность кэш-памяти.
МП может работать с внешней памятью 72‑бит DDR4-3200, поддерживается исправление ошибок ECC. Отметим четыре контроллера HyperTransport 3.0 двунаправленной шины, благодаря которым заметно возрастает скорость обмена данными с внешними устройствами. В МП интегрированы коммутационные интерфейсы SPI, UART, три канала I2C, AVS, 16 GPIO.
Предусмотрены режимы пониженного энергопотребления с динамическим регулированием частоты и напряжения питания основных доменов, а также с приостановкой их тактирования.
Решения с МП 3C5000
В качестве примера использования МП 3C500 приведем материнскую плату TC512A0. Ее можно использовать в рабочей станции, серверах или ПК. Структурная схема материнской платы показана на рис. 4. Помимо МП 3C5000, в ней применяется еще одно изделие компании — чипсет LS7A200, выполняющий роль моста. Размер платы составляет 304,8×234,84 мм.
Перечислим некоторые наиболее интересные, на наш взгляд, особенности платы TC512A0. В нее встроена 4‑канальная память DIMM, максимальный объем которой достигает 256 Гбайт. В контроллер управления материнской платой BMC входит слот памяти SODIMM, совместимый с платами Aspeed AST2500 BMC или LS2K0500 BMC собственной разработки. На передней и задней сторонах платы находятся два и четыре разъема USB2.0, соответственно.
Соединение с твердотельной энергонезависимой памятью реализовано через интерфейс NVME. Впечатляет и набор интерфейсов PCIE: PCIE3.0 ×16, два канала PCIE3.0 ×8 и PCIE3.0 ×4 слота. Также поддерживается RS232 и сетевые порты Gigabit RJ45. Отметим еще поддержку виртуальной машины KVM ОС Linux. Она позволяет масштабировать вычислительные возможности, обеспечивая высокую производительность.
Экосреда
Архитектура LoongArch — это первый набор команд, полностью разработанных в Китае. В ее состав входит более 2500 инструкций. Она полностью независима, и ее использование не требует приобретения лицензий. В настоящее время эта архитектура наряду с Х86 и ARM становится ведущей экосистемой с открытым исходным кодом. Как X86 и ARM, она поддерживается сообществами GCC, LLVM, Go, Net, Linux с открытым исходным кодом.
Кроме того, компании Net, V8 и Mozilla реализовали три операционные среды для виртуальных машин на основе Java, Javascript и Net. LoongArch состоит из обязательного ядра и нескольких опциональных расширений. Разработаны три транслятора, относящихся к другим известным архитектурам: MIPS — LoongArch; X86 — LoongArch; ARM — LoongArch. Кроме того, предлагаются три компилятора для GCC, LLVM, GOLANG.
Вкратце опишем три платформы ОС для LoongArch. Первая из них — Loongnix. Это ОС Linux. В ее состав входит Server, Loongnix-desktop, Loongnix-embed. Поддерживается Open Stack/KVM/docker/k8s и типовые решения для облачных вычислений. Трансляторы, которые упоминались выше, позволяют работать с приложениями и периферийными устройствами X86 Linux и X86 Windows.
Операционная система LoongOS предназначена, в первую очередь, для встраиваемых приложений, работающих в реальном времени. Она основана на ядре Linux с технологией RT-Linux. ОС LoongOS поддерживает графику FrameBuffer, EGL и Wayland., FrameBuffer (2D) и EGL (3D).
ОС LoongWorks основана на VxWorks. Она отлично подходит для работы с графикой и видео. В LoongWorks встроен драйвер аппаратного ускорителя обработки 2D/3D-графики, графический API 3D OpenGLES, среда QT, веб-браузер WebKit, плагин для чтения PDF, плагин IME, библиотека высокопроизводительных алгоритмов и многие другие функции обработки графики и видео.
Браузер Loongson, базирующийся на хорошо известном Chromium, оптимизирован под архитектуру LoongArch. Он также совместим с плагинами IE. Браузер пригоден для работы в интернете, содержит среду разработки JAVA для Loongnix. Среда разработки.net для Loongnix представляет собой версию LoongArch для сообщества .net.
В компании Loongson намереваются создать собственную экосистему, альтернативную Windows с Intel и Android с Arm. Компания считает, что ни одна независимая отрасль не может существовать на базе процессоров Х86 и ARM, и, как видно из настоящей статьи, Loongson близка к осуществлению этой цели.
Выводы
Компания Loongson производит СнК с собственной архитектурой LoongArch, которые могут найти спрос в самом широком ряду приложений, начиная с относительно простых применений в интернете вещей (МК серии Loongson 1) и заканчивая высокопроизводительными сетевыми и вычислительными комплексами (МП серии Loongson 3). Чипсеты изготавливаются по современным 14‑нм технологиям, что позволяет увеличить частоту тактирования и производительность, а также свидетельствует о профессионализме сотрудников компании, поскольку разработка надежной топологии для 14‑нм норм требует высокой квалификации и большого объема инженерных навыков.
Подкупает и хорошо проработанная экосистема, в которой найдется все для проектирования и отладки СнК с архитектурой LoongArch. Трансляторы с широко используемыми архитектурами MIPS, Х86 и ARM позволят без труда перейти с этих архитектур на LoongArch.