
- •Архитектура вычислительных систем. Вычислительные машины, системы и сети
- •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. Система команд и режимы адресации процессоров
- •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. Сегментная организация памяти
- •8.3. Страничная организация памяти
- •8.4. Сегментно-страничная организация памяти
- •Вопросы для самопроверки
- •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. Физический
- •Вопросы для самопроверки
- •Литература
- •Архитектура вычислительных систем. Вычислительные машины, системы и сети
Вопросы для самопроверки
1. Что такое шина, СШ? В чём заключаются принципы функционирования СШ? Перечислите структурные компоненты СШ.
2. Что представляет собой протокол шины? Назовите основные классы протоколов и поясните особенности их функционирования.
3. Что представляет собой иерархия шин? Какие существуют варианты иерархий? В чём заключаются особенности каждого из вариантов?
4. Какие существуют приёмы повышения производительности шин?
5. Назовите способы организации обмена данными между вычислительным ядром ВМ и ПУ. Поясните особенности организации обмена данными при каждом способе.
6. Дайте определение понятия «канал ввода – вывода». Поясните назначение мультиплексированных и селекторных каналов ввода – вывода.
7. Что такое интерфейс, порт ввода – вывода? Перечислите виды интерфейсов и портов ввода – вывода.
8. Поясните особенности функционирования параллельного интерфейса Centronics, последовательного интерфейса RS-232C.
9. Что представляет собой шина USB? Поясните принципы её работы.
10. Перечислите виды беспроводных интерфейсов. Каковы их характерные особенности?
Модуль 2. Вычислительные системы
10. Вычислительные системы параллельной обработки. Многопроцессорные и многоядерные системы
В основе архитектуры большинства современных ВМ лежит представление алгоритма решения задачи в виде программы последовательных вычислений. Структура таких ВМ базируется на принципах Дж. фон Неймана. В условиях постоянно возрастающих требований к производительности вычислительной техники всё более очевидными становятся ограничения фон-неймановских ВМ. Дальнейшее развитие вычислительной техники связано с переходом к параллельным вычислениям как в рамках одной ВМ, так и путём создания многопроцессорных систем и вычислительных сетей, объединяющих большое количество отдельных процессоров или отдельных ВМ. Для такого подхода используется термин «вычислительная система». Отличительной особенностью вычислительных систем является наличие в них средств, реализующих параллельную обработку за счёт построения параллельных ветвей в вычислениях. Кроме того, возможности современной микроэлектроники позволяют размещать блоки вычислительных систем на одном кристалле, что позволяет снизить стоимость, повысить быстродействие и надёжность вычислительных систем [3].
Вычислительная система (ВС) – это взаимосвязанная совокупность аппаратных средств вычислительной техники и программного обеспечения, предназначенная для решения определённых классов задач.
Ранее (см. гл. 1) говорилось, что ВС бывают многопроцессорными (содержат несколько процессоров, между которыми осуществляется интенсивный обмен информацией, и которые используют общие ресурсы и управляются одной ОС) и встраиваемые (строятся на базе микроконтроллера, микропроцессора или специализированного процессора и используются для задач локального управления и контроля техническим оборудованием). Ниже будут описаны параллельные многопроцессорные ВС; микропроцессорные ВС будут рассмотрены в следующей главе. Кроме того, выделяют многомашинные ВС, которые будут описаны в главах, посвящённых вычислительным сетям.
10.1. Параллельная обработка информации
Согласно [3], параллельная обработка может выполняться на нескольких уровнях:
1. Уровень заданий. Несколько независимых заданий одновременно выполняются на разных процессорах, практически не взаимодействуя друг с другом. Этот уровень реализуется в ВС со множеством процессоров в многозадачном режиме.
2. Уровень программ. Части одной программы выполняются на множестве процессоров, что достигается в параллельных ВС.
3. Уровень команд. Выполнение команды разделяется на фазы, а фазы нескольких последовательных команд могут быть перекрыты за счёт конвейеризации. Этот уровень достижим в ВС с одним процессором.
4. Уровень битов. Если биты слова обрабатываются одновременно, то говорят о бит-параллельной операции, что достижимо в обычных и суперскалярных процессорах.
Варианты параллельной обработки, а также конвейерные и суперскалярнные процессоры были рассмотрены ранее (см. гл. 4).
К понятию уровня параллелизма тесно примыкает понятие гранулярности. Гранулярность – это мера отношения объёма вычислений, выполненных в параллельной задаче, к объёму коммуникаций (для обмена сообщениями). В зависимости от степени гранулярности выделяют крупнозернистый, среднезернистый и мелкозернистый параллелизм.
Крупнозернистый параллелизм. Характеризуется тем, что каждое параллельное вычисление достаточно независимо от остальных, причём требуется относительно редкий обмен информацией между отдельными вычислениями. Единицами распараллеливания являются большие и независимые программы, включающие тысячи команд. Этот уровень параллелизма обеспечивается ОС.
Среднезернистый параллелизм. Единицами распараллеливания являются отдельные процедуры, включающие в себя сотни команд. Обычно организуется как программистом, так и компилятором.
Мелкозернистый параллелизм. Характеризуется тем, что каждое параллельное вычисление достаточно мало и элементарно, составляется из десятков команд. Единицами распараллеливания обычно являются элементы выражения или итерации цикла, имеющие небольшие зависимости по данным. Характерной особенностью такого уровня параллелизма является приблизительное равенство интенсивности вычисления и обмена данными. Мелкозернистый параллелизм реализуется распараллеливающим компилятором.
Эффективное параллельное исполнение требует искусного баланса между степенью гранулярности и величиной коммуникационной задержки между гранулами. Если эта задержка минимальна, то наилучшую производительность даёт мелкоструктурное разбиение программы (когда действует параллелизм данных). Если коммуникационная задержка велика (как в слабосвязанных системах), предпочтительно крупнозернистое разбиение программ.
Можно выделить следующие преимущества параллельных архитектур [2]:
1) применение мультипроцессорных архитектур – это единственный способ построения высокопроизводительных ВС. Производительность является важнейшим показателем ВС. Построив даже самый процессор для данного уровня развития вычислительной техники, можно ещё больше увеличить производительность, объединив в единую систему несколько процессоров;
2) мультипроцессорная система является масштабируемой, т.е. модульная организация таких систем позволяет увеличивать производительность за счёт наращивания модулей и (или) совершенствования взаимосвязей между ними;
3) мультипроцессорная система обладает большей отказоустойчивостью за счёт использования структурной избыточности. Например, при выходе какого-либо процессора из строя ВС может продолжать работу, перераспределив вычислительную работу между оставшимися процессорами.
Однако, несмотря на отмеченные преимущества многопроцессорных систем, им присущ и ряд недостатков, свойственных системам параллельной обработки [2]:
1) в параллельных системах возникают новые, ранее не известные типы ошибок: тупики (взаимные блокировки процессов), голодание (невозможность получить ресурс) и т.п.;
2) сложности понимания и анализа параллельных процессов. Мышление людей имеет последовательный характер, поскольку мысли выражаются словами;
3) недостаточная разработанность технологии параллельного программирования, поскольку необходимо создание новых ОС, языков программирования, трансляторов, прикладных программ, наиболее полно использующих возможности параллельных архитектур.
В истории развития ВС, начиная с 70-х гг. 20 века, отмечались и рост и снижение интереса к параллельным архитектурам. В связи с успешными реализациями параллельных систем, с конца 90-х гг. 20 века и начала 21 века параллельные архитектуры являются перспективным направлением развития ВС.
В идеальном случае система из n процессоров могла бы ускорить вычисления в n раз. Однако в реальности такого показателя достичь не удаётся по ряду причин, и,прежде всего, потому, что ни одну задачу невозможно распараллелить полностью. Кроме того, на практике добиться равномерной загрузки параллельно работающих процессоров достаточно трудно. Замечено, что с ростом размерности задач доля вычислений, допускающих распараллеливание, растёт, что в целом позволяет увеличить скорость вычислений при решении задач.
Параллельно выполняемые единицы обработки могут быть различной величины: от программ до команд и микроопераций. Глубина распараллеливания, а также способы организации отдельных элементов многопроцессорных систем легли в основу классификаций систем параллельной обработки.