Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
«Новосибирский государственный университет» (НГУ)
Факультет информационных технологий
Кафедра Параллельных вычислений
ПРОГРАММА
«Архитектура современных микропроцессоров и
ДИСЦИПЛИНЫ
мультипроцессоров»ЦИКЛ* «Специальные дисциплины»
НАПРАВЛЕНИЕ ПОДГОТОВКИ БАКАЛАВРОВ 230100.62 «ИНФОРМАТИКА И
ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
Авторы: Маркова В.П., к.т.н., доцент Киреев С.Е., ст. преподаватель Перепелкин В.А., ассистент Новосибирск * Наименование цикла дисциплин в соответствии с ГОС ВПО Программа дисциплины «Архитектура современных микропроцессоров и мультипроцессоров» составлена в соответствии с требованиями к обязательному минимуму содержания и уровню подготовки бакалавра по циклу «Специальных дисциплин» Федеральных государственных образовательных стандартов высшего профессионального образования по направлению 230100.62 «Информатика и вычислительная техника».1. Цели и задачи дисциплины (курса) Дисциплина (курс) «Архитектура современных микропроцессоров и мультипроцессоров»
имеет своей целью: овладение теоретическими и практическими знаниями организации современных микропроцессоров (мультипроцессоров), которые позволяют разработать эффективную программу с учетом архитектуры используемого микропроцессора (мультипроцессора).
Для достижения поставленной цели выделяются задачи курса:
• Обозначить узкие места классической архитектуры компьютера фон Неймана, ограничивающие производительность компьютера.
• Изучить типы параллелизма, которые используются в организации современных микропроцессоров и мультикомпьютеров.
• Изучить архитектуры современных микропроцессоров с параллелизмом на уровне команд, данных и мультипроцессоров.
• Изучить конкретные современные микропроцессоры и мультипроцессоры.
• Приобрести навыки создания эффективных программ.
2. Требования к уровню освоения содержания дисциплины В результате освоения дисциплины студент должен:
Иметь представление о • принципах организации микропроцессоров и мультипроцессоров • областях применения вычислительных систем различных архитектур, • тенденциях развития микропроцессоров и мультипроцессоров, Знать • классы микропроцессоров и мультипроцессоров, • архитектурные особенности и оценки производительности современных микропроцессоров и мультипроцессоров, • влияние архитектурных особенностей вычислителя на производительность.
Уметь • определять основные параметры микропроцессора и вычислительной системы, • определять узкие места архитектуры для конкретного алгоритма.
3. Объем дисциплины и виды учебной работы Вид учебной работы Всего Семестры часов 5 6 7 Общая трудоемкость дисциплины 216 54 54 54 Аудиторные занятия, в том числе: 144 36 36 36 Лекции 72 18 18 18 Семинары Лабораторные работы 72 18 18 18 Самостоятельная работа, в том числе: 72 18 18 18 Курсовой проект Реферат 36 18 Расчетные работы Другие виды самостоятельной работы:
оформление отчетов по лаб.работам 36 18 подготовка к контрольным вопросам на защите Общая трудоемкость дисциплины составляет 216 зачетных единиц (если применяется на факультете/кафедре).
4. Содержание дисциплины 4.1. Новизна курса (научная, содержательная; сравнительный анализ с подобными курсами в России и за рубежом).
Известно, что производительность любого компьютера на случайно написанной программе далека от пиковой производительности. Именно поэтому в курсе основное внимание уделено изучению особенностей архитектуры современных компьютеров и разработке эффективных программ с учетом этих особенностей. Более того, по мере изменения архитектуры компьютеров их программирование будет только усложняться.
Поэтому очень важно сформировать у студентов регулярный подход к решению задач на современных компьютерах, чтобы при переходе на новые модели у них не возникло больших трудностей. В этом состоит новизна и актуальность данного курса.
4.2. Тематический план курса (распределение часов по видам учебной работы).
1 Введение в параллельную 2 Архитектуры с параллелизмом на уровне 4 Архитектуры с процессов 5 Компьютеры с разделяемой памятью 6. Заключение. Тенденции развития микропроцессоров и мультипроцессоров 4.3. Содержание разделов и тем курса.
А). Теоретическая часть 1. Введение в параллельную обработку.
1.1. Понятия последовательного и параллельного исполнения. Уровни 1.2. Классификация Флинна: SIMD и MIMD-архитектуры. Уточненная 2. Архитектуры с параллелизмом на уровне команд (ILP- архитектуры).
2.1. Классификация ILP-архитектур.
2.2. Архитектура суперскалярных процессоров. Динамическое исполнение команд (предсказание переходов, переименование регистров, спекулятивное выполнение и выполнение вне порядка). Основные блоки суперскалярных процессоров. Примеры процессоров (Core 2, PowerPC 970FX, Opteron).
Сравнительный анализ суперскалярных микропроцессоров. Оценки 2.3. Архитектура процессоров с явным параллелизмом на уровне команд (EPIC).
Причины создания EPIC. Особенности работы EPIC-процессcора (спекуляция по коду и данным, предикатное исполнение команд, регистровый стек, программная конвейеризация циклов, ветвление). Микропроцессор Itanium2.
2.4. Сравнение способов выявления скрытого параллелизма у суперскаляров и EPIC-архитектур. Перспективы ILP-архитектур.
2.5. Рекомендации по эффективному программированию микропроцессоров с параллелизмом на уровне команд.
3. Архитектуры с параллелизмом на уровне данных (DPL-архитектуры).
3.1. Классификация и примеры DLP-архитектур.
3.2. Архитектура векторных микропроцессоров. Организация векторных регистров.
Векторизация вычислений. Примеры архитектур (Cray X2, NEC SX-9). Оценки 3.3. SIMD-расширения микропроцессоров (SSE, MMX, 3DNow!, AltiVec).
4. Архитектуры с параллелизмом на уровне процессов (PLP-архитектуры).
Классификация PLP-архитектур. Организация компьютеров с MIMDархитектурой. Компьютеры с разделяемой памятью (SMP) (мультипроцессоры).
Компьютеры с распределенной памятью (MPP) (мультикомпьютеры). Кластеры.
5. Компьютеры с разделяемой памятью.
5.1. Компьютеры с архитектурой SMP. Способы увеличения масштабируемости мультипроцессоров. Компьютеры с физически распределенной и логически разделяемой памяти (NUMA, cc-NUMA, COMA).
5.2. Структура мультипроцессора. Шины связи (общая шина, коммутатор, HyperTransport, QuickPath Interconnect).
5.3. Проблемы кэш-когерентности. Протоколы. Коммуникационные среды (SCI, Ethernet, NUMAlink, Myrinet, QsNet, Infiniband). Сравнительный анализ сред, особенности их использования.
5.4. Программное обеспечение мультипроцессоров.
5.5. Многоядерные микропроцессоры. Примеры (Core, Opteron, Cell, UltraSPARC T2, POWER 6). Оценки производительности.
6. Заключение. Анализ списка TOP500. Тенденции развития микропроцессоров и мультипроцессоров.
В) Темы лабораторных работ 1. Исследование влияния размещения данных в памяти на время выполнения программы (массив структур или структура массивов), 2. Исследование влияния порядка обхода данных в памяти на время выполнения программы на примере алгоритма блочного умножения матриц (порядок вложенности циклов по индексам), 3. Исследование влияния группировки данных на время обхода памяти (блочное 4. Влияние предвыборки на время обхода памяти, 5. Влияние остановки конвейера на быстродействие программы. Оптимизация 6. Применение векторизация вычислений для увеличения быстродействия 7. Оптимизация программных циклов (сохранение промежуточных значений, уменьшение объема вычислений, программная конвейеризация), 8. Параллельное исполнение цикла, определение эффективности распараллеливания (для вычислительных задач и для работы с памятью), 9. Исследование влияние выравнивания данных и кода на быстродействие 10. Оптимизация программы на основе сбора статистики, 11. Использование дополнительных команд процессора (более высокой разрядности, специализированные и т.п.), 12. Определение издержек когерентности кэшей при совместном доступе в память, 4.4. Перечень примерных контрольных вопросов и заданий для самостоятельной работы.
1. Дайте определение параллелизма на уровне инструкций (ILP). Какие существуют виды ILP. Приведите пример ILP-архитектур.
2. Назовите принципы организации суперскалярных процессоров. Перечислите достоинства и недостатки суперскалярной архитектуры. Приведите примеры суперскалярных процессоров. Сравните два суперскалярных процессора.
3. Дайте определение архитектур с явным параллелизмом на уровне команд. Назовите особенности выявления скрытого параллелизма в процессорах Itanium2. Сравните архитектуру EPIC с суперскалярной архитектурой.
4. Какие существуют архитектуры с параллелизмом на уровне данных. Приведите примеры процессоров DLP-архитектуры.
5. Сравните архитектуры с разделяемой и распределенной памятью на примерах конкретных компьютеров. Дайте определение кластера.
6. Объясните проблемы масштабируемости компьютеров различных архитектур.
Какие существуют пути решения этих проблем.
7. Сравните архитектуры с однородной и неоднородной разделяемой памятью на различных классах вычислительных задач. Приведите пример компьютера с NUMA-организацией памяти.
8. Назовите основные компоненты мультипроцессора. Приведите примеры различных топологий сети связи.
9. Какую проблему решает кэш-когерентность. Какие существуют протоколы поддержания когерентности кэшей.
10. Сравнение коммуникационных сред.
11. Назовите необходимое программное обеспечение для управления параллельным компьютером. Приведите пример конкретных программных средств.
12. Приведите примеры современных мультипроцессоров. Назовите основные критерии производительности мультипроцессоров.
13. Назовите тенденции развития современных микро- и мультипроцессоров.
4.5. Примерная тематика рефератов, курсовых работ.
1. Архитектура AMD K10, 2. Архитектура Intel Nehalem, 3. Архитектура процессора Cell, 4. Архитектура процессоров Niagara и Niagara II, 5. Архитектура процессоров Power6, 6. Архитектуры CPU+GPU: Intel Larrabee и AMD Fusion, 7. VLIW-архитектуры: Intel Itanium и Elbrus 2000, 8. Векторно-конвейерные процессоры серии NEC SX.
9. Экспериментальная архитектура EDGE.
10. Обзор архитектур современных мультипроцессоров.
5. Учебно-методическое и информационное обеспечение дисциплины (курса) 5.1. Примерный перечень вопросов к зачету (экзамену) по всему курсу.
Билет • Классификация архитектур с параллелизмом на уровне команд.
• Архитектура векторных процессоров. Векторизация вычислений.
Билет • Базовые принципы организации суперскалярных микропроцессоров.
• Структура мультипроцессора.
Билет • Основные блоки суперскалярных микропроцессоров и их назначение.
• Проблемы кэш-когерентности. Протоколы когерентности.
Билет • Классификация Флинна. Примеры уточненной классификации.
• Сравнительный анализ современных суперскалярных микропроцессоров фирм Intel, AMD и IBM.
Билет • Принципы организации микропроцессоров архитектуры EPIC.
• Архитектуры с параллелизмом на уровне данных. Классификация DLP-архитектур.
Билет • EPIC-архитектура. Генерация связок команд, структура команды.
• Сравнительная характеристика SIMD-расширений (SSE, MMX, 3DNow!, AltiVec).
Билет • Идея SIMD-расширений, их возможности.
• Особенности архитектуры Itanium.
• Архитектуры с параллелизмом на уровне процессов. Классификация.
• Программная конвейеризация циклов. Ее реализация в EPIC-архитектуре.
• Сравнение способов выявления скрытого параллелизма у ILP-архитектур.
• Сравнительный анализ коммуникационных сред.
• Сравнительная характеристика процессоров Cray XT2 и NEC SX-9.
• Сравнительный анализ реализации ветвлений, спекулятивного исполнения кода в суперскалярных и EPIC микропроцессорах.
• Сравнение особенностей реализации конвейера в Itanium2 и любом суперскалярном микропроцессоре.
• Мультипроцессоры. Способы увеличения масштабируемости мультипроцессоров.
Компьютеры с физически распределенной и логически разделяемой памяти.
5.2.
1. Таненбаум Э. Архитектура компьютеров. СПб.: Питер, 2007. – 848 с.
2. Цилькер Б. Я., Орлов С.А. Организация ЭВМ и систем. СПб.: Питер, 2006. – 668 с.
3. Гук М., Юров В. Процессоры Pentium 4, Athlon и Duron. – СПб.: Питер, 2002. – 4. В.В.Корнеев, А.В.Киселев Современные микропроцессоры, 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2003. – 440 с.
5. Корнеев В.В. Параллельные вычислительные системы. – М.: Нолидж, 1999. – 311 c.
6. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем. – СПб: БХВ-Петербург, 2002. – 400с.
7. D. Sima, T. Fountain, P. Kacsuk. Advanced computer architectures. New York: Addison Wesley Longman Inc. 1997.
8. Касперски К. Техника оптимизации программ. Эффективное использование памяти. – СПб.: БХВ-Петербург, 2003. – 464 с.
9. В.В.Воеводин, Вл.В.Воеводин. Параллельные вычисления. – СПб.: БХВ-Петербург, 5.3. Дополнительная литература.
1. Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования.: Пер.с англ. – М.: Издательский дом “Вильямс”, 2003. – 512 c.
2. Папков В.И. Система памяти ЭВМ (Функциональный подход). Учеб. пособие.
СПб.: Изд.центр СПбГМТУ, 2002. – 238 с.
3. Столлингс В. Структурная организация и архитектура компьютерных систем. 5-е издание. - М.: Издательский дом "Вильямс", 2002. – 896 с.
4. Антошина И.В., Котов Ю.Т. Микропроцессоры и микропроцессорные системы (аналитический обзор): Учебное пособие. - М.: МГУЛ, 2005. – 432 с.
5. Грушин В.В. Выполнение математических операций в ЭВМ. Погрешности компьютерной арифметики: Учебное пособие / СПбГЭТУ "ЛЭТИ". СПб., 1999. – 6. К. Хамахер, З. Вранешич, С. Заки, Организация ЭВМ. СПб, Из-во «Питер», 2003 г.
7. Зубков С.В. Assembler для DOS, Windows и UNIX. – М. ДМК, 2006. – 608 с.
8. Барановская Т.П., Лойко В.И., Семенов М.И., Трубилин А.И. Архитектура компьютерных систем и сетей. - М.: Финансы и статистика, 2003. – 256 с.
Не более 10 источников.
9. Хокни Р., Джесхоуп. Параллельные ЭВМ: Архитектура, программирование и алгоритмы. М.: Радио и связь, 1986.
10. Шнитман В. Современные высокопроизводительные компьютеры, информационно-аналитические материалы Центра Информационных Технологий, 1996. (http://www.citforum.ru/hardware/svk/contents.shtml) 11. Информационно-аналитические материалы по параллельным вычислениям (http://www.parallel.ru, http://www.ccas.ru, www.mcs.anl.gov).
12. Top 500 Supercomputer Sites (http://www.top500.org).
13. Суперкомпьютеры top 50 (http://supercomputers.ru).
14. Хеннинг Дж. SPEC CPU 2000: определение производительности в новом тысячелетии (http://www.osp.ru/os/2000/07-08/178080/).
15. Intel®64 and IA-32 Architectures Software Developer’s Manual, 2007.
16. PowerPC User Instruction Set Architecture, 2005.
17. IBM PowerPC 970FX RISC Microprocessor User’s Manual, 2005.
18. Intel Itanium Architecture Software Developer’s Manual, 2006.
19. Ulrich Drepper, What Every Programmer Should Know About Memory, 2007.
(http://people.redhat.com/drepper/cpumemory.pdf).
5.4. Программное и коммуникационное обеспечение (если используется).
SSH-клиент, соединение с Интернет.
6. Методические рекомендации по организации изучения дисциплины Программа курса рассчитана на 4 семестра – с 5 по 8. В 5-м семестре в ходе теоретического курса происходит изучение архитектурных принципов построения современных микропроцессоров. Подробно анализируются особенности конкретных микропроцессоров, а также способы создания эффективных программ для них. Студенты выполняют лабораторные работы, посвященные основам эффективного программирования с учетом конкретной архитектуры.
В 6-м семестре теоретический курс посвящен изучению архитектуры мультипроцессоров.
Подробно рассматриваются как основные архитектурные принципы, так и конкретные примеры мультипроцессоров. Студенты выполняют лабораторные работы, посвященные основам эффективного программирования различных мультипроцессоров (неоднородность памяти, аппаратная многопоточность и др.).
В 7 и 8 семестрах студенты самостоятельно изучают материалы по заданным преподавателем темам (из списка рефератов). В течение семестра каждый студент представляет несколько устных сообщений на занятиях, а к концу семестра подготавливает реферат. По результатам устного сообщения на каждом занятии организуется обсуждение, в котором участвуют все студенты.
Текущий контроль. В течение 5 и 6 семестров контролируются навыки и теоретические знания путем защиты лабораторных работ. Выполнение лабораторных работ является обязательным для всех студентов. В течение 7 и 8 семестров показателем теоретических знаний является выступление с докладом и участие в обсуждении. Результаты текущего контроля служат основанием для выставления оценок в ведомость контрольной недели на факультете.
Промежуточный контроль. Для контроля усвоения дисциплины учебным планом предусмотрен экзамен. Перечень вопросов приведён выше. К экзамену допускаются студенты, выполнившие все лабораторные работы (5 и 6 семестры) или сдавшие реферат (7 и 8 семестры).