- •302030, Г. Орел, ул. Московская, 65
- •Содержание Введение
- •Модуль 1. Вычислительные машины Лекция 1. Основные понятия вычислительной техники и принципы организации вычислительных машин и систем
- •1.1 Основные понятия и определения
- •1.2 Принципы организации вычислительных машин и систем
- •1.3 Основные характеристики вычислительных машин и систем
- •1.4 Многоуровневая организация вычислительных процессов
- •Вопросы для самопроверки
- •Лекция 2. Простейшие типовые элементы вычислительных машин
- •2.1 Комбинационные схемы
- •1) Конъюнкция (логическое умножение) .
- •2) Дизъюнкция (логическое сложение) .
- •3) Отрицание (инверсия) .
- •4) Конъюнкция и инверсия (Штрих Шеффера) .
- •5) Дизъюнкция и инверсия (Стрелка Пирса) .
- •6) Эквивалентность .
- •7) Отрицание эквивалентности .
- •2.2 Автоматы с памятью
- •2.3 Триггеры
- •2.4 Проблемы и перспективы развития элементной базы вычислительных машин
- •Вопросы для самопроверки
- •Лекция 3. Функциональные узлы комбинационного и последовательного типов
- •3.1 Функциональные узлы последовательного типа
- •3.1.1 Регистры
- •3.1.2 Счётчики
- •3.1 Функциональные узлы комбинационного типа
- •3.2.1 Шифраторы и дешифраторы
- •3.2.2 Компараторы
- •3.2.3 Сумматоры
- •Вопросы для самопроверки
- •Лекция 4. Функциональная организация процессора
- •4.1 Основные характеристики и классификация процессоров
- •4.2 Физическая и функциональная структура процессора
- •4.2.1 Операционное устройство процессора
- •4.2.2 Шинный интерфейс процессора
- •4.3 Архитектурные принципы организации risc-процессоров
- •4.4 Производительность процессоров и архитектурные способы её повышения
- •Вопросы для самопроверки
- •Лекция 5. Организация работы процессора
- •5.1 Классификация и структура команд процессора
- •5.2 Способы адресации данных и команд
- •5.2.1 Способы адресации данных
- •5.2.2 Способы адресации команд
- •5.3 Поток управления и механизм прерываний
- •Вопросы для самопроверки
- •Лекция 6. Современное состояние и тенденции развития процессоров
- •6.1 Архитектурные особенности процессоров Pentium
- •6.2 Программная модель процессоров Pentium
- •6.2.1 Прикладная программная модель процессоров Pentium
- •6.2.2 Системная программная модель процессоров Pentium
- •6.2.3 Система команд и режимы адресации процессоров Pentium
- •6.3 Аппаратная организация защиты в процессорах Pentium
- •6.4 Аппаратные средства поддержки многозадачности
- •6.5 Перспективы развития процессоров
- •Вопросы для самопроверки
- •Лекция 7. Память. Организация памяти.
- •7.1 Иерархическая организация памяти
- •7.2 Классификация запоминающих устройств
- •7.3 Структура основной памяти
- •7.4 Память с последовательным доступом
- •7.5 Ассоциативная память
- •7.6 Организация флэш-памяти
- •7.7 Архитектурные способы повышения скорости обмена между процессором и памятью
- •Вопросы для самопроверки
- •Лекция 8. Управление памятью. Виртуальная память
- •8.1 Динамическое распределение памяти
- •8.2 Сегментная организация памяти
- •Лекция 9. Организация ввода-вывода информации. Системная шина
- •9.1 Организация шин. Системная шина
- •9.1.1 Структура системной шины
- •9.1.2 Протокол шины
- •9.1.3 Иерархия шин
- •9.2 Организация взаимодействия между периферийными устройствами и процессором и памятью вычислительных машин
- •9.3 Внешние интерфейсы вычислительных машин
- •9.3.1 Параллельный порт lpt и интерфейс Centronics
- •9.3.1 Последовательный порт com и интерфейс rs-232c
- •9.3.3 Универсальная последовательная шина usb
- •9.3.4 Беспроводные интерфейсы
- •Вопросы для самопроверки
- •Модуль 2. Вычислительные системы Лекция 10. Вычислительные системы параллельной обработки. Многопроцессорные и многоядерные системы.
- •10.1 Параллельная обработка информации
- •10.2 Классификация систем параллельной обработки данных
- •10.2.1 Классификация Флинна
- •10.2.2 Классификация Головкина
- •10.2.3 Классификация многопроцессорных систем по способу организации памяти
- •10.3 Вычислительные системы на кристалле. Многоядерные системы
- •10.4 Тенденции развития вычислительных систем
- •Вопросы для самопроверки
- •Лекция 11. Организация микроконтроллеров и микроконтроллерных систем
- •11.1 Общие сведения о системах управления
- •11.2 Организация микроконтроллеров и микроконтроллерных систем
- •11.3 Области применения и тенденции развития мк
- •Вопросы для самопроверки
- •Модуль 3. Телекоммуникационные сети Лекция 12. Организация компьютерных сетей
- •12.1 Обобщённая структура компьютерных сетей
- •12.2 Классификация компьютерных сетей
- •Лекция 13. Стандартизация компьютерных сетей. Эталонная модель взаимодействия открытых систем
- •13.1 Понятие «открытой системы». Взаимодействие открытых систем
- •13.2 Эталонная модель взаимодействия открытых систем
- •13.3 Структура блоков информации
- •7 Прикладной 6 Представительный 5 Сеансовый 4 Транспортный 3 Сетевой 2 Канальный 1 Физический
- •Вопросы для самопроверки
- •Лекция 19. Безопасность информации в сети
- •19.2 Стеганография
- •19.2.1 Общие сведения о стеганографических системах
- •19.2.2 Методы стеганографии
- •Вопросы для самопроверки
- •Литература
10.2.3 Классификация многопроцессорных систем по способу организации памяти
Процессы, протекающие в мультипроцессорных системах, имеют интенсивные связи по данным, так как решается общая задача. Это означает, что переменные, значения которых вычисляются в одном процессе, используются в качестве аргументов в других процессах. По способу организации основной памяти выделяют два типа архитектур /1/: многопроцессорные системы с общей памятью (мультипроцессоры) и многопроцессорные системы с распределённой памятью (мультикомпьютеры).
Как отмечается в /5/, в мультипроцессоре (Рисунок 10.5) все процессоры совместно используют общую физическую память. Любой процессор может считать информацию из памяти или записать в память с помощью соответствующих команд чтения и записи. В мультипроцессорах функционирует только одна копия ОС, поскольку адресное пространство является единым. При этом процессор не просто решает часть задачи, но и может оперировать с ней целиком.
П омимо всего, в состав мультипроцессоров также входят УВВ (диски, сетевые адаптеры. ПУ и т.д.). В одних мультипроцессорах только определённые процессоры получают доступ к УВВ, в других – каждый процессор имеет доступ к любому УВВ. Если все процессоры имеют равный доступ ко всем модулям памяти и УВВ, и между процессорами возможна полная взаимозаменяемость, такие мультипроцессоры называют симметричными – SMP (Symmetric Multi-Processors) /1, 5/.
Рисунок 10.5 – Мультипроцессор
В больших мультипроцессорах память обычно делится на несколько модулей. По способу доступа к общей памяти можно выделить следующие разновидности мультипроцессоров: системы с однородным доступом к памяти – UMA (Uniform Memory Access), системы с неоднородным доступом к памяти – NUMA (Non Uniform Memory Access) и системы с доступом только к кэш-памяти – COMA (Cache Only Memory Access).
В UMA-системах каждый процессор имеет одно и то же время доступа ко всем модулям памяти. Самые простые мультипроцессоры имеют всего одну шину, которая используется для взаимодействия процессорами и модулями памяти. При этом в каждый момент времени взаимодействовать могут только два устройства: один из процессоров с одним из модулей памяти. При увеличении числа процессоров нагрузка на шину увеличивается, многим процессорам большую часть времени приходится простаивать, что ведёт к снижению общей производительности ВС. Частично эту проблему решает наличие кэшей, но возникает проблема отслеживания идентичности данных в кэшах и основной памяти, т.н., когерентность кэшей. Кроме того, помимо кэша в каждый процессор можно добавить собственную локальную память, к которой он получает доступ через выделенную локальную шину. Для оптимального использования такой конфигурации в блоках локальной памяти целесообразно размещать весь программный код, общие данные, предназначенные только для чтения, а также стеки и локальные переменные. Для увеличения количества процессоров необходимо использовать другие варианты коммуникационные соединений. Например, самой простой схемой соединения нескольких процессоров с несколькими модулями памяти является перекрёстная коммутация, т.н., «решётка». От каждого процессора и каждого модуля памяти идёт отдельная линия – горизонтальная и вертикальная, соответственно. На каждом пересечении этих линии находится коммутационный узел, который можно открыть или закрыть в зависимости от того, нужно соединить линии или нет. Однако при больших количествах процессоров и модулей памяти число соединений возрастает многократно, что не всегда приемлемо.
В NUMA-системах также имеется единое адресное пространство для всех процессоров, но, в отличие от UMA-систем, доступ к локальным модулям памяти осуществляется быстрее, чем к удалённым. Но в этом случае будет иметь значение порядок размещение данных. Для эффективного использования неравномерного доступа целесообразно наиболее часто используемые данные размещать в локальных модулях, и постоянно следить за статистикой использования данных. При использовании кэшей возникает та же проблема их согласованности, что и в UMA-системах.
В COMA-системах всё адресное пространство делится на строки кэша, которые по запросу свободно перемещаются в системе. В этом случае количество кэш-попаданий увеличивается, что ведёт к повышению производительности ВС. Однако это порождает ряд проблем, связанных с размещением и удалением строк кэша /5/.
Таким образом, общая память способствует ускорению выполнения единой программы параллельно работающими процессорами за счёт их быстрого доступа к общим данным. Но в то же время общая память является «узким местом» многопроцессорной системы, так как с ростом числа процессоров их быстрый доступ к ней становится затруднительным. ВС с общей памятью называют сильно связанными.
В мультикомпьютерах (Рисунок 10.6) каждый процессор обладает своей собственной памятью, доступной только этому процессору, и может иметь свои устройства для ввода и вывода информации. Таким образом, мультикомпьютер с помощью команд чтения и записи может обращаться только к своей локальной памяти. Для взаимодействия между собой процессоры в мультикомпьютере обмениваются сообщениями через высокоскоростную коммуникационную сеть. Поэтому ПО мультикомпьютера имеет более сложную структуру, чем ПО мультипроцессора. Кроме того, в мультикомпьютерах основной проблемой становится правильное распределение данных, поскольку их размещение влияет на производительность мультикомпьютеров (при частых обращениях к локальным памятям других процессоров общая производительность мультикомпьютера снижается). Как следствие, программировать мультикомпьютеры значительно сложнее мультипроцессоров, однако затраты на их реализацию гораздо меньше затрат на создание мультипроцессоров. Более того, мультикомпьютеры довольно легко масшиабируются без потери в производительности.
Рисунок 10.6 – Мультикомпьютер
Процессоры могут быть связаны между собой в систему различными способами, что зависит от способа реализации коммуникационной сети. В основном, используется сеть связи с фиксированной топологией (способами связи узлов сети), когда каждый из процессоров связан только с некоторой ограниченной группой близко расположенных процессоров, а не со всеми. Мультикомпьютеры называют слабосвязанными ВС. Более подробно о топологиях коммуникационных сетей будет представлено в последнем разделе настоящего учебного пособия.
Мультикомпьютеры подразделяются на две категории.
К первой категории относятся системы с массовым параллелизмом - MPP (Massive Parallel Processing).Согласно /5/, MPP-системы - это огромные суперкомпьютеры стоимостью в несколько миллионов долларов. Они используются в различных отраслях науки и техники для выполнения сложных вычислений, обработки большого числа транзакций в секунду, управления большими базами данных, и т.д. В большинстве MPP-систем используются стандартные процессоры: например, Intel Pentium, Sun UltraSPARC, IBM RS/600 и DEC Alpha. MPP-системы поставляются вместе с дорогостоящим ПО и библиотеками. Ещё одной характеристикой MPP-систем – огромные объёмы ввода-вывода (до нескольких терабайт). Эти данные должны быть распределены по многочисленным дискам, и их с большой скоростью можно передавать между устройствами MPP-системы. Помимо всего прочего, MPP-системы должны обладать высокой отказоустойчивостью (при наличии тысяч процессоров неисправности возникают регулярно), поэтому в них всегда имеется аппаратная и программная поддержка мониторинга системы, обнаружения неполадок и их исправления.
К MPP-системам можно отнести суперкомпьютер IBM BlueGene фирмы IBM, разработанный для решения задач большой сложности в биологии; суперкомпьютер Red Storm для решения заданий, выдаваемых департаментом энергетики США, и ряд других /5,23/ .
Вторая категория мультикомпьютеров включает обычные ПК или рабочие станции (иногда смонтированные в стойки), которые связываются коммуникационной сетью определённой топологии. Принципиальное отлчие COW-систем от MPP-систем заключается в том, что все вычисления MPP-системах выполняются гораздо быстрее, из-за чего управляются и применяются они совершенно по-разному. Эти «доморощенные» системы называют кластерами рабочих станций – COW (Cluster Of Workstation). Наиболее ярким примером является кластер Google /5/.
Поскольку системы с общей памятью эффективно реализуют сильно связные программы, а системы с передачей сообщений могут иметь большое число процессоров, то обе архитектуры желательно использовать совместно. Примером реализации такого подхода являются гибридные кластерные системы, т.е. системы, содержащие группы (кластеры) процессоров соотносительно высокой связностью, и имеющие более низкую степень связности с процессорами из других групп.