История появления параллелизма в архитектуре ЭВМ
Федеральное агентство по образованию
Саратовский
государственный технический
Кафедра
информационных систем и технологий
История появления параллелизма в архитектуре ЭВМ
Курсовая работа
студента III курса, группы ИСТ-31 международного факультета прикладных информационных технологий Мавлютова Наримана Равильевича.
____________________________
подпись
студента
Руководитель:
к.ф.-м. н., доцент Папшев С.В.
______________________________
подпись
руководителя
Саратов
2010
Содержание
Содержание 2
Введение 3
1 Типы параллелизма в архитектуре ЭВМ 4
1.1. Параллелизм на уровне команд 4
1.2. Параллелизм на уровне процессоров 5
2 Первые компьютеры использовавшие параллелизм 7
1.1. Суперкомпьютер IBM 701 и IBM 704 8
1.2. Суперкомпьютер IBM 709 9
1.3. Суперкомпьютер IBM STRETCH 10
1.4. Суперкомпьютер ATLAS 12
1.5. Суперкомпьютер CDC 6600 13
1.6. Суперкомпьютер CDC 7600 14
1.7. Суперкомпьютер CRAY 1 15
3 Параллелизм в современных компьютерах 19
3.1. Российский суперкомпьютер Ломоносов 21
4 Направление развитий 24
Заключение 26
Список
источников 27
Введение
Спрос
на компьютеры, работающие с все
более и более высокой
Разработчики компьютеров стремятся к тому, чтобы повысить производительность своих машин. Один из способов заставить процессоры работать быстрее это повышение их тактовой частоты, однако при этом существуют некоторые технологические ограничения. Поэтому большинство разработчиков для повышения производительности при данной тактовой частоте процессора используют параллелизм.
Идея распараллеливания вычислений основана на том, что большинство задач может быть разделено на набор меньших задач, которые могут быть решены одновременно. Параллельные вычисления использовались много лет основном в высокопроизводительных вычислениях, но в последнее время к ним возрос интерес вследствие существования физических ограничений на рост тактовой частоты процессоров. Параллельные вычисления стали доминирующей моделью в архитектуре компьютеров, в основном в форме многоядерных процессоров.
В этой курсовой работе рассмотрена история появления и развития параллельных вычислительных систем, их сферы применения, также разобраны применяемые технологии и особенности параллелизма в архитектуры ЭВМ.
1 Типы параллелизма в архитектуре ЭВМ
Существует две основные формы параллелизма: параллелизм на уровне команд и параллелизм на уровне процессоров. В первом случае параллелизм реализуется за счет запуска большого количества команд каждую секунду. Во втором случае над одним заданием работают одновременно несколько процессоров. Каждый подход имеет свои преимущества.
Параллелизм можно вводить на разных уровнях. На самом низком уровне он может быть реализован в процессоре за счет конвейеризации и суперскалярной архитектуры с несколькими функциональными блоками.
На
следующем уровне возможно внедрение
в систему внешних плат ЦП с
улучшенными вычислительными
- Параллелизм на уровне команд
Параллелизм на уровне команд (instruction-level parallelism, ILP) стал возможен благодаря созданию процессоров и методик компиляции, которые ускоряют работу за счет параллельного выполнения отдельных RISC-операций. Системы на базе ILP используют программы, написанные на традиционных языках высокого уровня для последовательных процессоров, а обнаружение «скрытого параллелизма» автоматически выполняется благодаря применению соответствующей компиляторной технологии и аппаратного обеспечения.
Низкоуровневый параллелизм достигается, в частности, вызовом нескольких команд за один тактовый цикл. Процессоры, в которых реализуется этот принцип, делятся на две категории: суперскалярные и VLIW.
Суперскалярные процессоры способны за один тактовый цикл вызывать несколько команд. Число фактически вызываемых команд зависит как от конструкции процессора, так и от текущей ситуации. Аппаратные ограничения диктуют максимальное число одновременно вызываемых команд — обычно от двух до шести. К тому же, если для выполнения команды нужен недоступный функциональный блок или еще не полученный результат выполнения другой команды, такая команда не будет вызвана даже при наличии физической возможности.
Процессоры
VLIW (процессоры, использующие сверхбольшие
слова команд) представляют собой
пример архитектуры, для которой
программа предоставляет точную
информацию о параллелизме. Компилятор
выявляет параллелизм в программе
и сообщает аппаратному обеспечению,
какие операции не зависят друг от
друга. Эта информация имеет важное
значение для аппаратного обеспечения,
поскольку в этом случае оно «знает»
без дальнейших проверок, какие операции
можно начинать выполнять в одном
и том же такте.[3, 4]
- Параллелизм на уровне процессоров
Параллелизм на уровне команд в определенной степени помогает, но конвейеры и суперскалярная архитектура обычно повышают скорость работы всего лишь в 5-10 раз. Чтобы повысить производительность в сто, тысячу или миллион раз, необходимо свести воедино многочисленные процессоры и обеспечить их эффективное взаимодействие. Этот принцип реализуется в виде больших мультипроцессорных систем и мультикомпьютеров (кластерных компьютеров). Естественно, объединение тысяч процессоров в единую систему порождает новые проблемы, которые нужно решать.
Разделяя
вычислительную нагрузку, выполняемую
единственным ядром в традиционных
процессорах между многими
Процессор,
оборудованный параллелизмом на
уровне процессора, может выполнить
полностью отдельные части кода
на разных процессорах. Это может означать
или один подпроцесс, выполняемый из приложения,
и второй подпроцесс, выполняемый из операционной
системы, или параллельные подпроцессы,
выполняемые из единственного приложения.
Параллелизм на уровне процессора приносит
особенный выигрыш для многих мультимедийных
приложений, потому что многие из их операций
способны к выполнению параллельно.
2 Первые компьютеры использовавшие параллелизм
Все современные микропроцессоры, будь то Pentium IV или Intel Core 2 Duo, Е2К или Power7 используют тот или иной вид параллельной обработки. В ядре Pentium 4 на разных стадиях выполнения может одновременно находиться до 126 микроопераций. На презентациях новых чипов и в пресс-релизах корпораций это преподносится как последнее слово техники и передовой край науки если рассматривать реализацию этих принципов в миниатюрных рамках одного кристалла.
Сами эти идеи появились очень давно. Изначально они внедрялись в самых передовых, а потому единичных, компьютерах своего времени. Затем после должной отработки технологии и удешевления производства они спускались в компьютеры среднего класса, и наконец сегодня все это в полном объеме воплощается в рабочих станциях и персональных компьютерах.
За последние три десятилетия компьютерная отрасль развивалась в соответствии с темпами увеличения производительности микропроцессоров. Отрасль использовала эти достижения, позволяя обходиться без кардинального переписывания программ в «параллельном виде», без смены языков и алгоритмов и, зачастую, даже без перекомпиляции самого кода. По крайней мере до последнего времени параллельная обработка на уровне команд утвердилась как единственный подход, позволяющий добиваться высокой производительности без серьезных изменений программного обеспечения.[2]
В
этой главе рассмотрены семь первых мультикомпьютеров
и суперкомпьютеров имевший параллелизм
на уровне команд и параллелизм на уровне
процессоров получившие большой успех
на рынке.
- Суперкомпьютер IBM 701 и IBM 704.
Все самые первые компьютеры (EDSAC, EDVAC, UNIVAC) имели разрядно - последовательную память, из которой слова считывались последовательно бит за битом. Первым коммерчески доступным компьютером, использующим разрядно - параллельную память (на CRT) и разрядно - параллельную арифметику, стал IBM 701, официально открыт был 7 апреля 1953 года.
Основные особенности компьютера IBM 701:
- Первый крупномасштабный электронный компьютерной в промышленном в количестве;
- Первый коммерчески доступный научный компьютер;
- Первая машина, в которой программы хранятся во внутренней адресуемой электронной памяти;
- Разработан и изготовлен в рекордные сроки - менее чем за два года из "первых чертежей на бумаге";
Рис 1.1.
Фотография компьютера IBM 701.
Наибольшую
популярность, из линии IBM серий 700, получила
модель IBM 704 (1955 г.в.,
продано 150 экз.), в которой, помимо сказанного,
была впервые применена память на ферритовых
сердечниках и аппаратное АУ с плавающей
точкой.[1, 2]
1.2. Суперкомпьютер IBM 709
Процессоры
первых компьютеров сами управляли
вводом/выводом. Однако скорость работы
самого быстрого внешнего устройства,
а по тем временам это магнитная
лента, была в 1000 раз меньше скорости
процессора, поэтому во время операций
ввода/вывода процессор фактически
простаивал. В августе 1958 года к компьютеру
IBM 704 присоединили 6 независимых процессоров
ввода/вывода, которые после получения
команд могли работать параллельно с основным
процессором тем самым получился параллелизм
на уровне процессоров, а сам компьютер
переименовали в IBM 709. Компьютер был построен,
используя электронные лампы.
Рис
1.2. Фотография компьютера IBM 709.
У IBM 709 были сумматор на 38 битов, регистр фактора множителя на 36 битов, и три регистра декремента на 15 битов. Регистры декремента были своего рода регистром индекса, содержание которого было вычтено из базового адреса вместо того, чтобы быть добавленным к этому.
Данная
модель получилась удивительно удачной,
так как вместе с модификациями
было продано около 400 экземпляров,
причем последний был выключен в
1975 году - 20 лет существования.[1, 2]
1.3. Суперкомпьютер IBM STRETCH
Главным препятствием высокой скорости выполнения команд является необходимость их вызова из памяти. Для разрешения этой проблемы можно вызывать команды из памяти заранее и хранить в специальном наборе регистров. Эта идея использовалась в 1959 году при разработке компьютера Stretch компании IBM, а набор регистров был назван буфером выборки с упреждением. Таким образом, когда требовалась определенная команда, она вызывалась прямо из буфера, а обращения к памяти не происходило.
В 1956 году IBM подписывает контракт с Лос-Аламосской научной лабораторией на разработку компьютера IBM STRETCH. Цель была повысить производительность компьютера в 100 раз больше серии 704. Архитектурные улучшения, таких как широкое использование параллелизма на уровне команд, были необходимы для удовлетворения цели. В 1959 году было начато создания первых IBM Stretch, а массово выпускать стали в 1961 году.
Проект Stretch превзошел достижениями во многих ключевых компьютерных технологиях, в том числе основ памяти, изменение схем транзистор, схема упаковки. В первый раз, многие архитектурные компромиссы были определены. Stretch стал пионером многих инновационных компьютерных архитектур, которые с тех пор стали обычным явлением:
- мультипрограммный режим работы;
- защита памяти;
- система прерываний;
- конвейерная обработка данных;
- расслоение памяти на независимые банки;
- спекулятивное выполнение;
- совмещение операций в памяти с арифметическими операциями;
- концепция шины памяти;
- работа двух процессоров на общую память;
- использование 8 бит для кодировки символа (именно тогда и родился термин «байт»).
Рис
1.3. Фотография компьютера IBM Stretch.
В
момент выпуска Stretch был самым мощным суперкомпьютером
в мире и сохранил этот пост до 1964 года,
он не оправдал прогнозируемых производительности.[5]
- Суперкомпьютер ATLAS
Впервые конвейерный принцип выполнения команд был использован в машине ATLAS (1963 года выпуска), разработанной в Манчестерском университете совместно с Британскими фирмами Ferranti и Plessey. Это был один из первых суперкомпьютеров, которые были самые мощные компьютеры в то время. Атлас был машиной второго поколения, которые использовал транзисторы германия, а не электронные лампы. Главная особенность выполнение команд разбито на 4 стадии: выборка команды, вычисление адреса операнда, выборка операнда и выполнение операции. Конвейеризация позволила уменьшить время выполнения команд с 6 мкс до 1,6 мкс.
Рис 1.4. Фотография компьютера Atlas.
Данный компьютер оказал огромное влияние, как на архитектуру ЭВМ, так и на программное обеспечение: в нем впервые использована мультипрограммная ОС, основанная на использовании виртуальной памяти и системы прерываний, введено такое понятие как программное обеспечение, которое широко применяется сегодня.
1.5. Суперкомпьютер CDC 6600
Фирма Control Data Corporation (CDC) выпускают компьютер CDC 6600, массовое производство которое состоялась 1964 года. Это первый успешный суперкомпьютер, который выигрывает по производительности у своего предшественника IBM Stretch приблизительно в три раза. Производительность около 1 Мфлопса.
CDC 6600 имел всего один центральный процессор, которому ассистировали 10 периферийных процессоров, работавших параллельно. Они брали на себя все операции, связанные с работой с памятью и вводом-выводом. На долю центрального процессора оставались только арифметические и логические операции. Центральный процессор работал с высокой по тем временам частотой 10 МГц. Чтобы он не простаивал на обмене с памятью, каждый из периферийных процессоров получал свои 10% времени и передавал в центральный процессор часть данных – таким образом удавалось согласовать быстрый центральный процессор с медленной памятью. Внутри центрального процессора CDC 6600 имел 10 функциональных блоков, которые могли выполнять работу параллельно. Так впервые был реализован суперскалярный подход к проектированию процессоров.
Рис 1.5. Фотография компьютера CDC 6600.
В CDC 6600 было впервые реализовано оборудование, позволяющее процессору просматривать команды, расположенные далее в потоке команд, и определять, могут ли они быть запущены перед той, что ожидает сохранения результата. Идея аппаратного переупорядочивания команд на конвейере, известная как динамическое планирование (dynamic scheduling), служила поддержанию максимально возможной его загрузки и значительно повысила производительность CDC 6600.
Машина
имела громадный успех на научном
рынке, активно вытесняя машины фирмы
IBM. CDC 6600 был самым быстрым компьютером
в мире до 1969 года.[6, 7]
1.6. Суперкомпьютер CDC 7600
После выхода CDC 6600 фирма Control Data Corporation выпускает CDC 7600 с восемью независимыми конвейерными функциональными устройствами - сочетание параллельной и конвейерной обработки, массовое производство машины началось в 1969 году. Производительность около 10 Мфлопса.
Этот
компьютер был примерно в 12 раз производительнее
своего предшественника. С архитектурной
и технологической точек зрения он во
многом повторял 6600 – та же длина слова,
равная 60, тот же навесной монтаж, но состав
системы команд иной, поэтому полной совместимости
между ними не было и первоначально задуманный
индекс 6800 был заменен на 7600. В процессе
проектирования разработчики осознали,
что наступают новые времена: хотя появляющиеся
микросхемы и более высокочастотные транзисторы
давали возможность поднять производительность
в разы, однако, оставаясь в рамках действующей
суперскалярной парадигмы, добиться радикальных
улучшений было нельзя. В поисках выхода
разработчики пришли к мысли о конвейере,
позволяющем разделить обработку отдельной
инструкции на последовательность независимых
стадий. Это позволяло управляющим схемам
инициировать обработку инструкций с
темпом обработки на самой медленной стадии,
что гораздо быстрее, чем время, необходимое
для выполнения всех стадий сразу. Таким
образом, общее время выполнения команды
равно времени, затрачиваемому самой медленной
фазой (в последующем эта закономерность
получила название закона Амдала). Каждый
момент времени в разных стадиях обработки
находятся несколько инструкций. Теоретически
деление на 10 фаз может на порядок поднять
производительность, но реально конвейерная
обработка дала трехкратное увеличение
по сравнению с 6600. Повышение частоты в
условиях дискретного навесного монтажа
требовало сокращения линий связи, следовательно,
конструкция должна была быть очень плотной.
Крей (ведущий разработчик) предложил
систему модулей, на которых монтировались
сверхминиатюрные триоды, диоды и сопротивления.
Она обеспечивала возможность роста частоты,
но возникали тяжелые проблемы с отводом
тепла. Пришлось применять не слишком
надежную фреоновую систему охлаждения.
В целом машина получилась производительной,
но недостаточно надежной. По данным лабораторий,
где ее использовали, 7600 выходила из строя
по несколько раз на дню. Слава производителя
самого быстрого компьютера едва не обернулась
угрозой финансового краха.[6, 7]
1.7. Суперкомпьютер Cray 1
В 70-х годах бывший сотрудник и один из руководителей фирмы CDC Сеймур Крей организовал собственную фирму, которая занялась проектированием сверхбыстродействующей ЭВМ, известной под названием Cray-1 с быстродействием, превосходящим 150 млн. операций в секунду с широким использованием новой интегральной технологии. Пиковая производительность 133 Мфлопса.
Основная
память машины Cray-1 в отличие от других
высокопроизводительных машин не имеет
иерархическую структуру, она столь быстра
что в такой иерархии отпала необходимость.
Считается, что машина Cray-1 является наиболее
быстродействующей из класса однопроцессорных
систем.
Рис
1.6. Фотография компьютера Cray 1.
Cray-1 относится к классу сверхвысокопроизводительных векторные процессоры. К этому классу относятся также машины Иллиак-IV, STAR-100.
В состав центрального процессора Cray-1 входят:
- главная память, объемом до 1048576 слов, разделенная на 16 независимых по обращению блоков, емкостью 64К слов каждый;
- регистровая память, состоящая из пяти групп быстрых регистров, предназначенных для хранения и преобразования адресов, для хранения и обработки векторных величин;
- функциональные модули, в состав которых входят 12 параллельно работающих устройств, служащих для выполнения арифметических и логических операций над адресами, скалярными и векторными величинами;
- устройство, выполняющее функции управления параллельной работой модулей, блоков и устройств центрального процессора;
- 24 канала ввода-вывода, организованные в 6 групп с максимальной пропускной способностью 500000 слов в секунду (2 млн. байт в сек.).
В машине Cray-1 устройства, выполняющие операции умножения и вычитания, могут работать одновременно, эту процедуру на ней можно запараллелить. Умножить первую компоненту первого вектора на скалярную величину, после этого приступить к выполнению операции вычитания результата из первой компоненты второго вектора, а пока происходит это вычитание, параллельно выполнить операцию умножения скаляра на вторую компоненту первого вектора. Этот механизм, позволяющий совмещать различные арифметические действия, назван цепочкой. В литературе этот принцип организации параллелизма иногда называют конвеерным. Сочетание конвейерного параллелизма с "покомпонентным", по мнению разработчиков машины Cray-1, составляет одну из важных особенностей и достоинств ее структурной организации.
Математическое обеспечение машины Cray-1, так же как и у ее предшественников машин фирмы CDC, "фортранно-ориентировано". Это означает, что в качестве основного входного языка выбран фортран, наиболее интенсивно используемый в научных расчетах. Для машины Cray-1 создан специальный оптимизирующий транслятор со стандартного фортрана, учитывающий специфику этой векторной машины. При некоторых условиях, наложенных на программу, данный транслятор обеспечивает конвеерный параллелизм и готовит объектные программы, эффективно использующие эти возможности машины. Ведутся работы над новой версией транслятора, который будет оптимизировать фортранные программы, составленные без каких-либо ограничений.
В состав математического обеспечения входит также макроассемблер CAL (Cray Assembler Language) и библиотека стандартных программ, составленная на этом языке и ориентированная на использование средств параллельных вычислений, присущих данной машине.
Операционная система COS (Cray Operating System) предназначена для режима пакетной обработки и дистанционной пакетной обработки заданий, полученных с удаленных терминалов. Операционная система рассчитана на мультипрограммную обработку одновременно до 63 активных задач. Для обеспечения работы в режиме дистанционного доступа в качестве машины-сателлита вычислительной системы Cray-1 используется минимашина "Eclipse". С этой машиной связаны внешние каналы центрального вычислителя с помощью специальных сопрягающих устройств. На минимашину возлагаются функции управления приемом-передачей информации, управления линиями связи, т. е. функции процессора передачи данных.
Суперкомпьютер Cray-1 — послужил отправной точкой в развитии не только самой компании, но и всего рынка супер-ЭВМ. Пиковая производительность машины составляла 133 Мфлопс, при этом производительность даже самых дешевых современных процессоров далеко ушла от тех цифр, взять хотя бы 2,4-ГГц Intel Core 2 Duo — этот чип не новый (2006 года) и стоимостью 80 $, выдает целых 19,2 гигафлопса, что в 144 раза больше, чем у Cray-1, стоимость которого составляла в 1977 году почти 9 миллионов долларов.
Компания
Cray оказала огромное влияние на рынок
суперкомпьютеров и на многие отрасли
человеческой жизни. К примеру, без машины
Cray 1 не были бы разработаны некоторые
новые лекарства, мы не увидели бы многих
фильмов с компьютерными спецэффектами,
не были бы произведены многие научные
исследования и открытия.
3 Параллелизм в современных компьютерах

- История появления школьных исторических музеев
- История появления ядов и химического оружия
- История права хозяйственного ведения и права оперативного управления
- История правового регулирования банкротства
- История предпренимательства в России
- История предпринимательского права в России
- История предпринимательства
- История, понятие и признаки демократии
- История посредничества в конфликтах
- История появления документа (письма)
- История появления института президента в России
- История появления и развитие государств Западной Европы
- История появления и развития газеты «Право», структурный анализ и контент-анализ издания
- История появления и развития государств Западной Европы