Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Б3.Б.2 ЭВМ и периферийные устройства

.pdf
Скачиваний:
23
Добавлен:
28.03.2016
Размер:
1.35 Mб
Скачать

8.Каково общее правило для шага, с которым должен осуществляться обход данных, чтобы появился эффект кэш-буксования?

9.Какие существуют способы обхода кэш-буксования, если оно возникло в программе?

10.В каком порядке обход элементов многомерного статического массива в языке Си будет наиболее быстрым?

Раздел 4

1.Назовите отличия архитектур x86 и x86-64.

2.Какова семантика данной инструкции? Какова роль этой инструкции с точки зрения программы в целом?

3.Как реализуется данный оператор из исходной программы в ассемблере?

4.Для чего выполняется программная раскрутка цикла?

5.Для чего выполняется программная конвейеризация цикла?

6.Какие способы оптимизации применил компилятор? Объясните принципы их работы. Почему компилятор применяет те или иные способы оптимизации, только начиная с определённого уровня?

7.Почему в программах следует избегать обращений в память?

8.Как зависимости между командами влияют на процесс исполнения программы? Как компилятор и процессор борются с ними?

Раздел 5

1.Что такое SIMD-расширение?

2.Назовите существующие SIMD-расширения архитектуры x86/x86-64. С какими регистрами и типами данных каждое из них работает?

3.Какое максимальное ускорение можно ожидать при использовании расширения SSE? Всегда ли оно достижимо? Какие факторы могут препятствовать достижению максимального ускорения при векторизации?

4.Какие классы алгоритмов возможно векторизовать? Какие должны выполняться необходимые условия для возможности векторизации вычислений?

5.Какие существуют способы использования SIMD-расширений в пользовательских программах?

Раздел 6

1.Перечислите виды аппаратной многопоточности, реализованные в микропроцессоре Cell.

2.Перечислите основные отличия архитектуры GPU от архитектур процессоров общего назначения.

21

Раздел 7

1.Какие существуют проблемы увеличения производительности последовательных вычислительных систем?

2.Назовите основные тенденции развития микропроцессоров общего назначения.

Вопросы к коллоквиуму 1

1.Объясните, почему одна программная архитектура ЭВМ может иметь множество различных аппаратных архитектур.

2.В множество с каким номером может быть помещен блок памяти, содержащий ячейку с адресом N, если известно, что кэш имеет размер 16 Кбайт, является двух-ассоциативным и размер строки кэша равен 32 байтам? Обоснуйте ответ. N = A*32 + B, где А – номер ряда, а B – номер места.

3.Какие существуют соотношения между временем доступа, объемом и стоимостью памяти?

4.Сравните механизмы управления памятью: кэширование и виртуальная память.

5.Какое преимущество даёт конвейерное исполнение команд? Что мешает работе конвейера?

6.Назовите факторы, являющиеся существенными при выборе централизованного или децентрализованного арбитража шины.

7.Объясните причину, по которой программирование периферийных устройств разделено на три уровня: без операционной системы, на уровне операционной системы и на прикладном уровне.

8.Сравнение быстрых и медленных шин. По каким ключевым параметрам они различаются? В чем их сильные и слабые стороны?

9.Какие имеются основные виды устройств ввода-вывода? Какими ключевыми параметрами характеризуется каждый из видов?

Вопросы к коллоквиуму 2

1.Чем отличаются форматы команд CISC и RISC?

2.Каково назначение процедуры «переименования» регистров? Как она реализуется?

3.Назовите причины введения регистрового окна в RISC-процессорах.

4.За счет чего конвейеры в RISC-процессорах работают быстрее, чем в CISC-процессорах?

5.Каковы преимущества исполнения команд вне порядка? Как при этом обеспечивается корректность исполнения последовательной программы?

22

6.Зачем используется предсказание переходов? Сравните механизмы предсказания переходов.

7.Какими свойствами должна обладать программа, чтобы ее возможно было векторизовать?

Вопросы к дифференцированному зачету

Раздел 1.

1. Основные архитектурные принципы построения компьютера. Компьютер фон Неймана. Узкие места компьютера фон Неймана и его усовершенствования.

Раздел 2.

1.Принципы взаимодействия ЭВМ с периферийными устройствами.

2.Механизм прерываний. Два способа выполнения прерываний. Арбитраж шины.

Раздел 3.

1.Иерархия памяти. Основной принцип построения иерархической памяти. Типичная схема иерархии памяти.

2.Определение кэш-памяти. Параметры кэш-памяти. Временные характеристики.

3.Алгоритмы отображения информации (программы и данных) в кэшпамять. Алгоритмы замещения строк в кэш-памяти. Сравнительный анализ алгоритмов.

4.Алгоритмы записи данных в оперативную память. Сравнительный анализ алгоритмов.

5.Проблемы поддержания когерентности данных. Способы их решения.

6.Понятие виртуальной памяти. Способы управления виртуальной памятью. Их сравнение.

7.Рекомендации эффективного программирования с учетом организации памяти.

Раздел 4.

1.Процессор, его состав и функционирование. Техника конвейеризации. Передача данных на конвейере. Временные оценки сложности.

2.Командный конвейер. Пример командного конвейера. Способы увеличения производительности конвейера. Причины приостановки конвейера и техника их преодоления.

3.Принципы оптимизации программ. Способы оптимизации программ, используемые компиляторами.

4.Способы предсказания переходов. Виды динамических предсказателей переходов.

23

5.CISC и RISC архитектуры. Основные характеристики. Сравнение. Реализация в современных микропроцессорах.

6.Архитектуры x86, x86-64.

7.Архитектура ARM.

Раздел 5.

1.Виды параллелизма в компьютерах. Классификация компьютеров с точки зрения параллелизма.

2.Компьютеры с параллелизмом на уровне команд (ILP). Способы выявления и реализации ILP. Примеры компьютеров.

3.Компьютеры с параллелизмом на уровне данных (DLP). Способы выявления и реализации DLP. Примеры компьютеров.

4.Структура суперскалярного процессора. Причины, ограничивающие производительность суперскаляров, и средства их преодоления. Примеры суперскалярных процессоров.

5.Понятие многопоточности. Средства синхронизации потоков.

6.Способы реализации аппаратной многопоточности и их особенности. Примеры микропроцессоров.

Раздел 6.

1.Архитектура графических ускорителей. Иерархия памяти. Особенности исполнения и планирования подпрограмм.

2.Введение в архитектуру ПЛИС и средства разработки приложений на базе ПЛИС.

Раздел 7.

1. Проблемы и тенденции развития компьютеров общего назначения.

7.4. Методические материалы, определяющие процедуры оценивания знаний, умений, навыков и (или) опыта деятельности, характеризующих этапы формирования компетенций

Аттестация студентов по дисциплине «ЭВМ и периферийные устройства» проводится на основании текущего и промежуточного контроля согласно балльно-рейтинговой системе.

Текущая аттестация студента в семестре проводится путем защиты лабораторных работ и проверки коллоквиумов. Максимальное количество баллов за текущую аттестацию составляет 60 (максимальное количество баллов за защиту лабораторных работы и коллоквиумы приведены в таблице 2). Сумма баллов выставляется исходя из правильности и полноты ответов студента на вопросы во время защиты практического задания и коллоквиума.

Максимальная сумма баллов промежуточной аттестации (дифференцированный зачет) составляет 40 баллов.

24

Правила промежуточной аттестации студентов.

1.К дифференцированному зачету не допускаются студенты, работа которых на основании текущего контроля оценивается преподавателем менее чем в 30 баллов.

2.Студенты, которые получили не менее 55 баллов по результатам контроля и выполнили 2 дополнительные лабораторные работы повышенной сложности опрашиваются преподавателем по теоретическим темам курса. По результатам опроса студенты получают оценку по промежуточному контролю без сдачи дифф. зачета. Если оценка студента не устраивает, он может сдавать после этого дифф. зачет на общих основаниях..

3.Билет на дифф. зачете включает два теоретических вопроса и один практический.

табл.2.

Вид учебной деятельности

Максимальное число бал-

лов

 

Лабораторные и самостоятельные

48 (12x4)

работы

 

Коллоквиумы

12

Зачет

40

Итого за семестр:

100

Итоговая оценка выставляется в зависимости от числа баллов: 87-100 – «отлично», 74-86 – «хорошо»,

50-73 – «удовлетворительно», менее 50 – «неудовлетворительно».

Кроме того, если студент не получил оценку в порядке, предусмотренном в п. 2 и не явился на дифф. зачет, то он получает оценку «неудовлетворительно» вне зависимости от количества баллов, полученных при текущем контроле.

8. Перечень основной и дополнительной учебной литературы, необходимой для освоения дисциплины

а) основная литература:

1.Таненбаум Э. Остин Т. Архитектура компьютера. СПб.: Питер, 2013. – 816 с.

2.Многоядерные процессоры: Учебное пособие. Калачев А.В. – М.: Интернет-Университет Информационных Технологий: БИНОМ. Лаборатория знаний, 2011. – 247 с.

URL: http://www.intuit.ru/studies/courses/622/478/info

25

3.Гуров В.В. Архитектура микропроцессоров: Учебное пособие. – М.: Интернет-Университет Информационных Технологий: БИНОМ. Лаборатория знаний, 2010. – 272 с.

URL: http://www.intuit.ru/studies/courses/604/460/info

б) дополнительная литература:

4.Антошина И.В., Котов Ю.Т. Микропроцессоры и микропроцессорные системы (аналитический обзор): Учебное пособие. - М.: МГУЛ, 2005. – 432 с.

5.Зубков С.В. Assembler для DOS, Windows и UNIX. – М. ДМК, 2006. – 608

с.

6.Калачев А.В. Многоядерные процессоры: Учебное пособие. – М.: Интер- нет-Университет Информационных Технологий: БИНОМ. Лаборатория знаний, 2011. – 247 с.

7.Гук М., Юров В. Процессоры Pentium 4, Athlon и Duron. – СПб.: Питер,

2002. – 512 c.

8.Таненбаум Э. Архитектура компьютеров. СПб.: Питер, 2007. – 848 с.

9.В.В.Корнеев, А.В.Киселев Современные микропроцессоры, 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2003. – 440 с.

10.Корнеев В.В. Параллельные вычислительные системы. – М.: Нолидж,

1999. – 311 c.

11.Касперски К. Техника оптимизации программ. Эффективное использование памяти. – СПб.: БХВ-Петербург, 2003. – 464 с.

12.Грушин В.В. Выполнение математических операций в ЭВМ. Погрешности компьютерной арифметики: Учебное пособие / СПбГЭТУ "ЛЭТИ".

СПб., 1999. 56 с.

13.Папков В.И. Система памяти ЭВМ (Функциональный подход). Учеб. пособие. СПб.: Изд.центр СПбГМТУ. 2002. 238 с.

14.Столлингс В. Структурная организация и архитектура компьютерных систем. 5-е издание. - М.: Издательский дом "Вильямс", 2002. – 896 с.

15.D. Sima, T. Fountain, P. Kacsuk. Advanced computer architectures. New York: Addison Wesley Longman Inc., 1997.

16.Intel®64 and IA-32 Architectures Software Developer’s Manual, 2007.

в) учебно-методическая литература:

17.Эффективное программирование современных микропроцессоров: Учебное пособие. Маркова В.П., Киреев С.Е., Остапкевич М.Б., Перепелкин В.А. – Новосибирск: Изд-во НГТУ. 2014. – 148 с.

9. Перечень ресурсов информационно-телекоммуникационной сети «Интернет», необходимых для освоения дисциплины

1.Ulrich Drepper, What Every Programmer Should Know About Memory, 2007. (http://www.akkadia.org/drepper/cpumemory.pdf) – P. 114.

2.Top 500 Supercomputer Sites (http://www.top500.org).

26

3.The Green 500 List, http://green500.org

4.Суперкомпьютеры Top 50 (http://supercomputers.ru).

5.Материалы к курсу на сайте кафедры ПВ ФИТ НГУ

(http://ssd.sscc.ru/ru/chair/nsu/computer-and-peripherals)

6.Agner Fog. Software optimization resources. http://www.agner.org/optimize/

7.Шнитман В. Современные высокопроизводительные компьютеры, ин- формационно-аналитические материалы Центра Информационных Тех-

нологий, 1996. (http://www.citforum.ru/hardware/svk/contents.shtml)

8.Хеннинг Дж. SPEC CPU 2000: определение производительности в новом тысячелетии (http://www.osp.ru/os/2000/07-08/178080/).

10. Методические указания для обучающихся по освоению дисциплины

Лекции. При прослушивании лекций конспектируйте услышанный материал. После лекции уделите время тому, чтобы повторить пройденный материал. Оцените степень понимания каждого раздела лекции. Выявите разделы, сложные для понимания, изучите эти вопросы в литературе к курсу. Если после этого остаются вопросы – сформулируйте их, чтобы проконсультироваться с преподавателем. Перед каждой лекцией повторите материал предыдущей лекции, чтобы войти в контекст дисциплины.

Практические занятия. В первую очередь уясните цель работы. Затем отметьте шаги, необходимые для её достижения. Убедитесь, что понимаете, как выполнить каждый шаг. При оформлении отчета убедитесь, что он оформлен надлежащим образом и содержит всю ключевую информацию по выполненной работе. Следите за тем, чтобы выполнять все задания в срок.

Самостоятельная работа студента. Изучайте литературу по курсу по тем темам, изучению которых посвящены текущие лекции. Отводите время и на повторение лекций по конспектам. Сопоставляйте информацию, услышанную на лекциях и прочитанную в других источниках. В случае возникновения вопросов фиксируйте их и консультируйтесь с преподавателем. Перед коллоквиумами и зачетом повторяйте материал всех предыдущих лекций. Для подготовки ко второму коллоквиуму повторяйте материалы лекций начиная с предыдущего коллоквиума.

Дифференцированный зачет. При подготовке к дифференцированному зачету используйте конспекты лекций и основную литературу. Классифицируйте информацию по важности, уделяйте первостепенное внимание важным и существенным вещам. Контролируйте степень текущего понимания каждой темы. Уделяйте больше внимания сложным для понимания темам. Изучите примерный список билетов. Повторяя каждую тему продумывайте ответы на соответствующие вопросы в билетах.

27

11. Перечень информационных технологий, используемых при осуществлении образовательного процесса по дисциплине, включая перечень программного обеспечения и информационных справочных систем (при необходимости)

В процессе освоения дисциплины, студент использует следующие программные средства:

GCC – компилятор Си из GNU Compiler Collection

GDB – Отладчик GNU

PuTTy – удаленный доступ к другому компьютеру

WinSCP – пересылка данных между компьютерами

libusb – библиотека для работы с USB устройствами

OpenCV – библиотека поддержки приложений машинного зрения (используется для доступа к видео камере)

Стандартное офисное ПО для просмотра презентаций лекций и подготовки отчетов по лабораторным работам.

12.Описание материально-технической базы, необходимой для осуществления образовательного процесса по дисциплине

Лекции читаются в специальной лекционной аудитории, оборудованной проектором, экраном и компьютером.

Лабораторные работы проводятся в компьютерных аудиториях с отдельными рабочими местами для каждого студента, кроме того, предоставляется доступ к серверам и оборудованиию НГУ и лаборатории Синтеза пара СО РАН.

Самостоятельные работы выполняются либо дома (при наличии у студента соответствующего аппаратного и программного обеспечения), либо в терминальных классах в предусмотренном режиме.

28

Приложение А

Методические рекомендации по самостоятельной работе обучающихся по дисциплине «ЭВМ и периферийные устройства»

1. План-график выполнения СРС по дисциплине В процессе изучения дисциплины предусмотрено выполнение следующих видов самостоятельной работы:

Вид самостоятельной

Номер недели семестра

работы

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Изучение литературы

1

1

2

3

1

1

1

1

1

1

2

2

1

3

4

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подготовка к лабо-

1

1

0

6

2

2

0

2

3

3

2

2

2

2

0

0

раторным занятиям

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подготовка к теку-

1

1

2

3

1

1

1

1

1

1

3

1

0

0

0

0

щему контролю

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подготовка к про-

0

0

0

0

0

0

0

0

0

0

0

0

0

0

4

1

межуточному кон-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

тролю

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Итого

3

3

4

6

4

4

2

4

5

5

7

5

3

5

8

1

в неделю

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

часов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.Характеристика и описание заданий на СРС

Впроцессе изучения дисциплины предусмотрены следующие контрольные точки:

Контрольная точка

 

Срок сдачи (номер недели се-

 

местра)

 

 

Защита лабораторной работы 1

 

2

Защита лабораторной работы 2

 

3

Защита лабораторной работы 3

 

5

Защита лабораторной работы 4

 

7

Защита лабораторной работы 5

 

8

Защита лабораторной работы 6

 

9

Коллоквиум

 

9

Защита лабораторной работы 7

 

11

Защита лабораторной работы 8

 

12

Защита лабораторной работы 9

 

13

Коллоквиум

 

13

Защита лабораторной работы 10

 

14

Лабораторная работа 1. Определение

времени работы прикладных программных

программ.

 

 

 

29

Цели работы

1.Изучение методики измерения времени работы подпрограммы.

2.Изучение приемов повышения точности измерения времени работы подпрограммы.

3.Изучение способов измерения времени работы подпрограммы.

4.Измерение времени работы подпрограммы в прикладной программе.

Задание к лабораторной работе

1.Написать программу на языке C или C++, которая реализует выбранный алгоритм из задания.

2.Проверить правильность работы программы на нескольких тестовых наборах входных данных.

3.Выбрать значение параметра N таким, чтобы время работы программы было порядка

15секунд.

4.По приведенной методике определить время работы подпрограммы тестовой программы с относительной погрешностью не более 1%.

5.Составить отчет по лабораторной работе.

Контрольные вопросы

1.Каковы цели измерения времени?

2.В чем состоит методика измерения времени работы программы?

3.Какие существуют способы измерения времени работы программы и в чем их особенности?

4.Каким способом лучше измерять большие промежутки времени (порядка нескольких часов)?

5.Каким способом лучше измерять малые промежутки времени (порядка времени работы нескольких команд процессора)?

Лабораторная работа 2. Изучение оптимизирующего компилятора.

Цели работы

1.Изучение основных функций оптимизирующего компилятора, и некоторых примеров оптимизирующих преобразований и уровней оптимизации.

2.Получение базовых навыков работы с компилятором GCC.

3.Исследование влияния оптимизационных настроек компилятора GCC на время исполнения программы.

Задание к лабораторной работе

1.Написать программу на языке C или C++, которая реализует выбранный алгоритм из задания.

2.Проверить правильность работы программы на нескольких тестовых наборах входных данных.

3.Выбрать значение параметра N таким, чтобы время работы программы было порядка 30-60 секунд.

4.Программу скомпилировать компилятором GCC с уровнями оптимизации -O0, -O1, - O2, -O3, -Os, -Ofast, -Og под архитектуру процессора x86.

5.Для каждого из семи вариантов компиляции измерить время работы программы при нескольких значениях N.

6.Составить отчет по лабораторной работе.

Контрольные вопросы

30