Процессор Baikal T1 MIPS – последний из могикан?

CNXSoft: пост от гостя Blu о плате для разработчиков Baikal T1 и SoC, одной из последних платформ потребительского класса MIPS.

Нам потребовалось много времени, чтобы начать писать эту статью, хотя уже несколько месяцев мы тестировали процессор и есть выводы, которыми стоит поделиться с другими разработчиками. То, что нас удерживало – это мыслью о том, что это, возможно, один из последних образцов процессоров потребительского класса с первоклассным ISA, когда-то перевернувший мир процессоров. Отсюда смешанные чувства – частично печали, частично нерешительность – чтобы не оценить несправедливо, возможно, последнее, в своем роде, устройство. С такими чувствами мы взялись за эту статью. Но, для начала, короткая личная история.

Пару лет назад мы с одним из наших товарищей обсуждали архитектуры процессоров и гипотезы о будущих достижениях в отрасли.  Тогда мы упомянули о том, что последний MIPS P5600 Imagination Technologies – MIPS32r5 – разместил интересное расширение SIMD – ранее невидимое в мире MIPS. Нас впечатлили документы для этого расширения – MIPS SIMD Architecture (MSA). Мы обсудили, как P5600 нашел свой путь в SoC российского поставщика полупроводников Baikal Electronics и как они выпускали плату для разработки, которая, из-за производства ограниченной серией, была бы недоступна простым разработчикам.

Перенесемся в это лето, когда мы получили сообщение от нашего друга – он находился в то время в Санкт-Петербурге, Россия, и, просматривая один интернет-магазин, обнаружил плату Baikal T1 BFK 3.1 , стоимостью около 500 евро. Если вы когда-либо хотели ее получить, сейчас самое время.

Разве только мы хотим этого? Последний MIPS. Наш опыт пользования платой Imagination CI20, в которой было реализовано приложение Ingenic JZ4780 SoC – двухъядерная реализация MIPS32r2, был смешанным. У нас были более высокие ожидания от SoC, по нашему мнению, ни поставщик SoC, ни Imagination не оправдали ожидания пользователей. Единственная интересная часть этого SoC, с нашей точки зрения, это полноценный стек GLESv2/EGL для стареющего SGX540. То, что мы ожидаем на этот раз, это «более содержательный» MIPS, которое был бы ближе к современному уровню ISA, и P5600 был именно таким.

Итак, да, мы очень хотели заполучить этот процессор. Но цена была довольно высока, поэтому мы немного колебались. На что наш друг предложил подарить нам его.  [Огромное спасибо ему, за доброту и щедрость!]

BFK 3.1 – это плата sub-uATX, в форм-факторе flexATX – немного больше, чем mini-ITX. Это означает, что он компактный, не такой как RPi, заметьте, но все же. Baikal T1 является компактным SoC – не намного большим, чем Ingenic JZ4780. Последний – 17×17 мм BGA390 (40 нм), против 25×25 мм BGA576 (28 нм) для T1. Но, T1 – это правильный SoC, который содержит все необходимое для небольшого универсального компьютера (без GPU), чего и добивается BFK 3.1. В сочетании с универсальным MCU STM32F205 (ARM Cortex-M3 @ 120MHz), T1 позволяет использовать версию с двумя чипами. Помимо формы SoC и его компаньона MCU, в BFK 3.1 размещается разъем PCIe x16 коннектор (4x активные полосы), слот SO-DIMM, разъем питания ATX, 2x 1 Гбит Ethernet и 2x SATA 3 разъема, USB2.0, UART (через мини-USB), это то, что кажется USB OTG, несколькими JTAG и даже разъемом RPi GPIO – остальная, верхняя часть платы, практически чистая. Есть еще один разъем – для дополнительного 10Gb Ethernet, но это, скорее,  курьез с нашей точки зрения.

Подача питания BFK 3.1 осуществляется через 24-контактный разъем ATX – без блока питания для любого типа, но у нас также имелся 20-контактный ATX picoPSU (80 Вт DC-DC , 12 В вход) и запасной DC-DC 12В-конвертер (60 Вт). У нас также был оставшийся DDR3 SO-DIMM на 4 ГБ из выведенного из эксплуатации ноутбука, тоже есть RAM. «Небольшая» деталь ускользнула от нашего внимания – SO-DIMM был разновидностью 1333 мегатранзакции в секунду (667 МГц), тогда как плата заняла 1600 мегатранзакции в секунду (800 МГц) – поэтому первая загрузка платы заставила нас задуматься о контроллере RAM.

Плата оснащена “неподходящий” SO-DIMM @ 667 МГц

Одно посещение местного магазина и плата была усовершенствована отличной DDR3 на 8 ГБ.

Еще одна незначительная деталь о оперативной памяти, первоначально ускользнувшая из нашего внимания и не имеющая решающего значения для загрузки платы, о которой мы узнали только после первой загрузки: у SoC была 32-разрядная RAM-шина, это половина емкости 64-битного DIMM. Возможно, можно было бы увидеть полную емкость DIMM – мы не инженеры по аппаратной части, чтобы знать такие вещи, а дизайнеры BFK 3.1 явно не позаботились об этом. Что немного прискорбно для платы для разработчиков. Ну ладно – вернемся к «4 ГБ ОЗУ».

Кстати, как оказалось, нам действительно нужна оперативная память, так как для раскрытия полного потенциала P5600 у нас была компиляторная сборка, а мы всегда делали сборку самостоятельно, когда это было возможно. Но, об этом дальше.

Плата поставляется с Busybox в SPI-flash, а Baikal Electronics предоставляет две версии образов Debian Stretch с ядром 4.4 для повседневного использования с диска SATA. Все доступные загрузочные носители доступны через самый чистый интерфейс меню U-Boot, который когда либо нас встречался.

Приечание: помимо использования образа Debian на SSD, все взаимодействия с BFK 3.1 выполнялись без участия ПК – представленный выше скриншот – из нашего надежного chromebook.

Обязательный сброс основных настроек:

Рассматривало ли ядро это как машину MIPS32r2 или оно использовало расширения адресов – это выходит за рамки первого знакомства с устройством. Нам хотелось изучить производительность uarch, и пока компиляторы были в курсе истинных возможностей ISA процессора, я был установлен.

Расширение VZ – это вещь для виртуализации – и далека от наших интересов. EVA и XPA расширения адресации – расширенный виртуальный адрес и расширенный физический адрес, соответственно. Первый позволяет более эффективное сопоставление виртуального пространства между ядром и пользовательским пространством для 32-битного/4 ГБ пространства для обработки адресов. И последнее – это расширение физического адреса. Из руководства P5600:

Расширенный физический адрес (XPA), который позволяет увеличить физический адрес от 32 бит до 40 бит.

Очевидно, что оба расширения адресации могут быть полезны для разработчиков ядра.

Как насчет производительности FS?

Как говорят мудрые люди, «приличная производительность SATA будет использоваться для сборки».

И, наконец, наблюдение, связанное с прерываниями, которое может помочь нам получить более чистые результаты бенчмаркинга:

Обратите внимание, что все последовательные и SATA-прерывания обслуживаются 1-м ядром? Мы могли бы это использовать.

Теперь самое интересное! Поскольку мы фанаты контрольных тестов, мы, как правило, запускаем несколько мини-тестов производительности при тестировании новых микроархитектур – один «общего назначения» и один на «устойчивой fp». Оба они были однопоточными, поэтому мы могли сосредоточиться на деталях uarch.

К сожалению, передо нами было последнее препятствие ‒ Debian Stretch поставляется с gcc-6.3, который не знает о расширении MSA в P5600. Для этого нам понадобился еще один крупный компилятор – gcc-7.3 полностью осведомленный новым набором инструкций, и поэтому следующим шагом было создание gcc-7.3 для платформы. Очень просто, как нам казалось.

У нас возникли трудности с пониманием того, что самозагружаемая сборка по умолчанию для компилятора завершилась неудачей с «незаконной инструкцией» на этапе начальной загрузки. Так обстоит дело с g ++ – 7.3 в Debian Stretch при создании самостоятельной --target=mipsel-linux-gnu на BFK 3.1, и именно поэтому мы обратились к списку рассылки gcc-dev с неправильной постановкой вопроса, к которому, к счастью, мы получил полезные ответы.

Вернемся к BFK 3.1, где в итоге мы получили хорошую сборку g ++ – 7.3 через следующую конфигурацию, в значительной степени скопированную с g ++ – 6.3 Debian:

Что дало нам:

Ура, поддержка компилятора MSA получена! Теперь мы могли сделать все, что хотели (и не только).

Выражаем свою благодарность источнику с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments