НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСТЕТ

  ФАКУЛЬТЕТ ПРИКЛАДНОЙ МАТЕМАТИКИ И ИНФОРМАТИКИ

КАФЕДРА ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ ТЕХНОЛОГИЙ

“УТВЕРЖДАЮ”

  Декан ФПМИ 

“___ ”____________2006 г.

РАБОЧАЯ  ПРОГРАММА УЧЕБНОЙ ДИСЦИПЛИНЫ


«Архитектура ЭВМ и вычислительных систем»

ООП: 010503 – Математическое обеспечение и администрирование информационных систем;  квалификация – математик-программист

«Архитектура ЭВМ и вычислительных систем»

Факультет прикладной математики и информатики

  Курс  1  семестр  2

               Семестр                                                2

               Лекции                                                34 часа.

РГЗ                  2 семестр

               Самостоятельная работа                         28 час

               Зачет                  2 семестр

               Всего                                                64 час

НЕ нашли? Не то? Что вы ищете?

Новосибирск
2006 г.

       Рабочая программа составлена на основании Учебного плана НГТУ и государственного образовательного стандарта по специальности 351500 «Математическое обеспечение и администрирование информационных систем», утвержденный 10.03.2000, № 72 мжд/cп.

Шифр дисциплины в ГОС ОПД. Ф.03, федеральный компонент.

Рабочая программа обсуждена на заседании кафедры Параллельных вычислительных технологий  25 апреля 2006 г. (протокол № 26).

Программу составил:                                         доц., к. т.н.

Заведующий кафедрой        ПВТ                          проф., д. т.н.

Ответственный за основную

образовательную программу                

зав. каф. ПСиБД  проф., д. т.н. 



Внешние требования

Требования к обязательному минимуму содержания ООП подготовки математика-программиста прикладной математики и информатики.

Таблица 1

Шифр дисциплины

  Содержание учебной дисциплины

Часы


ОПД. Ф.03


АРХИТЕКТУРА ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

И КОМПЬЮТЕРНЫХ СЕТЕЙ

Способы организации и типы ВС; параллельная обработка информации: уровни и способы организации; реализация в многомашинных и многопроцессорных ВС; операционные конвейеры; векторные, матричные, ассоциативные системы; однородные системы и среды; RISC-архитектуры; развитие архитектур, ориентированных на языковые средства и среду программирования; основы метрической теории ВС; технология распределенной обработки данных; принципы построения и архитектура компьютерных сетей; протоколы, иерархия протоколов и режимы их работы: соединение, передача данных, разъединение; передача информации в компьютерных сетях; каналы связи, модемы; кодирование и защита от ошибок; структура пакета; методы коммутации каналов, сообщений, пакетов; маршрутизация; базовые средства передачи данных; локальные вычислительные сети (ЛВС); структура и принципы построения ЛВС; конфигурация связей; стандарты, соглашения и рекомендации; программное обеспечение компьютерных сетей.



62


1.3. Квалификационные требования

Математик-программист по специальности 351500 «Математическое обеспечение и администрирование информационных систем» должен уметь компетентно и ответственно решать на основе полученных при обучении знаний и опыта следующие характерные комплексные (обобщенные) задачи:

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

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

7.1. Требования к профессиональной подготовленности специалиста

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

Специалист математик-программист отвечает следующим требованиям:

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

       

имеет опыт:

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

       после освоения специальных дисциплин:

    математик-программист должен иметь представление: о проблемах и направлениях развития технологии программирования; об основных методах и средствах автоматизации проектирования, производства, испытаний и оценки качества ПО; о направлениях развития методов и программных средств коллективной разработки ПО; о направлениях развития ЭВМ с нетрадиционной архитектурой; о тенденциях развития функций и архитектур проблемно-ориентированных программных систем и комплексов; о проблемах и тенденциях развития рынка программного обеспечения; о современных методах и средствах расчета электрических и цифровых схем, способах их автоматизированного проектирования и промышленного производства; о тенденциях развития микроэлектроники, о перспективных схемотехнических решениях в области цифровой и аналоговой техники; об основных направлениях развития метрологии программного обеспечения и принципах проектирования средств измерения характеристик программ;

       знать и уметь использовать:

    основные концептуальные положения функционального, логического, объектно-ориентированного и визуального направления программирования, методы, способы и средства разработки программ в рамках этих направлений; методы проектирования и производства программного продукта, принципы построения, структуры и приемы работы с инструментальными средствами, поддерживающими создание программного обеспечения; методы организации работы в коллективах разработчиков ПО; модели параллельных алгоритмов и методы параллельного программирования; способы построения и проектирования систем искусственного интеллекта; математические и алгоритмические модели, методы и инструментальные программные средства анализа и обработки экспериментальных данных на компьютерах; основные положения метрологии программных продуктов, принципы построения, проектирования и использования средств для измерений характеристик и параметров программ, программных систем и комплексов; современную аналоговую и цифровую элементную базу средств ВТ; архитектуру, алгоритмы функционирования систем реального времени и методы проектирования их программного обеспечения; техническую базу, структуру, способы построения, алгоритмы функционирования и методы проектирования программного обеспечения интерактивных графических систем и систем мультимедиа; основы авторского права на программный продукт; архитектуру, алгоритмы функционирования, способы построения, методы проектирования и реализации программного обеспечения систем и комплексов цифровой обработки сигналов;

       иметь опыт:

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

Дополнительные требования к специальной подготовке математика-программиста определяются высшим учебным заведением с учетом особенностей специализации.

2. Особенности (принципы) построения дисциплины

Таблица 2


Особенность (принцип)

Содержание

Основание для введения дисциплины в учебный план  специальности

Стандарт специальности, федеральный компонент.

Адресат дисциплины

Студенты специальности:

010503 – Математическое обеспечение и администрирование информационных систем.


Главная цель дисциплины

Обеспечение базы теоретической и практической подготовки для

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

Ядро дисциплины

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

Требования к начальной подготовке, необходимые для успешного освоения дисциплины

Для успешного изучения дисциплины студенту необходимы

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

Уровень требований по сравнению со Стандартом

Соответствует требованиям Стандарта

Объем дисциплины в часах

34 часа лекций,  28 часов самостоятельных занятий

Основные понятия дисциплины 

ЭВМ, иерархия памяти, конвейер, RISC-архитектура, суперскалярная архитектура, архитектура с явным параллелизмом на уровне команд,  вычислительная система.  Архитектура компьютерных сетей, протоколы, иерархия протоколов, передача информации в компьютерных сетях, каналы связи, кодирование и защита от ошибок. Структура пакета, локальные вычислительные сети (ЛВС). 


Обеспечение последующих дисциплин образовательной программы

Работа на современных компьютерах и вычислительных сетях.

Практическая часть дисциплины

Практическая часть дисциплины содержит РГР. Студенты осваивают  некоторые приемы  оптимизации программ, которые определяются особенностями архитектуры ЭВМ и используемого компилятора.


Направленность дисциплины на развитие обще предметных, обще интеллектуальных умений, обладающих свойством переноса, направленность на саморазвитие

Обобщение, анализ, синтез, классификация, абстрагирование, моделирование, выделение главного.

Дисциплина и современные информационные технологии

Для чтения лекций и проведения занятий используется пакет Microsoft PowerPoint.



3. Цели учебной дисциплины

После изучения дисциплины студент будет  Таблица 3


иметь представление:

1

О моделях вычислений.

2

О тенденциях развития современных ВС и компьютерных сетей.

3

О состояние дел на рынке современных  компьютеров  (список TOP500).


знать:

4

Базисные вычислительные модели. Основные компоненты  традиционных ЭВМ.

5

Организация  памяти, способы управления памятью.

6

Функционирование процессора.  Технику конвейеризации. Причины остановки конвейера. Способы  уменьшения остановок конвейера.

7

Набор команд. Представление команды. Причины перехода к философии RISC. Основные характеристики RISC-процессоров.

8


Организацию микропрцессоров с параллелизмом на уровне команд (суперскалярные микропроцессоры и микропроцессоры с явным параллелизмом на уровне команд).

9

Причины построения вычислительных систем (ВС). Классификацию ВС. Основные компоненты ВС.

10

Принципы построения и архитектура компьютерных сетей. Организацию протокола. 

уметь:

11

Выбрать архитектуру вычислительной системы для эффективного решения задачи в данной предметной области.

12

Написать и отладить программу с учетом особенностей архитектуры ЭВМ (например, организации памяти).

Иметь опыт:

13

Некоторые навыки практической работы на компьютерах разной архитектуры и вычислительных сетях.



4. Содержание курса

Структура учебной дисциплины

Таблица 4

  Лекционные занятия  (34 часа) 

Блок, модуль, раздел, тема

Часы

Ссылки на цели

Семестр № 2

Введение. Определение архитектуры компьютера. Традиционная архитектура фон Неймана. Основные архитектурные принципы построения компьютера (ЭВМ). Компьютер фон Неймана. Узкие места компьютера фон Неймана и его усовершенствования. 

  2

1,4

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

Кэш-память. Алгоритмы отображения (прямое,  ассоциативное,  частично-ассоциативное). Сравнительный анализ алгоритмов отображения. Алгоритмы записи (сквозной,  с обратным копированием и буферизированный сквозной). Сравнительный анализ алгоритмов записи. Алгоритмы замещения (FIFO, LRU). Проблемы поддержания когерентности. Организация протоколов. Пример протокола. Схемы управления памятью. Понятие виртуальной памяти. Два способа управления памятью. Страничная организация памяти. Сегментная организация памяти. Странично-сегментная организация памяти. Сравнение способов управления.  Банки памяти. Интерливинг. Рекомендации эффективного программирования с учетом организации памяти.

  5

  4,5,13

Функционирование процессора. Процессор, состав и функционирование. Набор команд. Конвейерная обработка. Техника конвейеризации. Передача данных конвейере. Временные оценки сложности. Командный конвейер. Примеры командного конвейера. Количество ступеней. Причины приостановки конвейера и техника их преодоления. Арифметический конвейер. Представление данных. Основные арифметические операции. Примеры целочисленных конвейеров и конвейеров с плавающей точкой. Мультимедийные расширения (SIMD-вычисления). Архитектура с сокращенным набором команд (RISC) Основные характеристики CISC-архитектуры. Формирование концепции RISC-архитектуры. Основные характеристики RISC-архитектур. Конвейер RISC-процессоров. Понятие регистрового окна. Оптимизирующий компилятор. Сравнительный анализ CISC и RISC архитектур.

  5

  4,6,7,13

Архитектуры с параллелизмом на уровне команд (ILP - архитектуры). Классификация ILP-архитектур. Архитектура суперскалярных процессоров. Динамическое исполнение команд (предсказание переходов, переименование регистров, спекулятивное выполнение и выполнение вне порядка).  Основные блоки суперскалярных процессоров. Причины, ограничивающие эффективность суперскаляров. Примеры процессоров (Alpha 21264,  Pentium 4, Opteron, Power PC 970). Архитектура VLIW/EPIC-процессоров (с длинным командным словом / явным параллелизмом на уровне команд). Особенности работы VLIW/EPIC-процессcора (спекуляция по коду и данным, предикатное исполнение команд, регистровый стек, программная конвейеризация циклов, ветвление). Микропроцессор Itanium 2. Сравнение способов выявления скрытого параллелизма в микропроцессорах обоих классов. Перспективы данного класса архитектур.

  4

  8,13

  Архитектуры с параллелизмом на уровне процессов.  Классификация параллельных компьютеров (вычислительных систем).  Компьютеры  с разделяемой памятью (UMA, NUMA, cc-NUMA, COMA) (мультипроцессоры). Компьютеры с распределенной памятью (мультикомпьютеры). Структура мультипроцессора и мультикомпьютера. Поддержка когерентности кэш-памяти. Коммуникационные среды (SCI, Fast Ethernet, Gigabit Ethernet Myrinet, Infiniband, Quadrics). Сранительный анализ коммуникацонных сред. Кластеры. Программное обеспечение (OpenMP, MPI, HPF, треды). Примеры современных мультикомпьютеров, мультипроцессоров и кластеров.  Области применения.

  10

  9,13

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

  9

  10,12

Заключение. Оценки производительности компьютеров. Анализ последней редакции списка TOP500. Тенденции развития вычислительных систем.

  1

  1,2,3



5. Учебная деятельность

В течение семестра каждый студент  выполняет РГР.  Успешное выполнение РГР является обязательным  для сдачи зачета.

Задание на РГР включает следующие темы:

Изучение влияния опций компилятора на время выполнения программы. Разработка программ некоторого простого алгоритма (вычисление числа Пи,  интеграла, квадратного корня) и определение временной сложности его исполнения. Исследование  влияния  параметров  иерархии  памяти на время  выполнения  программы. Изучение SIMD-расширений архитектуры x86. Использование SIMD-расширений при написании программ.

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

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

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

7. Список литературы

7.1. Основная литература


, , Приблуда в микро-ЭВМ. - М.: Машиностроение, Ленингр. отделение, 1988. (46 экземпляров) икропроцессоры: Курс и упражнения. М.: Энергоатомиздат, 1988. (15 экземпляров) Таненбаум компьютера (5-е издание). Издат. дом Питер. 2006 г. (заказ) ппаратные средства IBM PC. СПб: Питер, 1998 г. (1 экземпляр) Крис Касперски. Техника оптимизации программ. Спб.:БХВ-Петербург, 2003.- 464с. (заказ) овременные микропроцессоры, 3-е издание. Санк-Петербург, БХВ-Петербург. 2003. (1 экземпляр) Таненбаум операционные системы. Издат. дом  Питер, 2002 г. (заказ) , Олифер сети. Принципы, технологии, протоколы, 3-е издание. Издат. дом Питер. 2006 г. (заказ) Пятьсот самых мощных компьютеров мира – [http://www. top500.org/list/20q03/11/].

7.2. Дополнительная литература

Смирнов вычислительных систем. - М.: Наука, 1990. , Орлов ЭВМ и сетей. СПб.: Питер, 2004. 668 с.

8. Контролирующие материалы для аттестации студентов по учебной дисциплине

Вопросы для зачета

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

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

3.  Кэш-память.  Принцип построения кэш-памяти.

4. Алгоритмы отображения команд и данных. Сравнительный анализ алгоритмов.

5. Алгоритмы записи.

       6. Алгоритмы замещения. Проблемы поддержания когерентности.

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

       8.  Процессор, состав и функционирование. Набор команд. Конвейерная обработка..

Причины приостановки конвейера и техника их преодаления.

       9. Архитектура с сокращенным набором команд (RISC). Основные характеристики RISC-процессоров. Конвейер RISC-процессоров. Понятие регистрового окна. Оптимизирующий компилятор.

       10. Понятие последовательного и параллельного исполнения. Уровни параллелизма.  Классификация Флинна. Уточненная классификация. Идея SIMD-расширений.  Форматы SIMD-команд.

       11. Классификация архитектур с параллелизмом на уровне команд. Архитектура суперскалярных микропроцессоров. Базисные принципы организации суперскалярных микропроцессоров.

       12. Архитектура микропроцессоров с явным параллелизмом на уровне команд (EPIC). Базисные принципы организации.  Сравнение способов выявления скрытого параллелизма у трех типов архитектур. Перспективы данного класса архитектур.

       13. Мультитредовые архитектуры. Понятие треда. Варианты реализации многопоточности.

14.  Классификация архитектур с параллелизмом на уровне процессов (вычислительные системы).  Архитектуры с разделяемой памятью (UMA, NUMA, cc-NUMA, COMA).  Структура узла. Крммуникационные среды. Программное обеспечение.  Поддержка когерентности кэш-памяти. Примеры современных мультипроцессоров.

15. Архитектуры с распределенной памятью (мультикомпьютеры). Коммуникационные среды среды.  Программное обеспечение.  Примеры современных мультикомпьютеров.

16. Кластеры. Проектирование кластерных систем. Организация памяти. Структура узла. Сеть связи. Поддержка кэш-когерентности. Сранительный анализ коммуникацонных сред. Программное обеспечение. Примеры современных кластеров.

17. Анализ списка TOP500. Тенденции развития микропроцессоров и вычислительных систем. Оценки производительности. 

Пример билета для зачета 

1. Внеочередное исполнение команд.

  2. Особенности  архитектуры процессора AMD Opteron™.