- •1. Функциональные роли компьютеров в сети
- •2. Шины и интерфейсы.
- •3. Сегментная организация оп и виртуальная память.
- •5. Архитектура современных процессоров, проблемы роста производительности.
- •512 Кбайт
- •6. Связь компьютера с периферийным устройством.
- •7. Методы адресации
- •10. Регистры процессора и его программная модель.
- •11. Классификация архитектур по параллельной обработке данных
- •12. Интерфейсы жд, эволюция производительности.
- •13. Система команд и архитектура эвм.
- •14. Способы организации кэш-памяти.
- •1. Где может размещаться блок в кэш-памяти?
- •2. Как найти блок, находящийся в кэш-памяти?
- •3. Какой блок кэш-памяти должен быть замещен при промахе?
- •4. Что происходит во время записи?
- •15. Многопроцессорные системы, классификация Флинна.
- •16. Магистрально-модульный способпостроения эвм
- •17. Тракт данных типичного процессора, система команд
- •18. Синхронный и асинхронный обмен данными, обмен по прерыванию.
- •19. Конвейерная и суперскалярная обработка данных.
- •20.Связь двух компьютеров.
- •21. Структура современного пк, взаимодействие основных блоков.
- •Материнская плата - основные электронные компоненты, определяющие структуру компьютера (Mother board)
- •Основные внешние устройства компьютера
- •22. Архитектурные особенности современных процессоров, Hyper Threading и мультиядерность.
- •23. Smp архитектура и ее развитие
- •24.Логическая организация памяти эвм.
- •Виртуальная память
- •Страничная организация памяти
- •Сегментная организация памяти.
- •25. Структура кэш – памяти процессораi486.
- •26. Топология физических связей компьютеров в сети.
- •Простейшие виды связи сети передачи данных
- •27. АрхитектураNuma.
- •28. Формат команды процессораi486 и адресация операндов.
- •30. Кластерные архитектуры и проблема связи процессоров в кластерной системе Кластерная архитектура
- •Проблемы выполнения сети связи процессоров в кластерной системе.
- •33. Пропускная способность и ее связь с методами кодирования.
- •34. Конвейерная обработка данных
- •35. Когерентность кэШей.
- •37. Архитектура клиент-сервер
- •38. Отличительные особенностиRisc– архитектуры
- •39. Оперативная память эвм, основные параметры.
- •45. Дисковые массивы и уровни raid
- •51. Внешняя память компьютера
- •54. Классификация компьютерных сетей
- •55. Содержание понятий – транслятор, интерпретатор, компилятор и их связь с организацией вычислительного процесса
- •56. Технология Hyper-Threading
- •59. Закон Амдала и его следствия.
- •61. Производительность процессора и методы ее увеличения
11. Классификация архитектур по параллельной обработке данных
В 1966 году М.Флинном (Flynn) был предложен чрезвычайно удобный подход к классификации архитектур вычислительных систем. В основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Соответствующая система классификации основана на рассмотрении числа потоков инструкций и потоков данных и описывает четыре архитектурных класса.
1. SISD(single instruction stream / single data stream) - одиночный поток команд и одиночный поток данных. К этому классу относятся последовательные компьютерные системы, которые имеют один центральный процессор, способный обрабатывать только один поток последовательно исполняемых инструкций. В настоящее время практически все высокопроизводительные системы имеют более одного центрального процессора, однако, каждый из них выполняют несвязанные потоки инструкций, что делает такие системы комплексами SIMD-систем, действующих на разных пространствах данных. Примерами компьютеров с архитектурой SISD являются большинство рабочих станций Compaq, Hewlett-Packard и Sun Microsystems.
2. MISD(multiple instruction stream / single data stream) - множественный поток команд и одиночный поток данных. Теоретически в этом типе машин множество инструкций должны выполнятся над единственным потоком данных. До сих пор ни одной реальной машины, попадающей в данный класс, не было создано. В качестве аналога работы такой системы, по-видимому, можно рассматривать работу банка. С любого терминала можно подать команду и что-то сделать с имеющимся банком данных. Поскольку база данных одна, а команд много, то мы имеем дело с множественным потоком команд и одиночным потоком данных.
3. SIMD(single instruction stream / multiple data stream) - одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, в пределах от 1024 до 16384, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция параллельно выполняется над многими элементами данных. Примерами SIMD машин являются системы CPP DAP, Gamma II и Quadrics Apemille. Другим подклассом SIMD-систем являются векторные компьютеры. Векторные компьютеры манипулируют массивами сходных данных подобно тому, как скалярные машины обрабатывают отдельные элементы таких массивов. Это делается за счет использования специально сконструированных векторных центральных процессоров. При работе в векторном режиме векторные процессоры обрабатывают данные практически параллельно, что делает их в несколько раз более быстрыми, чем при работе в скалярном режиме. Примерами систем подобного типа является, например, компьютеры Hitachi S3600.
4. MIMD(multiple instruction stream / multiple data stream) - множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных. В отличие от многопроцессорных SISD-машин, упомянутых выше, команды и данные связаны, потому что они представляют различные части одной и той же выполняемой задачи. Например, MIMD-системы могут параллельно выполнять множество подзадач, с целью сокращения времени выполнения основной задачи. Наличие большого разнообразия попадающих в данный класс систем, делает классификацию Флинна не полностью адекватной. Действительно и четырех-процессорный SX-5 компании NEC и тысяче-процессорный Cray T3E оба попадают в этот класс. Это заставляет использовать другой подход к классификации, иначе описывающий классы компьютерных систем. Основная идея такого подхода может состоять, например, в следующем. Считаем, что множественный поток команд может быть обработан двумя способами: либо одним конвейерным устройством обработки, работающем в режиме разделения времени для отдельных потоков, либо каждый поток обрабатывается своим собственным устройством. Первая возможность используется в MIMD компьютерах, которые обычно называют конвейерными или векторными, вторая – в параллельных компьютерах. В основе векторных компьютеров лежит концепция конвейеризации, т.е. явного сегментирования арифметического устройства на отдельные части, каждая из которых выполняет свою подзадачу для пары операндов. В основе параллельного компьютера лежит идея использования для решения одной задачи нескольких процессоров, работающих сообща, причем процессоры могут быть как скалярными, так и векторными. На рисунке 12.1 приведен пример такой классификации.
Вычислительные
Системы Однопроцессорные Многопроцессорные
SISD SIMD MISD MIMD CISC
RISC
Суперскаляр Матричный
Векторный МПВС ММВС Сильно
связанные
Слабо связанные
Системы с
массовым параллелизмом MSIMD
Рис. 12.1 Классификация ВС
Параллелизм вычислительных процессов
Принцип организации вычислительного процесса, сформулированный фон Нейманом, называется также "управление потоком команд", поскольку стержень процесса образуется последовательностью (потоком) команд, задаваемых программой. По фон Нейману, данные занимают подчиненное положение, последовательность и способ их обработки определяется командами программы, т.е. ход выполнения вычислительного процесса определяется только потоком команд.
Довольно длительное время принцип фон Неймана предполагал единственную, как тогда казалось, архитектуру компьютера: процессор по очереди выбирает команды программы, по очереди их декодирует и также по очереди обрабатывает данные. Все строго последовательно, просто и понятно. Однако очень скоро выяснилось, что компьютерные вычисления обладают естественным параллелизмом, т.е. большая или меньшая часть команд программы может выполняться одновременно и независимо друг от друга. Вся дальнейшая история вычислительной техники развивалась в соответствии с логикой расширения параллелизма программ и компьютеров, и каждый новый шаг на этом пути предварялся теоретическим анализом.
Известный специалист по архитектуре компьютеров М.Флин (M.Flynn) обратил внимание на то, что существует всего две причины, порождающие вычислительный параллелизм - независимость потоков команд, одновременно существующих в системе, инесвязанность данных, обрабатываемых в одном потоке команд. Если первая основа
параллелизма вычислительного процесса достаточно известна (это "обычное" мультипроцессирование) и не требует особых комментариев, то на параллелизме данных следует остановиться более подробно, поскольку в большинстве случаев он существует скрыто от программистов и используется ограниченным кругом профессионалов. Простейшим примером параллелизма данных является последовательность из двух команд:
A=B+C;
D=ExF;
Если строго следовать принципу фон Неймана, то вторая операция может быть запущена на исполнение только после завершения первой операции. Однако очевидно, что порядок выполнения этих команд не имеет никакого значения - операнды A, B и C первой команды никак не связаны с операндами D, E и F второй команды. Другими словами, обе операции являются параллельными именно потому, что операнды этих команд не связаны между собой. Можно привести множество примеров последовательности из трех и более команд с несвязанными данными, которые приведут к однозначному выводу: практически любая программа содержит группы операций над параллельными данными.
Итак - параллелизм верхнего уровня достигается за счет множества
независимых командных потоков и реализуется с помощью
многопроцессорной архитектуры;
- параллелизм нижнего уровня обязан своим существованием наличием
несвязанных потоков данных и реализуется за счет конвейерной
обработки различных фаз операций.
Параллелизм на уровне команд – однопроцессорные архитектуры
Мы уже неоднократно подчеркивали, что главным препятствием достижения высокой производительности ВС является обращение к памяти и вызов команд из памяти процессора. Для разрешения этой проблемы уже достаточно давно используется вызов команд из памяти заранее и помещение их в набор регистров (буфер выборки с упреждением), чтобы они имелись в наличии, когда это станет необходимым. В действительности процесс выборки с упреждением подразделяет выполнение команды в два этапа: вызов и собственно выполнение. Идея конвейера еще больше продвинула эту стратегию вперед. Теперь команда подразделялась уже не на два, а на несколько этапов, каждый из которых выполнялся определенной частью аппаратного обеспечения, причем все блоки могли работать одновременно и параллельно. Конвейерная обработка является "естественным" средством реализации параллелизма несвязанных операций и циклов, но в каждом случае со своими нюансами. Несвязанные операции выполняются с помощью набора самостоятельных арифметических устройств в составе ЦП (принцип многофункциональной обработки). Обычный набор таких устройств включает: устройство сложения, умножения, деления и устройства выполнения логических и сдвиговых операций.