Чи архітектура x86 спеціально розроблена для роботи з клавіатурою, тоді як ARM розраховує на мобільність? Які ключові відмінності між ними?
Чи архітектура x86 спеціально розроблена для роботи з клавіатурою, тоді як ARM розраховує на мобільність? Які ключові відмінності між ними?
Відповіді:
ARM
- це архітектура RISC (Reduced Instruction Set Computing), тоді x86
як CISC (Комплексний набір обчислень).
Основна відмінність між даними в цьому аспекті полягає в тому, що інструкції ARM працюють лише на регістрах з кількома інструкціями щодо завантаження та збереження даних з / в пам'ять, в той час як x86 може працювати також безпосередньо в пам'яті. До v8 ARM була власною 32-бітовою архітектурою, яка віддала перевагу чотирьом байтовим операціям над іншими.
Таким чином, ARM - це простіша архітектура, що призводить до невеликої площі кремнію та безлічі функцій енергозбереження, в той час як x86 стає звіром енергії як з точки зору споживання енергії, так і виробництва.
Питання на тему " Чи архітектура x86 спеціально розроблена для роботи з клавіатурою, тоді як ARM очікує бути мобільним? ". x86
не розроблений спеціально для роботи з клавіатурою, ні ARM
для мобільних пристроїв. Однак знову ж таки, оскільки основні архітектурні варіанти насправді x86 також має вказівки по роботі безпосередньо, IO
поки ARM цього не робить. Однак у спеціалізованих IO-шинах, таких як USB, потреба в таких функціях також зникає.
Якщо вам потрібен документ для цитування, це те, що посібник програмістів серії Cortex-A (4.0) розповідає про відмінності між архітектурами RISC та CISC:
Процесор ARM - це комп'ютер скороченого набору інструкцій (RISC).
Процесори складних наборів інструкцій (CISC), як і x86, мають багатий набір інструкцій, здатний виконувати складні речі за допомогою однієї інструкції. Такі процесори часто мають значну кількість внутрішньої логіки, яка декодує машинні інструкції до послідовностей внутрішніх операцій (мікрокодування).
Навпаки, архітектури RISC мають меншу кількість більш загальних інструкцій, які можуть бути виконані зі значно меншими транзисторами, що робить кремній дешевшим та енергоефективнішим. Як і інші архітектури RISC, ядра ARM мають велику кількість регістрів загального призначення і багато інструкцій виконуються за один цикл. Він має прості режими адресації, де всі адреси завантаження / зберігання можна визначати із вмісту реєстру та полів інструкцій.
Компанія ARM також пропонує статтю під назвою Стаття про розробку архітектури, процесорів та пристроїв, в якій описано, як ці терміни застосовуються до їх ділової активності.
Приклад порівняння архітектури набору інструкцій:
Наприклад, якщо вам знадобиться якийсь блок порівняння пам’яті в байтінгу у вашій програмі (згенерований компілятором, пропускаючи деталі), ось як це може виглядати на x86
repe cmpsb /* repeat while equal compare string bytewise */
а на ARM
найкоротшій формі може виглядати так (без перевірки помилок тощо)
top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2 /* subtract r2 from r3 and put result into r2 */
beq top /* branch(/jump) if result is zero */
що має дати вам підказку про те, як набори інструкцій RISC та CISC відрізняються за складністю.
Ні в якому разі немає нічого специфічного для клавіатури чи мобільного, крім того, що ARM роками мав досить істотну перевагу в плані енергоспоживання, що зробило його привабливим для всіляких пристроїв, що працюють на батареях.
Що стосується фактичних відмінностей: ARM має більше регістрів, підтримує прогнозування більшості інструкцій задовго до того, як Intel додала їх, і давно включила всілякі методи (називайте їх "хитрощами", якщо хочете), щоб заощадити енергію майже скрізь, де вона могла.
Існує також значна різниця в тому, як дві інструкції кодувати. Intel використовує досить складне кодування змінної довжини, в якому інструкція може займати від 1 до 15 байт. Це дозволяє програмам бути досить малим, але робить розшифровку інструкцій відносно важкою (як, наприклад, швидке паралельне декодування інструкцій більше схоже на повний кошмар).
ARM має два різних режими кодування інструкцій: ARM та THUMB. У режимі ARM ви отримуєте доступ до всіх інструкцій, а кодування надзвичайно просто та швидко розшифрувати. На жаль, код режиму ARM, як правило, досить великий, тому програма досить часто займає приблизно вдвічі більше пам’яті, ніж це було б для коду Intel. Режим великого пальця намагається пом’якшити це. Він все ще використовує досить звичайне кодування інструкцій, але скорочує більшість інструкцій з 32 біт до 16 біт, таких як зменшення кількості регістрів, виключення прогнозування з більшості інструкцій та скорочення діапазону гілок. Принаймні, з мого досвіду, це все ще не дає достатньонастільки ж щільне кодування, як код x86, може отримати, але воно досить близьке, а декодування все ще досить просте і просте. Нижня щільність коду означає, що вам, як правило, потрібно принаймні трохи більше пам’яті та (як правило, більш серйозно) більший кеш, щоб отримати еквівалентну продуктивність.
Свого часу Intel робила набагато більше уваги на швидкості, ніж на споживанні енергії. Вони почали підкреслювати споживання електроенергії насамперед на контексті ноутбуків. Для ноутбуків їх типовою ціллю харчування було близько 6 Вт для досить невеликого ноутбука. Зовсім недавно ( набагато недавно) вони почали орієнтуватися на мобільні пристрої (телефони, планшети тощо). Для цього ринку вони шукають максимум пару ватт або близько того. Вони, схоже, роблять це досить добре, хоча їхній підхід суттєво відрізняється від ARM, підкреслюючи технологію виготовлення, де ARM в основному наголошує на мікро-архітектурі (не дивно, враховуючи, що ARM продає конструкції та залишає виготовлення іншим).
Залежно від ситуації споживання енергії процесора часто важливіше, ніж його енергоспоживання. Принаймні, коли я використовую ці терміни, енергоспоживання стосується споживання енергії (більш-менш) миттєво. Однак споживання енергії нормалізується для швидкості, тому якщо (наприклад) CPU A споживає 1 ват за 2 секунди, щоб виконати роботу, а CPU B споживає 2 Вт за 1 секунду, щоб виконати ту саму роботу, обидва процесора споживають однакову загальну суму енергії (дві ватні секунди), щоб виконати цю роботу - але з процесором B ви отримуєте результати вдвічі швидші.
Процесори ARM, як правило, дуже добре справляються з енергоспоживанням. Тож якщо вам потрібно щось, що потребує «присутності» процесора майже постійно, але насправді це не робить багато роботи, вони можуть вийти досить добре. Наприклад, якщо ви робите відеоконференції, ви збираєте кілька мілісекунд даних, стискаєте їх, надсилаєте, отримуєте дані від інших, розпаковуєте їх, відтворюєте їх і повторюєте. Навіть дуже швидкий процесор не може витрачати багато часу на сон, тому для таких завдань ARM справді добре.
Процесори Intel (особливо їхні процесори Atom, які фактично призначені для додатків з низькою потужністю) є надзвичайно конкурентоспроможними щодо споживання енергії. Поки вони працюють майже на повній швидкості, вони споживають більше енергії, ніж більшість процесорів ARM - але вони також швидко закінчують роботу, тому вони можуть швидше повернутися до сну. Як результат, вони можуть поєднувати хороший ресурс акумулятора з хорошими показниками роботи.
Отже, порівнюючи обидві, ви повинні бути обережними щодо того, що вимірюєте, щоб бути впевненим, що це відображає те, про що ви чесно дбаєте. ARM дуже добре спрацьовує з енергоспоживанням, але залежно від ситуації ви можете легше дбати про споживання енергії, ніж миттєве споживання електроенергії.
Доповнення до першого абзацу Джеррі Коффіна . Тобто, конструкція ARM забезпечує меншу енергоспоживання.
Компанія ARM
лише ліцензує технологію процесора. Вони не роблять фізичні фішки. Це дозволяє іншим компаніям додавати різні периферійні технології, зазвичай їх називають SOC або "система на мікросхемі". Незалежно від того, чи це пристрій планшетний ПК, стільниковий телефон чи система розваг у автомобілі. Це дозволяє постачальникам чіпів підлаштувати решту мікросхем під конкретну програму. Це має додаткові переваги,
ARM
підтримує постачальників SOC разом з AMBA , дозволяючи реалізаторам SOC придбати сторонні модулі на полиці; як Ethernet, контролери пам'яті та переривання. Деякі інші платформи процесора підтримують це, як MIPS , але MIPS не настільки енергетично усвідомлений.
Все це корисно для ручної / акумуляторної конструкції. Деякі просто гарні навколо. Крім того, ARM
має історію акумуляторних пристроїв; Apple Newton , Psion Organizers . PDA програмне забезпечення інфра-структури було залучено деякими компаніями для створення смарт - телефон пристроїв типу. Хоча більше успіху мали ті, хто заново винайшов графічний інтерфейс для використання зі смарт-телефоном .
Зростання Open source
наборів інструментів, а operating systems
також полегшення різних SOC
мікросхем. У закритої організації виникнуть проблеми, які намагаються підтримати всі різні пристрої, доступні для ARM. Дві найпопулярніші стільникові платформи, Andriod та OSx / IOS, базуються на ОС Linux та FreeBSD, Mach та NetBSD . Open Source
допомагає SOC
постачальникам надавати програмне забезпечення для своїх наборів чіпів.
Сподіваємось, чому x86 використовується для клавіатури, це само собою зрозуміло. У ньому є програмне забезпечення, а ще важливіше люди, навчені користуватися цим програмним забезпеченням. Netwinder - це одна ARM
система, яка спочатку була розроблена для клавіатури . Також виробники зараз дивляться на ARM64 для ринку серверів. Енергія / тепло викликає занепокоєння в цілодобових центрах обробки даних.
Тому я б сказав, що екосистема, яка росте навколо цих мікросхем, настільки ж важлива, як і такі характеристики, як низьке енергоспоживання. ARM
протягом певного часу (з середини до кінця 1980-х рр.) прагнуть до низької потужності, більш високих продуктивних обчислень, і у них багато людей.
Примітка1: Кілька мікросхем потребують водіїв автобусів для взаємодії з відомими напругами та приводу. Крім того, як правило, окремі мікросхеми потребують підтримуючих конденсаторів та інших компонентів живлення, якими можна ділитися в системі SOC .
ARM - це як італійський спортивний автомобіль:
X86 - це як американський м'язовий автомобіль:
Підсумовуючи: x86 заснований на дизайні 1974 року і добре працює по прямій лінії (але використовує багато палива). Рука використовує мало палива, не сповільнюється за кутами (гілками).
Метафора закінчена, ось деякі реальні відмінності.
Архітектура ARM спочатку була розроблена для персональних комп'ютерів Acorn (Див. Acorn Archimedes , близько 1987 р. Та RiscPC ), які були настільки ж персональними комп'ютерами, що базуються на клавіатурі, як і на базі x86 моделей IBM PC. Лише пізніші впровадження ARM були орієнтовані насамперед на сегмент ринку мобільних та вбудованих.
Спочатку прості процесори RISC приблизно еквівалентної продуктивності могли бути розроблені значно меншими інженерними командами (див. Berkeley RISC ), ніж ті, хто працює над розробкою x86 в Intel.
Але в наш час найшвидші мікросхеми ARM мають дуже складні блоки випуску інструкцій без випуску, розроблені великими інженерними командами, і ядра x86 можуть мати щось на зразок ядра RISC, що подається блоком перекладу інструкцій.
Отже, будь-які поточні відмінності між двома архітектурами більшою мірою пов'язані з конкретними потребами ринку в товарних нішах, на які спрямовані команди розробників. (Випадкова думка: ARM, ймовірно, заробляє більше плати за ліцензії від вбудованих додатків, які, як правило, набагато більше обмежують енергію та витрати. І Intel потребує підтримки продуктивності на ПК та серверах для їх прибутку. Таким чином, ви бачите різні оптимізації впровадження.)