Дослідження комп’ютерної системи на базі процесора ARM9E
Архітектурні особливості процесора ARM9E. Набори інструкцій ARM i Thumb. Порівняння компіляторів за швидкістю роботи та обсягом згенерованого коду. Операційні системи, які підтримує процесор ARM9E. Розміри коду підпрограм для ARM та Thumb станів.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 08.09.2011 |
Размер файла | 522,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
Тернопільський національний технічний університет
імені Івана Пулюя
Кафедра комп'ютерних систем та мереж
КУРСОВИЙ ПРОЕКТ
З ДИСЦИПЛІНИ “КОМП'ЮТЕРНІ СИСТЕМИ”
ТЕМА: “ДОСЛІДЖЕННЯ КОМП'ЮТЕРНОЇ СИСТЕМИ НА БАЗІ ПРОЦЕСОРА ARM9E”
Виконав
студент групи СІ-22 _________________ В. А. Пітаєв
№ СI-09-157
Керівник проекту _________________ А. М. Луцків
Тернопіль-2011
ЗМІСТ
- ВСТУП
- 1 ОГЛЯД АРХІТЕКТУРНИХ ОСОБЛИВОСТЕЙ ПРОЦЕСОРА
- 1.1 ARM9E-S архітектура
- 1.2 Типи даних
- 1.3 Конвеєр інструкцій
- 1.3.1 Стиснення інструкцій
- 1.3.2 Набір інструкцій Thumb
- 1.4 Набори інструкцій
- 1.4.1 Зміна стану
- 1.5 Режими адресації
- 1.6 Формати пам'яті
- 1.6.1 Пряме розміщення байт
- 1.6.2 Зворотне розміщення байт
- 1.7 Режими роботи
- 1.8 Регістри
- 1.8.1 Набір регістрів в стані ARM
- 1.8.2 Набір регістрів в стані Thumb
- 1.8.3 Співвідношення між регістрами в станах ARM і Thumb
- 1.9 Сигнали шинного інтерфейсу
- 1.9.1 Типи шинного циклу
- 1.9.2 Непослідовні цикли
- 1.9.3 Послідовні цикли
- 1.9.4 Внутрішні цикли
- 2 РЕАЛІЗАЦІЯ. РОБОТА З ОС
- 2.1 Використання процесорів ARM9E
- 2.2 Підтримка ОС
- 2.3 Технічні характеристики
- 3 ОСОБЛИВОСТІ ВИКОНАННЯ ПРОГРАМНОГО КОДУ
- ВИСНОВКИ
- ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
ВСТУП
Актуальність даного проекту полягає у більш глибокому вивчені сімейства процесорів ARM, огляду архітектурних особливостей процесора, а також особливостей виконання програмного коду на процесорі.
Метою даного проекту є дослідження процесора ARM9E.
Даний проект складається із змісту, вступу, трьох розділів, висновків та переліку використаної літератури.
Сучасні процесори - це високотехнологічні електронні пристрої. В виготовленні процесорів задіяні технологічні процеси, практично повністю протікаючі під направленням робототехніки, виконуючи при цьому операції відрізняються високою точністю і гарантує відсутність в кристалі мікросхеми примісій, не передбачених в документаціях технологічного процесу.
Одним із основних параметрів процесора являється показник конструктивних технологічних норм. Конструктивні технологічні норми виражаються в долях мікрона (мкм) і показують, які є мінімально допустимі розміри елементів топології мікросхем. (Топологія - це схема розміщення елементів, зокрема транзисторів в кристалі процесора). Крім показника конструктивних технологічних норм, основними параметрами процесора є:
· тактова частота;
· розрядність;
· розмір кеш пам'яті.
Тактова частота визначає кількість елементарних операцій (тактів), що виконуються процесором за одиницю часу. Тактова частота сучасних процесорів вимірюється у МГц. Чим більша тактова частота, тим більше команд може виконати процесор, і тим більша його продуктивність. Перші процесори, що використовувалися в ПК працювали на частоті 4,77 МГц, а сьогодні робочі частоти найсучасніших процесорів досягли позначки в 2 ГГц.
Розрядність процесора показує, скільки біт даних він може прийняти і обробити в свої регістрах за один такт. Розрядність процесора визначається розрядністю командної шини, тобто кількістю провідників у шині, по якій передаються команди. Сучасні процесори сімейства ARM є 32-розрядними.
Кеш-пам'ять. Обмін даними всередині процесора відбувається набагато швидше ніж обмін даними між процесором і оперативною пам'яттю. Тому, для того щоб зменшити кількість звертань до оперативної пам'яті, всередині процесора створюють так звану надоперативну або кеш-пам'ять. Коли процесору потрібні дані, він спочатку звертається до кеш-пам'яті, і тільки якщо там потрібні дані відсутні, відбувається звертання до оперативної пам'яті. Чим більший розмір кеш-пам'яті, тим більша ймовірність, що необхідні дані знаходяться там. Тому високопродуктивні процесори оснащуються підвищеними обсягами кеш-пам'яті.
1 ОГЛЯД АРХІТЕКТУРНИХ ОСОБЛИВОСТЕЙ ПРОЦЕСОРА
комп'ютерний операційний процесор
ARM - це 32-розрядний процесор з RISC-архітектурою. RISC - скорочення від Reduced Instruction Set Computer - машина з скороченим набором команд, орієнтована на швидке виконання відносно невеликого набору вбудованих команд. ARM має архітектуру виду "завантажити / зберегти ", де команди, обробні дані, можуть працювати тільки з регістрами, а не з пам'яттю безпосередньо. Підтримуються команди багаторазового завантаження і збереження, а також умовне виконання всіх команд.
Розвиток техніки, перефразовуючи відому тезу, йде по спіралі. Так і фірма ARM, що розробила процесорне сімейство ARM7 Thumb з базовим ядром, відповідними макрокомпонентам, зробила черговий виток, розширивши сімейство ARM9 Thumb приладами з новою якістю - ядром ARM9E і реалізованими на його основі макроядра ARM946E і ARM966E. Процесорне ядро ARM9E - це процесор ARM9TDMI™, з розширеними DSP можливостями і призначений для таких застосувань, в яких необхідне поєднання можливостей мікроконтролера і DSP. Використання суміщеного однопроцесорного рішення дозволяє істотно спростити кристал, зменшити його розміри і скоротити "час виходу на ринок" кінцевої продукції.
Нове ядро - це 32-розрядний RISC-процесор на базі ядра ARM9TDMI, з системою команд ARM, розширеної новими командами цифрової обробки сигналів і вбудованим блоком, що виконує операцію множення 16x32 / акумулювання (MAC) протягом одного тактового циклу. Ядро є Thumb-орієнтованим - працює з Thumb-системою команд, що забезпечує чудову щільність коду. У процесор ARM9E вбудована EmbeddedICE-RT™ логіка, і розроблена розширена версія EmbeddedICE™ JTAG засобів налагодження програмного забезпечення, яка краще відповідає потребам систем, що працюють в реальному масштабі часу.
Основними областями застосування ядра можуть бути контролери HDD, DVD та інші пристрої масової пам'яті, контролери пристроїв розпізнавання і синтезу мови, засобів кодування і поширення мови по мережах і через інтернет; пристрої Dolby AC3 і MPEG MP3; персональні інформаційні пристрої (PDA), торгові термінали, апаратні, і особливо програмні модеми, автомобільна техніка. Ядра ARM946E ARM966E - це макроядра, реалізовані на основі ядра ARM9E і призначеними для інтеграції в ASIC, ASSP і прилади класу SOC.
Макроядро ARM946E, в якому ядро ARM9E об'єднано з асоціативним кеш, буфером запису і пристроєм захисту пам'яті, призначений для вбудовуваних застосувань, що працюють з операційними системами реального часу. Архітектура кеш дає можливість розробникам змінювати розмір кеш відповідно до вимог застосування.
У макроядра ARM966E ядро ??ARM9E об'єднано з буфером запису і жорстко приєднаної SRAM, і це макроядро орієнтоване на застосування "дійсно реального часу", в яких висока продуктивність і мале споживання забезпечуються без використання кеш. Дійсно, існує достатня кількість застосувань, для яких важливі переваги тісного зв'язку пам'яті з процесором і досить складна схема кеш в таких сферах буде всього лише зайвим споживачем.
Обидва макроядра оснащені інтерфейсом AMBA AHB. Макроядра ARM946E і ARM966E сумісні на рівні кодів з процесорами сімейств ARM7 Thumb™, ARM9™ Thumb. Фірма ARM забезпечує засоби перевірки правильності, що гарантують повне узгодження архітектури системи команд ARM і несуперечливу поведінку від всіх кремнієвих партнерів ARM.
Головна особливість ядра ARM9E - це розширені DSP можливості:
· операції 16x16 і 32x16 перемноження / акумулювання (MAC), що виконуються за один тактовий цикл, з додаванням в систему команд процесора нових команд;
· дробова арифметика без насичення, також з додаванням нових команд;
· ефективний доступ до 16-розрядних величин, що забезпечує використання повної 32-розрядної смуги пам'яті;
· нова команда CLZ покращує продуктивність операції ділення.
Суміщені однопроцесорні рішення ядра ARM9E, що представляє поєднання можливостей мікроконтролера і DSP, забезпечує значні переваги, в порівнянні з традиційними рішеннями, в яких використовуються окремі DSP і процесор управління:
· зменшено розмір кристала, знижена його складність;
· виключено дублювання ресурсів у вбудованих: системі пам'яті, організації шин, налагодження, і трасування;
· організовано швидкий відгук на переривання і контекстне перемикання;
· розподіл продуктивності між кодами DSP і контролера може динамічно змінюватися, відповідно до вимог системи;
· весь код має доступ до DSP помножувача і використовує переваги ортогональної RISC-архітектури з лінійним 32-розрядним адресним простором;
· знижена складність програмування;
· використовується єдине уніфіковане оточення розробки програмного забезпечення та налагодження;
· розширена система команд є чудовим об'єктом для компіляторів C і C++.
Істотні вигоди від поєднання однопроцесорного рішення можуть отримати системи, для яких у різні періоди часу необхідні різні співвідношення продуктивності DSP і контролера. Прикладами можуть
служити пристрої інтернет телефонії, які одним процесором організують телефонний зв'язок з інтернетом, роботу браузера та програмного модему. Обчислювальна потужність може динамічно розподілятися між виконуваними завданнями.
1.1 ARM9E-S архітектура
Процесор ARM9E-S підтримує два набори інструкцій:
· 32-розрядний набір інструкцій ARM використовувалися в стані ARM;
· 16-розрядний набір інструкцій Thumb використовується в стані Thumb.
Процесор ARM9E-S є реалізацію ARM9TDMI™ архітектури (рис.1.1).
Рисунок 1.1 Структура процесора ARM9TDMI
1.2 Типи даних
Процесор ARM9E-S підтримує такі типи даних:
· слова: 32 біт;
· півслова: 16 біт;
· байти: 8 біт.
Їх необхідно вирівняти наступним чином:
· значення слів необхідно вирівняти в межах 4 байт;
· значення півслів необхідно вирівняти в межах 2 байт;
· значення байт можуть розташовуватися в будь-яких межах байта.
1.3 Конвеєр інструкцій
Для прискорення потоку інструкцій, що надходить до процесора, в ядрі ARM9E-S використовується конвеєр. Він дозволяє виконувати кілька операцій одночасно, а також забезпечує сталість роботи системи пам'яті і обробки. Використовується триступенева конвеєризація, тому інструкції виконуються в три етапи:
· Вибірка;
· Дешифрация;
· Виконання.
1.3.1 Стиснення інструкцій
Мікропроцесорні архітектури, як правило, використовують набір інструкцій тієї ж розрядності, що і дані. Отже, 32-розрядні архітектури мають поліпшені характеристики обробки 32-розрядних даних і можуть більш ефективно адресувати великі адресні простори в порівнянні з 16-розрядними архітектурами. 16-розрядні архітектури в більшості випадків мають більш високу щільність коду, але приблизно вдвічі поступаються за продуктивністю.
Thumb реалізує 16-розрядний набір інструкцій у складі 32-розрядної архітектури, який забезпечує:
· більш високу продуктивність у порівнянні з 16-розрядною архітектурою;
· більш високу щільність коду в порівнянні з 32-розрядною архітектурою.
1.3.2 Набір інструкцій Thumb
Набір інструкцій Thumb є вибіркою найбільш часто використовуваних 32-розрядних інструкцій ARM. Thumb-інструкції характеризуються розміром 16 біт і мають відповідну 32-розрядну інструкцію ARM. Відповідні інструкції надають однаковий вплив на модель процесора. Thumb-інструкції працюють
зі стандартною конфігурацією ARM-реєстру, забезпечуючи чудову взаємодію між станами ARM і Thumb. У процесі виконання 16-розрядна інструкція піддається декомпресії в реальному часі до повних 32-розрядних інструкцій ARM без втрати продуктивності.
Thumb успадковує всі переваги 32-розрядного ядра:
· 32-розрядний адресний простір;
· 32-розрядні регістри;
· 32-розрядний арифметико-логічного пристрій (АЛП);
· пересилання в пам'ять 32-розрядних даних.
Отже, інструкції Thumb характеризуються великим діапазоном переходу, потужними арифметичними операціями і великим адресним простором.
Код Thumb займає 65% від ARM-коду і досягає 160% продуктивності ARM-коду при виконанні з 16-розрядної системи пам'яті.
Доступність обох наборів інструкцій, 16-розрядного Thumb і 32-розрядного ARM, дає розробникам гнучкість по оптимізації швидкодії або розміру коду на рівні процедури відповідно до вимог їх застосування. Наприклад, критичні цикли в таких додатках, як обробка часто виникають переривання і алгоритми цифрової обробки сигналів, можуть кодуватися за допомогою повних ARM-інструкцій, а потім лінковані Thumb-кодом.
1.4 Набори інструкцій
Процесор ARM9E-S має два набори інструкції:
· ARM стан - в ньому включені 32-розрядні ARM інструкції;
· Thumb стан - в ньому включені 16-розрядні Thumb інструкції.
Перехід між режимами ARM і Thumb не впливає на режим роботи процесора або вміст регістра. У стані Thumb лічильник програми (PC) використовує 1 біт для перемикання між альтернативними півсловами.
1.4.1 Зміна стану
Робочий стан ядра ARM9E-S може перемикатися між станом ARM і Thumb за допомогою BX і BLX інструкції. Обробка всіх виняткових ситуацій виконується в cтані ARM. Якщо виняткова ситуація виникає в стані Thumb, то процесор повертається в стан ARM. При поверненні з обробника виняткової ситуації здійснюється автоматичний перехід в стан Thumb. Оброблювач виняткових ситуацій може змінити стан на Thumb, але він також повинен повернутися до стану ARM для коректного завершення обробки виключної ситуації. Наведемо приклад роботи процесора у стані ARM та Thumb (таб 1.1).
Таблиця 1.1 - Порівняння компіляторів за швидкістю роботи та обсягом згенерованого коду
Параметр порівняння |
IAR C/C++ Compiler for ARM 4.41A |
RealView C/C++ Compiler 3.0 |
Rowley CrossWorks 1.6 (GCC 4.1.0) |
GNU ARM GCC 4.1.1 |
|
Час повної компіляції |
47 секунд |
13 секунд |
37 секунд |
1 хвилина 20 секунд |
|
Отриманий розмір завантажувального коду для роботи процесора в режимі ARM |
110303 байта |
112300 байт |
144868 байт |
183251 байт |
|
Отриманий розмір завантажувального коду для роботи процесора в режимі Thumb |
77103 байта |
79092 байта |
104556 байт |
139715 байт |
1.5 Режими адресації
Режими адресації - процедури, які використовуються різними інструкціями для генерації значень, використовуваних інструкціями. Процесор ARM9E-S підтримує 5 режимів адресації:
· режим 1 - зсувні операнди для інструкцій обробки даних;
· режим 2 - Читання і запис слова або байта беззнакового;
· режим 3 - Читання і запис півслова або завантаження знакового байта;
· режим 4 - Множинні читання і запис;
· режим 5 - Читання і запис співпроцесора.
1.6 Формати пам'яті
Пам'ять процесора ARM9E-S - це лінійні колекції у вигляді байт, які пронумеровані в порядку зростання від нуля. Для прикладу, байти від 0 до 3 зберігають перше слово, а байти від 4 до 7 зберігають друге слово. Процесор
ARM9E-S може записувати слова у пам'яті двома способами:
· прямим розміщенням байт;
· зворотним розміщенням байт.
1.6.1 Пряме розміщення байт
У форматі зворотного порядку, процесор ARM9E-S запам'ятовує старший значущий байт слова в позиції байтів з найменшим порядковим номером, а молодший байт - в позиції байтів з найбільшим порядковим номером. Отже, байт за адресою 0 системи пам'яті пов'язаний з лініями даних 31 .. 24.
1.6.2 Зворотне розміщення байт
У форматі прямого порядку, байт з найменшою адресою в слові розглядається як молодший значущий байт слова, а байт з найбільшим адресою - старший значущий байт. Таким чином, байт за адресою 0 системи пам'яті з'єднує з лініями даних 7...0.
1.7 Режими роботи
Процесор ARM9E-S підтримує сім режимів роботи (таб.1.2):
· режим користувача - звичайний стан ARM при виконанні програми, також використовується для виконання більшості прикладних програм;
· режим швидкого переривання (FIQ), який підтримує передачу даних або обробку каналів;
· режим переривання (IRQ), який використовується для обробки переривань загального призначення;
· режим супервізора, який є захищеним режимом для операційної системи.
· аварійний режим, який вводиться після аварійної вибірки даних чи інструкції.
· системний режим - привілейований режим користувача для операційної системи;
· невизначений режим вводиться, коли виконується невизначена інструкція.
Таблиця 1.2 - Ідентифікатори режиму
Режим |
Ідентифікатор режиму |
|
Режим користувача |
usr |
|
Режим швидкого переривання |
fiq |
|
Режим переривання |
irq |
|
Режим супервізора |
svc |
|
Аварійний режим |
abt |
|
Системний режим |
sys |
|
Невизначений режим |
und |
1.8 Регістри
Процесор ARM9E-S містить всього 37 регістрів:
· тридцять один 32-розрядних регістрів загального призначення;
· шість регістрів статусу.
Не всі регістри доступні в один і той же час. Доступність регістрів для програміста залежить від стану процесора і робочого режиму. Кожен регістр має ідентифікатор режиму (таб. 1.2).
1.8.1 Набір регістрів в стані ARM
У стані ARM доступні 16 регістрів загального призначення, один або два регістри статусу. У привілейованих режимах стають доступними специфічні банки регістрів.
У набір регістрів в стані ARM входять 16 регістрів r0…r15. Ще один регістр, CPSR, містить умови коду й біти поточного режиму. Регістри r0...r13 є регістрами загального призначення і можуть використовуватися як для зберігання даних, так і для зберігання адреси.
1.8.2 Набір регістрів в стані Thumb
Набір регістрів в стані Thumb є піднабором по відношенню до набору регістрів в стані ARM. Програміст має доступ до:
· 8 регістрів загального призначення r0-r7;
· лічильника програм PС;
· вказівника стека SP;
· регістру зв'язку LR;
· регістру поточного стану програми CPSR.
1.8.3 Співвідношення між регістрами в станах ARM і Thumb
Регістри в стані Thumb пов'язані з регістрами в стані ARM наступним чином:
· регістри r0-r7 в стані Thumb і регістри r0-r7 в стані ARM ідентичні;
· регістри CPSR і SPSR в стані Thumb і регістри CPSR і SPSR в стані ARM ідентичні;
· покажчик стека SP в режимі Thumb збігається з позицією r13 в стані ARM;
· регістр зв'язку LR в режимі Thumb збігається з позицією r14 в стані ARM;
· лічильник програми PC у режимі Thumb збігається з положенням лічильника програми PC у стані ARM (r15).
1.9 Сигнали шинного інтерфейсу
Сигнали шинного інтерфейсу процесора ARM9E-S можна згрупувати в чотири категорії:
· синхронізація та керування синхронізацією
· сигнали адресного класу
· сигнали запиту пам'яті
· сигнали, синхронізовані з даними.
До сигналів синхронізації і керування синхронізацією відносяться:
§ CLK
§ CLKEN
§ nRESET
Сигнали адресного класу:
§ IA[31:1]
§ InM [4:0]
§ InTRANS
§ ITBIT
Сигнали запиту пам'яті:
§ InMREQ
§ ISEQ
§ IKILL
Сигнали, синхронізовані з даними:
§ INSTR[31:0]
§ IABORT
Процесор ARM9E-S використовує, як наростаючі, так і спадаючі фронти CLK. Шинні цикли можна продовжити за допомогою сигналу CLKEN.
1.9.1 Типи шинного циклу
Шинний інтерфейс процесора ARM9E-S є конвеєризований. За рахунок цього надається максимум часу для дешифрування адреси в циклі пам'яті та формування відгуку на запит доступу:
· сигнали запиту пам'яті передаються в шинному циклі до шинного циклу, до якого вони відносяться;
· сигнали адресного класу передаються протягом половини циклу синхронізації спочатку шинного циклу, до якого вони відносяться.
Шинний інтерфейс процесора ARM9E-S підтримує 3 різних типи шинних циклів:
· непослідовний цикл запитує передачу в заданому напрямку за адресою, який не пов'язаний з адресою, використовуваною в попередньому циклі;
· послідовний цикл запитує передачу в заданому напрямку за адресою, який або той же, або на слово, або на півслово більше адреси, використовуваної в попередньому циклі;
· внутрішній цикл не вимагає передачу, тому що він виконує внутрішню функцію і не може використовуватися для вибірки в цей же момент часу;
1.9.2 Непослідовні цикли
Непослідовний цикл - найпростіша форма шинного циклу, яка виникає, коли процесор запитує передачу в одному з напрямків за адресою, який не пов'язаний з адресою, що використовувалися в попередньому циклі. Контролер пам'яті повинен ініціювати доступ до пам'яті для задоволення даного запиту.
Адресний клас і сигнали (InMREQ і ISEQ), які складають N-цикл, передаються по шині. По завершенні наступного шинного циклу дані передаються між ЦПУ і пам'яттю. Дане не поширюється на системи пам'яті, які вимагають більш тривалі часи доступу (розширення циклу синхронізації) стосовно непослідового доступу. Цим забезпечується достатній час для повного дешифрування адреси або для фіксації рядків і стовпців адреси в DRAM.
1.9.3 Послідовні цикли
Послідовні цикли використовуються для виконання пакетної передачі по шині. Дана інформація може використовуватися для оптимізації розробки вашого контролера пам'яті, який підключається до пам'яті з підтримкою пакетного режиму передачі.
У ході послідовного циклу процесор ARM9E-S запитує становище в пам'яті, яке є частиною послідовного пакета. У першому циклі пакета може використовуватися та ж адреса, що і в попередньому внутрішньому циклі. У всіх інших випадках кожний наступний цикл виконується збільшенням адреси:
· при пакетній передачі слів, адрес збільшується на 4 байти;
· при пакетній передачі півслів, адрес збільшується на 2 байти.
1.9.4 Внутрішні цикли
Протягом внутрішнього циклу процесор ARM9E-S не вимагає доступу до пам'яті, тому що виконується внутрішня функція і немає сенсу в цей же час виконувати попередню вибірку.
Для того, щоб була можливість почати дешифрацію процесор ARM9E-S передає адресу для наступного доступу, але контролер пам'яті не повинен здійснювати доступ до пам'яті.
2 РЕАЛІЗАЦІЯ. РОБОТА З ОС
Високопродуктивні застосування типу стільникових телефонів, дисководів і модемів пред'являють до вбудованих керуючим контролерам вимоги щодо забезпечення високої продуктивності за умови збереження їх низької вартості. Сучасні CISC ядра наближаються до верхніх меж своєї продуктивності. Крім того, наслідком великої кількості транзисторів у CISC ядрах є велике споживання, великі за площею кристали, складнощі при їх інтеграції і, в результаті, висока вартість повної системи. 32-розрядні ядра RISC процесорів пропонують потенційне рішення цих проблем. Однак застосування ранніх версій RISC процесорів не дозволяло в повній мірі реалізувати переваги RISC-архітектури перед CISC архітектурою, що в першу чергу пов'язувалося з великим об'ємом кодів, для яких була потрібна пам'ять великого обсягу, що в свою чергу призводило до високої вартості всієї системи.
З початку 90-х років активний розвиток отримала технологія ASIC (Applications Specific Integrated Circuit) і ASSP. Розвиток цих технологій і створення на їх основі все нових спеціалізованих приладів було стимульовано зростанням потреб у нових цілях, в появі нових сегментів ринку. Це портативні комп'ютери, мобільні телефони, засоби визначення місця, засоби комунікації, ігрові та телевізійні приставки, побутові та промислові засоби управління процесами. У забезпечення технологій ASIC SSP і ряд фірм, як великих, які мають власні виробничі потужності, так і таких що спеціалізуються на розробці ІС (інтелектуальної власності) почали активну розробку бібліотек заздалегідь спроектованих модулів і периферійних пристроїв, що дозволяють оперативно створювати пристрої з наперед заданими можливостями.
Активну, і підкріплену реальними досягненнями, позицію в даній області займає фірма Advanced RISC Machines (ARM), яка спеціалізується на розробці мікропроцесорів і периферії до них і продає ліцензії на свою ІС.
Кремнієвими партнерами ARM, тобто фірмами, які використовують розробки ARM при створенні своїх приладів, є такі провідні виробники, як Alcatel, Amtel, Asahi Kasei Microsystems, Cirrus Logic, Digital, GEC Плессі, Hyinday, Lucent, Lucky Goldstar, NEC, OKI, Philips, Rockwell, Rohm, Samsung, Sharp, Sony, Symbios, Texas Instruments, НВІС, Yamaha. Деякі з цих компаній використовують розроблені ARM процесори для спеціальних застосувань, проте більшості вони потрібні для мобільних телефонів, систем управління автомобільними двигунами, лазерних принтерів PostScript та інших пристроїв масового застосування і для всіх цих пристроїв необхідні такі якості, як висока швидкодія, помірна ціна і низьке енергоспоживання. Процесори ARM підтримуються багатьма програмними продуктами як самої компанії, так і інших виробників. Ці продукти утворили солідну інфраструктуру ПЗ та засобів розробки. Серед них - компілятори С++, внутрішньосхемні емулятори, таблиці розробки, операційні системи реального часу, драйвери низького рівня, а також програмні застосування високого рівня. Прискорена технологія, Enea OSE Systems, ISI, JavaSoft, JMI, Microtec, Microsoft, Psion, Wind River і інші компанії забезпечують сумісність своїх ОС і засобів розробки з процесорами ARM.
До областей застосування ядра ARM9E фірма відносить:
· Телекомунікації - контролери терміналів GSM;
· Обмін даними - засоби перетворення протоколів;
· Портативні обчислення - кишенькові комп'ютери;
· Портативні вимірювальні пристрої - кишенькові пристрої збору даних;
· Автомобільну техніку - пристрої керування двигуном;
· Інформаційні системи - мобільні телефони;
· Засоби відображення - JPEG контролери.
2.1 Використання процесорів ARM9E
Мобільні телефони:
· HTC (HTC Wizard);
· LG Nokia ;
· Philips;
· Siemens/BenQ;
· Sony Ericsson (K, M і W серії).
Кишенькові ігрові консолі:
· Nintendo DS;
· Nokia N-Gage.
2.2 Підтримка ОС
Наступні дистрибутиви Linux підтримують процесори ARM:
· ALT Linux;
· Chrome OS;
· Debian;
· ELinOS;
· GoboLinux;
· Maemo;
· MontaVista;
· Slackware;
· T2 SDE;
· Ubuntu;
· Wind River Linux.
Наступні похідні від BSD підтримують процесори ARM:
· RISC iX;
· FreeBSD;
· NetBSD;
· OpenBSD;
Підтримка інших операційних систем:
· Linux;
· Plan 9;
· Inferno;
· OpenSolaris;
· FreeRTOS;
· Nucleus;
· Symbian OS;
· Android;
· QNX;
· Apple iOS;
· Windows 8.
2.3 Технічні характеристики
· Ядро - ARM9E (5-рівневий конвеєр, інтерфейс Гарвардської шини, ARM RISC ядро з Thumb і EmbeddedICE, одноцикловий MAC 32x16);
· Займана площа - 2,7 мм2 при 0,25 мкм;
· Кількість вентилів - 75000;
· Тактова частота - 160 МГц при CMOS 0,25 мкм >200 МГц при CMOS 0,18 мкм;
· Продуктивність - 1,1 MIPS/МГц 1,1 MMAC/МГц.
3 ОСОБЛИВОСТІ ВИКОНАННЯ ПРОГРАМНОГО КОДУ
Проста підпрограма на мові C:
Нижче наводиться проста підпрограма на мові C, що показує відмінності між кодами ARM і Thumb. Ця підпрограма повертає абсолютну величину цілого числа С, переданого йому як параметр.
· Код на мові C:
if (x>=0)
return x;
else
return -x;
· Еквівалент ARM на ассемблері:
Iabs CMP r0, #0 ; Порівняти r0 з нулем
RSBLT r0, r0, #0 ; Якщо r0 <0 (менше ніж = LT), то виконати r0 = 0-r0
MOV pc, lr ; Перемістити Linc Register в ПК(Повернення)
· Еквівалент Thumb на ассемблері:
CODE16 ; Директива, яка визначає 16-розрядну команду
Iabs CMP r0, #0 ; Порівняти r0 з нулем
BGE return ; Перейти до return, якщо більше або дорівнює нулю,
NEG r0, r0 ; якщо ні, інвертувати r0
Return MOV pc, lr ; Перемістити Linc Register в ПК(Повернення)
Таблиця 3.1 - Розмір коду для підпрограми абсолютної величини
Код |
Кількість команд |
Розмір(байти) |
Співвідношення |
|
ARM |
3 |
12 |
1,0 |
|
Thumb |
4 |
8 |
0,67 |
Порівняння, наведене в таблиці 3.1 показує, що код Thumb - на 33% щільніший коду ARM, що реалізує точно таку ж функцію. Звернимо увагу на те, що для виконання завдання в коді Thumb необхідна більша кількість команд ніж в еквіваленті ARM. Однак, оскільки формат команди Thumb - тільки половина довжини команд ARM, то загальний розмір підпрограми в коді Thumb все ж таки менший.
Як приклад кодування вручну, розглянемо перетворення двійкового значення в шістнадцяткове:
· Код ARM:
MOV r1, r0 ; r0 зберігає значення для перетворення;
завантажити r1 збереженим значенням
MOV r2, #8 ; завантажити в r2 десяткове число 8
Loop: MOV r1, r1, ROR #28 ; Обертати r1 вправо на 28 і результат зберегти в r1
AND r0, r1, #15 ; Виконати AND вміст r1 з десятковим числом 15
CMP r0, #10 ; Порівняти r0 з десятковим числом 10 і
ADDLT r0, r0, #'0' ; якщо воно менше 10, то ADD ASCII значення 0 до r0,
ADDGE r0, r0, #'A' ; в іншому випадку (більше або рівно) ADD ASCII значення A до r0
SWI 0 ; Підпрограма виводу char на екран
SUBS r2, r2, #1 ; Відняти 1 з r2,
BGT Loop ; і повернутися назад до 1, якщо r2 все ще більше ніж нуль
MOV pc, lr ; Завантажити PC вмістом Link регістру (Повернення)
· Код Thumb:
MOV r1, r0 ; Конвертоване значення, яке зберігається в r0 завантажити в R1
MOV r2, #8 ; Помістити 8 в r2
Loop1 LSR r0, r1, #28 ; Виконати логічний зсув вправо r1 на 28 місць і помістити в r0
LSL r1, r1, #4 ; Виконати логічний зсув r1 вліво на 4 місця
CMP r0, #10 ; Порівняти r0 з 10 і
BLT Loop2 ; якщо менше ніж 10, виконати перехід до Loop2
ADD r0, #'A'-'0'-10 ; Виконати ADD ASCII значень A-0-10 (7) до r0
Loop2 ADD r0, #'0' ; Виконати ADD ASCII значень 0 (48) до r0
SWI 0 ; Підпрограма запису char на екран
SUB r2, #1 ; Відняти 1 з r2 і
BNE Loop1 ; якщо незакінчено loop1,
MOV pc, lr ; завантажити PC вмістом Link регістру (Повернення)
Таблиця 3.2 - Розміри кодів підпрограм перетворення двійкової величини в шістнадцяткову
Код |
Кількість команд |
Розмір(байти) |
Співвідношення |
|
ARM |
11 |
44 |
1,0 |
|
Thumb |
12 |
24 |
0,55 |
У даному випадку код Thumb виявляється на 45% більш щільним ніж еквівалентний код ARM, у точно такому ж алгоритмі.
ВИСНОВКИ
Під час виконання даного курсового проекту, було розглянуто:
· архітектурні особливості процесора ARM9E;
· набори інструкцій ARM i Thumb, їх порівняння;
· порівняння компіляторів за швидкістю роботи та обсягом згенерованого коду у режимах ARM i Thumb;
· режими роботи, набір регістрів та інструкцій процесора;
· операційні системи, які підтримує процесор ARM9E;
· інші пристрої, де реалізовано ядро ARM9E;
· виконання програмного коду на процесорі;
· розміри коду підпрограм для ARM та Thumb станів.
ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. A symposium on high performance chips [Electronic Resource] - Mode of access: URL:
http://www.hotchips.org/archives/hc11/2_Mon/hc99.s4.2.Segars.pdf - The ARM9E Synthesizable Processor Family.
2. Рынок микроэлектроники [Електронний ресурс] - Режим доступу : URL:
http://www.gaw.ru/html.cgi/txt/doc/micros/arm/arh/thumb9_2.htm - Семейство ARM9E.
3. Универсальный программатор. Профессиональные программаторы и средства разработки микроконтроллеров [Електронний ресурс] - Режим доступу : URL: http://www.phyton.ru/pages/page41.html#sem - Микроконтроллеры ARM (ARM7 и ARM9).
4. Морозов В.Н. Оптоэлектронные матричные процессоры. - М.: Радио и связь, 1996.
5. Корнеев В.В. Современные микропроцессоры / В.В. Корнеев, А. В. Киселёв; Програмирование на языке аssembler - М: Нолидж, 2006.
6. Сперанский В.С. Сигнальные микропроцессоры и их применение в системах телекоммуникаций и электроники. - М.: Горячая линия, 2008.
7. ARM9E-S Core: Technical Reference Manual. - ARM Limited. - 288 с.
Размещено на Allbest.ru
Подобные документы
Отримання показників процесора за допомогою програми EVEREST Ultimate 2006. Приклад отриманих характеристик: властивості ЦП, виробник та завантаження. Набори команд та інструкцій, з якими працює процесор. Властивості та виробник графічного процесора.
лабораторная работа [19,5 K], добавлен 16.12.2010Взаємодія шин в типовому комп'ютері на базі процесора Pentium. Основні блоки набору мікросхем системної логіки: North Bridge, South Bridge та Super I/O. Набори мікросхем системної інформації для різних поколінь процесорів та їх технічні характеристики.
реферат [297,1 K], добавлен 19.06.2010Значення операційної системи - програми, яка завантажується при включенні комп'ютера. Компоненти Windows, передача параметрів у мові С++. Системні ресурси та принципи їх роботи. Розробка алгоритму програми емуляції роботи командного процесора ОС.
курсовая работа [37,5 K], добавлен 18.06.2010Обчислення середньої трудомісткості потоку заявок. Визначення мінімальної швидкодії процесора. Дослідження безпріоритетної дисципліни обслуговування. Навантаження на обчислювальну систему. Програма моделювання комп’ютерної системи та програмний код.
курсовая работа [1,2 M], добавлен 15.03.2014Функціонування мікрокомп’ютерів з шинною організацією. Системні локальні шини. Організація та структура пам’яті. Базова система введення-виведення. Режими роботи процесора I80286. Програмна модель процесора. Регістри процесора та умови програмування.
курсовая работа [326,1 K], добавлен 06.06.2013Складання, імлементація і верифікація VHDL моделі чотирибітового комп’ютера, що вбудовується до ПЛІС, містить процесор, пам'яті даних і машинних кодів. Перелік і функції машинних інструкцій процесора "Гном". Асемблерна тестова програма і її машинні коди.
курсовая работа [24,3 K], добавлен 10.01.2010Експонентний розвиток комп'ютерної техніки. Будова сучасного комп'ютера, призначення основних елементів. Будова центрального процесора. Оперативная пам'ять та материнська плата. Будова звукової карти. Характеристика жорсткого диска. Склад чипсету.
презентация [1,4 M], добавлен 25.02.2010Мова асемблер для кожного типу комп'ютера своя. Асемблер орієнтований саме на специфіку комп'ютера або на специфіку процесора. Мікропроцесори, що належать до різних сімейств, мають свої системи команд. Система команд МП ІA 32 - режими адресації.
лекция [36,2 K], добавлен 13.04.2008Схема суперскалярної організації процесора. Вплив залежності між даними на роботу суперскалярного процесора. Апаратний паралелізм – це міра здатності процесора отримувати переваги із паралелізму на рівні команд. Запуск команд у суперскалярному процесорі.
реферат [34,9 K], добавлен 08.09.2011Параметри процесорів, принцип мікропрограмного керування, швидкодія процесора, тактова частота, використання генераторів змінної частоти. Загальні відомості формфакторів системних плат. Системи Plug and Play, вибір системної плати.
контрольная работа [39,9 K], добавлен 19.10.2009