МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное образовательное учреждение высшего профессионального
образования
«Новосибирский государственный университет» (НГУ)
Факультет информационных технологий
УТВЕРЖДАЮ
_
« _» _ 20_г.
РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ
ЭВМ и периферийные устройства (наименование дисциплины) НАПРАВЛЕНИЕ ПОДГОТОВКИ 230100 «ИНФОРМАТИКА ИВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»
Квалификация (степень) выпускника Бакалавр Форма обучения очная Новосибирск Программа дисциплины «ЭВМ и периферийные устройства» составлена в соответствии с требованиями ФГОС ВПО к структуре и результатам освоения основных образовательных программ бакалавриата по «профессиональному» циклу (базовая часть) по направлению подготовки 230100 «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА» а также задачами, стоящими перед Новосибирским государственным университетом по реализации Программы развития НГУ.Автор (авторы): Маркова Валентина Петровна, к.т.н., доцент, Киреев Сергей Евгеньевич, старший преподаватель, Перепелкин Владислав Александрович, старший преподаватель.
Факультет информационных технологий Кафедра: Параллельные вычисления 1. Цели освоения дисциплины Освоение бакалаврами дисциплины «ЭВМ и периферийные устройства»
преследует следующие цели:
знакомство с эволюцией архитектуры ЭВМ, направленной на преодоление узких мест архитектуры фон-Неймана по мере развития СБИС-технологий и языков программирования;
систематизация теоретических знаний о системной организации классических ЭВМ и периферийных устройств;
изучение особенностей архитектур ЭВМ и их влияния на производительность на заданном классе задач;
формирование практических навыков оптимизации прикладных программ под заданную архитектуру ЭВМ (навыки учета особенностей архитектуры целевой ЭВМ в прикладной программе);
изучение архитектур современных ЭВМ и спецвычислителей;
знакомство с тенденциями развития ЭВМ и периферийных устройств.
Указанные цели в полной мере отвечают основным целям данной бакалаврской программы:
Подготовка специалистов для научно-исследовательской деятельности в организации распределённых и высокопроизводительных вычислений, геоинформационных систем, в моделировании и анализе результатов фундаментальных физических экспериментов, а так же для применения современных информационных технологий для науки, экономики на основе фундаментального образования, позволяющего выпускникам быстро адаптироваться к меняющимся потребностям общества.
Развитие у студентов личностных качеств и формирование общекультурных и профессиональных компетенций в соответствии с ФГОС ВПО по данному направлению подготовки.
2. Место дисциплины «ЭВМ и периферийные устройства» в структуре основной образовательной программы Данная дисциплина является базовой частью профессионального цикла ООП по направлению подготовки 230100 «Информатика и вычислительная техника». С другими частями образовательной программы соотносится следующим образом:
Дисциплины, предшествующие по учебному плану:
Цифровая схемoтехника Программирование на языке высокого уровня Информатика Математическая логика, Математический анализ, Вычислительная математика, Информатика.
Требования к первоначальному уровню подготовки обучающихся для успешного освоения дисциплины:
Уровень «знать»:
основные понятия и конструкции языков программирования (процедуры, функции, указатели);
основные элементы математической логики;
основы пользования операционной системой UNIX/Linux.
Уровень «уметь»:
использовать основные законы естественнонаучных дисциплин для понимания преподаваемой дисциплины;
реализовывать и отлаживать программы на языках программирования высокого уровня;
использовать правила логического вывода и логические операции при написании программы.
Дисциплины, последующие по учебному плану:
Объектно-ориентированное программирование.
Операционные системы.
Основы параллельного программирования.
Архитектура современных микропроцессоров и мультипроцессоров.
Эффективное программирование современных микропроцессоров и мультипроцессоров.
Учебная производственная практика.
Дисциплины, последующие по учебному плану:
Объектно-ориентированное программирование.
Операционные системы.
Основы параллельного программирования.
Архитектура современных микропроцессоров и мультипроцессоров.
Эффективное программирование современных микропроцессоров и мультипроцессоров.
Учебная производственная практика.
3. Компетенции обучающегося, формируемые в результате освоения дисциплины «ЭВМ и периферийные устройства»
В результате освоения дисциплины студент должен:
Знать:
принципы организации ЭВМ;
архитектуру современных микропроцессоров;
критерии оценки и сравнения различных ЭВМ;
влияние архитектуры ЭВМ на показатели её быстродействия для различных классов задач;
влияние компилятора на формирование эффективного исполнительного кода;
принципы параллельной организации вычислений в ЭВМ.
Уметь:
определять основные характеристики вычислительной системы (тактовая частота процессора и шин, объемы памяти, пропускная способность сети, и т.п.);
сравнивать между собой и выбирать архитектуры ЭВМ под заданный класс задач;
следить за мировыми тенденциями развития в области разработки новых архитектур, программных и технических средств.
Владеть:
базовыми навыками выявления узких мест в прикладных программах и оптимизации их под заданную целевую архитектуру ЭВМ;
методикой оценки характеристик производительности прикладных программ.
Общекультурные компетенции:
Способность совершенствовать и развивать свой интеллектуальный и общекультурный уровень (ОК-1).
Способность к самостоятельному обучению новым методам исследования, к изменению научного и научно-производственного профиля своей профессиональной деятельности (ОК-2).
Способность свободно пользоваться русским и иностранным языками, как средством делового общения (ОК-3).
Способность самостоятельно приобретать с помощью информационных технологий и использовать в практической деятельности новые знания и умения, в том числе в новых областях знаний, непосредственно не связанных со сферой деятельности (ОК-6).
Способность к профессиональной эксплуатации современного оборудования и приборов (в соответствии с целями магистерской программы) (ОК-7).
Способность использовать углубленные знания правовых и этических норм при оценке своей деятельности, ее социальных последствий (ОК-8).
Профессиональные компетенции:
Способность осваивать методики использования программных средств для решения практических задач (ПК-2).
Способность разрабатывать компоненты программных комплексов и баз данных, использовать современные инструментальные средства и технологии программирования (ПК-4).
Способность готовить презентации, научно-технические отчеты по результатам выполненной работы, оформлять результаты исследований в виде статей и докладов на научно-технических конференциях (ПК-7).
Способность инсталлировать программное и аппаратное обеспечение для информационных и автоматизированных систем (ПК-11).
Знает современные тенденции развития информационных технологий Понимает основные принципы организации и функционирования ЭВМ Владеет основными методами классификации вычислительных систем Владеет методами эффективного программирования современных Понимает роль компилятора в формировании эффективного исполнительного кода (ПК-38).
Способен сопоставлять текстовое представление исполнительного кода (ассемблер) и исходного кода программы (ЯВУ) (ПК-39).
Понимает тенденции развития архитектур современных микропроцессоров и мультипроцессоров (ПК-40).
Инструментальные компетенции:
Имеет навыки использования инструментальных средств программирования для ОС семейства Unix (ИК-1).
владеет языком программирования высокого уровня Си и техникой программирования (ИК-4).
имеет навыки решения типовых задач программирования и владеет основными моделями и методами их решения (ИК-5).
владеет техникой раздельной компиляции, отладчиком и другими возможностями интегрированных сред разработки (ИК-6).
4. Структура и содержание дисциплины «ЭВМ и периферийные устройства»
Общая трудоемкость дисциплины составляет 6 зачетных единиц, 216 часов (в т.ч. 64 аудиторных) (см. табл.1).
Определение архитектуры организация ЭВМ подсистемы памяти вычислительные устройства архитектур микропроцессоров экзамену *З.С.Р – Защита самостоятельных работ.
4.1 Темы лекционных занятий разделов дисциплины 1. Введение. Определение архитектуры 1.1. Цели и задачи курса. Определение архитектуры компьютера.
Основные характеристики и принципы функционирования ЭВМ.
Области применения.
2. Системная организация ЭВМ 2.1. Периферийные устройства.
2.2. Обработка прерываний.
3. Организация подсистемы памяти 3.1. Подсистема памяти. Представление данных. Иерархическая 3.2. Аппаратная реализация памяти.
3.3. Организация кэш-памяти.
3.4. Виртуальная память.
3.5. Программирование с учетом организации памяти.
4. Функционирование процессора 4.1. Процессор, его состав и функционирование.
4.2. Набор команд. CISC и RISC-архитектуры.
4.3. Конвейерная обработка.
4.4. Предсказание переходов.
4.5. Суперскалярные архитектуры.
5. Введение в параллельную обработку 5.1. Параллелизм в процессоре. Понятие последовательного и параллельного исполнения. Уровни параллелизма.
5.2. Параллелизм на уровне команд. Суперскалярные и VLIVархитектуры. Примеры архитектур: процессоры x86/x86-64, процессоры Power, процессоры Itanium.
5.3. Параллелизм на уровне данных. Векторно-конвейерные архитектуры.
SIMD-расширения архитектур общего назначения.
5.4. Параллелизм на уровне потоков. Многопоточные архитектуры.
Многоядерные архитектуры. Проблема поддержания когерентности 6. Специализированные вычислительные устройства 6.1. Архитектура спецвычислителей. Графические ускорители.
7. Заключение. Тенденции развития архитектур микропроцессоров 7.1. Обзор современных архитектур ЭВМ. Проблемы и тенденции развития микропроцессоров и вычислительных систем.
4.2 Темы практических занятий разделов дисциплины 1. Введение. Определение архитектуры 1.1. Использование оптимизирующего компилятора.
1.2. Измерение времени работы программы.
2. Системная организация ЭВМ 2.1. Реализация алгоритма арбитража шины.
2.2. Реализация обработчика прерываний.
2.3. Реализация алгоритма коммутации шин.
3. Организация подсистемы памяти 3.1. Сравнение способов обхода данных в памяти.
3.2. Изучение способов отображения данных в кэш-память.
3.3. Изучение аппаратной предвыборки данных.
3.4. Изучение работы TLB.
4. Функционирование процессора 4.1. Изучение архитектуры x86/x86-64.
4.2. Изучение архитектуры Itanium.
4.3. Разбор ассемблерного листинга.
5. Введение в параллельную обработку 5.1. Использование векторных расширений.
4.3 Темы самостоятельных работ Раздел 1. Введение. Определение архитектуры.
Написать программу, вычисляющую заданную функцию, в зависимости от варианта. Исследовать зависимость времени работы программы от компилятора и используемых ключей оптимизации компилятора.
Варианты заданий:
Вычисление числа Пи с помощью разложения в ряд.
Вычисление определенного интеграла сложной функции методом трапеций.
Вычисление квадратного корня с помощью алгоритма Ньютона.
Сортировка методом пузырька.
Вычисление числа Пи метом Монте-Карло.
Для каждого доступного компилятора следует сравнить различные уровни оптимизации (например, ключи –O0, –O1, –O2, –O3 для компилятора gcc) и оптимизацию под архитектуру процессора (например, ключи –O3 – march=core2 для компилятора gcc).
Раздел 2. Системная организация ЭВМ В заданиях данного раздела студенту предлагается модельная система, состоящая из нескольких устройств, подключённых к различным шинам.
Задача состоит в том, чтобы модифицировать эту систему, добавив новую функциональность.
Пример такой системы: К одному ведущему устройству по шине А подключено 3 периферийных устройства. Каждое устройство управляется ведущим, и может отсылать ему прерывания в векторном режиме. Требуется реализовать обработчик прерывания на ведущем устройстве, который бы взаимодействовал с периферийными устройствами в опрашиваемом режиме.
Другие варианты заданий:
1. Реализовать алгоритм арбитража для модельной системы взаимодействующих устройств (централизованный, либо децентрализованный).
2. Реализовать обработчик прерывания для модельной системы взаимодействующих устройств (в векторном, либо опрашиваемом режиме).
3. Реализовать алгоритм коммутации нескольких шин для доступа к одному ведущему устройству.
Раздел 3. Организация подсистемы памяти 1. Определить параметры кэш-памяти: латентность, пропускная способность, объем. Сравнить времена для различных способов обхода массива: прямой обход, обратный обход, обход в случайном порядке.
Для выполнения задания требуется написать программу, выполняющую чтение элементов массива заданного размера в заданном порядке.
Процедура обхода массива x[] должна выглядеть следующим образом: