Мы поговорили уже о шести классических ошибках, которые пользователи, по мнению экспертов из The Verge, Engadget и TechCrunch, совершают, когда обсуждают компьютеры и их важные узлы. Сегодня речь пойдет об еще трех распространенных, но неправильных утверждениях.
ARM делают чипы
Практически все встроенные системы с низкой мощностью имеют так называемый ARM процессор. Однако сами ребята из ARM чипы не производят. Да, вот такой вот парадокс. Скорее, они создают чертежи, по которым эти самые чипы должны работать и предоставляют возможность другим компаниям, естественно, не за бесплатно, физически создавать их. Например, A13 SoC в последнем iPhone использует архитектуру ARM, но сам процессор был сделан Apple. Это как если бы автору (то есть “яблочным” инженерам) был выдан конструктор со всеми необходимыми инструкциями, рассказывающими, как работают множество его частей. И собрать из этого конструктора ребята из Купертино вольны все что угодно.
Обладая лицензией на интеллектуальную собственность, ARM позволяет Apple, Qualcomm, Samsung и многим другим производителям создавать чипы, корректируя их под собственные нужды. Для телевизора нужно сфокусироваться на кодировании и декодировании, а в случае с беспроводной мышкой главное -- сосредоточиться на низком электропотреблении. Понятно, что ARM чип для мышки не нуждается в GPU или мощном CPU, но при этом все процессоры на ARM имеют одно и то же ядро и дизайн, они могут запускать одни и те же приложения. Такая чудесная особенность делает жизнь разработчика легче и повышает совместимость.
ARM vs.x86
ARM и x86 представляют собой две доминантные архитектуры для компьютеров. ARM — это настоящий «король» девайсов на мобильной платформе и всех встроенных систем, в то время как x86 контролирует большинство лэптопов, десктопов и серверов на рынке. Есть и другие архитектуры, но они менее распространены.
Когда говорят об инструкциях, имеется в виду способ, которым компьютер обрабатывает данные. Представьте себе книгу. Вот вы переводите ее на иностранный язык. У вас тот же набор идей и смыслов, однако записываете вы их совсем другими символами. Иными словами, между ARM и x86 нет такой уж огромной разницы, и программисты вполне способны скомпилировать одну и ту же программу как для ARM, так и для x86.
Одно из ключевых преимуществ ARM, которое позволило этой архитектуре занять лидирующие позиции на мобильном рынке — ее гибкость и схожесть с конструктором. Фактически это Lego, из которого инженер может собрать ARM CPU под разные задачи. Нужен чип для видео? Не проблема, втыкаем GPU получше. Девайс будет заточен под безопасность и шифрование? Ок, добавляем необходимые акселераторы.
Устоявшееся мнение о том, что x86 процессоры всегда будут быстрее, чем на ARM, до недавнего времени было настолько верным, насколько логичным. Сравнивать быстродействие этих процессоров бессмысленно, потому что “спорт высоких достижений” никогда не был приоритетной целью для ARM устройств. Наоборот, они практически всегда фокусировались на высокой эффективности при низких расходах мощности.
GPU быстрее, чем CPU
В последнее время мы наблюдаем, как набирают силу современные GPU. Говорить об этом особенно легко после недавней презентации компанией Nvidia новой и невероятно мощной серии видеокарт. В связи с такой тенденцией происходит и логичное смещение ресурсоемких задач. За выполнение многих из них теперь ответственны не CPU, а GPU. Можно уверено сказать, что с точки зрения многозадачности и параллельности GPU почти всегда действительно быстрее, чем CPU. Почти, но не в 100% случаев. И это причина, по которой мы все еще используем центральный процессор по назначению.
Дело в том, что тысячи ядер, которые присутствуют в GPU, готовы выполнять относительно небольшие, постоянно повторяющиеся операции, и делать это очень быстро. Ядра CPU, которых в разы меньше, готовы к работе со сложными и большими операциями. Такое “разделение труда” способствует эффективной параллельной работе обоих процессоров. При этом, если убрать параллельность, то уже CPU будет быстрее. Когда программа хорошо скомпилирована, то при прочих равных есть возможность запустить CPU код на GPU и обратно, но выгода от такого решения есть только тогда, когда софт оптимизирован под определенное устройство.
Есть еще один интересный аспект — это цена. Топовый CPU обойдется сегодня в $50,000. Самый дорогой GPU не будет стоить и половины такого чудовищного ценника.