LINUX.ORG.RU

Может кто-то простым языком для даунов объяснить в чём фишка архитектуры ARM и чем это отличается от x86?

 


1

6

Я не понимаю как можно выделять какую-то там архитектуру ARM.

Архитектура, если просто, - это набор и отношения разных блоков внутри ЦП: число алу, связи между ними, конвееры, предсказатели, переупорядочиватели, регистры и др. Число этих разных сущностей может быть конским, половину из них нормальный человек вообще не отнесёт ни к чему ранее известному.

Вот есть «архитектура» Sandy Bridge или Ice Lake или древние итаниумы. Что там внутри нам особо не скажут, но вариация может быть огромна. Ну то есть нет, немножко скажут в сопроводительных доках к intel vtune, но не до транзисторов. Чего там воткнут в новом поколении нового или сильно всё переделают - пёс его знает. Это могут быть принципиально разные ядра, запиленные разными разрабами с нуля в разных странах мира. Единственное, что нам гарантируют - что новое ядро поймёт ту же систему команд и прежние контракты, вроде с какого адреса жрать код после включения. А как всё исполняется внутри - нет гарантий. Внутри будет RISC-ядро или 32 VLIW-модуля каких-то диких, координируемые вашим x86 кодом - воля разрабов. Вам вообще не должно быть понятно что там внутри камня, кроме контракта о том, что оно сожрёт ваш старый код с тем же результатом.

Т.е. в моём ламерском понимании, «x86» уже давно ничего не означает, кроме может быть системы команд. «x86» ничего не говорит о том, какое там внутри ядро и какая у него архитектура. В моём понимании, если, скажем, выразить некое расстояние между разными архитектурами семейства x86 неким числом, то это число будет сильно больше, чем некая абстрактная разница «между ARM и x86».

То есть, когда нам говорят, что японский суперкомпьютер построен на ARM-процессорах или что Apple запилила свой ARM-процессор для десктопных маков, то что это говорит об архитектуре? Ничего? В моём понимании это некий маркетинговый базар о том, что «у нас не intel и не ADM», но никакой технической составляющей в этих словах нет.

Можете простым языком для даунов объяснить где я не прав?

А ещё вопрос: а чё там лицензировать-то? Ну вот ARM какие-то там лицензии выдаёт за деньги. На что лицензии? На исполнение их набора команд? А кому оно надо? Почему свой набор команд авторы любого нового камня не могут напилить?

Может кто-то языком для даунов объяснить где я не прав?

<?php
    echo 'Ты не прав в том, что ты запутался в архитектурах разных сортов. ' .
         'Есть ISA (Instruction set architecture или Архитектура набора команд). ' .
         'И ещё есть Microarchitecture (Микроархитектура) CPU. ' .
         'Поэтому, когда говорят «архитектура ARM» подразумевают первое. ' .
         'A когда говорят «Sandy Bridge» — подразумевают второе.';
EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 2)

Просто есть разные «архитектуры», и это слово в контексте процессоров перегружено различными смыслами. Программисту для разработки программ не нужно знать, как реализованы транзисторные ключи. Но для него может быть важна instruction set architecture (ISA). На сколько это лингвистически адекватный термин - другой вопрос.

Apple запилила свой ARM-процессор для десктопных маков, то что это говорит об архитектуре? Ничего?

Ну зрассьте, если есть некий краткий перечень пунктов, типа о количестве стадий в конвейере, возможностей SIMD, иерархии кэшпамяти - это кое-что говорит о именно о архитектуре.

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

seiken ★★★★★ ()

Архитектура, если просто, - это набор и отношения разных блоков внутри ЦП

Нет. Архитектура - это просто интерфейс бинарный, не более.

Вот есть «архитектура» Sandy Bridge или Ice Lake или древние итаниумы.

Нет.

Что там внутри нам особо не скажут, но вариация может быть огромна.

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

Ну то есть нет, немножко скажут в сопроводительных доках к intel vtune, но не до транзисторов.

Ничего там нет. vtune это дерьмо для домохозяек. И оно такое не потому, что интел такой. Оно такое потому, что ЦА такая.

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

Чего там воткнут в новом поколении нового или сильно всё переделают - пёс его знает.

Ничего и никто там не переделает. Кому и зачем это нужно?

Это могут быть принципиально разные ядра, запиленные разными разрабами с нуля в разных странах мира.

Нет, ничего подобного нет и не будет.

Единственное, что нам гарантируют - что новое ядро поймёт ту же систему команд и прежние контракты, вроде с какого адреса жрать код после включения.

Это и есть архитектура.

А как всё исполняется внутри - нет гарантий.

Есть. Есть фундаментальные правила и идти против них может только какое-то бездарное дерьмо. Чем что-либо эффективней - тем более оно предсказуемо.

Внутри будет RISC-ядро или 32 VLIW-модуля каких-то диких, координируемые вашим x86 кодом - воля разрабов.

Нету там никакой воли. Повторю - разработчики там настолько рабы безвольные, что говорить о какой-то разработке смысла нет. Там до сих пор прошлый век везде и во всём.

Это у тебя тут в софтварном мире какое-то развитие, открытия - там же везде дерьмо и сапог хозяина.

Есть какой-то бездарный язык дерьма. Кое как птушники на нём дерьмо ваяют. Всё, далее тёмный лес. Во как это будет синтезировано - раб не знает. Это проприетарное дерьмо. Во что это будет синтезировано - раб не знает. Это так так же уже проприетарное дерьмо вендора - железяки/фабрики.

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

Вам вообще не должно быть понятно что там внутри камня, кроме контракта о том, что оно сожрёт ваш старый код с тем же результатом.

И это называется архитектура.

tosol4152 ()

не путай кодировку команд с внутренним устройством процессора

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

anonymous ()

Т.е. в моём ламерском понимании, «x86» уже давно ничего не означает, кроме может быть системы команд. «x86» ничего не говорит о том, какое там внутри ядро и какая у него архитектура. В моём понимании, если, скажем, выразить некое расстояние между разными архитектурами семейства x86 неким числом, то это число будет сильно больше, чем некая абстрактная разница «между ARM и x86».

То есть, когда нам говорят, что японский суперкомпьютер построен на ARM-процессорах или что Apple запилила свой ARM-процессор для десктопных маков, то что это говорит об архитектуре? Ничего? В моём понимании это некий маркетинговый базар о том, что «у нас не intel и не ADM», но никакой технической составляющей в этих словах нет.

Они и запили процессор. Архитектура - это просто интерфейс взаимодействия с камнем. И используется arm только потому, что если ты используешь уже готовый интерфейс - тебе не нужно заниматься его поддержкой.

Но опять же, в данном случае это не совсем так. Но в целом так.

tosol4152 ()

Странно что люди выше юзают слово «архитектура» для обозначения интерфейса. Всю жизнь под архитектурой чего-либо понималось устройство этого чего-то в комплексе, внутреннее устройство в основном. Архитектура приложения, архитектура здания (включает в себя далеко не только внешний вид), «архитектура гугла». Для обозначения взаимодействия с внешним миром есть ведь слово «интерфейс».

igloev ()

В теории мог быть проц который умеет x86_64 и arm и кучу другого одновременно, но кому нужны лишние накладные расходы. Если только подобный блок не будет совсем крошечным в процессорах будущего

I-Love-Microsoft ★★★★★ ()

А о чем спор? Является ли набор команд частью архитектуры? Является. Определяется ли архитектура исключительно набором команд? Нет, не определяется.

anonymous ()

ARM отличается от x86 тем, что в x86 реализованы почти все команды в железе, а в ARM в цифре. Т.е. ARM позволяет больше натыкать/натыкать более компактно схемку, что позволит улучшить теплоотвод, а x86 ускорить кодец за счёт аппаратных вычислений. Шило на мыло если проще. Вся разница для Apple в том, что ARM лицензию они могут купить, а с x86 их попросят сходить в пешее эротическое.

peregrine ★★★★★ ()
Ответ на: комментарий от igloev

Я не понимаю как можно выделять какую-то там архитектуру ARM.

Может кто-то простым языком для даунов объяснить

Извини, подумал, что это фигура речи, не думал, что это ты о себе буквально.

Тогда да, спора нет, всё хорошо.

anonymous ()

Да, есть х86, которому 40 лет - копролитище то какое.

И есть ARM, kоторому 35 лет. Модно, молодёжно, особенно распихивания загрузчиков по разным инициализаторам GSM модема, как на ЛОРе кто-то писал, и никакая совместимость даже с предыдущим прошлогодним поколением железа.

Enjoy!

anonymous ()

х86 - 10 лет использования и совместимости и взад, и вперед.

ARM - 1 год поддержки, а дальше мы и знать не знаем, что у нас такие ЦПУ когда-то были. Ахх, мы еще и бутлоадер залочили? Да что вы говорите? Не, не помним. Этот продукт больше не поддерживается.

anonymous ()
Ответ на: комментарий от anonymous

Для конечного хомячка ARM это на уровне разбитого смартфона за 80-100$, если конечно этот хомячелло не слетел с катушек и не стал покупать за 500…

anonymous ()
Ответ на: комментарий от ukr_unix_user

Wilson was listed in 2011 in Maximum PC as number 8 in an article titled «The 15 Most Important Women in Tech History».[7]

Интересно, а если она передумает и опять станет мужиком, её из этого списка уберут?

hateyoufeel ★★★★★ ()
Ответ на: комментарий от peregrine

А вот рассказывают про какую-то там лицензию.

А нельзя свою архитектуру придумать и назвать её APPL? Зачем обязательно «либо ARM либо x86»? Просто берёшь и делаешь свой проц с нуля с какой-то своей системой команд. Аппле не привыкать всё делать с нуля. Зачем обязательно ARM?

igloev ()

Можете простым языком для даунов объяснить

Объясняю.

ARM ядро для 32-разрядных и 64-разрядных RISC-процессоров, а x86 не risc-процессор.

Lzzz ()
Ответ на: комментарий от anonymous

ARM - 1 год поддержки, а дальше мы и знать не знаем, что у нас такие ЦПУ когда-то были

ARM, в основном, с Linux. Пересобрал и всё. И не надо тащить в процессоре лютую совместимость с бинарниками из прошлого.

AS ★★★★★ ()
Ответ на: комментарий от igloev

Типичными представителями CISC-архитектуры являются процессоры на основе команд x86, процессоры Motorola MC680x0, процессоры мейнфреймов zSeries.

Благодаря распространённости процессоров архитектур x86 и x86-64 CISC-системы являются самыми распространёнными в мире вычислительной техники — они доминируют в сегментах рабочих станций, персональных компьютеров, серверов начального и среднего уровня, а также мейнфреймов (RISC-системы превалируют в сегментах мобильных устройств, микроконтроллеров и Unix-серверов старшего уровня).

Lzzz ()
Ответ на: комментарий от Lzzz

A modern RISC processor can therefore be much more complex than, say, a modern microcontroller using a CISC-labeled instruction set, especially in the complexity of its electronic circuits, but also in the number of instructions or the complexity of their encoding patterns. The only typical differentiating characteristic is that most RISC designs use uniform instruction length for almost all instructions, and employ strictly separate load/store-instructions.

anonymous ()
Ответ на: комментарий от anonymous

Да пофигу, как оно там в fpga реализовано. Если мне говорят, что в АРМ только две команды для работы с памятью, то сразу понятно, это risc. И чего тут спорить?

Lzzz ()
Ответ на: комментарий от peregrine

У x86 вычисления с плавающей точкой тоже на сопроцессоре, но это уже никого не волнует. В ARM теперь тоже сопроцессором просто называют способ кодирования команд.

Вот тут замеряли задержки результатов команд: https://hardwarebug.org/2014/05/15/cortex-a7-instruction-cycle-timings/ И там нет больших отличий между обычными умножениями и умножениями в NEON. Если бы это действительно было отдельным юнитом, задержки были бы сильно больше, разве нет?

i-rinat ★★★★★ ()