Использование протокола TCPIP в аппаратном средстве
Содержание
ВВЕДЕНИЕ ............................................................................................. 9
1 ОСНОВЫ СИСТЕМ АППАРАТНОГО УПРАВЛЕНИЯ ................... 10
1.1 ВЫБОР ДЛЯ РЕАЛИЗАЦИИ АППАРАТНЫХ СРЕДСТВ ........................... 10
1.1.1 AVR32 ........................................................................................ 11
1.2 TCP/IP ПРОТОКОЛ.......................................................................... 22
1.2.1 УРОВНИ СТЕКА TCP/IP ............................................................... 23
1.2.2 ФИЗИЧЕСКИЙ УРОВЕНЬ ............................................................... 24
1.2.3 КАНАЛЬНЫЙ УРОВЕНЬ . .24
1.2.4 СЕТЕВОЙ УРОВЕНЬ ........24
1.2.5 ТРАНСПОРТНЫЙ УРОВЕНЬ ........................................................... 25
1.2.6 ПРИКЛАДНОЙ УРОВЕНЬ................................................................ 25
1.3 ОТЛАДОЧНАЯ ПЛАТА
1.3.1 ОТЛИЧИТЕЛЬНЫЕ ОСОБЕННОСТИ ................................................ 26
1.3.2 ОСНОВНЫЕ ПАРАМЕТРЫ.............................................................. 27
2 ОПЕРАЦИОННАЯ СИСТЕМА ДЛЯ СИСТЕМЫ АППАРАТНОГО
УПРАВЛЕНИЯ ............................................................................................... 28
2.1 ЯДРО ОПЕРАЦИОННОЙ СИСТЕМЫ ................................................... 28
2.2 БИБЛИОТЕКИ ПОД АППАРАТНУЮ ЧАСТЬ.......................................... 29
3 ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА СИСТЕМЫ АППАРАТНОГО
УПРАВЛЕНИЯ ............................................................................................... 32
3.1 ПРИНЦИП РАБОТЫ СИСТЕМЫ.......................................................... 32
3.2 БИБЛИОТЕКА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ. ................................... 33
3.2.1 AVRSTUDIO ................................................................................ 34
3.3 ВЕБ СЕРВЕР .................................................................................... 36
3.3.1 DHCP. ........................................................................................ 36
3.3.2 СТРУКТУРА СООБЩЕНИЙ DHCP. ................................................. 37
3.4 СОЗДАНИЕ ВЕБ ПРИЛОЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ БИБЛИОТЕКИ
ПРОГРАММ УПРАВЛЕНИЯ................................................................ .. 40
ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕР РАЗРАБОТКИ
МОДУЛЯ АППАРАТНОГО УПРАВЛЕНИЯ ЧЕРЕЗ ПРОТОКОЛ TCP/IP ... 42
4.1 ЦЕЛЬ ПРОЕКТА . ............................................................................. 42
4.2 ТЕМА ПРОЕКТА ............................................................................. 42
4.3 ВВЕДЕНИЕ..................................................................................... 42
4.4 РАСЧЁТ СТОИМОСТИ РАБОТЫ ПО ПРОЕКТИРОВАНИЮ И РАЗРАБОТКЕ
ЧЕРЕЗ ПРОГРАММЫ ДЛЯ МОДУЛЯ АППАРАТНОГО УПРАВЛЕНИЯ ПРОТОКОЛА TCP/IP......................................................................................................... . 46
4.5 Цена интеллектуального труда . ................................................... 55
5 БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ .................................. 56
5.1 ХАРАКТЕРИСТИКА РАЗРАБАТЫВАЕМОГО ПРИБОРА И ПОМЕЩЕНИЙ ПО
СТЕПЕНИ ОПАСНОСТИ ПОРАЖЕНИЯ ЧЕЛОВЕКА ЭЛЕКТРИЧЕСКИМ ТОКОМ.............................................................................................................57
5.1.1 РАСЧЕТ ЗАЗЕМЛЕНИЯ АППАРАТУРЫ.............................................. 61
5.2 ВЫВОД ПО РАЗДЕЛУ ОХРАНЫ БЕЗОПАСНОСТИ ЖИЗНЕДЕЯТЕЛЬНОСТИ
..................................................................................................................... 67
5.3 РАСЧЕТ СИСТЕМЫ КОНДИЦИОНИРОВАНИЯ...................................... 65
5.4 РАСЧЁТ ЕСТЕСТВЕННОГО ОСВЕЩЕНИЯ............................................ 66
5.4.1 РАСЧЁТ ИСКУССТВЕННОГО ОСВЕЩЕНИЯ МЕТОДОМ КОЭФФИЦИЕНТА
ИСПОЛЬЗОВАНИЯ......................................................................................... .. 68
5.4.2 РАСЧЕТ ИСКУССТВЕННОГО ОСВЕЩЕНИЯ ТОЧЕЧНЫМ МЕТОДОМ......... 70
ЗАКЛЮЧЕНИЕ..................................................................................... 72
СПИСОК ЛИТЕРАТУРЫ ..................................................................... 73
1.1 Выбор для реализации аппаратных средств
Данный дипломный проект посвящен разработки системы удаленного
контроля над различной аппаратурой и механизмов посредством
использования TCP/IP протокола. Суть подобной системы заключается в том,
что вместо того чтобы заменить непосредственный контроль, на удаленный
контроль над различными приборами и агрегатами. Особенность данного
проекта заключена в том, что удаленный контроль осуществляется
посредством использования обычных локальных сетей и сети Internet. Т.е. на
производстве для осуществления контроля над техпроцессом вместо того,
чтобы покупать специализированное оборудование, использующее
специфическое ПО, использовать универсальные устройства, соединенные в
сеть и управляемые удаленно через Internet или внутри локальной сети
используя обычный интернет браузер. Для этих целей был подобрана серия
32-х битных микроконтроллеров фирмы AtmelAT32UC3.
Данные контроллеры отвечают необходимым требованиям для реализации цели
проекта. Для упрощения разработки ПО, была использована на базе контроллера
AT32UC30512 отладочная платаEVK1105
(рисунок 1.1),содержащая все необходимые аппаратные компоненты для разработки и
тестирования ПО. Благодаря этому была исчерпана необходимость
разработки первичного тестового модуля.
—32 битные микроконтроллеры архитектуры RISC,
анонсированные фирмой Atmel в 2006 году. Призваны конкурировать с
архитектурами фирмы ARM. Может использоваться в КПК и других
мобильных высокопроизводительных устройствах. Обладает
примечательным соотношением производительность/тактовая частота. Имеет
2 семейства: AVR32 AP и AVR32 UC3.
В современном мире растет количество приборов для обработки
нетекстовой информации, включаемой в понятие мультимедиа.
Мультимедийные данные обрабатываются
во всех биометрических
приложениях, пользовательских системах позиционирования (GPS),
развлекательных приборах для повседневной жизни и прочих устройствах,
которые сегодня называют мультимедийными. В данной статье
рассказывается о новом аппаратном решении фирмы Atmel, ориентированном
на такие задачи - микроконтроллере AP7000 c архитектурой AVR32.
Всё новые и новые задачи, стоящие перед мультимедийными
приборами, требуют выполнения всё более сложных алгоритмов обработки
мультимедийной (и не только!) информации, что увеличивает вероятность
достижения предела возможностей любого встраиваемого микроконтроллера.
Алгоритмы быстрого преобразования Фурье (FFT), инверсного дискретного
косинусного преобразования (iDCT) и другие математически-насыщенные
алгоритмы, которые редко реализовывались на встраиваемых
микроконтроллерах еще несколько лет назад, становятся более
востребованными сегодня. В мультимедийных системах такие алгоритмы, как
правило, используются для кодирования/декодирования данных, в т.ч.
форматов MP3 и MPEG-4. Это требует высокой производительности
элементной базы, на которой построены указанные приборы.
Исторически, задача повышения производительности решается за счет
увеличения рабочей тактовой частоты процессора либо реализации
многоядерных решений
(ARM+DSP). По причине высокого
энергопотребления такие решения могут использоваться не во всех
встраиваемых системах, да и отладка двуядерных микроконтроллеров -
задача не из легких. Массогабаритные характеристики портативных
приборов определяются не только размерами печатной платы, но и батарей (а
чем ниже энергопотребление, тем меньше и легче батарея).
Рассматривая задачу в таком контексте, складываются следующие
требования к микроконтроллеру:
Высокая производительность;
Низкое энергопотребление;
Высокая степень интеграции;
Простота использования;
Развитые средства разработки.
Задачей построения микроконтроллера с перечисленными выше
требованиями еще в 2001 году занялась группа разработчиков компании
Atmel, которая предложила решать её не повышением тактовой частоты, а
улучшением архитектуры ядра процессора, который должен выполнить
максимальное количество действий за один такт. Были начаты разработки в
следующих направлениях:
максимально уменьшить количество инструкций пересылки
данных (записи в память/чтения из памяти). Количество команд пересылки
данных в RISC-контроллерах составляет порядка 30% от общего числа
команд. Каждая из этих команд требует одного и более тактов. Избавление от
этих операций должно дать существенный прирост производительности;
увеличить эффективность выполнения каждой инструкции в
конвейере за счет операций с множественными данными (SIMD,
SingleInstructionMultipleData). Многие алгоритмы, особенно в
мультимедийных приложениях, требуют выполнения упорядоченных
циклических операций над потоковыми данными. Так, например, при поиске
смещения элементов движущихся фрагментов изображения при
кодировании/декодировании MPEG-4, требуется вычисление суммы
абсолютных разностей (SAD) в макроблоке размером 8х8 (или 16х16),
которая находится для каждого пикселя в каждом кадре. Вычисление
значения (1.1) потребует 24 операции на каждый пиксель (а их, допустим,
320х240):
где (x,y) - координаты точки, (dx,dy) - смещение относительно этой
точки, Ниже приведен фрагмент кода на С, написанный для выражения
(1.1).
/* Fromsad.c of the open source xvid codec */
uint32_t sad = 0;
uint32_t j;
uint8_tconst *ptr_cur = cur;
uint8_tconst *ptr_ref = ref;
for (j = 0; j < 8; j++) {
//Compute SAD for 4 bytes
sad += ABS(ptr_cur[0] - ptr_ref[0]);
sad += ABS(ptr_cur[1] - ptr_ref[1]);
sad += ABS(ptr_cur[2] - ptr_ref[2]);
sad += ABS(ptr_cur[3] - ptr_ref[3]);
//Compute SAD for next 4 bytes
sad += ABS(ptr_cur[4] - ptr_ref[4]);
sad += ABS(ptr_cur[5] - ptr_ref[5]);
sad += ABS(ptr_cur[6] - ptr_ref[6]);
sad += ABS(ptr_cur[7] - ptr_ref[7]);
ptr_cur += stride;
ptr_ref += stride;
Если взять за 100% всю операцию декодирования MPEG-4, то
приведенный выше фрагмент кода занимает от 60 до 70% этого
процессорного времени. Использование инструкций с множественными
данными позволит оптимизировать данный алгоритм, так как за один такт
можно выполнить несколько однотипных операций с разными входными
данными;
повысить производительность машинного цикла за счет
использования свободных ресурсов конвейера. Некоторые арифметические
операции требуют одного такта на команду, а другие - существенно больше
(если нет аппаратного математического акселератора, то на RISC-процессоре
операция деления займет 32 такта). Если процессор будет ждать выполнения
многотактовой операции до выполнения следующей команды, то
эффективность работы всего конвейера снижается. Использование свободных
ресурсов конвейера для несвязанных с выполняемой операцией вычислений
позволит повысить его эффективность;
минимизировать задержки за счет прогнозирования переходов в
циклах. В мультимедийных и криптографических алгоритмах всегда
присутствуют блоки кода с внешним и внутренним циклом. Переход к
внутреннему циклу может занимать от трех до пяти тактов. Так как таких
циклических переходов может выполняться сотни (тысячи, десятки тысяч) в
секунду, то задержки на переходы становятся заметными на фоне общего
времени выполнения программы. Реализация логики, которая буде
прогнозировать переход, позволит снизить до нуля задержку на переход уже
после первого прохождения цикла;
повышение плотности кода. В настоящее время относительная
стоимость памяти программ невелика, поэтому мало кто обращает внимание
на возможность оптимизации кода в своей программе. Но такой подход не
является верным, так как в контроллерах, где используется кэш-память
программ, не оптимально написанный код может привести к снижению
производительности. Чем компактнее исполняемый код, тем большая
полезная часть программы сможет уместиться в кэш-памяти, а это значит, что
будет меньше промахов кэш-памяти и меньше обращений к внешней памяти.
В начале 2006 года корпорация Atmel анонсировала новое ядро AVR32
и микроконтроллер AT32AP7000 на его основе. Ядро AVR32 показало лучшие
значения по производительности и энергопотреблению по сравнению с
аналогичными микросхемами, ориентированными на рынок мультимедийных
приложений. Так, например, алгоритм iDCT (инверсное дискретное
косинусное преобразование) платформа AVR32 может выполнять на 35%
быстрее, чем ядро ARM11. Такой запас можно проиллюстрировать по-
другому: декодирование с частотой 30 кадров/с видеофрагмента размером
"четверть" VGA (QVGA) формата MPEG-4 на платформе AVR32 может
выполняться на частоте 100МГц, в то время как ARM11 сможет выполнять
эту задачу только на частоте от 150МГц. При выполнении общепризнанных
тестов на производительность консорциума EEMBC AVR32 демонстрирует
превосходство над архитектурами ARM9 и ARM11. На рисунке 1.2
приведены нормализованные результаты оценки производительности AVR32,
ARM11 и ARM9 (рассчитаны в условных единицах на одинаковой частоте,
где большее значение на графике обозначает большую производительность).
Несомненно, разработчикам Atmel удалось создать оригинальное ядро
нового поколения, способное конкурировать с лучшими микроконтроллерами
для мультимедиа-приложений.
Среди оригинальных нововведений разработчики кристалла выделяют
следующие параметры.
Инструкции записи в память/чтения из памяти могут оперировать с
байтом (8-бит), полусловом (16-бит), словом (32-бит) и двойным словом (64-
бит). Инструкции комбинированы с арифметическими операциями над
указателями, что обеспечивает повышение производительности при доступе
к таблицам, структурам и локальным переменным. При обмене байтами и
полусловами поддерживаются знаковое и нулевое расширения данных.
Рисунок 1.2 – Нормализованные результаты оценки
производительности AVR32, ARM11 и ARM9
Среди популярных криптографических алгоритмов можно выделить
алгоритмы блочного шифрования Blowfish и Triple-DES. Все эти алгоритмы
используют особую адресацию в массиве данных, требующую длинной
последовательности инструкций. Набор инструкций AVR32 оптимален для
работы этих алгоритмов благодаря наличию инструкций чтения слова с
извлечением указателя.
Выражение (1.2) включает четыре операции доступа к памяти, которые
извлекают по одному байту в 32-разрядном слове, дополняя их нулями, и
добавляют к базовому указателю. На RISC-платформах такая операция будет
выполнена за 14 инструкций, в то время как AVR32 потребует в два раза
меньше операций за счет использования инструкций чтения с извлечением
указателя, так как все четыре операции доступа к памяти будут выполнены за
4 такта со значениями смещения (offset0..3), хранящимися в одном регистре.
Для повышения эффективности операций ввода-вывода могут быть
использованы команды записи в память/чтения из памяти нескольких
регистров (ldm, stm). Например, они могут использоваться для быстрого
возврата из подпрограмм. В этом случае, при вызове подпрограммы, команда
stm будет сохранять в кэш-памяти инструкций адрес возврата, а команда ldm -
извлекать его, одновременно записывая это значение в программный счетчик.
Это избавит от необходимости выполнения команды возврата в конце
подпрограммы.
Ядро AVR32 имеет 3 подконвейера (рисунок 1.3) и поддерживает
одновременное исполнение несвязанных операций с изменением
последовательности, предусмотренной программой. Например, 32-тактная
команда деления поступает в блок умножения, а инструкции, следующие за
ней, могут выполняться в ALU или блоке пересылки данных в течении этих
32-х тактов....
ВВЕДЕНИЕ ............................................................................................. 9
1 ОСНОВЫ СИСТЕМ АППАРАТНОГО УПРАВЛЕНИЯ ................... 10
1.1 ВЫБОР ДЛЯ РЕАЛИЗАЦИИ АППАРАТНЫХ СРЕДСТВ ........................... 10
1.1.1 AVR32 ........................................................................................ 11
1.2 TCP/IP ПРОТОКОЛ.......................................................................... 22
1.2.1 УРОВНИ СТЕКА TCP/IP ............................................................... 23
1.2.2 ФИЗИЧЕСКИЙ УРОВЕНЬ ............................................................... 24
1.2.3 КАНАЛЬНЫЙ УРОВЕНЬ . .24
1.2.4 СЕТЕВОЙ УРОВЕНЬ ........24
1.2.5 ТРАНСПОРТНЫЙ УРОВЕНЬ ........................................................... 25
1.2.6 ПРИКЛАДНОЙ УРОВЕНЬ................................................................ 25
1.3 ОТЛАДОЧНАЯ ПЛАТА
1.3.1 ОТЛИЧИТЕЛЬНЫЕ ОСОБЕННОСТИ ................................................ 26
1.3.2 ОСНОВНЫЕ ПАРАМЕТРЫ.............................................................. 27
2 ОПЕРАЦИОННАЯ СИСТЕМА ДЛЯ СИСТЕМЫ АППАРАТНОГО
УПРАВЛЕНИЯ ............................................................................................... 28
2.1 ЯДРО ОПЕРАЦИОННОЙ СИСТЕМЫ ................................................... 28
2.2 БИБЛИОТЕКИ ПОД АППАРАТНУЮ ЧАСТЬ.......................................... 29
3 ПРОЕКТИРОВАНИЕ И РАЗРАБОТКА СИСТЕМЫ АППАРАТНОГО
УПРАВЛЕНИЯ ............................................................................................... 32
3.1 ПРИНЦИП РАБОТЫ СИСТЕМЫ.......................................................... 32
3.2 БИБЛИОТЕКА УПРАВЛЯЮЩЕЙ ПРОГРАММЫ. ................................... 33
3.2.1 AVRSTUDIO ................................................................................ 34
3.3 ВЕБ СЕРВЕР .................................................................................... 36
3.3.1 DHCP. ........................................................................................ 36
3.3.2 СТРУКТУРА СООБЩЕНИЙ DHCP. ................................................. 37
3.4 СОЗДАНИЕ ВЕБ ПРИЛОЖЕНИЯ С ИСПОЛЬЗОВАНИЕМ БИБЛИОТЕКИ
ПРОГРАММ УПРАВЛЕНИЯ................................................................ .. 40
ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕР РАЗРАБОТКИ
МОДУЛЯ АППАРАТНОГО УПРАВЛЕНИЯ ЧЕРЕЗ ПРОТОКОЛ TCP/IP ... 42
4.1 ЦЕЛЬ ПРОЕКТА . ............................................................................. 42
4.2 ТЕМА ПРОЕКТА ............................................................................. 42
4.3 ВВЕДЕНИЕ..................................................................................... 42
4.4 РАСЧЁТ СТОИМОСТИ РАБОТЫ ПО ПРОЕКТИРОВАНИЮ И РАЗРАБОТКЕ
ЧЕРЕЗ ПРОГРАММЫ ДЛЯ МОДУЛЯ АППАРАТНОГО УПРАВЛЕНИЯ ПРОТОКОЛА TCP/IP......................................................................................................... . 46
4.5 Цена интеллектуального труда . ................................................... 55
5 БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ .................................. 56
5.1 ХАРАКТЕРИСТИКА РАЗРАБАТЫВАЕМОГО ПРИБОРА И ПОМЕЩЕНИЙ ПО
СТЕПЕНИ ОПАСНОСТИ ПОРАЖЕНИЯ ЧЕЛОВЕКА ЭЛЕКТРИЧЕСКИМ ТОКОМ.............................................................................................................57
5.1.1 РАСЧЕТ ЗАЗЕМЛЕНИЯ АППАРАТУРЫ.............................................. 61
5.2 ВЫВОД ПО РАЗДЕЛУ ОХРАНЫ БЕЗОПАСНОСТИ ЖИЗНЕДЕЯТЕЛЬНОСТИ
..................................................................................................................... 67
5.3 РАСЧЕТ СИСТЕМЫ КОНДИЦИОНИРОВАНИЯ...................................... 65
5.4 РАСЧЁТ ЕСТЕСТВЕННОГО ОСВЕЩЕНИЯ............................................ 66
5.4.1 РАСЧЁТ ИСКУССТВЕННОГО ОСВЕЩЕНИЯ МЕТОДОМ КОЭФФИЦИЕНТА
ИСПОЛЬЗОВАНИЯ......................................................................................... .. 68
5.4.2 РАСЧЕТ ИСКУССТВЕННОГО ОСВЕЩЕНИЯ ТОЧЕЧНЫМ МЕТОДОМ......... 70
ЗАКЛЮЧЕНИЕ..................................................................................... 72
СПИСОК ЛИТЕРАТУРЫ ..................................................................... 73
1.1 Выбор для реализации аппаратных средств
Данный дипломный проект посвящен разработки системы удаленного
контроля над различной аппаратурой и механизмов посредством
использования TCP/IP протокола. Суть подобной системы заключается в том,
что вместо того чтобы заменить непосредственный контроль, на удаленный
контроль над различными приборами и агрегатами. Особенность данного
проекта заключена в том, что удаленный контроль осуществляется
посредством использования обычных локальных сетей и сети Internet. Т.е. на
производстве для осуществления контроля над техпроцессом вместо того,
чтобы покупать специализированное оборудование, использующее
специфическое ПО, использовать универсальные устройства, соединенные в
сеть и управляемые удаленно через Internet или внутри локальной сети
используя обычный интернет браузер. Для этих целей был подобрана серия
32-х битных микроконтроллеров фирмы AtmelAT32UC3.
Данные контроллеры отвечают необходимым требованиям для реализации цели
проекта. Для упрощения разработки ПО, была использована на базе контроллера
AT32UC30512 отладочная платаEVK1105
(рисунок 1.1),содержащая все необходимые аппаратные компоненты для разработки и
тестирования ПО. Благодаря этому была исчерпана необходимость
разработки первичного тестового модуля.
—32 битные микроконтроллеры архитектуры RISC,
анонсированные фирмой Atmel в 2006 году. Призваны конкурировать с
архитектурами фирмы ARM. Может использоваться в КПК и других
мобильных высокопроизводительных устройствах. Обладает
примечательным соотношением производительность/тактовая частота. Имеет
2 семейства: AVR32 AP и AVR32 UC3.
В современном мире растет количество приборов для обработки
нетекстовой информации, включаемой в понятие мультимедиа.
Мультимедийные данные обрабатываются
во всех биометрических
приложениях, пользовательских системах позиционирования (GPS),
развлекательных приборах для повседневной жизни и прочих устройствах,
которые сегодня называют мультимедийными. В данной статье
рассказывается о новом аппаратном решении фирмы Atmel, ориентированном
на такие задачи - микроконтроллере AP7000 c архитектурой AVR32.
Всё новые и новые задачи, стоящие перед мультимедийными
приборами, требуют выполнения всё более сложных алгоритмов обработки
мультимедийной (и не только!) информации, что увеличивает вероятность
достижения предела возможностей любого встраиваемого микроконтроллера.
Алгоритмы быстрого преобразования Фурье (FFT), инверсного дискретного
косинусного преобразования (iDCT) и другие математически-насыщенные
алгоритмы, которые редко реализовывались на встраиваемых
микроконтроллерах еще несколько лет назад, становятся более
востребованными сегодня. В мультимедийных системах такие алгоритмы, как
правило, используются для кодирования/декодирования данных, в т.ч.
форматов MP3 и MPEG-4. Это требует высокой производительности
элементной базы, на которой построены указанные приборы.
Исторически, задача повышения производительности решается за счет
увеличения рабочей тактовой частоты процессора либо реализации
многоядерных решений
(ARM+DSP). По причине высокого
энергопотребления такие решения могут использоваться не во всех
встраиваемых системах, да и отладка двуядерных микроконтроллеров -
задача не из легких. Массогабаритные характеристики портативных
приборов определяются не только размерами печатной платы, но и батарей (а
чем ниже энергопотребление, тем меньше и легче батарея).
Рассматривая задачу в таком контексте, складываются следующие
требования к микроконтроллеру:
Высокая производительность;
Низкое энергопотребление;
Высокая степень интеграции;
Простота использования;
Развитые средства разработки.
Задачей построения микроконтроллера с перечисленными выше
требованиями еще в 2001 году занялась группа разработчиков компании
Atmel, которая предложила решать её не повышением тактовой частоты, а
улучшением архитектуры ядра процессора, который должен выполнить
максимальное количество действий за один такт. Были начаты разработки в
следующих направлениях:
максимально уменьшить количество инструкций пересылки
данных (записи в память/чтения из памяти). Количество команд пересылки
данных в RISC-контроллерах составляет порядка 30% от общего числа
команд. Каждая из этих команд требует одного и более тактов. Избавление от
этих операций должно дать существенный прирост производительности;
увеличить эффективность выполнения каждой инструкции в
конвейере за счет операций с множественными данными (SIMD,
SingleInstructionMultipleData). Многие алгоритмы, особенно в
мультимедийных приложениях, требуют выполнения упорядоченных
циклических операций над потоковыми данными. Так, например, при поиске
смещения элементов движущихся фрагментов изображения при
кодировании/декодировании MPEG-4, требуется вычисление суммы
абсолютных разностей (SAD) в макроблоке размером 8х8 (или 16х16),
которая находится для каждого пикселя в каждом кадре. Вычисление
значения (1.1) потребует 24 операции на каждый пиксель (а их, допустим,
320х240):
где (x,y) - координаты точки, (dx,dy) - смещение относительно этой
точки, Ниже приведен фрагмент кода на С, написанный для выражения
(1.1).
/* Fromsad.c of the open source xvid codec */
uint32_t sad = 0;
uint32_t j;
uint8_tconst *ptr_cur = cur;
uint8_tconst *ptr_ref = ref;
for (j = 0; j < 8; j++) {
//Compute SAD for 4 bytes
sad += ABS(ptr_cur[0] - ptr_ref[0]);
sad += ABS(ptr_cur[1] - ptr_ref[1]);
sad += ABS(ptr_cur[2] - ptr_ref[2]);
sad += ABS(ptr_cur[3] - ptr_ref[3]);
//Compute SAD for next 4 bytes
sad += ABS(ptr_cur[4] - ptr_ref[4]);
sad += ABS(ptr_cur[5] - ptr_ref[5]);
sad += ABS(ptr_cur[6] - ptr_ref[6]);
sad += ABS(ptr_cur[7] - ptr_ref[7]);
ptr_cur += stride;
ptr_ref += stride;
Если взять за 100% всю операцию декодирования MPEG-4, то
приведенный выше фрагмент кода занимает от 60 до 70% этого
процессорного времени. Использование инструкций с множественными
данными позволит оптимизировать данный алгоритм, так как за один такт
можно выполнить несколько однотипных операций с разными входными
данными;
повысить производительность машинного цикла за счет
использования свободных ресурсов конвейера. Некоторые арифметические
операции требуют одного такта на команду, а другие - существенно больше
(если нет аппаратного математического акселератора, то на RISC-процессоре
операция деления займет 32 такта). Если процессор будет ждать выполнения
многотактовой операции до выполнения следующей команды, то
эффективность работы всего конвейера снижается. Использование свободных
ресурсов конвейера для несвязанных с выполняемой операцией вычислений
позволит повысить его эффективность;
минимизировать задержки за счет прогнозирования переходов в
циклах. В мультимедийных и криптографических алгоритмах всегда
присутствуют блоки кода с внешним и внутренним циклом. Переход к
внутреннему циклу может занимать от трех до пяти тактов. Так как таких
циклических переходов может выполняться сотни (тысячи, десятки тысяч) в
секунду, то задержки на переходы становятся заметными на фоне общего
времени выполнения программы. Реализация логики, которая буде
прогнозировать переход, позволит снизить до нуля задержку на переход уже
после первого прохождения цикла;
повышение плотности кода. В настоящее время относительная
стоимость памяти программ невелика, поэтому мало кто обращает внимание
на возможность оптимизации кода в своей программе. Но такой подход не
является верным, так как в контроллерах, где используется кэш-память
программ, не оптимально написанный код может привести к снижению
производительности. Чем компактнее исполняемый код, тем большая
полезная часть программы сможет уместиться в кэш-памяти, а это значит, что
будет меньше промахов кэш-памяти и меньше обращений к внешней памяти.
В начале 2006 года корпорация Atmel анонсировала новое ядро AVR32
и микроконтроллер AT32AP7000 на его основе. Ядро AVR32 показало лучшие
значения по производительности и энергопотреблению по сравнению с
аналогичными микросхемами, ориентированными на рынок мультимедийных
приложений. Так, например, алгоритм iDCT (инверсное дискретное
косинусное преобразование) платформа AVR32 может выполнять на 35%
быстрее, чем ядро ARM11. Такой запас можно проиллюстрировать по-
другому: декодирование с частотой 30 кадров/с видеофрагмента размером
"четверть" VGA (QVGA) формата MPEG-4 на платформе AVR32 может
выполняться на частоте 100МГц, в то время как ARM11 сможет выполнять
эту задачу только на частоте от 150МГц. При выполнении общепризнанных
тестов на производительность консорциума EEMBC AVR32 демонстрирует
превосходство над архитектурами ARM9 и ARM11. На рисунке 1.2
приведены нормализованные результаты оценки производительности AVR32,
ARM11 и ARM9 (рассчитаны в условных единицах на одинаковой частоте,
где большее значение на графике обозначает большую производительность).
Несомненно, разработчикам Atmel удалось создать оригинальное ядро
нового поколения, способное конкурировать с лучшими микроконтроллерами
для мультимедиа-приложений.
Среди оригинальных нововведений разработчики кристалла выделяют
следующие параметры.
Инструкции записи в память/чтения из памяти могут оперировать с
байтом (8-бит), полусловом (16-бит), словом (32-бит) и двойным словом (64-
бит). Инструкции комбинированы с арифметическими операциями над
указателями, что обеспечивает повышение производительности при доступе
к таблицам, структурам и локальным переменным. При обмене байтами и
полусловами поддерживаются знаковое и нулевое расширения данных.
Рисунок 1.2 – Нормализованные результаты оценки
производительности AVR32, ARM11 и ARM9
Среди популярных криптографических алгоритмов можно выделить
алгоритмы блочного шифрования Blowfish и Triple-DES. Все эти алгоритмы
используют особую адресацию в массиве данных, требующую длинной
последовательности инструкций. Набор инструкций AVR32 оптимален для
работы этих алгоритмов благодаря наличию инструкций чтения слова с
извлечением указателя.
Выражение (1.2) включает четыре операции доступа к памяти, которые
извлекают по одному байту в 32-разрядном слове, дополняя их нулями, и
добавляют к базовому указателю. На RISC-платформах такая операция будет
выполнена за 14 инструкций, в то время как AVR32 потребует в два раза
меньше операций за счет использования инструкций чтения с извлечением
указателя, так как все четыре операции доступа к памяти будут выполнены за
4 такта со значениями смещения (offset0..3), хранящимися в одном регистре.
Для повышения эффективности операций ввода-вывода могут быть
использованы команды записи в память/чтения из памяти нескольких
регистров (ldm, stm). Например, они могут использоваться для быстрого
возврата из подпрограмм. В этом случае, при вызове подпрограммы, команда
stm будет сохранять в кэш-памяти инструкций адрес возврата, а команда ldm -
извлекать его, одновременно записывая это значение в программный счетчик.
Это избавит от необходимости выполнения команды возврата в конце
подпрограммы.
Ядро AVR32 имеет 3 подконвейера (рисунок 1.3) и поддерживает
одновременное исполнение несвязанных операций с изменением
последовательности, предусмотренной программой. Например, 32-тактная
команда деления поступает в блок умножения, а инструкции, следующие за
ней, могут выполняться в ALU или блоке пересылки данных в течении этих
32-х тактов....
Толық нұсқасын 30 секундтан кейін жүктей аласыз!!!
Әлеуметтік желілерде бөлісіңіз:
Facebook | VK | WhatsApp | Telegram | Twitter
Қарап көріңіз 👇
Пайдалы сілтемелер:
» Туған күнге 99 тілектер жинағы: өз сөзімен, қысқаша, қарапайым туған күнге тілек
» Абай Құнанбаев барлық өлеңдер жинағын жүктеу, оқу
» Дастархан батасы: дастарханға бата беру, ас қайыру
Соңғы жаңалықтар:
» 2025 жылы Ораза және Рамазан айы қай күні басталады?
» Утиль алым мөлшерлемесі өзгермейтін болды
» Жоғары оқу орындарына құжат қабылдау қашан басталады?