571dd4e5aad77253c81e11651f7bfdff.ppt
- Количество слайдов: 18
Процессоры семейства Intel® XScale®. Разработка эффективных приложений Василий Басов Intel Vasily. Basov@intel. com 1
Процессоры XScale® - планы выпуска XScale® - обзор архитектуры – Программная модель – Top 5 советов по оптимизации Инструменты разработчика – Среда разработки – Intel®: Компиляторы, библиотеки, VTune – Железо для разработчиков Программы поддержки разработчиков от Intel® 2
Рынок для процессоров XScale® Bulverde Applications Processors Performance Bulverde Applications Processors Premium Phones PDAs Value Budget 3
График выпуска процессоров для КПК Q 1 Communicator > $450 PXA 255 400 MHz Q 3 Q 4 Q 1 Q 2 Q 3 Bulverde 520 MHz PXA 255/263 400 MHz Garson GPRS/EGPRS* modem Leadership PDA $300 - $450 PXA 255 Premium PDA $150 - $300 PXA 255 Value PDA < $150 Q 2 400 MHz 300 MHz PXA 255 200 MHz PXA 255/263 Bulverde 520 MHz 400 MHz Garson GPRS/EGPRS* modem PXA 263300 MHz PXA 263 400 MHz Bulverde PXA 2621/262 PXA 262 300 MHz Bulverde 200 MHz 2003 2004 4 416 MHz 312 MHz Q 4
График выпуска процессоров для смартфонов Q 1 Communi-cator Ø$450 PXA 255 400 MHz Q 2 Q 3 Q 4 PXA 255/PXA 263 400 MHz Q 2 Q 1 Bulverde 520 MHz Garson GPRS/EGPRS* Full-Featured OS Leadership Phone PXA 261/262 Bulverde 312 MHz 200 MHz Garson GPRS/EGPRS* modem $250 - $450 PXA 800 F 312 MHz GPRS/EGPRS* PXA 800 F 104 MHz GPRS/EGRPS* Premium Phone $100 - $250 Multimedia on RTOS Value Phone < $100 2004 2003 5 Q 3 Q 4
Процессоры XScale® - планы выпуска XScale® - обзор архитектуры – Программная модель – Top 5 советов по оптимизации Инструменты разработчика – Среда разработки – Intel®: Компиляторы, библиотеки, VTune – Железо для разработчиков Программы поддержки разработчиков от Intel® 6
Архитектура XScale® 7
XScale® vs. P 4 Feature Pentium(r) 4 Processor (Prescott) XScale (Bulverde) Architecture 25+ stage OOO 7 stage in-order Frequency 3. 2 GHz 400 MHz (520 MHz) L 1 Data Cache 8 KByte (16 KByte) 32 KByte+2 KB L 1 Instruction Cache 12 k uops 32 KByte L 1 Cache Control prefetch, lock, line flush L 2 Cache 512 KByte (1 MByte) - BTB control - lock, flush SIMD instructions MMX, SSE 2 (PNI) 5 MPT (43 Wireless MMX) 8
Intel® Media Processing Technology Умножение/суммирование с 40 битным результатом 31 16 15 * 31 39 0 accum 16 15 + 0 * + Реализовано на CP 0 9 0 39 0 accum
Intel® Wireless MMX™ Technology 16 SIMD регистров Условное исполнение всех инструкций WADDBUSNE wr 0, wr 1, wr 2 10
Среда разработки *Другие наименования и товарные знаки являются собственностью своих законных владельцев. 11
Компилятор Intel® C++ Intel предоставляет: Подключение Plug & Play Полную интеграцию в Platform Builder for Microsoft* Windows* CE и e. Mbedded* Visual C++* Переключение между компиляторами Intel and Microsoft* без изменения исходного кода *Другие наименования и товарные знаки являются собственностью своих законных владельцев. 12
Inline ассемблер Inline ASM int get_leading_zeroes (int i) { int count; __asm { clz r 0, r 0 }. . . return count; } Компилятор пропускает Компилятор C/C++ код ассемблера в приложение ASM Код ассемблера Ассемблер Машинный код Микроархитектура Intel® XScale™ 13
Встроенные (intrinsic) функции int count_leading_zeros(int i) { int temp 1, temp 2; temp 2 = i; if (temp 2 == 0) temp 1 = 32; else { temp 1 = 0; while ( temp 2 > 0 ){ temp 2 <<= 1; temp 1 += 1; } } return temp 1; } Intrinsic функция Компилятор заменяет intrinsic функции высокоэффективным ассемблерным кодом Компилятор C/C++ Код ассемблера int get_leading_zeros(int i) { int count; count = _Count. Leading. Zeros(i); return count; } Ассемблер Машинный код Микроархитектура Intel XScale® 14
VTune Performance Analyzer 15
VTune Performance Analyzer 16
Top 5 полезных советов 1. Используйте компилятор Intel! – – – 2. 3. Используйте VTune для анализа производительности и поиска “узких мест”! Оптимизируйте использование кэша! – – – 4. Лучшиe run-time библиотеки векторизация и оптимизация Помогите компилятору! Кэш-промах стоит ~150 циклов (>500 if a TLB miss) Используйте preload() (works on ARM, too) Advanced: XScale имеет дополнительный “mini cache” и позволяет “замораживать” данные в кэше “Ручная” оптимизация критических мест – – – Используйте DSP-расширения, i. MPT, WMMX Оптимизируйте ветвления Оптимизируйте циклы 5. Используйте оптимизированные IPP/GPP библиотеки 0. Исправте ошибки перед тем как начинать оптимизацию 17
571dd4e5aad77253c81e11651f7bfdff.ppt