Характеристики ядра процессора презентация

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


Адресное АЛУ (TI C54: MAC *AR2+,*AR3+,A)
Устройство сдвига (shifter)


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


Слайд 3Память
Шины памяти
Количество шин
(Шина данных\программы\управления)
Разрядность шины, выравнивание
Контроль доступа к не-выровненным данным
Чтение

массива 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


Слайд 4Набор инструкций
Работы с памятью
Режимы адресации
Абсолютное значение
Значение из регистра
Регистр + абсолютное значение
Автоинкремент\автодекремент
Циклический

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


Слайд 5Набор инструкций
Логические
Инструкции сдвига
Логический:
0xFF000000>>16 = 0x0000FF00
Арифметический
0xFF000000>>16 = 0xFFFFFF00
int VS unsigned

int
Циклический
0xFF000015 >> 8 = 0x15FF0000
Инструкции работы с битами
TigerShark: GETBITS, PUTBITS

Слайд 6Набор инструкций
Инструкции перехода, условное выполнение
Условный переход
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

Слайд 7Приёмы оптимизации
Подготовка кода
Компиляция под архитектуру
Подготовка тестовой среды, тестирование
Подготовка библиотек
Профилирование
Самые медленные функции
Узкие

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

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

затрат на вычисления
Преобразование арифметических операций
Замена умножений на сдвиги
Оптимизация с учётом конвейера
Исходный код:
V0 = *ptr1++; // V0 будет «доступна» через 2 такта
V1 = V0<<4; // Ждём один такт
V2 = x * y;
Оптимизация:
V0 = *ptr1++; // V0 будет «доступна» через 3 такта
V2 = x * y;
V1 = V0<<4; // ожидания нет


Слайд 9Спасибо за внимание!!!


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика