Лекция 4. Архитектура процессоров для ВИУС РВ (1185218), страница 2
Текст из файла (страница 2)
±32 Mbyte range.• BL <subroutine>– Хранит и возвращает адрес в LR::BL func1::func1func2STMFDsp!,{regs,lr}::BL func2:LDMFDsp!,{regs,pc::::MOV pc,33ПримерWhile (i!=j)(i > j) ? i-=j : j-=i;loop CMP Ri, Rj;SUBGT Ri, Ri, Rj ; i = i - jSUBLT Rj, Rj , Ri ; j = j – IBNE loop; if “NE” (not equal),then loop34Процессор ARMПарадигма программированияНабор инструкций• Архитектура системы35Пример ARM-basedсистемы16 bit RAM32 bit RAMInterruptControllernIRQ8 bit ROMnFIQI/OPeripheralsARMCore36AMBAArbiterResetARMTICExternalRAMExternalBusInterfaceDecoder•Remap/Pause– Complete AMBA Design KitInterruptControllerAPBSystem BusPeripheral BusAMBAADKOn-chipRAMAHB or ASB– Advanced Microcontroller BusArchitecture•TimerBus InterfaceBridgeExternalROM•ACT– AMBA Compliance Testbench•PrimeCell– ARM’s AMBA compliant peripherals37Процессоры DSP• Особенности DSP процессоров• Процессор NM640338Особенности DSPпроцессоров• Аппаратная поддержка программныхциклов, кольцевых буферов• Один или несколько операндовизвлекаются из памяти в циклеисполнения команды• Нет команд R,R->R• Реализация однотактного умноженияи команд, использующих в качествеоперандов содержимое ячеек памяти39Особенности DSPпроцессоров (2)• Сложение и умножение требуют:– произвести выборку двух операндов– выполнить сложение или умножение(обычно и то и другое)– сохранить результат или удерживать егодо повторения• Множественный доступ к памяти заодин и тот же командный цикл.40Процессор NM6403• 50 Mhz• RISC ядро32-битные данные32-битные операции8 + 8 регистров• Векторное устройствоПеременная разрядностьДо 2048 параллельныхумноженейАнтоненко В.А.
Волканов Д.ЮRISC-ядро• 5-ти ступенчатый 32-разрядный конвейер;• 32- и 64-разрядные команды (обычно выполняется двеоперации в одной команде);• Два адресных генератора, адресное пространство - 16 GB;• Два 64-разрядных программируемых интерфейса сSRAM/DRAM-разделяемой памятью;• Формат данных - 32-разрядные целые;• Регистры:• 8 32-разрядных регистров общего назначения;• 8 32-разрядных адресных регистров;• Специальные регистры управления и состояния;• Два высокоскоростных коммуникационных портаввода/вывода,• Аппаратно совместимых с портами TMS320C4x.42VECTOR-сопроцессор• Переменная 1-64-разрядная длинавекторных операндов и результатов;• Формат данных - целые числа,упакованные в 64-разрядные блоки, вформе слов переменной длины от 1 до 64разрядов каждое;• Поддержка векторно-матричных иматрично-матричных операций;• Два типа функций насыщения накристалле;• Три внутренних 32x64-разрядных RAMблока43Производительность• Скалярные операции:– 50 MIPS;– 200 MOPS для 32-разрядных данных;• Векторные операции:– от 50 до 50.000+ MMAC (миллионов умноженийс накоплением в секунду);• I/O и интерфейсы с памятью:– пропускная способность двух 64-разрядныхинтерфейсов с памятью - до 800 Мбайт/сек;• I/O коммуникационные порты - до 20Мбайт/сек кажд44Особенности NM64003 (1)• Возможность работы с входными сигналами(синапсами) и весами переменной разрядности (от1 до 64 бит), задаваемой программно, чтообеспечивает уникальную способностьнейропроцессора увеличиватьпроизводительность с уменьшением разрядностиоперандов;• Быстрая подкачка новых весов на фоневычислений;• (24 операции умножения с накоплением за одинтакт при длине операндов 8 бит);• V аппаратная поддержка эмуляции нейросетейбольшой размерности;• Реализация функции активации в виде пороговойфункции или функции ограничения;45Особенности NM64003 (2)• Наличие двух широких шин (по 64 разряда) дляработы с внешней памятью любого типа: до 4МбSRAM и до 16 Гб DRAM;• Наличие двух байтовых коммуникационныхпортов ввода/вывода, аппаратно совместимых скоммуникационными портами TMS320C4x дляреализации параллельных распределенныхвычислительных систем большойпроизводительности.• Возможность работать с данными переменнойразрядности по различным алгоритмам,реализуемым с помощью хранящихся во внешнемОЗУ программ46Системы на NM 6403• MC431 – однопроцессорнаяплата• NM4 – четырехпроцессорнаяплата• 6MCBO – 4 платы по 6процессоров и платы дляобработки входных сигналовАнтоненко В.А.
Волканов Д.ЮСхема нейровычислителя48WCET•••••Постановка задачиСтатический методИзмерительный методГибридный методМетод Bound Checking49Введение• WCET – задача оценки наихудшеговремени выполнения программ• Актуальна при проектировании ианализе программ для РВ систем• В РВ системах должно бытьгарантировано время реакциисистемы на внешние события50WCET51Статический метод• Анализ программы без выполнения нареальном оборудовании• Общая схема:– Построение CFG– Анализ линейных участков– Вычисление оценки WCET по CFG52Статический метод• Пример организации:53CFG• CFG – граф:– вершины - линейные участки программы– ребра – возможные переходы54CFG…if (a>5){sleep(5);if (a>7){sleep(7);}}else{sleep(7);}sleep(5);// 11// 22// 343// 4// 5555Анализ потоковуправления• Цель:– Вычисление количества итерацийциклов– Выявление границ рекурсий– Определение недостижимых блоков56Анализ потоковуправленияif (a>10){if (a<5){… // 1}else{… // 2}}• Блок 1 - недостижим1257Анализ поведенияпроцессора• Вычисление времени выполнениялинейных участков• При этом учитывается влияниеархитектурных компонент:– Кэши– Конвееры– Предсказатель переходов58Анализ поведенияпроцессораПример: анализ поведения кэша:for ( i=0 ; i<3 ;i++){a+=i;}1 проход: кэш – промах,time = 102 проход: кэш – попадание,time = 7кэш:...3 проход: кэш – попадание,time = 7a…59Вычисление оценки WCET• Производится проход по графу ивычисление оценки WCET• Существует три подхода к вычислениюоценки:– structure-based– path-based– implicit path enumeration techniques (IPET)60Structure-based• Перебираются листья синтаксическогодерева• Выделяются группы листьев иобъединяются по определеннымправилам• После полного прохода получается однавершина• WCET = время выполнения этойвершины61Structure-based62Path-based• Перебираются все возможные путипрограммы• Для каждого пути вычисляется времявыполнения• Выбирается путь с максимальнымвременем выполнения• WCET = время этого пути63Path-based64IPET• Всем ребрам и вершинам сопоставляетсякоэффициент - число проходов по ребру иливершине• Cоставляется система уравнений следующего вида:– Коэффициент вершины = сумма коэффициентоввходящих ребер– Коэффициент вершины = сумма коэффициентовисходящих ребер• Составляется функция, равная сумме произведенийкоэффициентов на время выполнения каждоголинейного участка• WCET – максимальное значение этой функции65IPET66Измерительный метод• Программа выполняется на реальномоборудовании• Производится серия запусковпрограммы на различных наборахподготовленных входных данных• Определяется оценка наихудшеговремени выполнения67Измерительный метод• Преимущества:– Не требуется описание моделивычислителя• Недостатки:– Необходимость запуска программы нацелевом оборудовании– Подготовка входных данных, покрывающихвсе возможные пути выполнения– Оценка WCET не точна68Гибридный метод• Соединяет в себе измерительный истатический методы• Общая схема анализа:– Построение CFG– Вычисление времени выполнения каждоголинейного участка измерительным методом– Вычисление оценки wcet по графустатическим методом69Гибридный метод• Преимущества:– Сокращается количество выполнений нареальном оборудовании– Не требуется подготовка входныхданных• Недостатки:– Необходимость запуска на целевомвычислителе– Оценка WCET завышена70Bounded model checking• Технология верификации программна модели с ограничением на длинувычислений• Основана на представлении программв виде КНФ• Проверка свойств производитсяпутем проверки выполнимостипостроенной КНФ71Bounded model checking• Типичная схема анализа:ПрограммаПреобразовательРешательКНФРезультат72Bounded model checking• Построение КНФ:…if ( a < 5 )a = b + 1;elsea = 5;return a;КНФ:(a_1 = b_0 + 1) &&(a_2 = 5) &&[ (a_0 < 5 &&a_3 = a_1) ||(a_0 >= 5 &&a_3=a_2)]&& (out = a_3)73Bounded model checking• Циклы:Ограничение количества итерациймажорантойРазворачивание циклов74Bounded model checkingfor ( int i = 0; i < 3; ++ i){if ( a < 5 )a += i;}i = 0;if ( i < 3 ){if ( a < 5 )a += i;++i;if ( i < 3 ){if ( a < 5 )a += i;++i;…75Bounded model checking• Проверка свойств:void f(int a, int b){if ( a < 5 )a = b + 1;elsea = 5;assert( a <= 5 );return a;}КНФ:(Исходная КНФпрограммы) &&!(a <= 5)Если полученнаяКНФ выполнима,то свойство невыполняется!76Bounded model checking• Проверка выполнимости КНФ –решение задачи ВЫП• Решатели:Z3 (Microsoft)Yices (SRI)Boolector77Bounded model checking• Ограничение на длину вычислений:Построение КНФ длины не более kПроверка свойств полученной КНФЕсли свойство выполняется,то увеличение kПозволяет быстро проверять свойства!78Использование BMC для оценкиWCET• Известно время выполнения каждоголинейного участка• Добавление вычисления временивыполнения в КНФ• assert (time <= wcet); в концепрограммы• запуск проверки, коррекция wcet,пока свойство нарушается79Использование BMC для оценкиWCETИсходная программаvoid f(int a) {a = a + 5; // time = [1, 2]if (a < 0) {/* path1 */ // time = [10, 15]}/* path2 */ // time = [5, 16]}при a принадлежащем [-4; 0]••80Использование BMC для оценкиWCETvoid f(int a) {a = a + 5; // time = [1,2]if (a < 0) {/* path1 */// time = [10, 15]}/* path2 */// time = [5, 16]assert(time <= 0)}КНФ:time_0 = 0 &&(-4 <= a_0 <= 0) &&…time_1 = time_0 + [1,2] &&…time_2 = time_1 + [10,15]&&a<0 && time_3 = time_2 ||!(a<0) && time_3 = time_1time_4 = time_3 + [5,16] &&81&& !(time_4 <= 0)Использование BMC для оценкиWCET••••Система выполнимаСтроим модель, time_3 = 16wcet = 16Строим КНФ заново:Исходная КНФ && !(time_3 <= 16)82Использование BMC для оценкиWCET• После нескольких итераций получаемwcet = 33КНФ && !(time_3 <= 33)• Система не выполнима• Наихудшее время выполнениянайдено83Литература• Материалы сайта www.arm.com• “32-разрядные высокопроизводительные RISС-процессорысемейства ARM”(http://www.gaw.ru/html.cgi/txt/doc/micros/arm/arh/index.htm)• Нейропроцессор NM6403.
Материалы компании ЗАО НТЦ«Модуль». Адрес в Интернет: http://www.module.ru• Черников В. М., Виксне П. Е., Фомин Д. В., Шевченко П. А."Архитектурные особенности нейропроцессора NM6403".Всероссийская научно-техническая конференция"Нейроинформатика-99". Сборник научных трудов. Часть 2,Москва, 1999, С.93-101. (http://library.mephi.ru/data/scientificsessions/1999/Neuro_2/093.pdf)• Wilhelm R.
et al. The worst-case execution-time problem—overviewof methods and survey of tools //ACM Transactions on EmbeddedComputing Systems (TECS). – 2008. – Т. 7. – №. 3. – С. 36.(http://moss.csc.ncsu.edu/~mueller/ftp/pub/mueller/papers/1257.pdf)84Спасибо за внимание!85.