
- •Лекция 1. Информационные процессы в эвм Введение
- •Основные структуры данных
- •Обработка данных
- •Способы представления информации и два класса эвм
- •Кодирование информации
- •Представление данных в эвм.
- •Форматы файлов
- •Кодирование чисел
- •Кодирование текста
- •Кодирование графической информации
- •Кодирование звука
- •Типы данных
- •Лекция 2. Компьютер – общие сведения
- •Основные узлы пк – «Материнская плата»
- •Интерфейсные шины
- •Основные внешние устройства компьютера
- •Вопросы и задания
- •Лекция 3. Многоуровневая компьютерная организация
- •Архитектура компьютера
- •Классическая структура эвм - модель фон Неймана
- •Особенности современных эвм
- •Вопросы и задания
- •Лекция 4. Математическое обеспечение компьютеров
- •Программное обеспечение
- •Специальное
- •Библиотеки стандартных программ и ассемблеры
- •Высокоуровневые языки и системы автоматизированного программирования
- •Диалоговые ос и субд
- •Прикладные программы и case – технологии
- •Компьютерные сети и мультимедиа
- •Операционные системы
- •Лекция 5.Вычислительные системы - общие сведения Введение
- •Общие требования
- •Классификация компьютеров по областям применения
- •Персональные компьютеры и рабочие станции
- •Увеличение производительности эвм, за счет чего?
- •Параллельные системы
- •Суперкомпьютеры
- •Разновидности высокопроизводительных систем и области их применения
- •Ограничения производительности вс
- •Закон Амдала и его следствия
- •Микропроцессорная система
- •Что такое микропроцессор?
- •Микроархитектура процессора
- •512 Кбайт
- •Лекция 6 (с) Устройство управления
- •Микропроцессорная память
- •Структура адресной памяти процессора
- •Интерфейсная часть мп
- •Трансляторы
- •Режимы работы микропроцессорной системы
- •Классификация процессоров
- •Микроархитектура процессора Pentium II
- •512 Кбайт
- •Вопросы и задания
- •Лекция 7. Структурная организация эвм - память
- •Классификация памяти
- •Распределение системной памяти
- •Расширенная
- •Верхняя память (Upper Memory Area) – это 384 Кбайт, зарезервированных у верхней границы системной памяти. Верхняя память разделена на несколько частей:
- •Первые 128 Кбайт являются областью видеопамяти и предназначены для использовании видеоадаптерами, когда на экран выводится текст или графика, в этой области хранятся образы изображений;
- •Видеопамять
- •Оперативная память, типы оп
- •Тэг Строка Слово (байт)
- •Способы организации кэш-памяти
- •1. Где может размещаться блок в кэш-памяти?
- •Алгоритм псевдо lru.
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •Разновидности строения кэш-памяти
- •Вопросы и задания
- •Лекция 8. Логическая организация памяти
- •Виртуальная память
- •Основная память
- •Дисковая память
- •Страничная организация памяти
- •Преобразование адресов
- •Сегментная организация памяти.
- •Свопинг
- •Вопросы и задания
- •Лекция 9. Методы адресации
- •Лекция 10. Внешняя память компьютера Введение
- •Жесткий диск (Hard Disk Drive)
- •Общее устройство нжмд
- •Пластины (диски)
- •Головка записи-чтения
- •Позиционер
- •Контроллер
- •Производительность
- •Структура хранения информации на жестком диске
- •Кластер
- •Магнитооптические диски
- •Лазерные компакт-диски cd - rom
- •Дисковые массивы и уровни raid
- •Raid 0: Базовая конфигурация.
- •Raid1: Зеркальные диски.
- •Вопросы и задания
- •Лекция 11. Основные принципы построения систем ввода/вывода
- •Физические принципы организации ввода-вывода
- •Магистрально-модульный способ построения эвм
- •Структура контроллера устройства ввода-вывода
- •Опрос устройств и прерывания. Исключительные ситуации и системные вызовы
- •Организация передачи данных
- •Стандартные интерфейсы и шины систем ввода-вывода
- •Вопросы и задания
- •Лекция 12. Особенности архитектуры современных высокопроизводительных вс
- •Классификация архитектур по параллельной обработке данных
- •Вычислительные Системы
- •Параллелизм вычислительных процессов
- •Параллелизм на уровне команд – однопроцессорные архитектуры
- •Конвейерная обработка
- •Суперскалярные архитектуры
- •Мультипроцессорные системы на кристалле
- •Технология Hyper-Threading
- •Многоядерность — следующий этап развития
- •Вопросы и задания
- •Лекция 13. Архитектура многопроцессорных вс Введение
- •Smp архитектура
- •Mpp архитектура
- •Гибридная архитектура (numa)
- •Организация когерентности многоуровневой иерархической памяти.
- •Pvp архитектура
- •Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе.
- •Лекция 14. Кластерные системы
- •Концепция кластерных систем
- •Разделение на High Availability и High Performance системы
- •Проблематика High Performance кластеров
- •Проблематика High Availability кластерных систем
- •Смешанные архитектуры
- •Лекция 15 Многомашинные системы – вычислительные сети Введение
- •Простейшие виды связи сети передачи данных
- •Связь компьютера с периферийным устройством
- •Связь двух компьютеров
- •Многослойная модель сети
- •Функциональные роли компьютеров в сети
- •Одноранговые сети
- •Сети с выделенным сервером
- •Гибридная сеть
- •Сетевые службы и операционная система
- •Лекция 17. Сети и сетевые операционные системы Введение
- •Для чего компьютеры объединяют в сети
- •Сетевые и распределенные операционные системы
- •Взаимодействие удаленных процессов как основа работы вычислительных сетей
- •Основные вопросы логической организации передачи информации между удаленными процессами
- •Понятие протокола
- •Многоуровневая модель построения сетевых вычислительных систем
- •Проблемы адресации в сети
- •Одноуровневые адреса
- •Двухуровневые адреса
- •Удаленная адресация и разрешение адресов
- •Локальная адресация. Понятие порта
- •Полные адреса. Понятие сокета (socket)
- •Проблемы маршрутизации в сетях
- •Связь с установлением логического соединения и передача данных с помощью сообщений
- •Синхронизация удаленных процессов
- •Заключение
- •Список литературы:
Ограничения производительности вс
К сожалению, чудеса в жизни редко случаются. Гигантская производительность параллельных компьютеров и супер-ЭВМ с лихвой компенсируется сложностями их использования. Начнем с самых простых вещей. У вас есть программа и доступ, скажем, к 256-процессорному компьютеру. Что вы ожидаете? Да ясно что: вы вполне законно ожидаете, что программа будет выполняться в 256 раз быстрее, чем на одном процессоре. А вот как раз этого, скорее всего, и не будет.
Закон Амдала и его следствия
Предположим,
что в вашей программе доля операций,
которые нужно выполнять последовательно,
равна f, где 0<=f<=1 (при этом доля
понимается не по статическому числу
строк кода, а по числу операций в процессе
выполнения). Крайние случаи в значениях
f соответствуют полностью параллельным
(f=0) и полностью последовательным (f=1)
программам. Так вот, для того, чтобы
оценить, какое ускорение S может быть
получено на компьютере из 'p' процессоров
при данном значении f, можно воспользоваться
законом Амдала:
Если 9/10 программы исполняется параллельно, а 1/10 по-прежнему последовательно, то ускорения более, чем в 10 раз получить в принципе невозможно вне зависимости от качества реализации параллельной части кода и числа используемых процессоров.
Отсюда первый вывод - прежде, чем основательно переделывать код для перехода на параллельный компьютер (а любой суперкомпьютер, в частности, является таковым) надо основательно подумать. Если оценив заложенный в программе алгоритм вы поняли, что доля последовательных операций велика, то на значительное ускорение рассчитывать явно не приходится и нужно думать о замене отдельных компонент алгоритма. В ряде случаев последовательный характер алгоритма изменить не так сложно. Допустим, что в программе есть следующий фрагмент для вычисления суммы n чисел:
s = 0
Do i = 1, n
s = s + a(i)
End Do
(можно тоже самое на любом другом языке)
По своей природе он строго последователен, так как на i-й итерации цикла требуется результат с (i-1)-й и все итерации выполняются одна за одной. Имеем 100% последовательных операций, а значит и никакого эффекта от использования параллельных компьютеров. Вместе с тем, выход очевиден. Поскольку в большинстве реальных программ (вопрос: а почему в большинстве, а не во всех?) нет существенной разницы, в каком порядке складывать числа, выберем иную схему сложения. Сначала найдем сумму пар соседних элементов: a(1)+a(2), a(3)+a(4), a(5)+a(6) и т.д. Заметим, что при такой схеме все пары можно складывать одновременно! На следующих шагах будем действовать абсолютно аналогично, получив вариант параллельного алгоритма. Казалось бы в данном случае все проблемы удалось разрешить. Но представьте, что доступные вам процессоры разнородны по своей производительности. Значит будет такой момент, когда кто-то из них еще трудится, а кто-то уже все сделал и бесполезно простаивает в ожидании. Если разброс в производительности компьютеров большой, то и эффективность всей системы при равномерной загрузке процессоров будет крайне низкой. Но пойдем дальше и предположим, что все процессоры одинаковы. Проблемы кончились? Опять нет! Процессоры выполнили свою работу, но результат-то надо передать другому для продолжения процесса суммирования... а на передачу уходит время... и в это время процессоры опять простаивают... Словом, заставить параллельную вычислительную систему или супер-ЭВМ работать с максимальной эффективность на конкретной программе это, прямо скажем, задача не из простых, поскольку необходимо тщательное согласование структуры программ и алгоритмов с особенностями архитектуры параллельных вычислительных систем.
Заключительный вопрос. Как вы думаете, верно ли утверждение: чем мощнее компьютер, тем быстрее на нем можно решить данную задачу? Заключительный ответ. Нет, это не верно. Это можно пояснить простым бытовым примером. Если один землекоп выкопает яму 1м*1м*1м за 1 час, то два таких же землекопа это сделают за 30 мин - в это можно поверить. А за сколько времени эту работу сделают 60 землекопов? За 1 минуту? Конечно же нет! Начиная с некоторого момента они будут просто мешаться друг другу, не ускоряя, а замедляя процесс. Так же и в компьютерах: если задача слишком мала, то мы будем дольше заниматься распределением работы, синхронизацией процессов, сборкой результатов и т.п., чем непосредственно полезной работой.
Выводы
Именно компьютерный рынок определяет баланс в отношении стоимость/производительность.
Важнейшей характеристикой вычислительных систем является надежность.
Повышение отказоустойчивости требует введение избыточности аппаратного и программного обеспечения.
Масштабируемость представляет собой возможность бесконфликтного наращивания числа и мощности процессоров, объемов оперативной и внешней памяти и других ресурсов вычислительной системы.
Совместимость и мобильность ПО должна обеспечивать возможность запуска одних и тех же программных систем на различных аппаратных платформах, т.е. обеспечивать мобильность программного обеспечения.
Вопросы и задания
Какие параметры ВС определяют ее производительность?
Какова производительность современных суперкомпьютеров?
Что такое кластерные системы и системы высокой готовности?
Приведите примеры наиболее распространенных серверов.
Лекция 6 (а). Структурная организация ЭВМ - процессор
Введение
В предыдущих лекциях мы познакомились с функциональными блоками ЭВМ, вычислительных систем и основными принципами их взаимодействия. Теперь мы можем приступить к более детальному анализу каждого из блоков и узлов в отдельности. Начнем, естественно, с процессора и истории его появления.
Что известно всем
В 1968 году Роберт Нойс, изобретатель кремниевой интегральной схемы (1958), Гордон Мур, автор известного закона Мура, и Артур Рок, капиталист из Сан-Франциско, основали корпорацию Intel для производства компьютерных микросхем.
Первоначальное название “NM Electronics” звучало не очень привлекательно, после ряда проб остановились на “Integrated Electronics”, утвердить не удалось, зато абривиатуру Intel теперь знают все и стоит она $31 млрд.
За первый год своего существования корпорация продала микросхем (аж!) на $3000. Но вот улыбка судьбы! В августе 1969 года крохотная фирма Intel Corporation, которая была совсем недавно зарегистрирована, получила заказ от небольшой японской фирмы Nippon Calculating Machines, на проектирование микросхем для семейства калькуляторов (10-12 различных несерийных микросхем-калькуляторов). Вместо того, чтобы делать 10-12 различных микросхем на «жесткой логике», т.е. специализированной системе, настроенной на одну, или несколько близких задач. Другими словами, микросхем в которых алгоритмы обработки и хранения данных жестко связаны со схемотехникой и изменения алгоритмов возможны только путем изменения схемотехники системы. Тед Хофман и его сотрудник Стен Мейзор решили разработать одну твердотельную 4-битную микросхему-процессор, представляющую из себя универсальный компьютер с программируемыми функциями, который мог работать в любом из заказанных калькуляторов. Далее грандиозный успех: ноябрь 1970 чип 4001 ----- декабрь 1970 чип 4004. В июне 1971 года Intel анонсировала микропроцессорное семейство 4004 и выкупила все права на микросхему у японской компании за те - же $60000, которые она заплатила. Nippon Calculating Machines отказалась от исключительных (!) прав на продукты Intel. Последняя в 1974 г. своими усилиями выпустила 8-разрядный процессор 8080, и наконец, покупатели стали проявлять к решениям микроэлектроники реальный интерес. Авторы разработки навечно были внесены в список лауреатов Национального зала Славы США, а само изобретение признано одним из величайших достижений XX века.
Процессор 4004 – 4-х разрядный, 2250 транзисторов, частота – 108 кГц, производительность – 60 000 операций в секунду, чип размером со шляпку гвоздя. Ну а дальше славная история компании Intel – 1978 год первый 16-бтный процессор 8086 (запомним эту дату!), 1982 год 80286, 1985 год 80386, 1989 год 80486 – 32 разрядный, способный адресовать 4 Гбайт памяти и наконец, линейка процессоров Pentium.
Что известно немногим.
В 1968 году (!) два американских инженера Рэй Холт и Стив Геллер создали 20 – разрядный микропроцессор SLF (Special Logic Function).
Чип SLF служил основой бортового компьютера CADC для новейшего истребителя с изменяемой стреловидностью крыла F14. SLF – 20 разрядный процессор с элементами параллельной логики и возможностью расширения (3 синхронно работающих SLF на бортовом компьютере, плюс элементы DSP процессора (!). Можно сказать, что CADC – гениальное для своего времени решение и заложенные в него принципы не устарели и по сей день. Так, в F-14 из-за больших объемов вычислений использовалось одновременно три (!) синхронно работающих микропроцессора SLF. Сравнительно недавно на мировом рынке появились первые общедоступные версии четырехпроцессорных ПК. Строжайшая секретность этой работы не позволила опубликовать результаты исследований, а широкий рынок микропроцессорной техники все больше становился вотчиной Intel.
Как мы упоминали, первый 16 разрядный Intel 8086 вышел в свет только в 1978 году. Он мог адресовать 1 Мбайт памяти (т.е. имел 20 разрядную шину адреса), при 5 МГц тактовой частоты его производительность достигала 0,33 MIPS.