Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 635043)
Контекстум
Руконтекст антиплагиат система

Эффективное программирование современных микропроцессоров (200,00 руб.)

0   0
Первый авторМаркова В. П.
АвторыКиреева С. Е., Остапкевич М. Б., Перепелкин В. А.
ИздательствоИзд-во НГТУ
Страниц148
ID246716
АннотацияПособие посвящено изучению особенностей архитектуры современных микропроцессоров, которые влияют на скорость выполнения прикладных программ. Для закрепления теоретического материала по курсу «Архитектура ЭВМ и ВС» предлагаются практические работы. Их цель – сформировать практические навыки разра-ботки эффективных программ с учетом организации иерархической памяти, наличия векторных расширений и других особенностей архитектуры
ISBN978-5-7782-2391-2
УДК004.31-181.48(075.8)
Маркова, В. П. Эффективное программирование современных микропроцессоров : учеб. пособие / С. Е. Киреева, М. Б. Остапкевич, В. А. Перепелкин; В. П. Маркова .— Новосибирск : Изд-во НГТУ, 2014 .— 148 с. — ISBN 978-5-7782-2391-2 .— URL: https://rucont.ru/efd/246716 (дата обращения: 03.05.2024)

Предпросмотр (выдержки из произведения)

Министерство образования и науки Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ЭФФЕКТИВНОЕ ПРОГРАММИРОВАНИЕ СОВРЕМЕННЫХ МИКРОПРОЦЕССОРОВ Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2014 1 УДК 004.31-181.48(075.8) Э 949 Коллектив авторов В.П. Маркова, С.Е. Киреев, М.Б. Остапкевич, В.А. Перепелкин Рецензенты: д-р техн. наук, профессор, Я.И. Фет канд. техн. наук, доцент В.Д. Корнеев Работа подготовлена на кафедре параллельных вычислительных технологий Э 949 Эффективное программирование современных микропроцессоров: учеб. пособие / В.П. Маркова, С.Е. Киреев, М.Б. Остапкевич, В.А. Перепелкин. <...> ЭФФЕКТИВНОЕ ПРОГРАММИРОВАНИЕ СОВРЕМЕННЫХ МИКРОПРОЦЕССОРОВ Учебное пособие Редактор И.Л. <...> В настоящем учебном пособии основное внимание уделяется: рассмотрению особенностей организации современных компьютеров, которые влияют на скорость выполнения программ; подходам к разработке программ с учетом организации компьютера. <...> Для лучшего усвоения теоретического материала и формирования базы практических навыков программирования с учетом организации компьютера в пособии имеется несколько практических работ. <...> Микроархитектура определяет структуру компьютера, а именно набор компонентов компьютера, их связи, функциональные возможности каждого компонента (например, количество арифметико-логических устройств, число стадий конвейера, размер аппаратного регистрового файла или разрядность шины между оперативной памятью и процессором). <...> В первых микроархитектурах (8086, 8088) отсутствовали кэш-память, виртуальная память, команды выполнялись последовательно на одном конвейере. <...> В микроархитектуре i386 введены кэш-память и страничная виртуальная память. <...> В i486 добавлен конвейер, позво4 ляющий завершать выполнение одной команды на каждом такте даже для команд, которые выполняются в течение нескольких тактов. <...> В микроархитектуре P6 были добавлены функциональные <...>
Эффективное_программирование_современных_микропроцессоров.pdf
Министерство образования и науки Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ЭФФЕКТИВНОЕ ПРОГРАММИРОВАНИЕ СОВРЕМЕННЫХ МИКРОПРОЦЕССОРОВ Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2014 1
Стр.1
УДК 004.31-181.48(075.8) Э 949 Коллектив авторов В.П. Маркова, С.Е. Киреев, М.Б. Остапкевич, В.А. Перепелкин Рецензенты: д-р техн. наук, профессор, Я.И. Фет канд. техн. наук, доцент В.Д. Корнеев Работа подготовлена на кафедре параллельных вычислительных технологий Э 949 Эффективное программирование современных микропроцессоров: учеб. пособие / В.П. Маркова, С.Е. Киреев, М.Б. Остапкевич, В.А. Перепелкин. – Новосибирск: Изд-во НГТУ, 2014. – 148 с. ISBN 978-5-7782-2391-2 Пособие посвящено изучению особенностей архитектуры современных микропроцессоров, которые влияют на скорость выполнения прикладных программ. Для закрепления теоретического материала по курсу «Архитектура ЭВМ и ВС» предлагаются практические работы. Их цель – сформировать практические навыки разработки эффективных программ с учетом организации иерархической памяти, наличия векторных расширений и других особенностей архитектуры. Учебное пособие предназначено для студентов I курса факультета ФПМИ направлений 010400.62 «Прикладная математика и информатика» и 010500.62 «Математическое обеспечение и администрирование информационных систем». ЭФФЕКТИВНОЕ ПРОГРАММИРОВАНИЕ СОВРЕМЕННЫХ МИКРОПРОЦЕССОРОВ Учебное пособие Редактор И.Л. Кескевич Выпускающий редактор И.П. Брованова Корректор И.Е. Семенова Дизайн обложки А.В. Ладыжская Компьютерная верстка А.В. Сухарева Подписано в печать 07.02.2014. Формат 60 84 1/16. Бумага офсетная. Тираж 200 экз. Уч.-изд. л. 8,6. Печ. л. 9,25. Изд. № 180/13. Заказ № 238. Цена договорная Отпечатано в типографии Новосибирского государственного технического университета 630073, г. Новосибирск, пр. К. Маркса, 20 УДК 004.31-181.48(075.8) © Коллектив авторов, 2014 ISBN 978-5-7782-2391-2 2 © Новосибирский государственный технический университет, 2014
Стр.2
ОГЛАВЛЕНИЕ 1. Введение в архитектуру компьютера ................................................. 3 1.1. Определение архитектуры и организации компьютера ................ 3 1.2. Архитектурные принципы построения компьютера фон Неймана ...................................................................................... 5 1.3. Компьютер фон Неймана, его узкие места и усовершенствования ...................................................................................................... 6 1.4. Основные компоненты современного компьютера ..................... 10 Контрольные вопросы ........................................................................... 12 2. Организация подсистемы памяти .................................................... 13 2.1. Типичная схема иерархии памяти в современном компьютере ............................................................................................ 16 2.2. Организация кэш-памяти ............................................................... 18 2.2.1. Аппаратная и программная предвыборка ........................... 20 2.2.2. Алгоритмы отображения адресов оперативной памяти в строки кэш-памяти ............................................................ 23 2.3. Примеры работы с кэш-памятью ................................................... 29 2.3.1. Обработка матриц по строкам ............................................. 29 2.3.2. Обработка матриц по столбцам с буксованием ................. 31 2.3.3. Обработка матриц по столбцам без буксования ................ 33 2.4. Виртуальная память ........................................................................ 34 Контрольные вопросы ........................................................................... 37 3. Введение в параллельную обработку ............................................... 39 3.1. Конвейерное выполнение ............................................................... 39 3.2. Пространственный параллелизм ................................................... 45 3.2.1. Параллелизм на уровне данных ........................................... 45 3.2.2. Параллелизм на уровне команд ........................................... 49 3.2.3. Параллелизм на уровне потоков .......................................... 54 3.3. Пример процессора с различными видами параллелизма .......... 56 Контрольные вопросы ........................................................................... 58 4. Инструментальные средства разработки программ ..................... 59 4.1. Оптимизирующий компилятор ...................................................... 59 4.1.1. Уровни оптимизации компилятора GCC ............................ 61 4.1.2. Примеры оптимизирующих преобразований в компиляторе GCC .............................................................. 63 4.2. Инструментальные средства отладки программ .......................... 66 4.2.1. Принципы работы отладчика ............................................... 66 147
Стр.147
4.2.2. Отладчик GNU GDB ............................................................. 69 4.3. Средства для измерения времени выполнения программы ........ 72 4.3.1. Методика измерения времени выполнения прикладной программы ............................................................................. 72 4.3.2. Системные таймеры .............................................................. 76 4.3.3. Способы получения показаний некоторых таймеров........ 78 Контрольные вопросы ........................................................................... 82 5. Рекомендации по эффективному программированию с учетом особенностей подсистемы памяти ......................................................... 83 5.1. Роли программиста, компилятора и компьютера в оптимизации программ и их выполнения ............................................................ 83 5.2. Эффективное программирование с учетом памяти ..................... 86 5.2.1. Данные на границе блоков памяти ...................................... 87 5.2.2. Разреженное размещение данных в памяти ....................... 89 5.2.3. Данные, смещенные на величину, кратную размеру банка кэш-памяти ................................................................. 92 5.2.4. Нарушение локальности во времени обращений к памяти ................................................................................. 96 5.2.5. Неупорядоченный обход данных в памяти ........................ 97 Контрольные вопросы ........................................................................... 99 Приложение 1. Средства разработки программ ................................... 101 П1.1. Определение времени работы прикладных программ ............ 101 П1.2. Изучение оптимизирующего компилятора.............................. 103 Приложение 2. Эффективное программирование ............................... 105 П2.1. Влияние кэш-памяти на время обработки массивов ............... 105 П2.2. Измерение степени ассоциативности кэш-памяти .................. 110 П2.3. Устранение буксования кэш-памяти ........................................ 114 П2.4. Совместный доступ нескольких потоков к данным в общей памяти ............................................................................. 118 Приложение 3. Введение в архитектуру x86/x86-64 ........................... 123 Приложение 4. Векторизация вычислений .......................................... 128 Список терминов ...................................................................................... 135 Библиографический список .................................................................... 145 148
Стр.148