Характеристики ядра процессора Регистры –Количество –Типы регистров Общего назначения Адресные Регистры флагов Вычислительные устройства –ALU: Fixed-point.

Презентация:



Advertisements
Похожие презентации
Система команд процессора. Система команд процессора включает в себя четыре основные группы команд: команды пересылки данных; арифметические команды;
Advertisements

Процессоры Типы процессоров и их характеристики. Регистры общего назначения Запись данных для хранения Чтение данных Изменение данных Использование в.
Разработка программного обеспечения для сигнальных процессоров TMS320C64xx Часть 3. Архитектура ядра процессоров с64хх.
Набор инструкций. Набор команд это множество операций, которое исполняет процессор. Набор команд -- это та граница, где проектировщик компьютера и программист.
Набор инструкций. Набор команд это множество операций, которое исполняет процессор. Набор команд это та граница, где проектировщик компьютера и программист.
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
Регистры общего назначения – сумматор, регистр данных, адресный регистр и т.д. Арифметико- логическое устройство Устройство управления
Архитектура микропроцессоров И ее эволюция. Процессор и память: Команды и данные.
Виды алгоритмических структур: –блок-схема. –линейный алгоритм. –алгоритмическая структура «ветвление». –алгоритмическая структура «выбор». –алгоритмическая.
1 Циклические алгоритмы Цикл for. Циклический алгоритм-это многократное повторение одних и тех же действий при различных параметрах Примеры циклических.
1. a=? b=? c=? {int a, b, c; a=(b=2+3)/2 - 4+(c=5%2); printf("%d %d %d \n", a, b, c); }
1 Процессоры семейства Intel® XScale®. Разработка эффективных приложений Василий Басов Intel
Архитетура компьютерных систем. Архитектура системы команд как интерфейс между программным и аппаратным обеспечением Архитектура системы команд.
М.Ю. Харламов, ВНУ им. В.Даля, Оптимизация программы Оптимизация программы это обработка, связанная с переупорядочиванием и из­менением операций.
Московский Физико-Технический Институт Оптимизация методов умножения матриц библиотеки линейной алгебры для ВК Эльбрус-3M1 и Эльбрус-90 микро Выполнил:
Архитектура компьютера. Принципы Дж.фон Неймана арифметико-логическое устройство (АЛУ), отвечающее за арифметические и логические операции; устройство.
Лекция 6. Способы адресации в микропроцессорных системах.
RISC-архитектуры ( Reduced Instruction Set Computer)
АРХИТЕКТУРА СОВРЕМЕННЫХ ЭВМ Лекция 5: Уровень микроархитектуры ВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК Чл.-корр., профессор, д.ф.-м.н. Королёв Л.Н.,
Учебный курс Принципы построения и функционирования ЭВМ Лекция 11 Микрокоманды и микрооперации профессор ГУ-ВШЭ, доктор технических наук Геннадий Михайлович.
Транксрипт:

Характеристики ядра процессора Регистры –Количество –Типы регистров Общего назначения Адресные Регистры флагов Вычислительные устройства –ALU: Fixed-point и Floating-point –Умножители –Адресное АЛУ (TI C54: MAC *AR2+,*AR3+,A) –Устройство сдвига (shifter)

Конвейер Конвейер(ы) –Глубина Время «доступности» регистра «Цена» условного перехода –Количество конвейеров

Память Шины памяти –Количество шин (Шина данных\программы\управления) –Разрядность шины, выравнивание Контроль доступа к не-выровненным данным Чтение массива 8 и 16-битных элементов как четвёрки\пары 32-х битных слов. #define IS_ALIGNED4(ptr) ( ((uint32)ptr)&3 == 0 ) #define ASSERT_ALIGN(ptr) assert( !IS_ALIGNED(ptr),alignment error) 0x0 0x4 0x8 32-bits 0x2

Набор инструкций Работы с памятью –Режимы адресации Абсолютное значение Значение из регистра Регистр + абсолютное значение Автоинкремент\автодекремент Циклический автоинкремент\автодекремент –Множественная загрузка: ARM LDMIA r8!, {r0-r7} – загрузка регистров r0-r7 Эффективное использование регистров –Язык C: Переменные типа register. Арифметические –«Сложные» инструкции MAC – multiply + accumulate ARM: сдвиг + арифметическая инструкция ADD r0, r2, r1 LSL #16 ; сложение с R1, умноженным на ADD r0, r0,r1 ;

Набор инструкций Логические Инструкции сдвига –Логический: 0xFF000000>>16 = 0x0000FF00 –Арифметический 0xFF000000>>16 = 0xFFFFFF00 int VS unsigned int –Циклический 0xFF >> 8 = 0x15FF0000 Инструкции работы с битами –TigerShark: GETBITS, PUTBITS

Набор инструкций Инструкции перехода, условное выполнение –Условный переход –Call\return –Повтор инструкции\последовательности Приме TI C51 : инструкция RPT #n RPT #(20-1) // повторить 20 раз следующую инструкцию MAC *AR2+,*AR3+,AУ –Условное выполнение инструкции Экономия на условных переходах Пример (ARM): if(R0!=0) r1 = r2 + r3 ; else r1 = r2 + r4; CMP R0, #0 ADDNE R1,R2,R3 ; сложение если R0 != 0 ADDNE R1,R2,R4 ; сложение если R0 != 0 SIMD инструкции –Парные умножения (int32 представляется как пара int16) Специальные: –ARM: QDADD Rm,Rn – SAT(Rm + SAT(Rn*2)) –TigerShark: VMAX – Viterbi Maximum

Приёмы оптимизации Подготовка кода –Компиляция под архитектуру –Подготовка тестовой среды, тестирование –Подготовка библиотек Профилирование –Самые медленные функции –Узкие места (память, арифметика, ветвления) Алгоритмическая оптимизация –Пример: «Бабочка» Фурье «Переписывание на ассемблере» –Assembler=>набор макросов или inline-функций #ifdef ARMV5 #define LDRINC(reg,ptr) __asm(LDR %1,[%2],reg,ptr); #else #define LDRINC(reg,ptr) reg = *ptrf++; #end –Inline assembly – функции

Приёмы оптимизации Разворачивание циклов for(i=0;i

Спасибо за внимание!!!