- •Организация эвм и систем
- •Глава 6 Организация памяти
- •Глава 1. Структура современного компьютера
- •1.1 Основные понятия
- •1.2 Принцип действия компьютера
- •Цикл работы компьютера
- •1.3 Программное обеспечение компьютера
- •1.4 Надежность, производительность и показатели быстродействия
- •Производительность компьютера
- •Технико-эксплуатационные характеристики
- •1.5 Вычислительные системы и сети
- •Вопросы для самопроверки
- •Глава 2 представление информации в компьютере
- •5.2 Система команд. Форматы команд и способы адресации
- •5.3 Система прерываний и приостановок, состояние процессора
- •Характеристики системы прерываний
- •Организация перехода к прерывающей программе
- •5.4 Режимы работы процессора: однопрограммный, пакетный, разделения времени, реального времени
- •5.5 CisCиRisCкомпьютеры
- •Процессоры персональных компьютеров
- •5.6 Устройства управления
- •Устройства управления с хранимой в памяти логикой
- •5.7 Методы и средства повышения производительности процессоров персональных компьютеров
- •Суперскалярная обработка
- •Переименование регистров
- •Динамическое прогнозирование условных переходов
- •Контроллер памяти Контроллер pci
- •Вопросы для самопроверки
- •Глава 6. Организация памяти
- •6.1 Адресное пространство
- •6.2 Виды памяти
- •6.3 Оперативная память
- •Статическая и динамическая память
- •6.5 Внешняя память
- •6.6 Организация виртуальной памяти
- •Страничное, сегментное и странично-сегментное распределение
- •Свопинг
- •6.7 Защита памяти
- •Вопросы для самопроверки
- •Глава 7. Интерфейсы
- •7.1 Понятие интерфейса и его характеристики
- •7.1 Состав линий системной шины
- •Передача данных по проводным линиям связи По линиям связи современных интерфейсов преимущественно передаются низкочастотные дискретные одно - и биполярные сигналы (рисунок 7.Х).
- •Адрес верный
- •7.2 Подключение устройств
- •7.4 Интерфейсы внешней памяти
- •7.5 Малые интерфейсы (usb,ide,rs-232c,scsi)
- •Вопросы для самопроверки
- •Глава 8. Периферийные устройства компьютеров
- •8.1 Организация систем ввода-вывода. Каналы, контроллеры
- •Основные функции свв
- •Программный ввод-вывод
- •Прямой доступ в память
- •8.2 Клавиатура и мышь
- •8.3 Дисплеи
- •8.4 Принтеры
- •8.5 Накопители на магнитных дисках
- •Структура накопителя на жестких дисках
- •Структура и особенности накопителя на гмд
- •8.6 Накопители на компакт-дисках (cd-rom, cd-r, cd-rw, dvd)
- •8.7 Другие виды периферийных устройств
- •Вопросы для самопроверки
- •Какие особенности пу делают возможным организацию параллельной обработки и ввода-вывода?
- •Закон Амдала
- •Совместно используемая и распределенная память
- •Когерентность кэш-памяти
- •Наибольшее распространение получили следующие аппаратные механизмы, реализующие протокол когерентности кэш-памяти: это протоколы наблюдения и на основе справочника.
- •9.2 Конвейерные системы
- •Векторные регистры
- •9.3 Симметричные системы
- •9.4 Вычислительные системы со сверхдлинным командным словом
- •9.5 Другие виды мультипроцессорных систем
- •Машины с массовым параллелизмом
- •Нейрокомпьютеры
- •9.6 Проблемно-ориентированные системы
- •Вопросы для самопроверки
- •Глава 10. Организация вычислительного процесса
- •12.2 Системы автоматического контроля и диагностики
- •Контроль передач информации
- •Контроль арифметических операций
- •12.3 Защита памяти. Raid-массивы
- •12.4 Построение «безотказных» систем питания Вопросы для самопроверки
- •Список литературы
Закон Амдала
Параллельная ВС состоит из n процессоров. Приобретая ее, покупатель надеется ускорить процесс вычислений в n раз. Однако такого ускорения он никогда не получит. И это связано с тем, что невозможно представить программу, равномерно распараллеленную по n процессорам.
Таким образом, процесс вычислений любого алгоритма в параллельной ВС развертывается как в пространстве, так и во времени. Структура параллельной ВС точно соответствует структуре алгоритма: все независимые операторы выполняются параллельно (т.е. одновременно во времени) на отдельных процессорных элементах. Число таких процессорных элементов должно быть не меньше максимального числа параллельных процессов в каждый момент времени. Каждая задача имеет последовательную часть, например, программу запуска или управления операциями ввода-вывода, которая должна выполняться только одним из процессоров. Промежуточные результаты также должны пересылаться между процессорами, однако мы не будем учитывать время на пересылку и на управление взаимодействием процессов, хотя эти управляющие процессы носят сугубо последовательный характер.
Далее примем, что доля затрат времени на выполнение зависимых последовательных процессов составляет s (т.е. доля времени на выполнение сугубо последовательного кода), а доля затрат на выполнение независимых процессов (т.е. доля времени на выполнение части программы, которая может выполняться параллельно) в последовательной машине – p. Тогда очевидно, что s + p = 1. Пусть при этих условиях длительность решения задачи в последовательной машине составляет Ts.
Для ускорения обработки в «идеальной» параллельной машине предусмотрим N процессорных элементов, на которые возложим решение всех независимых процессов. Тогда время реализации того же алгоритма в параллельной машине Tp составит
Tp = (s + p/N) Ts.
Коэффициент ускорения, т.е. отношение времени решения задачи на последовательной машине ко времени решения той же задачи на параллельной, определяется из этого выражения:
k = Ts/ Tp = 1/(s + p/N),
а при увеличении числа независимых процессов он асимптотически приближается к величине
k = 1/s.
Это выражение носит название закона Амдала [Амдал – один из разработчиков всемирно известной системы IBM 360] и характеризует предельные возможности ускорения обработки за счет организации параллельных вычислений. Поскольку в любой программе имеется значительная доля последовательных операций, например, связанных с вводом/выводом, управлением, переходами и т. д., то возможности параллельной обработки ограничены. Кроме того, при параллельной обработке возникает необходимость в дополнительных действиях, связанных с обменом данными между отдельными процессорами, распределением задач и т.п.
Однако на больших параллельных ВС решается не одна, а сразу несколько независимых задач. Кроме того, обычно пользователь стремится не сокращать время решения на параллельной ВС, а усложнить задачу для нахождения более точных решений. Обычно такое усложнение связано с увеличением именно параллельной части программы. Все это позволяет утверждать, что реальное ускорение значительно выше. Впервые это положение было сформулировано Густафсоном в 80-х годах прошлого столетия.
9.1 Классификация ВС с несколькими процессорами
Чтобы ориентироваться в многообразии современных ВС, необходима определенная система классификации. Классификация ВС может выполняться с различных точек зрения, например, с позиций пользователя, по архитектурным или структурным признакам и т.д.
Так пользователя интересует круг решаемых задач, производительность ВС, наличие средств программирования и отладки, а также стоимость ВС. С этих позиций все ВС системы можно разбить на универсальные, проблемно-ориентированные и специализированные, на одно- и мультипроцессорные, на персональные и серверы.
Если ВС обеспечивает высокие показатели быстродействия на широком классе задач, то она «универсальна». Универсальная ВС способна решать задачи и других классов, но при этом ее производительность значительно падает. Добиться высоких показателей быстродействия для широкого класса задач сложно и дорого. Для снижения затрат строят специализированные системы, обладающие высокой производительностью при решении задач из узкого класса. Во многих случаях специализированные системы не могут решать задачи других классов и они оправданы только в том случае, когда выполняемые ими задачи встречаются достаточно часто или отсутствуют другие пути их решения. Такие ВС предназначены для систем реального времени при управлении объектами и технологическими процессами.
Проблемно-ориентированные ВС занимают промежуточное положение между универсальными и специализированными системами. Наиболее известны системы, предназначенные для числовой обработки (суперЭВМ), процессоры быстрого преобразования Фурье, обработки речевых сигналов, машины логических выводов и др.
Классификация по числу процессоров на первый взгляд значительно проще: все компьютеры принято делить на однопроцессорные и мультипроцессорные (или многопроцессорные). Однако на современном этапе развития технологии практически любой процессор персонального компьютера содержит несколько средств обработки, т.е. «состоит» из нескольких процессорных элементов, а в серверах может использоваться несколько процессоров, которые в свою очередь состоят из нескольких процессорных элементов.
Наибольший интерес представляет классификация ВС по архитектурным и структурным критериям, предложенная М. Флинном в 1966 г. Она основана на понятиях потока, т.е. последовательности команд или данных. Все ВС Флинн предложил разделить на четыре класса: ОКОД, ОКМД, МКОД и МКМД.
ОКОД (одиночный поток команд и одиночный поток данных). К этой группе относятся классические последовательные компьютеры, в которых в каждый момент может подвергаться обработке лишь один элемент данных по одной команде. В таких компьютерах может быть реализована конвейеризация команд, сопроцессирование, совмещение обработки и ввода-вывода.
ОКМД (одиночный поток команд и множественный поток данных). ВС этой группы позволяют выполнять одну операцию сразу над несколькими данными, т.е. в этих компьютерах существует общее управление (один поток команд), обеспечивающее одновременную и синхронную обработку в разных процессорных элементах нескольких данных. К числу таких ВС относятся матричные системы, состоящие из множества процессоров, управление которыми осуществляет единое управляющее устройство. Все процессоры получают одну команду и выполняют ее над локальными данными. К этому классу иногда относят и векторно-конвейерные ВС, в которых обработка элементов данных происходит со смещением во времени.
МКОД (множественный поток команд и одиночный поток данных). К таким ВС следовало бы отнести гипотетические системы, состоящие из множества процессоров, обрабатывающих один элемент данных, но под управлением различных команд. К данному классу иногда относят конвейерные системы, но большинство исследователей считают его пустым.
МКМД (множественный поток команд и множественный поток данных).
Системы этого класса обладают несколькими процессорами, работающими со своими потоками данных и по своим командам. Этот класс очень широк: он включает в себя классические мультипроцессорные системы, машины потока данных, нейрокомпьютеры и многие другие. К этому классу относят и ВС, состоящие из нескольких автономных систем ОКМД, так называемые системы МОКМД.
Такая классификация позволяет оценить принцип работы ВС, поэтому часто бывает достаточной. Но в ней последний класс явно перегружен. Поэтому для более точного определения особенностей вычислительных систем Флинн предложил ряд дополнительных критериев: степень крупности операций, способ обмена результатами обработки, способ управления и синхронизации.
Процессор может выполнять операции, обладающие различной мерой крупности – от отдельных аппаратно реализуемых операций до процедур и программ. Поэтому ВС может обладать мелко-, средне- и крупноблочной структурой.
Для организации вычислительного процесса чрезвычайно важен способ обмена результатами обработки в отдельных процессорах. Такой обмен может осуществляться словами или сообщениями. Для пословного обмена необходимо наличие глобальной (общей для всех процессоров) памяти, разделяющей общее адресное пространство, или специальной коммуникационной сети. Системы с пословным обменом называют сильносвязанными. В них должны быть предусмотрены средства синхронизации процессов и защиты памяти. Обычно в таких системах используют единую разделяемую во времени систему ввода-вывода. Обмен сообщениями осуществляется в слабосвязанных системах. Для таких систем характерно наличие локальной памяти в каждом процессоре, асинхронная обработка, значительные затраты времени на обмен. Как правило, в слабосвязанных системах процессоры обладают автономными средствами ввода-вывода. [К слабосвязанным системам можно отнести локальные сети.]
Наконец, важным критерием для оценки ВС служит способ организации связей между процессорами и модулями памяти. Обычно используют один из следующих способов связи: через разделяемую магистраль (общую шину), с помощью коммутаторов, посредством многовходовой памяти.
Способы управления и синхронизации весьма важны для организации вычислительного процесса. Все ВС делят на синхронные и асинхронные, с централизованным и распределенным управлением. Если в ВС предусмотрена единая глобальная система синхронизации, осуществляющая жестким образом синхронизацию процессов, происходящих в различных процессорах, то такую систему называют синхронной. Для асинхронных систем характерно распределенное управление, когда каждый процессор обладает собственной системой распределенного управления и синхронизации.
Наконец, можно построить ВС, в которой реализация конкретного алгоритма происходит за счет изменения ее структуры: если перестройка структуры ВС производится до начала выполнения алгоритма, то такую ВС относят к статически, а если такая перестройка происходит в процессе выполнения алгоритма – то к динамически перестраиваемым.