МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Нижегородский государственный университет им. Н.И. Лобачевского» Радиофизический факультет Центр «Безопасность информационных систем и средств коммуникаций» УТВЕРЖДАЮ Декан радиофизического факультета ____________________Якимов А.В. «18» мая 2011 г. Учебная программа Дисциплины Б3.Б6 «Архитектура вычислительных систем» по направлению 010300 «Фундаментальная информатика и информационные технологии» Нижний Новгород 2011 г. 1. Цели и задачи дисциплины Цель курса «Архитектура вычислительных систем» состоит в изучении принципов работы современной микропроцессорной техники, лежащей в основе универсальных и специализированных ЭВМ, и встраиваемых систем, методов организации взаимодействия микропроцессора с памятью и внешними устройствами. В процессе изучения курса студенты должны получить понятие об особенностях внутреннего устройства современного микропроцессора и их влиянии на эффективность исполнения программного кода, изучить основные принципы построения универсальных высокопроизводительных микропроцессоров, специфику векторных систем, систем обработки сигналов. 2. Место дисциплины в структуре программы бакалавра Дисциплина «Архитектура вычислительных систем» относится к дисциплинам базовой части профессионального цикла основной образовательной программы по направлению 010300 «Фундаментальная информатика и информационные технологии», преподается в 6 семестре. Знания, приобретённые в процессе изучения дисциплины «Архитектура вычислительных систем», используются для преподавания и изучения дисциплин «Операционные системы», «Интеллектуальные системы», «Компьютерная графика», а также других дисциплин профессионального цикла с профессиональной ориентацией, в которых затрагиваются вопросы программной реализации алгоритмов решения задач. 3. Требования к уровню освоения содержания дисциплины В результате освоения дисциплины «Архитектура вычислительных систем» формируются следующие компетенции: владение основными методами, способами и средствами получения, переработки информации, иметь навыки работы с компьютером как средством управления информацией владеть основными методами, способами и средствами получения, хранения, переработки информации, иметь навыки работы с компьютером как средством управления информацией (ОК-12); способность работать с информацией в глобальных компьютерных сетях (ОК–13); способность применять в профессиональной деятельности современные языки программирования, способность исследовать и разрабатывать модели, алгоритмы, методы и программные решения по тематике проводимых научно-исследовательских проектов (ПК–1); способность профессионально решать задачи производственной и технологической деятельности, включая: разработку алгоритмических, программных решений в области системного и прикладного программирования, разработку математических, информационных и имитационных моделей (ПК–2); способность понимать и применять в исследовательской и прикладной деятельности современный математический аппарат, фундаментальные концепции и системные методологии, способность использовать современные инструментальные и вычислительные средства (ПК–4); способность профессионально владеть базовыми математическими знаниями и информационными технологиями, эффективно применять их для решения научно-технических задач и прикладных задач, связанных с развитием и использованием информационных технологий (ПК–8); способность формировать суждения о значении и последствиях своей профессиональной деятельности с учетом социальных, профессиональных и этических позиций (ПК–11); понимание концепций и абстракций математическая логики и теории алгоритмов, теорию автоматов и формальных языков, способность использовать их в практической деятельности (ПК–15). В результате изучения дисциплины студенты должны знать: принципы однопоточной и многопоточной конвейерной обработки последовательного программного кода и основные технологии повышения её производительности; особенности архитектуры микропроцессоров с длинным командным словом, специфику 2 сигнальных и векторных микропроцессоров. 4. Объем дисциплины и виды учебной работы Общая трудоемкость дисциплины составляет 4 зачетные единицы, 144 часа. Виды учебной работы Общая трудоемкость дисциплины Аудиторные занятия Лекции Практические занятия (ПЗ) Семинары (С) Лабораторные работы (ЛР) Другие виды аудиторных занятий Самостоятельная работа Курсовой проект (работа) Расчетно-графическая работа Реферат Домашняя работа Вид итогового контроля 5. Содержание дисциплины 5.1. Разделы дисциплины и виды занятий № Раздел дисциплины п/п Общие вопросы курса. Основные понятия и 1. классификации предметной области. Общие принципы реализации конвейерного 2. микропроцессора. Основы программной оптимизации кода для 3. конвейерного процессора. Реализация аппаратной логики динамической 4. оптимизации кода. Динамические аппаратные методы обработки 5. ветвлений. 6. Иерархическая структура памяти. 7. Организация виртуальной памяти. 8. Организация обмена с внешними устройствами. 9. Многопроцессорность на чипе. Организация поддержки многонитевости на 10. одном процессорном ядре. VLIW-концепция и успешные рыночные проекты 11. на её основе. 12. Специфика векторных микропроцессоров. Архитектура Cell, как яркая иллюстрация 13. поддержки множества методов параллелизма, в рамках одного проекта. Специфика микропроцессоров обработки 14. сигналов. Всего часов 144 64 48 – – 16 – 44 – – – 44 экзамен (36) Семестры 6 64 48 – – 16 – 44 – – – 44 экзамен (36) Лекции ПЗ (или С) ЛР 5 – – 7 – 4 4 – 3 5 – 4 4 – 3 6 4 4 1 1 – – – – 2 – – – – – 2 – – 2 1 – – – – – – 2 5.2. Содержание разделов дисциплины Раздел 1. Общие вопросы курса «Архитектура вычислительных систем». Основные понятия и классификации предметной области 1.1. Общие вопросы: 3 1.2. 1.3. 1.4. этапы развития микропроцессорной техники; принципы построения цифровых вычислительных систем; понятие архитектуры ЭВМ. Классификация вычислительных систем и микропроцессоров: по области применения; по системе команд процессора. Основные методы оценки производительности вычислительных систем. Элементарные понятия о представлении программы на языке ассемблера. Раздел 2. Общие принципы реализации конвейерного микропроцессора 2.1. Общие вопросы и основные понятия: исторические условия внедрения конвейерной концепции, её преимущества и недостатки; описание учебной модели конвейерного микропроцессора; понятие структурных конфликтов в конвейере; понятие конфликтов по данным в конвейере; понятие конфликтов по управлению в конвейере. 2.2. Основные методы снижения вероятности конфликтов по данным, на примере учебной модели конвейерного микропроцессора с однопоточным конвейером. 2.3. Основные методы снижения вероятности конфликтов по управлению, на примере учебной модели конвейерного микропроцессора с однопоточным конвейером. 2.4. Организация работы многопоточного конвейера в процессоре: с многопоточностью на стадии исполнения операций; с многопоточностью на стадии декодирования операций. Раздел 3. Основы программной оптимизации кода для конвейерного процессора 3.1. Оптимизация скорости исполнения кода с помощью автоматизированного профилирования. 3.2. Технология разворачивания циклов. 3.3. Технология символического разворачивания циклов. Раздел 4. Реализация аппаратной логики динамической оптимизации кода 4.1. Известные методы реализации аппаратной оптимизации кода: алгоритм «табло»; алгоритм Томасуло. 4.2. Общая логика работы алгоритма Томасуло и описание учебной модели конвейерного микропроцессора с аппаратной оптимизацией кода по алгоритму Томасуло. 4.3. Анализ примеров исполнения кода в учебной модели при изменении её параметров. 4.4. Анализ примеров исполнения кода в учебной модели при сочетании аппаратной оптимизации кода по алгоритму Томасуло с многопоточностью на стадии декодирования операций. 4.5. Особенности динамической аппаратной оптимизации последовательности операций с памятью. Раздел 5. Динамические аппаратные методы обработки ветвлений 5.1. Одноуровневые аппаратные методы обработки ветвлений. 5.2. Многоуровневые или корреляционные аппаратные методы обработки ветвлений. 5.3. Гибридные или турнирные аппаратные методы обработки ветвлений. 5.4. Организация кэша целевых адресов переходов. 5.5. Модификация учебной модели конвейерного процессора для поддержки динамических аппаратных методов обработки ветвлений. Раздел 6. Иерархическая структура памяти 6.1. Предпосылки для организации многоуровневой иерархической структуры памяти. 6.2. Задачи выравнивания данных и кода в памяти при её многоуровневой организации. 4 6.3. Алгоритмы организации кэш-памяти и методы повышения их эффективности: кэш с прямым отображением; блочно-ассоциативный кэш; полностью ассоциативный кэш; псевдо-ассоциативный кэш; кэш вытесненных строк. 6.4. Методы синхронизации кэша с основной памятью: со сквозной записью; с обратной записью. 6.5. Дополнительные особенности организации кэш-памяти: реализация общего или раздельного кэша инструкций и данных; выбор алгоритма замещения строк в кэше; инклюзивная и эксклюзивная схемы кеширования. 6.6. Принципы организации аппаратной предвыборки данных. 6.7. Примеры влияния стиля программирования на эффективность исполнения программы аппаратурой микропроцессора с кэш-памятью. Раздел 7. Организация виртуальной памяти 7.1. Сегментация адресного пространства памяти для его расширения. 7.2. Сегментация адресного пространства памяти для организации аппаратной поддержки многопользовательского многозадачного режима, на примере х86 систем. 7.3. Страничная организация памяти, на примере х86 систем. 7.4. Краткий обзор механизмов виртуализации в различных архитектурах. 7.5. Средства аппаратного ускорения механизмов сегментации и страничной организации памяти: «теневые» регистры; TLB. Раздел 8. Организация обмена с внешними устройствами 8.1. Методы организации адресного пространства для внешних устройств: с выделенным адресным пространством; с проекцией адресного пространства внешних устройств на адресное пространство памяти. 8.2. Поллинг. 8.3. Организация обмена с помощью прерываний, на примере х86 систем. 8.4. Преимущества обмена с помощью вспомогательного контроллера (DMA). 8.5. Функции системного BIOS. 8.6. Понятие исключительных ситуаций и их обработка. Раздел 9. Многопроцессорность на чипе Раздел 10. Организация поддержки многонитевости на одном процессорном ядре Раздел 11. VLIW-концепция и успешные рыночные проекты на её основе Раздел 12. Специфика векторных микропроцессоров Раздел 13. Архитектура Cell, как яркая иллюстрация поддержки множества методов параллелизма, в рамках одного проекта Раздел 14. Специфика микропроцессоров обработки сигналов 6. Лабораторный практикум 5 № п/п № раздела дисциплины 1. 2 2. 3 3. 4 4. 4, 5 5. 5, 6 Наименование лабораторной работы Обработка последовательного программного кода однопоточным конвейерным процессором Реализация простейших примеров разворачивания цикла и программной конвейеризации Обработка последовательного программного кода конвейерным процессором с динамическим планированием загрузки конвейера по алгоритму Томасуло Логика работы механизмов аппаратного прогнозирования ветвлений Логика работы механизмов аппаратного кэширования данных 7. Учебно-методическое обеспечение дисциплины 7.1. Рекомендуемая литература а) основная литература: 1. Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2007. 848 с. 2. Столлингс В. Структурная организация и архитектура компьютерных систем. 5-е изд. М.: Вильямс, 2002. 896 с. б) дополнительная литература: 1. Корнеев В.В. Вычислительные системы. М.: Гелиос АРВ, 2004. 512 с. 2. Брайант Р.Э., О'Халларон Д.Р. Компьютерные системы. Архитектура и программирование: Взгляд программиста. СПб.: БХВ-Петербург, 2005. 1104 с. 8. Вопросы для контроля Контроль знаний по курсу осуществляется решением задач по тематике основных разделов содержания дисциплины. Примеры задач и образцы решений хранятся на локальном сервере радиофизического факультета и свободно доступны для студентов в электронном виде. 9. Критерии оценок Превосходно Отлично Очень хорошо Хорошо Удовлетворительно Неудовлетворительно Плохо Превосходная подготовка с очень незначительными погрешностями Подготовка, уровень которой существенно выше среднего с некоторыми ошибками В целом хорошая подготовка с рядом заметных ошибок Хорошая подготовка, но со значительными ошибками Подготовка, удовлетворяющая минимальным требованиям Необходима дополнительная подготовка для успешного прохождения испытания Подготовка совершенно недостаточная 10. Примерная тематика курсовых работ и критерии их оценки Курсовые работы не предусмотрены. 6 Программа составлена в соответствии с Федеральным государственным образовательным стандартом высшего профессионального образования по направлению 010300 «Фундаментальная информатика и информационные технологии» Автор программы ___________ Салагацкий Г.А. Программа рассмотрена на заседании Центра БИСК 25 марта 2011 г. протокол № 6–2010/2011 Руководитель ЦеБИСК ___________________________ Ротков Л.Ю. Программа одобрена методической комиссией факультета 11 апреля 2011 года протокол № 05/10 Председатель методической комиссии_________________ Мануилов В.Н. 7