Мы много говорим о компании ARM в последнее время, и это не удивительно. Эта компания – создатель наиболее популярных в мире 32-разрядных процессоров. Кристаллы на базе процессоров ARM превосходят численностью даже наиболее известные, x86-процессоры компании Intel. Но знаете ли вы что-нибудь о Mali?
В мире ARM Mali – это не большая африканская страна, а маленький графический процессор. Подобно повсеместно распространенным RISC-процессорам от ARM, Mali продается по лицензии разработчикам аппаратных средств в виде синтезируемых IP-блоков. Другими словами, это – программное ядро графического процессора, которое может быть интегрировано в систему-на-кристалле, в дополнение к одному или нескольким ARM-процессорам.
Семейство графических процессоров Mali на своем пути сменило три поколения, а сейчас к выходу готовится четвертое.
За сериями 200, 300 и 400 вскоре последует 600-е семейство процессоров Mali. (Не известно почему, но компания пропустила число 500.) Первым в новом семействе появится процессор Mali-T604, 4-х ядерный «монстр» на базе нового графического ядра под кодовым названием Midgard. Четыре шейдера (модуль создания теней объекта) этого процессора работают одновременно, но они также могут отключать сами себя для экономии энергии, если в данный момент их ресурсы не требуются. На полной мощности процессор T604 может отображать 2 млрд. пикселей в секунду, а его производительность составляет 68 гигафлопс – действительно высокое быстродействие.
Поскольку процессор T604 почти точно будет использоваться, как дополнение к одному или нескольким процессорам ARM семейства Cortex, его внешний интерфейс был разработан так, чтобы было удобно работать с шинами AMBA. Для этого используется разделяемые кэши 2-го уровня со слежением, поэтому
T604 может использовать изменяемые отображаемые данные совместно с многоядерным центральным процессором ARM без необходимости сброса всех данных в разделяемую память.
Это, опять же, помогает минимизировать энергопотребление.
Хотя компания ARM имеет больше всех в мире заказчиков на свой процессор Mali, титул наиболее популярного лицензируемого графического процессора принадлежит компании Imagination Technologies с ее графическим процессором PowerVR. В настоящее время PowerVR используется в большем числе портативных устройств, чем Mali. В целом,
40 компаний приобрели лицензии на Mali с 2006 года, из них 6 компаний производят продукты на их основе.
Вероятно, остальные 34 компании просто еще не завершили свои разработки.
Это хорошая тенденция для Mali и потенциально плохая новость для PowerVR. Если больше трех десятков компаний потратили деньги на лицензию Mali, но еще не производят чипы на их основе, то, следовательно, к выходу готовится множество новых продуктов на базе Mali. Рынок портативной электроники растет достаточно быстрыми темпами, так что вероятнее всего эти новые продукты не отберут на себя большую часть продаж процессора PowerVR, но Mali представляет все же серьезную угрозу для PowerVR.
Часть плана наступления компании ARM на рынке связана с программным обеспечением.
Передовые графические процессоры должны быть программируемыми.
И, как любые другие процессоры, каждое семейство графических процессоров имеет свой набор команд и модель программирования. Графический код, написанный для одного графического процессора, не работает на другом. Не так просто портировать код с PowerVR (например) на Mali, и наоборот. То же самое верно и для графических чипов для PC от компаний nVidia и ATI. Все они взаимно несовместимы.
Примечательно, что ARM не призывает программистов писать код для Mali. Вместо этого, компания упорно поддерживает такие графические интерфейсы, как OpenCL, OpenGL ES, Open VG и DirectX. Кажется, что это слегка противоречит здравому смыслу. Эти стандарты абстрагированы от аппаратных средств и поощряют программистов писать код, универсальный для множества архитектур графических процессоров. Короче говоря,
ARM продвигает стандарт, который делает аппаратные средства взаимозаменяемым продуктом.
Хотя это выглядит безрассудным, все же это так. Поскольку процессор Mali не является лидером на рынке, компания ARM старается убедить программистов процессора PowerVR переписывать низкоуровневый (и, возможно, критичный для производительности) код для Mali. Взамен, компания ведет себя честно, продвигая открытые стандарты, которые графические программисты могут внедрить где-угодно. Точно так же, как программисты микроконтроллеров постепенно отказываются от ассемблера в пользу C, графические программисты стремятся перейти на более высокие уровни абстрактного представления. Конечно, OpenGL и другие стандарты способствуют выводу на рынок новых аппаратные средств, и они могли бы облегчить в перспективе разработчикам возможность перехода на другие графические процессоры. Но когда вы не являетесь лидером на рынке, это хорошо. Задача компании – упростить для программистов переход на другую архитектуру, когда она отстает от конкурентов, а затем удержать их, когда она вышла в лидеры.
Автор: Джим Тьюерли (Jim Turley)


7 ноября, 2017