Технологія Thumb - додаткове розширення до архітектури ARM. Система команд Thumb містить 36 команд, похідних від стандартної 32-розрядної системи команд ARM, перекодовано в 16-розрядні коди. Такий підхід забезпечив дуже високий щільність коду, оскільки команди Thumb складають половину ширини формату команд ARM. У процесі виконання ці нові 16-розрядні Thumb коди декомпресивні процесором в відповідні еквівалентні команди ARM, які потім і виконуються ядром ARM звичайним способом.
Малюнок 1: Команди Thumb як кодоване підмножина системи команд ARM
Унікальне перевага
Технологія Thumb - це не тільки змішана система команд. Thumb-орієнтовані ядра мають дві окремих системи команд - унікальне гідність, що дозволяє розробнику використовувати всю потужність 32-розрядної системи команд ARM при використанні переваг малого розміру коду системи команд Thumb. Той факт, що дві системи команд є абсолютно окремими, говорить про те, що кошти декодуючої логіки також надзвичайно прості, що в свою чергу, зберігає малим розмір кристала і зберігає найкраще в галузі співвідношення продуктивність/споживання.
Розмір і критичні до продуктивності підпрограми
Так як Thumb - орієнтовані ядра здатні виконувати і стандартну ARM систему команд і нові команди Thumb, розробник, при переході від підпрограми до підпрограмі, може знаходити компроміс між розміром коду та продуктивністю, готуючи критичні до розміру підпрограми в коді Thumb і критичні до продуктивності підпрограми в кодах ARM.
32-розрядна RISC продуктивність
Thumb - Орієнтовані ядра типу ARM7TDMI мають повну 32-розрядну архітектуру ARM, так що розробник зберігає 32-розрядну продуктивність RISC архі
тектури. Комбінація двох систем команд, що виконуються на 32-розрядному Thumb - орієнтованому ядрі, забезпечує ефективне вирішення проблеми великих розмірів коду та проблеми невисокої продуктивності 16-розрядних систем.
Поліпшення щільності коду на 30%
Отримані до теперішнього часу результати показали поліпшення щільності коду на 30%, по Порівняно з кодом ARM, що дозволяє вважати Thumb - орієнтовані процесори кращими по щільності коду в порівнянні і з традиційними CISC процесорами.
Малюнок 2: Ядро ARM7TDMI і розташування декомпресора команд Thumb
Підтримка півслів
Крім введення нових Thumb команд, фірма ARM додала до систем команд і ARM і Thumb підтримку формату півслів (16-розрядних даних). Отже архітектура ARM тепер повністю підтримує 8, 16 і 32-розрядні дані. Були додані і для Thumb і ARM ядер операції зі знаками для підтримки ними 8 і 16-розрядних операцій з даними із знаками.
Розширення можливостей комплекту засобів розробки програмного забезпечення ARM
омплект засобів розробки програмного забезпечення ARM також був розширений, щоб забезпечити підтримку розробки кодів Thumb. Комплект дозволяє програмісту писати і розміщувати в пам'яті системи коди ARM, коди Thumb або обидва разом.
Малюнок 3: Послідовність етапів проектування програмного забезпечення для Thumb - Орієнтованого ядра
Коротка сводка переваг технології Thumb
Чудова щільність коду
Система команд Thumb дає чудову щільність коду, в порівнянні з 32-розрядними ядрами і 8 і 16-розрядними процесорами, зазвичай використовуваними у вбудовуваних застосуваннях. Об'єм пам'яті і, як наслідок, вартість системи зменшуються.
16-розрядні команди
Команди Thumb - 16-розрядні і шина передачі даних системи теж повинна бути тільки 16-розрядної. Це зменшує, і споживану потужність і розміри друкованої плати, що веде до меншої вартості системи і меншому споживанню системою потужності.
Самая маленька площа, займана ядром на кристалі
Thumb-орієнтовані ядра мають майже найменші в галузі розміри кристала (площа, займана ядром ARM7TDMI, при топологічних нормах 0, 6 мкм, менш 5 мм2). Отже розробник ASSP (application specific standard product) і ASIC (applications specific integrated circuit), що використовує Thumb-орієнтовані ядра, отримає кристал системи зменшеного розміру за рахунок меншого розміру ядра, по порівнянні з 16/32-разряднимі CISC ядрами, і за рахунок меншого розміру вбудованої ROM програм. У поєднанні зі спрощеним і, отже дешевшим, тестуванням, в порівнянні з тестуванням CISC ядер, малим виділенням тепла, що дозволяє розміщувати прилад у пластиковому корпусі, все це дозволяє отримати прилад меншої вартості ніж стандартні рішення.
Повна 32-розрядна архітектура
Команди Thumb виконуються на повній 32-розрядної RISC архітектурі ARM. Розробник, отже, здатний використовувати швидку 32-розрядну математику і просту несегментірованную карту пам'яті з адресним простором 4 Гбайта - колосальне простір навіть для найбільш складних з вбудовуваних керуючих застосувань.
Стандартна архітектура, в поєднанні з новими засобами розробки програм, здатними компілювати ARM коди, коди Thumb або поєднання обох, гарантують пряму сумісність з існуючим 32-розрядним сімейством ARM. Все це забезпечує розробника 16-розрядної системи можливістю переходу до вже існуючих сімействам 32-розрядних ядер.
Розмір коду і продуктивність
Thumb-орієнтовані ядра типу ARM7TDMI виконують і 32-розрядні команди ARM і нові 16-розрядні команди Thumb. Розробники можуть змішувати підпрограми в кодах Thumb і в кодах ARM в одному і тому ж адресному просторі, що дозволяє програмісту від підпрограми до підпрограми знаходити компроміс між розміром коду та продуктивністю так, як це вимагається застосуванням.
Комплект засобів розробки програмного забезпечення фірми ARM з розширеними можливостями
Нові команди Thumb повністю підтримуються "Thumb - орієнтованим" комплектом інструментальних засобів фірми ARM. Цей комплект інструментальних засобів включає працює в середовищі Windows, підтримує Kanji і забезпечує безпроблемне взаємодія між станами ARM і Thumb.
Захист вкладених коштів
Засоби, вкладені в розробку вже експлуатованого ARM програмного забезпечення, витрачені не даремно, оскільки Thumb-орієнтовані ядра виконують ARM код. Для використання цих кодів в Thumb стані, вихідні тексти досить тільки перекомпілювати.
Основа достоїнств технології Thumb - гідності архітектури ARM
Нове сімейство Thumb-орієнтованих ядер використовує традиційні достоїнства архітектури ARM: надзвичайно мале споживання потужності, найкраще в галузі співвідношення продуктивність/споживання (MIPS/Watt) і мала площа, займана ядром, при інтеграції на кристал.
Підводячи підсумок можна стверджувати: архітектура Thumb дозволяє розробникам 16-розрядних отримати продуктивність 32-розрядних ARM ядер за ціною 16-розрядних систем.
Список літератури
Для підготовки даної роботи були використані матеріали з сайту .gaw.ru/