Автор работы: Пользователь скрыл имя, 20 Января 2013 в 15:13, лекция
Классификации архитектур вычислительных систем. Введение: для чего нужны классификации?
Классификация Флинна: единственность или множественность потоков данных и команд.
Классификация Фенга: две простые численные характеристики параллелизма (пословный и поразрядный параллелизм).
Классификация Шора: шесть "типичных архитектур" вычислительных систем.
Кстати, пионером в параллельной
обработке потоков данных был
академик А.А.Самарский, выполнявший
в начале 50-х годов расчеты, необходимые
для моделирования ядерных
Конвейерная обработка. Что необходимо для сложения двух вещественных чисел, представленных в форме с плавающей запятой? Целое множество мелких операций таких, как сравнение порядков, выравнивание порядков, сложение мантисс, нормализация и т.п. Процессоры первых компьютеров выполняли все эти "микрооперации" для каждой пары аргументов последовательно одна за одной до тех пор, пока не доходили до окончательного результата, и лишь после этого переходили к обработке следующей пары слагаемых.
Идея конвейерной обработки
заключается в выделении
Казалось бы конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить. В самом деле, пять устройств предыдущего примера обработают 100 пар аргументов за 100 единиц времени, что быстрее времени работы конвейерного устройства! В чем же дело? Ответ прост, увеличив в пять раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость. Представьте себе, что на автозаводе решили убрать конвейер, сохранив темпы выпуска автомобилей. Если раньше на конвейере одновременно находилась тысяча автомобилей, то действуя по аналогии с предыдущим примером надо набрать тысячу бригад, каждая из которых (1) в состоянии полностью собрать автомобиль от начала до конца, выполнив сотни разного рода операций, и (2) сделать это за то же время, что машина прежде находилась на конвейере. Представили себестоимость такого автомобиля? Нет? Согласен, трудно, разве что Ламборгини приходит на ум, но потому и возникла конвейерная обработка...
Краткая история появления параллелизма в архитектуре ЭВМ
Сегодня параллелизмом в архитектуре компьютеров уже мало кого удивишь. Все современные микропроцессоры, будь то Pentium III или PA-8700, MIPS R14000, Е2К или Power3 используют тот или иной вид параллельной обработки. В ядре Pentium 4 на разных стадиях выполнения может одновременно находиться до 126 микроопераций. На презентациях новых чипов и в пресс-релизах корпораций это преподносится как последнее слово техники и передовой край науки, и это действительно так, если рассматривать реализацию этих принципов в миниатюрных рамках одного кристалла.
Вместе с тем, сами эти идеи появились очень давно. Изначально они внедрялись в самых передовых, а потому единичных, компьютерах своего времени. Затем после должной отработки технологии и удешевления производства они спускались в компьютеры среднего класса, и наконец сегодня все это в полном объеме воплощается в рабочих станциях и персональных компьютерах.
Для того чтобы убедиться,
что все основные нововведения в
архитектуре современных
IBM 701 (1953), IBM 704 (1955): разрядно-
Все самые первые компьютеры (EDSAC, EDVAC, UNIVAC)
имели разрядно-последовательную память,
из которой слова считывались последовательно
бит за битом. Первым коммерчески доступным
компьютером, использующим разрядно-параллельную
память (на CRT) и разрядно-параллельную
арифметику, стал IBM 701, а наибольшую популярность
получила модель IBM 704 (продано 150 экз.),
в которой, помимо сказанного, была впервые
применена память на ферритовых сердечниках
и аппаратное АУ с плавающей точкой.
IBM 709 (1958): независимые процессоры
ввода/вывода.
Процессоры первых компьютеров сами управляли
вводом/выводом. Однако скорость работы
самого быстрого внешнего устройства,
а по тем временам это магнитная лента,
была в 1000 раз меньше скорости процессора,
поэтому во время операций ввода/вывода
процессор фактически простаивал. В 1958г.
к компьютеру IBM 704 присоединили 6 независимых
процессоров ввода/вывода, которые после
получения команд могли работать параллельно
с основным процессором, а сам компьютер
переименовали в IBM 709. Данная модель получилась
удивительно удачной, так как вместе с
модификациями было продано около 400 экземпляров,
причем последний был выключен в 1975 году
- 20 лет существования!
IBM STRETCH (1961): опережающий просмотр
вперед, расслоение памяти.
В 1956 году IBM подписывает контракт с Лос-Аламосской
научной лабораторией на разработку компьютера
STRETCH, имеющего две принципиально важные
особенности: опережающий просмотр вперед
для выборки команд и расслоение памяти
на два банка для согласования низкой
скорости выборки из памяти и скорости
выполнения операций.
ATLAS (1963): конвейер команд.
Впервые конвейерный принцип выполнения
команд был использован в машине ATLAS, разработанной
в Манчестерском университете. Выполнение
команд разбито на 4 стадии: выборка команды,
вычисление адреса операнда, выборка операнда
и выполнение операции. Конвейеризация
позволила уменьшить время выполнения
команд с 6 мкс до 1,6 мкс. Данный компьютер
оказал огромное влияние, как на архитектуру
ЭВМ, так и на программное обеспечение:
в нем впервые использована мультипрограммная
ОС, основанная на использовании виртуальной
памяти и системы прерываний.
CDC 6600 (1964): независимые функциональные
устройства.
Фирма Control Data Corporation (CDC) при непосредственном
участии одного из ее основателей, Сеймура
Р.Крэя (Seymour R.Cray) выпускает компьютер CDC-6600
- первый компьютер, в котором использовалось
несколько независимых функциональных
устройств. Для сравнения с сегодняшним
днем приведем некоторые параметры компьютера:
Машина имела громадный успех на научном рынке, активно вытесняя машины фирмы IBM.
CDC 7600 (1969): конвейерные независимые
функциональные устройства.
CDC выпускает компьютер CDC-7600 с восемью
независимыми конвейерными функциональными
устройствами - сочетание параллельной
и конвейерной обработки. Основные параметры:
ILLIAC IV (1974): матричные процессоры.
Проект: 256 процессорных элементов (ПЭ) = 4 квадранта по 64ПЭ, возможность реконфигурации: 2 квадранта по 128ПЭ или 1 квадрант из 256ПЭ, такт 40нс, производительность 1Гфлоп;
работы начаты в 1967 году, к концу 1971 изготовлена система из 1 квадранта, в 1974г. она введена в эксплуатацию, доводка велась до 1975 года;
центральная часть: устройство управления (УУ) + матрица из 64 ПЭ;
Несмотря на результат в сравнении с проектом: стоимость в 4 раза выше, сделан лишь 1 квадрант, такт 80нс, реальная произв-ть до 50Мфлоп - данный проект оказал огромное влияние на архитектуру последующих машин, построенных по схожему принципу, в частности: PEPE, BSP, ICL DAP.
CRAY 1 (1976): векторно-конвейерные процессоры |
Иерархия памяти.
Иерархия памяти пямого отношения к параллелизму
не имеет, однако, безусловно, относится
к тем особенностям архитектуры компьютеров,
которые имеет огромное значение для повышения
их производительности (сглаживание разницы
между скоростью работы процессора и временем
выборки из памяти). Основные уровни: регистры,
кэш-память, оперативная память, дисковая
память. Время выборки по уровням памяти
от дисковой памяти к регистрам уменьшается,
стоимость в пересчете на 1 слово (байт)
растет. В настоящее время, подобная иерархия
поддерживается даже на персональных
компьютерах.
Краткая история появления параллелизма в архитектуре ЭВМ
Сегодня параллелизмом в архитектуре компьютеров уже мало кого удивишь. Все современные микропроцессоры, будь то Pentium III или PA-8700, MIPS R14000, Е2К или Power3 используют тот или иной вид параллельной обработки. В ядре Pentium 4 на разных стадиях выполнения может одновременно находиться до 126 микроопераций. На презентациях новых чипов и в пресс-релизах корпораций это преподносится как последнее слово техники и передовой край науки, и это действительно так, если рассматривать реализацию этих принципов в миниатюрных рамках одного кристалла.
Вместе с тем, сами эти идеи появились очень давно. Изначально они внедрялись в самых передовых, а потому единичных, компьютерах своего времени. Затем после должной отработки технологии и удешевления производства они спускались в компьютеры среднего класса, и наконец сегодня все это в полном объеме воплощается в рабочих станциях и персональных компьютерах.
Для того чтобы убедиться,
что все основные нововведения в
архитектуре современных
IBM 701 (1953), IBM 704 (1955): разрядно-
Все самые первые компьютеры (EDSAC, EDVAC, UNIVAC)
имели разрядно-последовательную память,
из которой слова считывались последовательно
бит за битом. Первым коммерчески доступным
компьютером, использующим разрядно-параллельную
память (на CRT) и разрядно-параллельную
арифметику, стал IBM 701, а наибольшую популярность
получила модель IBM 704 (продано 150 экз.),
в которой, помимо сказанного, была впервые
применена память на ферритовых сердечниках
и аппаратное АУ с плавающей точкой.
IBM 709 (1958): независимые процессоры
ввода/вывода.
Процессоры первых компьютеров сами управляли
вводом/выводом. Однако скорость работы
самого быстрого внешнего устройства,
а по тем временам это магнитная лента,
была в 1000 раз меньше скорости процессора,
поэтому во время операций ввода/вывода
процессор фактически простаивал. В 1958г.
к компьютеру IBM 704 присоединили 6 независимых
процессоров ввода/вывода, которые после
получения команд могли работать параллельно
с основным процессором, а сам компьютер
переименовали в IBM 709. Данная модель получилась
удивительно удачной, так как вместе с
модификациями было продано около 400 экземпляров,
причем последний был выключен в 1975 году
- 20 лет существования!
IBM STRETCH (1961): опережающий просмотр
вперед, расслоение памяти.
В 1956 году IBM подписывает контракт с Лос-Аламосской
научной лабораторией на разработку компьютера
STRETCH, имеющего две принципиально важные
особенности: опережающий просмотр вперед
для выборки команд и расслоение памяти
на два банка для согласования низкой
скорости выборки из памяти и скорости
выполнения операций.
ATLAS (1963): конвейер команд.
Впервые конвейерный принцип выполнения
команд был использован в машине ATLAS, разработанной
в Манчестерском университете. Выполнение
команд разбито на 4 стадии: выборка команды,
вычисление адреса операнда, выборка операнда
и выполнение операции. Конвейеризация
позволила уменьшить время выполнения
команд с 6 мкс до 1,6 мкс. Данный компьютер
оказал огромное влияние, как на архитектуру
ЭВМ, так и на программное обеспечение:
в нем впервые использована мультипрограммная
ОС, основанная на использовании виртуальной
памяти и системы прерываний.
CDC 6600 (1964): независимые функциональные
устройства.
Фирма Control Data Corporation (CDC) при непосредственном
участии одного из ее основателей, Сеймура
Р.Крэя (Seymour R.Cray) выпускает компьютер CDC-6600
- первый компьютер, в котором использовалось
несколько независимых функциональных
устройств. Для сравнения с сегодняшним
днем приведем некоторые параметры компьютера: