ARM

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Архітектура ARM(первісноAdvanced RISC Machine— поліпшена RISC машина, попередникAcorn RISC Machine) — 32-бітнаRISCархітектурапроцесорів,яку розробила компаніяARM Limited.Широко застосовується у розробці портативних пристроїв. Головною причиною цього є використання енергоощадних технологій. Саме тому ця архітектура суттєво переважає у пристроях, головними ідеями яких є енергоощадність та мобільність[1].

Станом на 2004 рік сімейство ARM займало приблизно 75 % всіх 32-бітних RISC процесорів для мобільних і вбудовуваних застосувань,[2]що робить його найчастіш використовуваним серед усіх 32-бітних архітектур. Процесори ARM знайшли своє застосування у таких пристроях, як (мобільні телефониісмартфони,планшети,кишенькові персональні комп'ютери,цифрові аудіоплеєри,калькулятори,ігрові консолітощо), комп'ютерній периферії:маршрутизатори,NAS-сервери, апаратнібрендмауери[3].

Історія

[ред.|ред. код]
Процесор з архітектурою ARM, виготовленийConexant.Такі процесори найчастіше застосовуються умаршрутизаторах.

ARM дизайн був започаткований в 1983 році як проект розвитку вAcorn Computers[en]для створення компактних процесорів RISC-архітектури. Під керівництвомСофі ВілсонтаСтівом Фурбером,ключовим завданням яких була розробка низькорівневої обробки переривань вводу/виводу (якMOS Technology 6502) що використовуються в існуючих комп'ютерахACORN-івського дизайну. Технологія доступу до пам'яті за допомогою архітектури6502дозволила розробникам виробляти швидкі машини без використання дорогого обладнання прямого доступу до пам'яті. Група завершила розробку зразків під назвоюARM1у квітні 1985 року[4],і першу «реальну» робочу системуARM2вже в наступному році.

ARM2 архітектура характеризувалася 32-розрядноюшиною даних,26-розрядна (64Мбайт)адресного просторуі шістнадцять 32-розряднихрегістрів.Програмний код був змушений перебувати всередині перших 64Мбайтпам'яті, тому щолічильник командбув обмежений 26-ма бітами (верхні 6 біт 32-розрядних регістрів зарезервовані як статус-мітки). ARM2, можливо, є найпростішими із використовуваних 32-бітних мікропроцесорів у світі, робота якого забезпечена лише 30000-митранзисторами(порівняйте із на шість років старішою моделлюMotorola 68000,яка містила близько 70000 транзисторів). Така простота походить від відсутностімікропрограми(що становить приблизно від однієї чверті до однієї третини процесору 68000), і не містивкешу.Ця простота призводила до нижчої швидкості виконання, ніж у процесораIntel 80286[5].Наступник,ARM3,був випущений з кешом 4KB, що ще більше поліпшило швидкодію.

Наприкінці 1980-х років компаніяAppleтаVLSI Technology[en]почала працювати з Acorn-ом над новими версіями ядра ARM. Робота була настільки результативною, що в 1990 році Acorn перетворила проектну групу в нову компанію під назвою Advanced RISC Machines. З цієї причини, ARM іноді розшифровують, якAdvanced RISC Machines(замість Acorn RISC Machines). Advanced RISC Machines стали ARM Ltd коли їхня материнська компанія,ARM Holdings,вийшла наЛондонську фондову біржуіNASDAQу 1998 році[6].

В результаті співробітництва Apple-ARM у підсумку був створенийARM6,вперше випущений у 1991 році. Apple використала процесор ARM 610, заснований на ядрі ARM6, як основну базу для кишенькових комп'ютерівApple Newton.У 1994 році Acorn використовує ARM 610 як основнийпроцесоруRISC PCкомп'ютерах.DECліцензували ARM6 архітектуру (що викликало деяку плутанину, оскільки вони також виготовлялиDEC Alpha) для виготовленняStrongARM.На 233 МГц цей процесор витрачав лише 1Втенергії (новіші версії витрачали значно менше). Ця робота була потім переданаIntelдля врегулювання частини позовів, і Intel скористалися цією можливістю, щоб поновити їх застарілі процесориi960таi860,які відповідали StrongARM-архітектурі. Пізніше Intel розробила своє власне високопродуктивне рішення, відоме якXScale,яке вони потім продали компаніїMarvell.

Ядро ARM, попри всі зміни, залишалося такого ж розміру. В ARM2 було 30000 транзисторів, в той час як ARM6 зріс лише до 35000. ARM бізнес завжди готовий продати ліцензіютопології інтегральних схемяку використовують для створеннямікроконтролерівіпроцесорівна основі цього ядра. Найуспішнішої реалізації набув процесорARM7TDMI,який присутній у майже кожному побутовому приладі, тому що став основою для сотень мільйонів мікроконтролерів. Ідея полягає в тому, щоODMпоєднує ARM ядро і деяку кількість необхідних додаткових частин для виробництва повного процесора, який потім можна виготовляти на старих фабриках з виробництва напівпровідникової продукції, і ще бути достатньо ефективними при низьких витратах виробництва. Станом на січень 2008 року виготовлено понад 10 мільярдів ARM ядер, іiSuppliпрогнозує виробництво 5 мільярдів на рік до 2011 року.[7]

Загальна архітектура підтримуванасмартфонами,КПКта іншимипортативними пристроямипобудована наARMv4.Наразі[коли?]більша кількість високотехнологічних пристроїв використовують процесориXScaleтаARM926ARMv5TE,ніжStrongARM,ARM925TіARM7TDMIоснованих на ARMv4 процесорах.

Ядра ARM

[ред.|ред. код]

Особливості дизайну

[ред.|ред. код]

Цікавим додатком до дизайну ARM ядра є використання 4-бітногокоду обставинина початку кожної інструкції, а це означає що виконання кожної інструкції умовно необов'язкове. Інші процесорні архітектури, як правило, маютькод обставинияк відгалуження інструкції.

Це значно скорочує кодування біту придатного для переміщення інструкції в доступну пам'ять; але з іншого боку, вона дозволяє уникнути розгалуження інструкцій при генерації коду для малихоператорівякщо.Стандартним прикладом єАлгоритм Евкліда:мовою програмування Cвиглядає так:

while(i!=j)
{
if(i>j)
i-=j;
else
j-=i;
}

Для ARM процесорівасемблерний кодвиглядає так:

loopCMPRi,Rj;set condition "NE" if (i!= j)
;"GT" if (i > j),
;or "LT" if (i < j)
SUBGTRi,Ri,Rj;if "GT", i = i-j;
SUBLTRj,Rj,Ri;if "LT", j = j-i;
BNEloop;if "NE", then loop

що дозволяє уникнути розгалуження коду навколо операторівthenтаelse.

Ще однією унікальною особливістю набору є можливість згортання зсувів і обертань при «обробці даних» (арифметичних, логічних, та регіст-регістрових переміщень) інструкції, для прикладу як у C-операторі

a += (j << 2);

окремий цикл інструкції для ARM, може бути оформлено як одне слово.

ADD Ra, Ra, Rj, LSL #2

Це призводить до того, що типові ARM програми щільніші ніж очікувалося і з меншою кількістю звернень до пам'яті, тому конвеєр використовується ефективніше. Навіть попри те, що ARM працює, як багато хто вважає, із нижчою швидкістю, але він в цілому успішно конкурує з набагато складнішими процесорними архітектурами.

ARM процесори також мають деякі особливості, які рідко зустрічаються в інших RISC архітектурах, такі як служби аналогічні докомандного лічильника-споріднених рішень (по суті в ARM архітектуріЛічильник командє одним із 16-ти регістрів) та перед-/пост- прирістні режими адресації.

У Thumb-режимі менші операційні коди мають менше функціональних можливостей. Наприклад, тільки розгалуження можуть бути умовними і багато операційних кодів обмежують в доступі лише до половини всіх регістрів процесора. Коротші операційні коди дозволяють поліпшити щільність коду в цілому, хоча деякі операції вимагають додаткових інструкцій. У ситуаціях коли порти пам'яті або ширина шини менші менш ніж 32 біти, коротший Thumb-операційний код дозволяє збільшити показники у порівнянні з 32-х розрядним ARM кодом, менше програмного потрібно завантажувати в процесор із обмеженою пропускною здатністю пам'яті.

Вбудовані пристрої, такі як ігрова консольGame Boy Advance,як правило мають невеликий обсяг доступної оперативної пам'яті з повною 32-бітної шиною даних; більшість звернень проходять через 16-бітну або вужчу вторинну шину. Зазвичай у цій ситуації є сенс скомпілювати Thumb-код і вручну оптимізувати кілька найінтенсивніше використовуваних розділів процесора застосовуючи повну інструкцію 32-бітних ARM-ядер, розміщуючи ці ширші інструкції в доступній пам'яті із 32-бітною шиною.

Перший процесор з інструкцією Thumb-декодування був ARM7TDMI. Всі ARM9 та новіші серії, в тому числіXScale,включають інструкції Thumb-декодеру.

Розширення інструкцій обробки цифрових сигналів

[ред.|ред. код]

Для того, щоб поліпшити архітектуру ARM дляцифрової обробки сигналіві мультимедійних застосунків, до набору включили деякі нові інструкції[8].Це виглядало як приставка «Е» в назвах ARMv5TE і ARMv5TEJ архітектур.

У нових інструкціях є подібності до архітектурицифрового сигнального процесору.

Thumb-2технологія зробила свій дебют у ядріARM1156,проголошеному в 2003 році. Thumb-2 розширює обмежений набір 16-бітних команд Thumb набором додаткових 32-бітних команд. Таким чином, Thumb-2 є набором команд змінної ширини. В результаті для Thumb-2 досягнута щільність коду, аналогічна Thumb-у та швидкість виконання, аналогічна 32-бітним командам ARM.

Thumb-2 розширює набори команд як ARM, так і Thumb для більшої функціональності, в тому числі такими командами, як: маніпуляція бітовим полем, таблиця розгалужень, та умовне виконання.

Всі ARMv7 чипи підтримують Thumb-2 набір інструкцій. Мікроконтролери архітектур ARMv6-M (Cortex-M0, -M0+, -M1), ARMv7-M (Cortex-M3, -M4, -M7) та ARMv8-M (Cortex-M23, -M33,…) підтримують тільки Thumb-2. Інші чипи архітектур ARMv6, ARMv7, ARMv8 (у 32-бітному режимі), тобто серії ARM11, Cortex-R і Cortex-A, підтримують як «набір команд ARM режиму» і «набір команд Thumb-2 режиму».[9][10][11]

Середовище виконання Thumb (ThumbEE)

[ред.|ред. код]

Вдосконалений SIMD (NEON)

[ред.|ред. код]

Вдосконалений SIMD(Single-Instruction Multiple-Data — один потік команд і багато потоків даних) розширення технології, позначене якNEON,є поєднанням наборів з 64- та 128-бітовихSIMDінструкцій, що надає стандартизоване прискорення для засобів медіа та сигнальної обробки прикладних програм. NEON може виконати MP3-декодування на процесорах, що працюють на 10 МГц, а також здатний розгалужувати оператори на малі секції часто вживаного простого коду. Такий інструмент використовується у особливих високорівневих мовах програмування, які можуть запускатиGSMAMR (Adaptive Multi-Rate — адаптивну багаторангову) мовукодеківна більш ніж 13 МГц. Він має комплексний[що?]набір команд, окремий регістр файлів і незалежне обладнання для виконання. NEON підтримують 8 -, 16 -, 32 — і 64-bit ціле і окрему точності[що?]з рухомою комою даних і працює вSIMDоперації з обробки аудіо/відео, а також графічних та ігрових обробках. У NEON, SIMD підтримує до 16 операцій одночасно.

ТехнологіяVFP— цеспівпроцесорнерозширення для архітектури ARM. Він надає недорогі одинарну- та подвійну точності вобчисленнях із рухомою комою,повністю сумісну зANSI/IEEE 754(стандарт для арифметичних дій з бінарною рухомою комою). VFP забезпечує такі обчислення, що є придатним для широкого спектразастосунків,які використовуються вКПК,смартфонах,при голосовий компресії і декомпресії, тривимірній графіці та цифровому звуку,принтерах,комп'ютерних приставках, а також автомобільних застосунках. VFP Архітектура також підтримує виконання коротких векторних інструкцій забезпечуючиSIMD-паралелізм.Це корисно в графіці і в застосунках обробки сигналів шляхом зменшення розміру коду та збільшення пропускної здатності.

Інші SIMD та/або співпроцесори з плавучою точкою в ARM-основаних процесорах включають FPA, FPE,iwMMXt.Вони забезпечують приблизно ту ж функціональність, що і VFP, алекодово-несумісні з ним.

Можливості безпеки (TrustZone)

[ред.|ред. код]

Розширення безпекипід комерційною назвоюTrustZone™ (TZ — зона довіри) з'явилися в ARMv6KZ та пізніших архітектурних профілях. Воно забезпечує недорогу альтернативу додаванню ще одного спеціалізованого ядра безпеки доSoCшляхом надання двох віртуальних процесорів з підтримкою апаратних засобів контролю доступу. Це дає можливість ядру застосунків перемикатися між двома станами, позначеними яксвітиангл.worlds(для зменшення плутанини з іншими назвами доменів можливостей), таким чином, щоб запобігти витоку інформації із надійніших сфер до менш надійних. Це об'єктне перемикання в цілому ортогональне всім іншим можливостям процесора і так кожен об'єкт може функціонувати незалежно від інших, використовуючи одне й те ж ядро. Пам'ять і периферія потім ставляться до відома про чинні об'єкти ядра і може використовувати це для забезпечення контролю доступу до секретам та коду для пристроїв. Типовим застосуванням TrustZone технології це запуск операційної системи з широкими можливостями у в менш довірливих об'єктах і менше безпечно-спеціалізований код в надійніших об'єктах.

На практиці, з тих пір як особливості деталей виконанняTrustZoneє власністю і не були публічно розкриті в огляді, не ясно який рівень гарантій передбачається наданою моделлю небезпеки.

Докладніше:Jazelle

Технологія, названа Jazelle DBX (англ.Direct Bytecode eXecution— Безпосереднє виконання байткоду) дозволяє оновленій ARM-архітектурі виконувати деякікоди Javaв апаратній частині, як третій робочий стан поруч з дійсними ARM- і Thumb- режимах[12].

Ліцензія ARM

[ред.|ред. код]

ARM Ltd, не виготовляє і не продає мікропроцесори на основі їхнього власного дизайну, але продає ліцензії процесорної архітектури. ARM пропонує широкий вибір ліцензійних умов, різної вартості та комплектації. Для всіх ліцензіатів, ARM забезпечує опис апаратної інтеграції основних ARM ядер, а також повний набір інструментів розробки програмного забезпечення (компіляторів,налагоджувачів,SDK,див. такожARM Compiler), а також надає право продавати виготовлені вироби, що містять ARM CPU[джерело?].

Ліцензовані фабрики напівпровідникової продукції, які хотіли б інтегрувати ядра ARM для виготовлення своїх власні чипів, зазвичай, тільки зацікавлені у придбанні готових до виробництва перевірених та готових до вживаннясхем.Для цих клієнтів, ARM постачає логічну схему опису таблиці з'єднань вибраного ARM ядра, разом із зібраною імітаційною моделлю та тестується програмами для сприяння інтеграції дизайну та контролю[джерело?].

Для фабрик інтегральних пристроїв (IDM — integrated device manufacturers) компанія пропонує процесорні топографічні схеми у формі RTL (Register transfer level— Рівень регістрових передач) (Verilog), готової для синтезу. Разом із придбанням готової до виробництва RTL, клієнт має можливість здійснювати оптимізацію та розширення архітектурного рівня. Це дозволяє розробнику досягати нестандартного дизайну, потребуючи інші показники за незмінного списку схем (вища тактова частота, наднизька споживана потужність, інструкції набору розширень і т. д.). Хоча ARM не надає ліцензіатам права перепродати саму архітектуру ARM, отримувачі ліцензії можуть вільно продавати виготовлені вироби (процесори та плати з ними, готові систем і т. д.). Комерційнізаводи з виготовлення напівпровідниківможуть бути особливим випадком, їм дозволено не тільки продавати кінцеві напівпровідникові матеріали, які містять ARM ядра, вони зазвичай ще мають право виготовляти ARM ядра для інших клієнтів[джерело?].

Із архітектурної точки зору, менш функціональні ядра ARM коштують менше, ніж вартість ліцензій для ядер із вищою функціональністю. У перерахунку реалізації в кремній, можливість адаптації в основному дорожче, ніж стандартне макроядро. Отримуючи ядра ARM та використовуючи внутрішню службу розробок, клієнт може знизити або компенсувати виплати за попередній ліцензійний збір ARM. У порівнянні з спеціалізованими напівпровідниковими ливарнями (наприклад якTSMCтаUMC), без власної служби розробок, Fujitsu/Samsung сплачують у 2-3 рази більше за виготовлену кремнієву пластину. Для низьких і середніх за обсягом заявок, проектні служби кремнієвих майстерень пропонують нижчі загальні розцінки (через субсидування ліцензійного збору). В довгостроковій перспективі, для великого за обсягом масового виробництва продукції відбувається зниження витрат на ліцензії ARM, таким чином виправдовуючи вибір спеціалізованої майстерні[джерело?].

Багато фірм-розробників інтегральних схем та напівпровідників утримують ARM ліцензії;Analog Devices,Atmel,Broadcom,Cirrus Logic,Faraday technology,Freescale,Fujitsu,Intel(через свою підряднуDigital Equipment Corporation),IBM,Infineon Technologies,LG,Marvell Technology Group,NEC,Nintendo,NVIDIA,NXP Semiconductors,OKI,Qualcomm,Samsung,Sharp,STMicroelectronics,Symbios Logic,Texas InstrumentsтаVLSI,YamahaтаZiiLABS— ось невелика кількість з багатьох компаній, які мають ліцензію на ARM в тій чи іншій формі. Хоча ARM ліцензії поширюються на умовінерозголошення інформації,але в галузі інтегральних мікросхем ARM широко відома як одна із найдорожчих ядерних процесорів. Один замовник продукту, який хоче використати базове ядро ARM оплачує одноразову ліцензію на суму понад $ 200000 USD. У випадках, коли передбачаються значні кількісні і архітектурні зміни, плата за ліцензію може перевищувати $ 10 млн USD[джерело?].

Приблизні ліцензійні витрати

[ред.|ред. код]

ARM в 2006 році опублікувало річну фінансову звітність, в якій вказано відрахування на загальну суму 88,7 млн фунтів стерлінгів (164,1 млн доларів США), що були результатом ліцензування поставок на 2.45 мільярдів схем[13].Це еквівалентно 0,036 фунтів стерлінгів (0,067 USD) в розрахунку на представлену схему (пристрій). Однак, це середня ціна на всі ядра, в тому числі дорогі, нові та недорогі старі.

Прибуток ARM в тому ж році з ліцензійних надходжень за ядра процесорів сягнув £ 65,2 млн. ($ 119,5 млн). Це в середньому 1 млн фунтів стерлінгів (1,84 млн доларів США) з одного ліцензіата. Знову ж таки, це середня ціна, враховуючи нові та старі ядра.

З огляду на те, що прибуток ARM в 2006 році від процесорних ядер становив приблизно 60 % від ліцензійних платежів і 40 % від продажу ліцензій, ARM отримує еквівалент 0,06 фунтів стерлінгів (0,11 доларів США) за одну відвантажену схему, враховуючи як відрахування так і ліцензії. Проте, часто при завершені строку дії однієї ліцензії купується нова для нової технології, тобто питома частка продажу ліцензій (а також відрахування) переважають над створенням продуктів. Отже, представлені вище цифри не зображають реальної вартості будь-якого окремого продукту ARM[джерело?].

Примітки

[ред.|ред. код]
  1. Архівована копія.Архіворигіналуза 19 листопада 2008.Процитовано 4 листопада 2008.{{cite web}}:Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  2. ARM product backgrounder(PDF).Архіворигіналу(PDF)за 14 жовтня 2004.Процитовано 14 жовтня 2004.
  3. В 4-му кварталі 2009-го року було відвантажено більш ніж 1,3 мільярди ARM процесорів.Архіворигіналуза 4 вересня 2012.Процитовано 8 лютого 2010.
  4. Sophie Wilson, Roger Wilson (2 листопада 2 1988).Some facts about the Acorn RISC Machine(англ.).Група новин:comp.arch.Архіворигіналу за 10 лютого 2010.Процитовано 25 травня 2007.
  5. Patterson, Jason.The History Of Computers During My Lifetime — The 1980's(англ.).Архіворигіналуза 23 березня 2008.Процитовано 4 листопада 2008.{{cite web}}:Проігноровано|chapter=(довідка)
  6. «Прес-конференція корпорації ARM»,ARM технології
  7. «ARM досягнуло 10 мільярдів процесорних кристалів»[Архівовано7 грудня 2008 уWayback Machine.],ARM Технології,22 січня 2008
  8. Архівована копія.Архіворигіналуза 14 квітня 2009.Процитовано 4 листопада 2008.{{cite web}}:Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
  9. Why use Arm architecture?(англ.).Архіворигіналуза 15 квітня 2009.Процитовано 4 листопада 2008.
  10. ARM aims son of Thumb at uCs, ASSPs, SoCs.19 жовтня 2004. Архіворигіналуза 9 грудня 2012.Процитовано 4 листопада 2008.
  11. ARM1156T2F-S architecture with Thumb-2 core technology(англ.).Архіворигіналуза 17 січня 2020.Процитовано 18 квітня 2022.
  12. Jazelle DBX.Архіворигіналуза 27 травня 2005.Процитовано 4 листопада 2008.
  13. «Бізнес-огляд/Фінансовий огляд/МСФЗ», стор 10,ARM річний звіт та інша фінансова звітність, 2006[Архівовано22 грудня 2011 уWayback Machine.].Отримано7 травня2007
Помилка цитування: Тег<ref>з назвою "ARMv9", визначений у<references>,не використовується в попередньому тексті.

Див. також

[ред.|ред. код]
  • Linaro— некомерційна організація, що займається консолідацією та оптимізацією програмного забезпечення з відкритими сирцевими кодами для платформ ARM
  • MIPS,IA32таX86-64

Посилання

[ред.|ред. код]