Исследование архитектуры процессоров ARM7TDMI и мобильных устройств на его основе - Контрольная работа

бесплатно 0
4.5 145
Высокая производительность при достаточно низком уровне потребления как одна из отличительных особенностей семейства микропроцессоров ARM. Логика EmbeddedICE - вспомогательный аппаратный блок, существенно облегчающий отладку процессоров данного типа.


Аннотация к работе
ARM - британская корпорация, один из крупнейших разработчиков и лицензиаров архитектуры 32-разрядных и 64-разрядных RISC-процессоров (с архитектурой ARM), ориентированных на использование в портативных и мобильных устройствах (телефонах, органайзерах и т. п.). Для ускорения потока инструкций, поступающего к процессору, в ядре ARM7TDMI используется конвейер. Процессор ARM7TDMI поддерживает два набора инструкций: · 32-разрядный набор инструкций ARM; Thumb-инструкции работают со стандартной конфигурацией ARM-регистра, обеспечивая превосходное взаимодействие между состояниями ARM и Thumb. Ядро процессора ARM7TDMI использует архитектуру ARM v4T, которая поддерживает 32-разрядный набор инструкций ARM и 16-разрядный набор инструкций Thumb.

Введение
ARM - британская корпорация, один из крупнейших разработчиков и лицензиаров архитектуры 32-разрядных и 64-разрядных RISC-процессоров (с архитектурой ARM), ориентированных на использование в портативных и мобильных устройствах (телефонах, органайзерах и т. п.).

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

На данный момент ARM не производит и не продает процессоры, сделанные по своим разработкам, но зато дает лицензии на процессоры заинтересованным партнерам. Компания предлагает широкий выбор условий лицензирования, различающихся по стоимости и деталям. Для всех владельцев лицензии поставляется описание аппаратной части ядра, а также полный набор средств разработки программного обеспечения (компилятор, отладчик), а также право продавать произведенные процессоры ARM. Некоторые клиенты занимаются производством процессоров для сторонних компаний.

Самой успешной версией ядра, продажи которой достигали сотен миллионов штук, ранее был ARM7TDMI.

Процессоры архитектуры ARM в основном используются в смартфонах, мобильных интернет-устройствах (MID), смартбуках, интернет-планшетах и других мобильных и энергоэффективных устройствах.

Технология ARM оказалась весьма успешной и в настоящее время является доминирующей микропроцессорной архитектурой для портативных цифровых устройств.

Цель работы: изучение архитектуры процессоров ARM7TDMI и мобильных устройств на его основе.

1. Краткая характеристика ядра ARM7TDMI

Ядро ARM7TDMI - представитель семейства ARM 32-разрядных микропроцессоров общего назначения. Семейство ARM характеризуется высокой производительностью при очень низком уровне потребления и малых размерах.

Архитектура ARM выполнена на основе принципов RISC (компьютер с сокращенным набором инструкций). Набор инструкций RISC и связанный с ним механизм дешифрации является более простым по сравнению CISC-архитектурой (компьютер со сложным набором инструкций). За счет этого достигается: · высокая производительность выполнения инструкций;

· превосходные реально-временные характеристики реагирования на прерывания;

· малые размеры, эффективная стоимость процессорной макроячейки.

Конвейер инструкций.

Для ускорения потока инструкций, поступающего к процессору, в ядре ARM7TDMI используется конвейер. Он позволяет выполнять несколько операций одновременно, а также обеспечивает постоянство работы системы памяти и обработки. Используется трехступенчатая конвейеризация, т.к. инструкции выполняются в три этапа: · Выборка.

· Дешифрация.

· Исполнение.

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

Счетчик программы указывает на загружаемую из памяти инструкцию, а не на исполняемую инструкцию. Это важно знать, т.к. значение счетчика программы (PC), которое используется при выполнении инструкции, всегда на две инструкции опережает адрес.

Доступ к памяти.

Ядро ARM7TDMI использует фон-неймановскую архитектуру доступа к памяти с одной 32-разрядной шиной данных, по которой передаются как инструкции, так и данные. Доступ к данным к памяти могут осуществлять только инструкции чтения, записи и обмена. В качестве данных могут выступать: · 8 бит (байт);

· 16 бит (полуслово);

· 32 бит (слово).

Слова должны быть выровнены к 4-байтным границам, а полуслова - к 2-байтным.

Интерфейс памяти.

При разработке интерфейса памяти процессора ARM7TDMI стояла задача максимально полностью использовать потенциал по быстродействию и при этом минимизировать использование памяти. Чтобы обеспечить возможность реализации функций системного управления на основе стандартной маломощной логики критичные к быстродействию сигналы управления были конвейеризованы. Данные сигналы управления упрощают использование быстродействующих пакетных режимов передачи, которые используются большинством встроенной и внешней технологий памяти.

Ядро ARM7TDMI поддерживает четыре основных цикла доступа к памяти: · холостой цикл

· непоследовательный цикл

· последовательный цикл

· цикл передачи регистра сопроцессора.

Логика EMBEDDEDICE.

Логика EMBEDDEDICE - вспомогательный аппаратный блок, который делает ARM-процессоры отлаживаемыми и существенно облегчает процесс отладки. Он позволяет с помощью программных инструментальных средств отлаживать программный код, который исполняется целевым процессором. Логика EMBEDDEDICE управляется через порт JTAG с использованием интерфейса EMBEDDEDICE.

2. Архитектура ядра ARM7TDMI микропроцессор отладка аппаратный

Процессор ARM7TDMI поддерживает два набора инструкций: · 32-разрядный набор инструкций ARM;

· 16-разрядный набор инструкций Thumb.

Процессор ARM7TDMI является разновидностью архитектуры ARMV4T. Более детально о наборах инструкций ARM и Thumb можно узнать в "ARM Architecture Reference Manual" (справочное руководство по архитектуре ARM).

В данном разделе описывается: · Сжатие инструкций;

· Набор инструкций Thumb.

Сжатие инструкций.

Микропроцессорные архитектуры, как правило, используют набор инструкций той же разрядности, что и данные. Следовательно, 32-разрядные архитектуры обладают улучшенными характеристиками обработки 32-разрядных данных и могут более эффективно адресовать большие адресные пространства по сравнению с 16-разрядными архитектурами. 16-разрядные архитектуры в большинстве случаев обладают более высокой плотностью кода, но приблизительно вдвое уступают по производительности.

Thumb реализует 16-разрядный набор инструкций в составе 32-разрядной архитектуры, который обеспечивает: · более высокую производительность по сравнению с 16-разрядной архитектурой

· более высокую плотность кода по сравнению с 32-разрядной архитектурой.

Набор инструкций 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-разрядной системы памяти. Следовательно, Thumb, делает ядро ARM7TDMI идеально подходящим во встраиваемые приложения, где в качестве критичных параметров выступают плотность кода и габариты.

Доступность обоих наборов инструкций, 16-разрядного Thumb и 32-разрядного ARM, дает разработчикам гибкость по оптимизации быстродействия или размера кода на уровне процедуры в соответствии с требованиями к их приложению. Например, критические циклы в таких приложениях, как обработка часто возникающих прерываний и алгоритмы цифровой обработки сигналов, могут кодироваться с помощью полных ARM-инструкций, а затем линкована Thumb-кодом.

3. Структурная, функциональная схемы процессора и процессорного ядра

На последующих рисунках представлены структурные схемы процессора, процессорного ядра и функциональная схема процессора.

На рисунке 1 представлены структурная схема процессора ARM7TDMI с указанием компонентов и основных сигналов. На рисунке 2 демонстрируется основной процессор (логика ядра ARM7TDMI), а на рисунке 3 показана функциональная схема процессора ARM7TDMI с указанием входящих и отходящих сигналов.

Рисунок 1. Структурная схема процессора ARM7TDMI

Рисунок 2. Структурная схема процессорного ядра

Рисунок 3. Функциональная схема процессора ARM7TDMI. Краткое описание набора инструкций ядра ARM7TDMI

В данном разделе приводится описание наборов инструкций процессора ARM7TDMI.

Краткое описание формата.

В данном разделе представлено краткое описание наборов инструкций ARM и Thumb.

Ключ к таблицам наборов инструкций представлен в таблице 1.

Процессор ARM7TDMI выполнен на основе архитектуры ARMV4T.

Таблица 1. Набор инструкций

Рисунок 4. Форматы набора инструкций ARM

5. Рабочие состояния процессора

О модели программирования.

Ядро процессора ARM7TDMI использует архитектуру ARM v4T, которая поддерживает 32-разрядный набор инструкций ARM и 16-разрядный набор инструкций Thumb. Модель программирования описана в "ARM Architecture Reference Manual" (справочное руководство по архитектуре ARM).

Рабочие состояния процессора.

Процессор ARM7TDMI поддерживает следующие рабочие состояния: ARM - в данном состоянии выполняются 32-разрядные инструкции ARM;

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

В состоянии Thumb счетчик программы (PC) использует бит 1 для переключения между альтернативными полусловами.

Прим.: переход между состояниями ARM и Thumb не оказывает влияния на процессорный режим или содержимое регистров.

Изменение состояния.

Рабочее состояние ядра ARM7TDMI может переключаться между состоянием ARM и Thumb с помощью инструкции BX. Данная процедура описана в "ARM Architecture Reference Manual".

Обработка всех исключительных ситуаций выполняется в состоянии ARM. Если исключительная ситуация возникает в состоянии Thumb, то процессор возвращается в состояние ARM. При возврате из обработчика исключительной ситуации осуществляется автоматический переход в состояние Thumb. Обработчик исключительных ситуаций может изменить состояние на Thumb, но он также должен вернуться к состоянию ARM для корректного завершения обработки исключительной ситуации.

6. Форматы памяти

Процессор ARM7TDMI рассматривает память, как линейную совокупность байт, пронумерованных в возрастающем порядке, начиная с 0. Например, байты 0..3 представляют первое записанное слово;

байты 4...7 представляют второе записанное слово.

Процессор ARM7TDMI поддерживает оба порядка следования байт многобайтных слов в памяти: Прямой порядок байт (Little-endian), когда сначала следует младший, а затем старший байты.

Обратный порядок байт (Big-Endian), когда сначала следует старший, а затем младший байты.

Прим.: по умолчанию у ARM-процессоров используется прямой порядок байт (Little-endian).

Формат следования байт ЦПУ указывает, где в слове размещается старший значащий байт или разряд. Поскольку при запуске ЦПУ значения вычисляются, начиная с младших значащих разрядов, то прямой порядок устанавливается автоматически. Конфигурация порядка следования байт не зависит от типа хранимых данных (слова, полуслова или байты).

Прямой порядок (Little-endian).

В формате прямого порядка, байт с наименьшим адресом в слове рассматривается как младший значащий байт слова, а байт с наибольшим адресом - старший значащий байт. Т.о., байт по адресу 0 системы памяти соединяет с линиями данных 7...0. На рисунке 5 показывается, как слово по адресу А, полуслова по адресам А и А 2, а также байты по адресам А, А 1, А 2, А 3 соотносятся между собой при конфигурации ядра к прямому порядку.

Рисунок 5. Адреса байт и полуслов в слове при прямом порядке (Little-endian)

Обратный порядок (Big-Endian).

В формате обратного порядка, процессор ARM7TDMI запоминает старший значащий байт слова в позиции байта с наименьшим порядковым номером, а младший байт - в позиции байта с наибольшим порядковым номером. Т.о., байт по адресу 0 системы памяти связан с линиями данных 31..24.

На рисунке 6 показывается, как слово по адресу А, полуслова по адресам А и А 2, а также байты по адресам А, А 1, А 2, А 3 соотносятся между собой при конфигурации ядра к обратному порядку.

Рисунок 6. Адреса байт и полуслов в слове при обратном порядке (Big-endian)

7. Типы данных

Процессор ARM7TDMI поддерживает следующие типы данных: · слова: 32 бит;

· полуслова: 16 бит;

· байты: 8 бит.

Их необходимо выровнять следующим образом: Значения слов необходимо выровнять в пределах 4 байт

Значения полуслов необходимо выровнять в пределах 2 байт

Значения байт могут располагаться в любых пределах байта.

Прим.: системы памяти, как правило, поддерживают все типы данных. В частности, система должна поддерживать запись подслов без повреждения смежных байт в слове.

8. Режимы работы

Процессор ARM7TDMI поддерживает семь режимов работы: Режим пользователя - обычное состояние ARM при выполнении программы, также используется для выполнения большинства прикладных программ.

Режим быстрого прерывания (FIQ), который поддерживает передачу данных или обработку канала.

Режим прерывания (IRQ), который используется для обработки прерываний общего назначения.

Супервизорный режим, который является защищенным режимом для операционной системы.

Аварийный режим, который вводится после аварийной выборки данных или инструкции.

Системный режим - привилегированный режим пользователя для операционной системы.

Прим.: Вы можете вводить системный режим из другого привилегированного режима только путем изменения бита режима в регистре текущего состояния программы (CPSR).

Неопределенный режим вводится, когда выполняется неопределенная инструкция.

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

Каждый регистр имеет идентификатор режима (см. таблицу 2).

Таблица 2. Идентификаторы режима

9. Регистры

Процессор ARM7TDMI содержит всего 37 регистров: · 31 32-разрядных регистра общего назначения

· 6 регистров статуса.

Не все регистры доступны в одно и тоже время. Доступность регистров для программиста зависит от состояния процессора и рабочего режима.

Набор регистров в состоянии ARM.

В состоянии ARM доступны 16 регистров общего назначения, один или два регистра статуса. В привилегированных режимах становятся доступными специфические банки регистров. На рисунке 2.3 демонстрируется, какие регистры доступны в каждом режиме.

В набор регистров в состоянии ARM входят 16 регистров r0...r15. Еще один регистр, CPSR, содержит флаги условия кода и биты текущего режима. Регистры r0...r13 являются регистрами общего назначения и могут использоваться как для хранения данных, так и для хранения адреса. Регистры r14 и r15 выполняют следующие специальные функции: Регистр связи.

Регистр 14 используется как регистр связи (LR) подпрограммы.

Регистр r14 принимает копию регистра r15 при выполнении инструкции переход по ссылке (BL).

Во всех остальных случаях регистр r14 может использоваться как регистр общего назначения. Соответствующие банкированные регистры r14_svc, r14_irq, r14_fiq, r14_abt и r14_und аналогичным образом используются для запоминания значений возврата r15 при возникновении прерываний и исключительных ситуаций или при выполнении инструкции BL внутри процедур обработки прерываний или исключительных ситуаций.

Счетчик программы.

Регистр 15 хранит значение PC.

В состоянии ARM биты [1:0] регистра r15 имеют неопределенное значение и должны игнорироваться. Биты [31:2] содержат значение PC.

В состоянии Thumb бит [0] имеет неопределенное значение и должен игнорироваться. Биты [31:1] содержат значение PC.

Регистр r13 іиспользуется в качестве указателя стека (SP).

В привилегированных режимах доступен еще один регистр - регистр хранения статуса программы (SPSR). Он содержит флаги кода условия и биты режима, являющиеся результатом исключительной ситуации, которое вызвало вхождение в текущий режим.

Банки регистров - дискретные физические регистры в ядре, которые находятся в позициях доступных регистров в зависимости от текущего рабочего режима процессора. Содержимое банкированного регистра запоминается при изменениях рабочих режимов.

В режиме FIQ имеется семь банкированных регистров в позициях r8-r14 (r8_fiq-r14_fiq).

В состоянии ARM несколько обработчиков быстрых прерываний (FIQ) не должны выполнять запись в какой-либо регистр.

В режимах пользователя, IRQ, супервизорном, аварийном и неопределенном имеется два банкированных регистра в позиции r13 и r14, позволяя хранить собственное значение SP и LR в каждом режиме.

В системном режиме используются те же регистры, что и в режиме пользователя.

На рисунке 7 представлены регистры для состояния ARM.

Рисунок 7. Организация регистров в состоянии ARM

Набор регистров в состоянии Thumb.

Набор регистров в состоянии Thumb является поднабором по отношению к набору регистров в состоянии ARM. Программист имеет доступ к: · 8 регистрам общего назначения r0-r7

· Счетчику программ PC

· Указателю стека SP

· Регистру связи LR

· Регистру текущего состояния программы CPSR.

В каждом привилегированном режиме имеются банкированные регистры SP, LR и SPSR. Данный набор регистров показан на рисунке 8.

Рисунок 8. Организация регистров в состоянии Thumb

10. Сброс

Если сигнал на входе NRESET принимает низкий уровень, то возникает сброс и ядро ARM7TDMI прекращает выполнение инструкции и продолжает инкрементировать шину адреса, как при выборке слов или полуслов инструкций. NMREQ и SEQ индицируют о внутренних циклах в течение этого времени

Если NRESET переходит опять в высокое состояние, то процессор ARM7TDMI выполняет следующие действия: Перезапись R14_svc и SPSR_svc путем копирования в них текущих значений PC и CPSR. Значения PC и CPSR являются неопределенными.

Принудительная установка значения M[4:0] равного b10011, супервизорный режим, установка бит I и F, а также сброс бита T в регистре CPSR.

Установка PC для выборки следующей инструкции по адресу 0x00.

Возвращение к состоянию ARM, если необходимо, и восстановление выполнения.

После сброса значения всех регистров, кроме PC и CPSR, являются неопределенными.

11. Мобильные устройства на основе ядра ARM7TDMI

Фирмой ARM разработан целый ряд 32-битных RISC-процессоров с различными возможностями и различной производительностью, а ядро ARM7, разработанное еще в 1994 году, используется до настоящего времени. Сама фирма определяет процессор ARM7 как универсальное ядро 32-битного RISC-микропроцессора с малым энергопотреблением, предназначенное для использования в различных заказных и специальных ИС. Малые размеры RISC-ядра позволяют успешно интегрировать его в большие заказные схемы, которые могут содержать RAM, ROM (Flash), DSP, дополнительную логику и другие элементы.

Микроконтроллеры с ядром ARM7TDMI выпускаются многими фирмами-производителями и применяются разработчиками при решении широкого круга задач: от реализации центральных устройств управления системами сбора и обработки информации до контроллеров периферии и внешних интерфейсов. Наиболее популярны такие ARM7TDMI микроконтроллеры, как: серия ADUC702x Analog Devices, серия STR71x фирмы ST Microelectronics, отличающиеся сбалансированным набором периферийных модулей и малыми размерами корпусов, а также микроконтроллеры серии AT91x фирмы Atmel и серия LPC2xxx фирмы NXP (Philips) с расширенной функциональностью.

К областям применения ядра ARM7 фирма-производитель относит: · телекоммуникации - контроллеры GSM-терминалов;

· обмен данными - средства преобразования протоколов и модемы;

· портативные вычисления - Palmtop-компьютеры;

· портативные измерительные устройства - карманные устройства сбора данных;

· автомобильную технику - устройства управления двигателями;

· информационные системы - Smart-карты;

· средства отображения - JPEG-контроллеры.

Размещено на .ru
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?