Jump to content
Sign in to follow this  
mr.save

Raspberry Pi 4. Что дают четыре ядра и четыре гига в четвертой ревизии «малинки»

Recommended Posts

Как и у людей, у компьютеров есть своя судьба — и складывается она зачастую по-разному. Одни ведут размеренную жизнь и тихо уходят на покой в предназначенный срок. Другим уготовано вписать свое имя в историю, стать признанной легендой и даже породить целую субкультуру. Выход четвертой ревизии популярного одноплатника Raspberry Pi не оставляет скептикам ни единого шанса: английский микрокомпьютер с нами всерьез и надолго.

full.thumb.jpg.fc5000730096a46a344389a5d0566562.jpg

Получив в народе ласковое прозвище «малинка», RPi стал своего рода ZX Spectrum для современной эпохи. Параллели можно проводить долго: оба компьютера появились на свет в Англии (да не где-нибудь, а в Кембридже!), оба предназначались в первую очередь для образования, но при этом легко «переросли» отведенные рамки. Будучи не самыми производительными для своего времени, они привлекали пользователей демократичной ценой, простотой и, конечно же, поддержкой со стороны сообщества.

Хоть основатель Raspberry Pi Foundation Эбен Аптон и не получил пока от английской королевы титул рыцаря, как это было с Клайвом Синклером почти сорок лет назад, можно не сомневаться, что общественное признание его заслуг еще впереди. Вполне возможно, через пару десятилетий кто-то из нового поколения хакеров и программистов с теплотой вспомнит свой первый микрокомпьютер Raspberry, который помог определиться с выбором жизненного пути. Да, Линус Торвальдс учился программированию на Sinclair QL, если ты не знал!

Думаю, теперь ты понимаешь, почему я просто не мог пройти мимо Raspberry Pi 4 и приобрел этот одноплатник, как только он появился у нас в свободной продаже и максимальной комплектации. Официальных поставок в Россию, насколько мне известно, пока не было, но перекупщики вовремя подсуетились и завезли немного «малинок» для самых нетерпеливых энтузиастов. Самое время узнать, что приготовило нам нынешнее обновление!

 

Обзор платы

Любопытные детали можно обнаружить уже в комплектации. Плата не упакована в антистатический пакет — и это странно. Эбен Аптон упоминал, что его команда старается максимально удешевить производство Raspberry Pi, но это какая-то уж слишком радикальная оптимизация затрат. Подобную экономию ожидаешь увидеть в применении к Raspberry Pi Zero за $5, но никак не к флагманской модели за $55.

Однако все это мелочи жизни, о которых сразу забываешь, едва ознакомившись с бумажной инструкцией. Ты наверняка уже в курсе, что четвертая версия одноплатника поставляется с разными объемами оперативной памяти на выбор. Летом Raspberry Pi Foundation анонсировала появление сразу трех вариантов, с микросхемами LPDDR4 емкостью в один, два или четыре гигабайта. Но в инструкции содержится упоминание о еще одной версии, которая, видимо, не дошла до релиза — на целых восемь гигабайт! Ого!

8gb.thumb.jpg.cad1dd2077c2b5b3b92c5a0cc0279ecf.jpg

Про нее в новостях не было ни слова, и нам остается только гадать, по какой причине разработчики решили отказаться от подобной модели. Вполне возможно, что итоговая стоимость «малинки» с такой микросхемой памяти оказалась слишком высокой и не укладывалась в философию дешевого компьютера, которой стараются придерживаться в Кембридже. Кроме того, не стоит забывать, что выпуск нового поколения сразу в нескольких вариантах — это смелый эксперимент и в самой организации никто пока не знает, какая модель в итоге окажется наиболее популярной среди пользователей.

В такой ситуации отложить выпуск версии на восемь гигабайт и оценить спрос на ее ближайший аналог с четырьмя — вполне логичный шаг. Так что вероятность выхода еще более производительного Raspberry Pi сохраняется, тем более что разработчикам предстоит как-то исправить аппаратную проблему совместимости с некоторыми блоками питания (об этом чуть ниже).

Дальнейший осмотр самого микрокомпьютера настолько неожиданных сюрпризов не принес. Как и было заявлено, форм-фактор остался прежним, а вот расположение и набор разъемов немного изменились, из-за чего одноплатник потерял обратную совместимость с некоторыми прежними аксессуарами. В истории Raspberry Pi такое произошло, кстати, впервые, если не считать оригинальные модели с полноразмерными карточками SD. Стоило ли оно того?

Первое, что бросается в глаза, — разъем RJ45 для гигабитного Ethernet поменяли местами с парой портов USB, переместив его ближе к выводам PoE. Безусловно, такое изменение напрашивалось само собой и только облегчило разводку платы. К слову, теперь сеть и периферия USB висят на отдельных интерфейсах. До этого их объединял общий хаб, что создавало проблемы при одновременном использовании.

Кроме того, у нас наконец-то появились два порта стандарта USB 3.0, без него в 2019 году было бы совсем грустно. Это означает, что теперь есть возможность подключать внешние SSD и прочую современную скоростную периферию вроде веб-камер с разрешением 4К. Можно даже собрать собственный бюджетный NAS, благо связка из USB 3.0 и гигабитного Ethernet располагает к определенного рода безумствам — например, RAID на SSD. Кстати, ответственная за USB микросхема VIA VL805 общается с процессором по PCI Express, и энтузиасты практически тут же нашли способ работать с еще более быстрыми дисками NVMe, просто отпаяв концентратор USB с платы. Классный аппаратный хак!

С боковой стороны убрали полноразмерный разъем HDMI, заменив его парочкой Micro-HDMI 2.0. Увы, они стоят близко друг к другу, и из-за этого подключать переходники с толстыми коннекторами на хвостах будет неудобно. Зато теперь появилась возможность выводить картинку сразу на два дисплея. Производитель в анонсах нескромно пишет о том, что поддерживается «до двух дисплеев и до 4К@60», но на самом деле приходится выбирать: либо два дисплея на 30 кадрах, либо один, но с плавным изображением.

По сравнению с крохотными разъемами видеоинтерфейсов олдскульный 3,5-миллиметровый аудиоджек кажется огромным. Удивительно, но инженеры не только решили сохранить его, но еще и не стали выкидывать возможность выводить на него аналоговый видеосигнал! Так что все желающие могут попробовать вдохнуть жизнь в старые телевизоры и эмулировать ретроигры на аутентичном экране.

А вот с разъемом Mini-USB разработчики распрощались, теперь на его месте ты найдешь USB Type-C. По уверениям создателей, это позволяет прокормить новый «камень», аппетиты которого выросли до 3 ампер под нагрузкой — в сумме внушительные 15 Ватт потребления. Насколько верны столь смелые заявления, мы обязательно выясним чуть позже, а пока лишь замечу, что реализация стандарта USB Power Delivery на новой плате сломала совместимость с нынешними блоками питания у некоторой части пользователей (включая меня). Если для тебя эта проблема критична, стоит подождать следующей ревизии платы, в которой разработчики обещали исправить недочет.

Слот для microSD оставили на своем законном месте. Если ты рассчитывал на встроенный флеш-накопитель в новом поколении (как на RPi Compute Module, например), увы и ах — надеждам не суждено было сбыться. Я тоже немного разочарован, если честно. На Raspberry Pi 2 этот разъем был не самой удачной конструкции — и на моей плате разболтался спустя некоторое время, так что успешная загрузка системы с карты памяти происходила через раз.

Штыревые контакты GPIO также не претерпели изменений. С одной стороны, это позволило сохранить совместимость с существующими платами расширения, что приятно. С другой стороны — как и раньше, очень не хватает выведенного сигнала RESET для принудительной перезагрузки системы (например, автоматически с помощью микросхемы-супервизора). Кроме того, было бы здорово иметь хотя бы парочку дополнительных интерфейсов USB на этом разъеме — чтобы было удобно пользоваться той периферией, которую не предполагается переподключать слишком часто (такие интерфейсы почти всегда можно обнаружить в нижней части обычных десктопных материнок).

 

Самый SoC: BCM2711

Однако самые интересные изменения произошли, конечно же, с центральным процессором. Теперь это SoC BCM2711 с четырьмя ядрами Cortex-A72 на архитектуре ARMv8, что выводит производительность системы на качественно иной уровень. Предыдущие модели основывались на ядрах от Cortex-A7 (Raspberry Pi 2) до Cortex-A53 (Raspberry Pi 3+), то есть с этим обновлением разработчики перемахнули сразу через несколько ступенек.

В первую очередь этому способствовал переход на техпроцесс 28 нм. Микросхемы на всех предыдущих версиях одноплатника изготавливались по технологии 40 нм, и с выходом BCM2873 на RPi 3+ инженеры уперлись в ограничения по площади кристалла. Более производительные ядра требовали больше транзисторов, которые просто негде было разместить. Как видишь, пока Intel и AMD безуспешно штурмуют порог в 10 нм при разработке процессоров на х86, другие — более скромные — компании вполне комфортно себя чувствуют на уже проверенных и давно обкатанных техпроцессах.

На текущий момент документации к микросхеме BCM2711 нет в открытом доступе, но ты можешь частично удовлетворить свое любопытство, ознакомившись с мануалом на Cortex-A72.

a72.thumb.jpg.cf938a38c8e7cdee939b4ce244481f2b.jpg

Что касается периферии, то новая система на кристалле получила в свое распоряжение ускоритель трехмерной графики Videocore VI (500 МГц, 2160p). Информации по GPU сейчас тоже немного, и остается только надеяться, что по прошествии какого-то времени в Broadcom поддержат сообщество и выложат соответствующий референс, как это произошло с Videocore IV во вторую годовщину проекта Raspberry Pi. Все-таки Эбен Аптон неоднократно заявлял, что их конечная цель — сделать со временем одноплатник максимально открытым.

 

Интересности

Пройдусь по самым важным пунктам из того, на что я обратил внимание при работе с RPi 4.

 

Проблема USB PD

Чуть выше я уже замечал, что новый микрокомпьютер привередлив в плане питания и согласится работать далеко не от каждой зарядки. Так, мой расчет использовать вместе с «малиной» блок питания с USB-C от MacBook Pro не оправдался: они просто не смогли договориться. А ведь я ждал подобного момента с 2017 года — иначе зачем вообще было затевать весь этот болезненный переход на унифицированный разъем?!

Попытаемся понять, в чем же здесь проблема. Некоторые пользователи на форумах высказывали предположение, что ноутбучные блоки питания Apple не поддерживают зарядку с напряжением 5 В. Но это не так: наклейка на одной из боковых поверхностей зарядки подтверждает, что устройство реализует стандарт USB Power Delivery с уровнями 5/12/20 вольт. В этом легко убедиться, просто подключив к блоку питания обычный смартфон через подходящий кабель.

На самом деле причина кроется в схеме Raspberry Pi и частично в способе электронной идентификации (eMark) кабелей некоторых производителей (Apple, Dell и других). Предлагаю убедиться в этом вместе. Для этого придется найти документацию (PDF) на сайте и внимательней приглядеться к распиновке разъема USB-C.

usbc.thumb.jpg.774512489ffad2b9151decf954764b08.jpg

Здесь резистор R79 соединяет с GND не один, а оба контакта СС1 и CC2. Кроме того, R1 уходит к контроллеру питания платы, хотя тоже должен быть соединен с землей. Правильная схема приведена на рисунке ниже.

docs.thumb.jpg.3458093aa940735bd21662065cfd8756.jpg

Скрытый JTAG

Любопытные сюрпризы на этом не заканчиваются. Повертев «малинку» пару минут в руках, ты наверняка обнаружишь, что на обратной стороне под разъемами USB разведен еще один загадочный интерфейс без какого-либо припаянного коннектора. Он маркирован как J5 на плате, но само по себе это мало что объясняет.

back.thumb.jpg.b86776796c61602b9d43a3d575985c67.jpg

Попробуем угадать его происхождение, исходя из количества контактов. Очевидно, что это не обычный UART или USB — проводников тут целых семь. По всей видимости, предполагается, что рядовому пользователю этот разъем никогда не пригодится. Хм-м, чем же таким особенным может быть занят разработчик?

А что если это интерфейс для отладки? Ну конечно! Несколько запросов в поисковике пролили свет на назначение таинственного разъема J5: это JTAG графического ускорителя Videocore. Оказывается, кое-кто в интернете уже задавался этим вопросом, подробности ты можешь прочитать в заметке Энди Кирби.

 

Загрузка с EEPROM

Еще одна примечательная особенность нового Raspberry Pi — это загрузка с распаянной на плате микросхемы SPI EEPROM емкостью в 4 Мбита. Если помнишь, раньше одноплатнику для старта нужен был ‘bootcode.bin’ в загрузочном разделе карты памяти. В новом дистрибутиве Raspbian этот файл остался на своем месте, но лишь для поддержки предыдущих версий компьютера.

Сами разработчики указывают несколько причин для такого решения. Во-первых, возросла сложность интерфейсов, на которых подключается память и периферия — теперь это LPDDR4 и PCI Express, а они требуют значительно больше кода для инициализации. Прежде была возможность компактно разместить все в области ROM на самом SoC, но теперь для них не нашлось достаточно места.

Во-вторых, у команды большие планы по добавлению новых функций: так, в скором времени они обещают реализовать загрузку с USB и по Ethernet. Печально, что такая возможность нам не доступна с момента начала продаж устройства, но, по крайней мере, понятно, чего именно стоит ждать в обновлениях прошивки.

Наконец, не стоит забывать, что такой способ позволяет проще устранять ошибки (или добавлять новые!). Кстати, c подобными целями ты можешь поковырять загрузчик и его бета-версию самостоятельно:

$ sudo apt install rpi-eeprom 

Тесты

Сегодня одноплатники массово производятся в самых разных форм-факторах, и только крупных компаний на этом рынке легко насчитать с десяток. Конечно, Raspberry Pi Foundation выгодно выделяется на их фоне своей известностью, но здоровая конкуренция позволяет покупателям подбирать оптимальное решение для своих задач. А что помогает принять решение в первую очередь? Конечно же тесты!

Лично меня в новом микрокомпьютере больше всего интересует память и процессор, поэтому предлагаю начать с них. Производительность ЦП замерим с помощью бенчмарка HWBot Prime, а характеристики ОЗУ оценим по результатам утилиты Sysbench. Но прежде всего сконфигурируем систему на максимальное быстродействие командой:

$ echo "performance" | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Теперь установим сам бенчмарк:

$ wget http://downloads.hwbot.org/hwbotprime.jar

Для него требуется OpenJDK, которой у тебя в системе может и не быть, так что заберем заодно и ее:

$ apt-get install openjdk-8-jre

После этого запускаем тест и наблюдаем результат.

hwbot.jpg.6b0861470dabab8d80aed93f180a9c9f.jpg

Думаю, тебе будет интересно узнать, что предыдущая модель «малинки» набирала в этом тесте всего лишь около 440 «попугаев» на стандартных частотах и примерно 520 при экстремальном разгоне с жидким азотом и отрицательными температурами. Такие любопытные данные приводили оверклокеры из команды K|ngp|n в выпуске журнала HackSpace за декабрь 2017 года. Четвертая версия оставляет эти результаты далеко позади и демонстрирует впечатляющий прирост более чем в шесть раз! Какие же показатели стоит ждать от оперативной памяти?

Комплект тестов Sysbench устанавливается еще проще:

$ apt-get install sysbench 

Здесь я не буду пересказывать все возможные настройки и объяснять, за что отвечают конкретные параметры этой утилиты, — как всегда, ты сможешь найти детальное описание с помощью команды --help. Мне же вновь хочется сравнить между собой новую и старую ревизии одноплатника:

$ sysbench test=memory num-threads=4 memory-access-mode=rnd --memory-total-size=800M run
sysbench 0.4.12: multi-threaded system evaluation benchmark

Running the test with following options:
Number of threads: 4

Doing memory operations speed test
Memory block size: 1K

Memory transfer size: 800M
Memory operations type: write
Memory scope type: global
Threads started!
Done.

Operations performed 819200 (1374234.65 ops/sec)
800.00 MB transferred (1342.03 MB/sec)

И вот тут неожиданный результат: третья версия демонстрировала пропускную способность на уровне 2210 Мбайт/с, а здесь даже 1400 не набирается! Единственное объяснение, какое я вижу: современное ОЗУ на основе динамической памяти нельзя считать полностью «случайным» в плане времени доступа: накладные расходы неизбежны в любом случае. А современные интерфейсы памяти стараются оптимизировать скорее в пользу последовательного чтения, для работы совместно с кешем процессора. Поэтому однозначный вывод о производительности здесь сделать сложно.

Также я решил протестировать графическую подсистему Videocore VI на страничке WebGL Aquarium. Современные планшеты здесь справляются с отрисовкой 15 тысяч рыбок, сохраняя частоту обновления картинки на уровне 30 кадров в секунду. Возможности Raspberry Pi в этом плане гораздо скромнее, но и результат в 500 рыбок можно считать достойным для встроенной графики.

fish.jpg.139ff6b44d75591fde0c298eab48e314.jpg

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

amper.thumb.jpg.1ff382a755a14c8d79a3a7ecbbec73ed.jpg

Общие впечатления

В целом новый Raspberry Pi определенно удался. Пожалуй, это первая модель, которой действительно комфортно пользоваться в качестве замены офисного неттопа или домашнего ПК, если тот используется в основном для запуска браузера. Нет, конечно, видео в 4К на YouTube ты на нем не посмотришь, но вряд ли кто-то всерьез ожидал подобного. Тем более Raspberry Pi — это по-прежнему отличный эмулятор старых игровых платформ и хорошая основа для медиацентра. Не говоря уже про всякое гиковство, мейкерство и хакерство. Ну да не мне тебе рассказывать!

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...