- •Московская государственная академия приборостроения и информатики
- •Содержание
- •1. Понятие архитектуры процессора и элементная база
- •1.1 Понятие архитектуры эвм и архитектуры процессора
- •1.2 Элементная база (физическая база) процессора
- •1.3 Пути совершенствования элементной базы
- •1.3.1 Молекулярные компьютеры.
- •1.3.2 Биокомпьютеры или нейрокомпьютеры.
- •1.3.3 Квантовые компьютеры
- •1.3.4 Оптические компьютеры
- •2. Процессоры с классической архитектурой
- •2.1. Основные принципы классической архитектуры:
- •2.2 Организация памяти в классической архитектуре
- •2.3 Набор команд фон - Неймановского процессора
- •2.4 Обработка особых ситуаций и прерывания
- •3. Стековые процессоры
- •3.1 Этапы выполнения команды в фон Неймановском процессоре
- •3.2 Архитектурные особенности стекового процессора
- •3.3 Операции с оперативной памятью
- •3.4 Программирование на стековом процессоре
- •3.5 Замечания по реализации
- •4. Конвейерные процессоры
- •4.1 Предпосылки создания конвейера данных
- •4.2 Структура конвейера данных
- •4.3 Сокращение времени при использовании конвейера данных
- •4.4 Конвейер команд
- •4.5 Многооперационные конвейеры
- •4.6 Проблемы конвейерных процессоров:
- •4.7 Особенности программирования конвейерных процессоров.
- •4.8 Замечания по реализации
- •5. Cray - процессор
- •5.3.2 Регистровый трёхадресный ассемблер
- •5.3.3 Регистровая буферизация и «прозрачная память»
- •5.3.4 Функциональные конвейерные блоки операций
- •5.3.5 Буферизация команд
- •5.4 Общая структура и состав процессора cray.
- •5.5 Производительность и области применения
- •6. Процессор пересылок
- •6.1 Иерархия памяти в классической архитектуре
- •6.2 Организация памяти в процессоре пересылок
- •6.3 Организация процессора пересылок
- •6.3.1 Адресная фиксация схем исполнения машинных команд
- •6.3.2 Механизм запуска машинной команды
- •6.4 Пример программы в процессоре пересылок
- •6.5 Реализация перехода по адресу и сравнения
- •6.6 Замечания по реализации процессора пересылок
- •7. Архитектуры процессоров
- •7.1. Процессоры с универсальным набором команд
- •7.2Risc– процессоры
- •7.3 Теговые машины
- •7.4 Гарвардская архитектура
- •8. Подходы к организации вычислительного процесса и потоковые машины
- •8.1 Процедурное программирование.
- •8.2 Функциональное программирование
- •8.3 Потоковое программирование
- •9. Архитектуры памяти
- •9.1 Классификация архитектур памяти
- •9.2 Память с чередование адресов
- •9.3 Кэш память
- •9.4. Ассоциативная память (безадресная память)
- •10. Архитектурные решения
- •10.1 Проблемы организации и управления вводом/выводом
- •10.2 Основные архитектурные решения
- •10.3 Канальный ввод/вывод
- •10.4 Архитектура с общей шиной
- •10.5 Архитектура ввода/вывода с общей памятью
- •11. Параллельная обработка
- •11.1 Мультипрограммирование (многозадачность)
- •11.1.1 Однопроцессорная обработка
- •11.1.2 Многопроцессорная обработка
- •11.2 Параллелизм независимых ветвей
- •11.3 Параллелизм объектов
- •12. Матричные системы
- •12.1 Однородные системы - параллелизм этапов задач
- •12.2 Матрицы волнового фронта данных - параллелизм команд
- •12.3 Классические матричные системы - параллелизм объектов
- •107846, Москва, ул. Стромынка, 20
11.3 Параллелизм объектов
Под параллелизмом объектов понимается ситуация, при которой различные по значениям, но однородные по структуре данные подвергаются одинаковой обработке (по одинаковой программе) на многопроцессорной системе. Такую обработку можно реализовать как в ширину, так и в глубину.
Параллелизм в ширину подразумевает использование каждого процессора для выполнения всех этапов решения задачи - рис 11.6
Параллелизм объектов - реализация «в ширину»
Рис 11.6
Параллелизм в глубину предполагает конвейерную обработку потока данных, при которой каждый процессор конвейера реализует определенный этап обработки данных, т.е. единая программа обработки распределена между процессорами, объединенными в конвейер данных - рис 11.7.
Параллелизм объектов - реализация «в глубину» - конвейер этапов
Рис 11.7
Этот механизм обработки представляет собой классический конвейер данных, в котором объектами являются крупные этапы решения задачи.
12. Матричные системы
Под матричными системами или матричными процессорами обычно понимается многопроцессорная система, в которой процессоры с помощью той или иной сети связи объединены в матрицу. Задача устройства управления матричным процессором совместно с операционной системой - эффективная загрузка матрицы процессоров и эффективная (быстрая) передача промежуточных результатов. В качестве объектов параллелизма могут выступать этапы решения задачи, машинные команды или даже битовые операции, реализующие машинную команду.
Предложено и реализовано значительное разнообразие матричных систем, равно как и сетей связи в матричных процессорах. Рассмотрим более подробно предложения, относящиеся к разным уровням объектов параллелизма:
12.1 Однородные системы - параллелизм этапов задач
В этой матричной системе элементами матрицы являются полные процессоры с собственной оперативной памятью. Вершины графа вычислительного процесса (этапы) задачи распределяются между процессорами матрицы, а указанные графом связи по управлению и данным реализуются с помощью соединительной сети. Эффективность функционирования такой системы требует однородности этапов (подзадач) по времени выполнения и однородности этапов по требуемым ресурсам, что и объясняет название - однородные матричные системы. Т.е. однородность аппаратной реализации должна быть согласована с однородностью подзадач.
При условии, что на любом процессоре однородной матричной системы каждая подзадача выполняется за одинаковое время, параллельные ветви в графе вычислительного процесса будут завершены одновременно. Выполнение этого условия обеспечивает эффективность использования однородной системы, минимизируя время ожидания запуска следующего этапа. Очевидно, что такая идеология связана с избыточностью однородной матрицы, т.к. минимально необходимое количество процессорных элементов равно максимальному количеству параллельных этапов в графе вычислительного процесса. В однородной системе, однако, количество процессорных элементов должно быть больше или равно общему количеству вершин графа.
Отметим, что существенной для обеспечения эффективности является проблема разделения задачи на однородные этапы, которая ложится на плечи программистов.
В связи с тем, что разные задачи обладают разными графами вычислительного процесса, реально задействованная структура процессорных элементов и связей между ними существенно меняется для разных задач - в связи с этим такие системы получили название матричных систем с перестраиваемой структурой. Функционирование такой системы проиллюстрировано на рис 12.1
Однородная матричная система с перестраиваемой структурой
Рис 12.1
Идея однородных систем была предложена в начале 60-х годов Э.В. Евреиновым и Ю.Г. Косыревым в виде следующих трех принципов построения систем:
параллельность подзадач в алгоритмах (гипотеза параллельности - для сложной задачи можно предложить эффективный параллельный алгоритм решения);
переменность логической структуры;
конструктивная однородность элементов и связей между ними. Наиболее сложной задачей реализации однородных систем считается задача программирования связей.