Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lek2013 / Lek12_FPGA

.docx
Скачиваний:
49
Добавлен:
31.05.2015
Размер:
1.25 Mб
Скачать

11 Архитектура процессоров ARM

ARM Ltd. (название происходит от Advanced RISC Machines)

- британская компания, занимается проектированием 32-х разрядных RISC-процессоров.

Особенности ARM процессоров:

Имеют RISC архитектуру. Малое энергопотребление: от 0.1 Вт до 3Вт. Высокое быстродействие: от 10MГц до 1.2 ГГц. 32 разрядные данные.

Современные ядра ARM построены по архитектуре ARMv7 делятся на три группы:

  1. Cortex – M4F, -M3,-M1 (микроконтроллеры, нет MMU (memory ménage unit)

  2. Cortex R4, R5, R7 (применяется для систем реального времени)

  3. Cortex- A5, –A7, -A8, -A9, -A15 (есть MMU и обычно работают под управлением систем общего назначения типа Android, Linux, Windows)

  4. Cortex-A50 (перспективная разработка 64-x разрядного ядра для серверных применений, построена на архитектуре ARMv8)

Основные особенности процессоров серии Cortex-A.

Все инструкции фиксированной длины – 32 бита. Каждая инструкция выполняется за 1 такт.

Как любой RISC процессор, построен по принципу Load/Store. Т.е. данные сначала загружаются в регистры, а потом обрабатываются.

Имеется всего 37 регистров:

Из них 30 регистров общего назначения, однако одновременно доступны только 15.

1 счетчик команд.

6 статусных регистров для хранения флагов.

На Cortex-A строятся системы на кристалле, совмещающие ядро и периферийные устройства ввода\вывода.

Все эти устройства отображаются на адресное пространство ядра.

РОН R0-R12 предназначены для нужд пользователя и не выполняют никаких других функций.

R13 – указатель стека (SP – stack pointer)

R14 – регистр связи (LR- Link Register). При вызове подпрограммы адрес возврата автоматически сохраняется в регистре R14.

Это можно использовать для “концевых” функций, но если функция вызывает другую функцию, то содержимое R14 (адрес возврата) надо сохранить в стеке.

R15 – счетчик команд (PC – program counter).

Работать с R13-R15 можно как с обычными регистрами (команда MOV).

Кроме регистров R0-R15 имеется регистр статуса (Current program status register)

Архитектура ARMv4T

Архитектура ARMv6

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

Биты I F запрещают или разрешают две линии внешних прерываний. Периферийные модули (таймеры/счетчики, АЦП) подключены к этим двум линиям. Для запрещения прерывания надо записать 1. (а не 0).

Архитектура ARMv4T (и выше) поддерживают два набора команд:

  • 32-х разрядный набор команд ARM

  • 16-и разрядный Thumb (повышенной плотности)

Бит T в статусном регистре определяет режим работы.

Последние 5 бит статусного регистра являются флагами режима. Всего существует 7 режимов работы.

Прикладные программы работают в режиме User при этом доступны R0... R15 и CPSR.

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

Более того в режиме быстрых прерываний дублируется и регистры R7… R12. Это позволяет сразу перейти к обработке прерывания не тратя времени на сохранение регистров в сетке.

Во всех режимах, кроме User есть дополнительный статусные регистр

При генерации прерывания текущее значение статусного регистра сохраняется в регистре SPSR. (Saved Program Status Register – SPSR). После выхода из подпрограммы содержимое статусного регистра восстанавливается.

Набор инструкций имеет следующие особенности

  1. есть 3-х операндные инструкции (два входных операнда и одни результат)

Пример: SUB R0, R1, R2 ; R0=R1-R2

  1. загрузка/выгрузка в память нескольких регистров в одной команде

Пример: LDMIA R3!, {R0-R2,R4} – загрузка регистров R0,R1,R2 И R4 начиная с адреса из регистра R3. значение в этом регистре увеличивается на 16 (т.е. N=4).

  1. условное выполнение в каждой инструкции (позволяет избавиться от команд условного перехода)

ADDEQ R0,R1,R2

Таблица суффиксов условного выполнения:

Достоинство:

А) уменьшается число переходов и как следствие нет простоя загрузки конвейера

Б) увеличивается плотность кода

Если условных инструкций больше чем длина конвейера то надо использовать команды перехода.

  1. применение операции сдвига над операндом

тракт данных процессоров АRM имеет дополнительный сдвиговый регистр:

Barrel Shifter – позволяет сдвигать вправо, влево, осуществлять циклический сдвиг. Операция сдвига выполняется в одной инструкции совместно с основным действием.

Пример:

MOV R7,R5, LSL #2 - осуществляется левый сдвиг на 2 бита. Т.е. R5 умножается на 4 и далее результат заносится в R7.

ADD R0,R1,R1 LSL #1; R0=3*R1

Компьютерные шины

Шина – несколько проводников, предназначенные для выполнения одной задачи, соединяющих различные устройства вычислительной системы.

Шины классифицируют по следующим признакам.

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

  1. Синхронные и асинхронные. В синхронной шине присутствует сигнал тактирования, для указания момента времени передачи очередной порции данных. В асинхронной шине поступление очередного пакета данных недетерминировано во времени.

  1. Внешние и внутренние. Внутренние шины предназначены для коммуникации блоков внутри устройства. Внешние шины позволят к вычислительной системе подключить конструктивно оформленные внешние устройства

Примеры шин

  1. USB – внешняя последовательная асинхронная шина

  2. I2C – внутренняя последовательная асинхронная шина.

  3. SPI - внутренняя последовательная асинхронная шина

  4. AXI – синхронная параллельная шина, разработанная компанией

ARM, для соединения цифровых блоков внутри кристалла.

  1. ISA – параллельная внутренняя синхронная шина, в настоящее время считается устаревшей.

  2. PCI (Peripheral component interconnect)– замена шины ISA. (параллельная внутренняя синхронная).

Синхросигнал CLK может иметь частоту 33МГц или 66МГц. Разрядность шины данных 64 бита. Следовательно, пропускная способность 64*66\8 = 528 Мбайт/с.

Напряжение логической 1 = 3.3вольт или 5 вольт.

PCI основана на архитектуре общей шины и имеет следующие сигнальные линии:

  • CLK- сигнал синхронизации (1 бит)

  • AD - линии адреса\данных (32 или 64 бита) По этой линии передается сначала адрес устройства которому предназначены данные, а затем и сами данные.

  • IRDY# – сигнал готовности подчиненного устройства (1 бит)

  • TRDY# – сигнал готовности задающего устройства (1 бит)

  • С\BE# – идентификатор команды ( 4 бита)

  • FRAME# – указывает прохождение транзакции (1 бит)

  • DVESEL# – устанавливается в 0, если подчиненное устройство получило адрес и готовиться к обмену

  • REQ# – запрос устройства на захват шины (1 бит)

  • GNT# – подтверждение захвата шины (1 бит)

Пример временной диаграммы передачи данных:

  1. PCI Express - внутренняя последовательная синхронная шина. Использует программную модель шины PCI.

Скорость передачи PCI Express 3.0 х1 2ГБайта/с в обе стороны

Скорость передачи PCI Express 3.0 х16 32ГБайта/с в обе стороны

PCI Express х1 – имеет одну дифференциальную пару для сигала синхронизации, одну дифференциальную пару для передачи и одну для приема.

PCI Express х16 имеет одну дифференциальную пару для синхросигнала, 16 для передачи и 16 для приема.

Дифференциальная пара – два проводника передающие одноразрядный сигнал (т.е. заменяют один проводник). Логический сигнал в дифференциальной паре определяется относительно не общей точки, а внутри пары.

Применение дифференциальной пары повышает помехоустойчивость и следовательно позволяет работать на более высоких частотах.

8

Соседние файлы в папке Lek2013