Лекция по "Архитектуре ЭВМ"

Автор работы: Пользователь скрыл имя, 20 Января 2013 в 15:13, лекция

Описание работы

Классификации архитектур вычислительных систем. Введение: для чего нужны классификации?
Классификация Флинна: единственность или множественность потоков данных и команд.
Классификация Фенга: две простые численные характеристики параллелизма (пословный и поразрядный параллелизм).
Классификация Шора: шесть "типичных архитектур" вычислительных систем.

Файлы: 1 файл

Классификации архитектур вычислительных систем.docx

— 275.15 Кб (Скачать файл)
  1. Классификации архитектур вычислительных систем. Введение: для чего нужны классификации?
  • Классификация Флинна: единственность или множественность потоков данных и команд.
  • Классификация Фенга: две простые численные характеристики параллелизма (пословный и поразрядный параллелизм).
  • Классификация Шора: шесть "типичных архитектур" вычислительных систем.
  • Классификация Хендлера: количественное описание параллелизма на трех различных уровнях обработки данных (выполнение программы, выполнение команд, обработка битов).
  • Классификация Хокни: конкретизация класса MIMD.
  • Классификация Шнайдера: конкретизация класса SIMD (основная идея - выделение этапов выборки и непосредственно исполнения в потоках команд и данных).
  • Классификация Джонсона: четыре класса MIMD-компьютеров (компьютеры с общей или распределенной памятью, программируемые с помощью передачи сообщений или разделяемых переменных).
  • Классификация Базу: последовательность решений, принятых на этапе проектирования архитектуры.
  • Классификация Кришнамарфи: четыре качественные характеристики параллелизма (степень гранулярности параллелизма, способ реализации, топология и природа связи процесоров, способ управления процессорами).
  • Классификация Скилликорна: описание архитектуры компьютера как абстрактной структуры, состоящей из компонент 4 типов (процессор команд, процессор данных, иерархия памяти, коммутатор).
  • Классификация Дазгупты: построение схем архитектур из семи базовых понятий.
  • Классификация Дункана.,

В научной литературе и  технической документации можно  найти более десятка различных  названий, характеризующих лишь общие  принципы функционирования параллельных машин: векторно-конвейерные, массивно-параллельные, компьютеры с широким командным  словом, систолические массивы, гиперкубы, спецпроцессоры и мультипроцессоры, иерархические и кластерные компьютеры, dataflow, матричные ЭВМ и многие другие. Если же к подобным названиям для полноты описания добавить еще и данные о таких важных параметрах, как, например, организация памяти, топология связи между процессорами, синхронность работы отдельных устройств или способ исполнения арифметических операций, то число различных архитектур станет и вовсе необозримым.

Попытки систематизировать  все множество архитектур начались после опубликования М.Флинном первого варианта классификации вычислительных систем в конце 60-х годов и непрерывно продолжаются по сей день. Ясно, что навести порядок в хаосе очень важно для лучшего понимания исследуемой предметной области, однако нахождение удачной классификации может иметь целый ряд существенных следствий.

Основной вопрос - что  заложить в основу классификации, может  решаться по-разному, в зависимости  от того, для кого данная классификация  создается и на решение какой  задачи направлена. Так, часто используемое деление компьютеров на персональные ЭВМ, рабочие станции, мини--ЭВМ, большие универсальные ЭВМ, минисупер--ЭВМ и супер--ЭВМ, позволяет, быть может, примерно прикинуть стоимость компьютера. Однако она не приближает пользователя к пониманию того, что от него потребуется для написания программы, работающий на пределе производительности параллельного компьютера, т.е. того, ради чего он и решился его использовать. Как это ни странно, но от обилия разных параллельных компьютеров страдает, прежде всего, конечный пользователь, для которого, вроде бы, они и создавались: он вынужден каждый раз подбирать наиболее эффективный алгоритм, он испытывает на себе "прелести" параллельного программирования и отладки, решает проблемы переносимости и затем все повторяется заново.

 

  1. Классификация Флинна: единственность или множественность потоков данных и команд.

Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М. Флинном. Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD,MISD,SIMD,MIMD.

 

SISD (single instruction stream / single data stream) - одиночный поток команд и одиночный поток данных. К этому классу относятся, прежде всего, классические последовательные машины, или иначе, машины фон-неймановского типа, например, PDP-11 или VAX 11/780. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных. Не имеет значения тот факт, что для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка - как машина CDC 6600 со скалярными функциональными устройствами, так и CDC 7600 с конвейерными попадают в этот класс.


 

SIMD (single instruction stream / multiple data stream) - одиночный поток команд и множественный поток данных. В архитектурах подобного рода сохраняется один поток команд, включающий, в отличие от предыдущего класса, векторные команды. Это позволяет выполнять одну арифметическую операцию сразу над многими данными - элементами вектора. Способ выполнения векторных операций не оговаривается, поэтому обработка элементов вектора может производится либо процессорной матрицей, как в ILLIAC IV, либо с помощью конвейера, как, например, в машине CRAY-1.


 

MISD (multiple instruction stream / single data stream) - множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Ряд исследователей [3,4,5] относят конвейерные машины к данному классу, однако это не нашло окончательного признания в научном сообществе. Будем считать, что пока данный класс пуст.


 

MIMD (multiple instruction stream / multiple data stream) - множественный поток команд и множественный поток данных. Этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных.


 

Итак, что же собой представляет каждый класс? В SISD, как уже говорилось, входят однопроцессорные последовательные компьютеры типа VAX 11/780. Однако, многими критиками подмечено, что в этот класс можно включить и векторно-конвейерные машины, если рассматривать вектор как одно неделимое данное для соответствующей команды. В таком случае в этот класс попадут и такие системы, как CRAY-1, CYBER 205, машины семейства FACOM VP и многие другие.

Бесспорными представителями  класса SIMD считаются матрицы процессоров: ILLIAC IV, ICL DAP, Goodyear Aerospace MPP, Connection Machine 1 и т.п. В таких системах единое управляющее устройство контролирует множество процессорных элементов. Каждый процессорный элемент получает от устройства управления в каждый фиксированный момент времени одинаковую команду и выполняет ее над своими локальными данными. Для классических процессорных матриц никаких вопросов не возникает, однако в этот же класс можно включить и векторно-конвейерные машины, например, CRAY-1. В этом случае каждый элемент вектора надо рассматривать как отдельный элемент потока данных.

Класс MIMD чрезвычайно широк, поскольку включает в себя всевозможные мультипроцессорные системы: Cm*, C.mmp, CRAY Y-MP, Denelcor HEP,BBN Butterfly, Intel Paragon, CRAY T3D и многие другие. Интересно то, что если конвейерную обработку рассматривать как выполнение множества команд (операций ступеней конвейера) не над одиночным векторным потоком данных, а над множественным скалярным потоком, то все рассмотренные выше векторно-конвейерные компьютеры можно расположить и в данном классе.

Предложенная схема классификации  вплоть до настоящего времени является самой применяемой при начальной  характеристике того или иного компьютера. Если говорится, что компьютер принадлежит  классу SIMD или MIMD, то сразу становится понятным базовый принцип его  работы, и в некоторых случаях  этого бывает достаточно. Однако видны  и явные недостатки. В частности, некоторые заслуживающие внимания архитектуры, например dataflow и векторно--конвейерные машины, четко не вписываются в данную классификацию. Другой недостаток - это чрезмерная заполненность класса MIMD. Необходимо средство, более избирательно систематизирующее архитектуры, которые по Флинну попадают в один класс, но совершенно различны по числу процессоров, природе и топологии связи между ними, по способу организации памяти и, конечно же, по технологии программирования.

Наличие пустого класса (MISD) не стоит считать недостатком  схемы. Такие классы, по мнению некоторых  исследователей в области классификации  архитектур [6,7], могут стать чрезвычайно  полезными для разработки принципиально  новых концепций в теории и  практике построения вычислительных систем.

 

  1. Классификация Хендлера: количественное описание параллелизма на трех различных уровнях обработки данных (выполнение программы, выполнение команд, обработка битов).

В основу классификации В.Хендлер закладывает явное описание возможностей параллельной и конвейерной обработки информации вычислительной системой [11]. При этом он намеренно не рассматривает различные способы связи между процессорами и блоками памяти и считает, что коммуникационная сеть может быть нужным образом сконфигурирована и будет способна выдержать предполагаемую нагрузку.

Предложенная классификация  базируется на различии между тремя  уровнями обработки данных в процессе выполнения программ:

  • уровень выполнения программы - опираясь на счетчик команд и некоторые другие регистры, устройство управления (УУ) производит выборку и дешифрацию команд программы;
  • уровень выполнения команд - арифметико-логическое устройство компьютера (АЛУ) исполняет команду, выданную ему устройством управления;
  • уровень битовой обработки - все элементарные логические схемы процессора (ЭЛС) разбиваются на группы, необходимые для выполнения операций над одним двоичным разрядом.

Таким образом, подобная схема  выделения уровней предполагает, что вычислительная система включает какое-то число процессоров каждый со своим устройством управления. Каждое устройство управления связано  с несколькими арифметико-логическими  устройствами, исполняющими одну и  ту же операцию в каждый конкретный момент времени. Наконец, каждое АЛУ  объединяет несколько элементарных логических схем, ассоциированных с  обработкой одного двоичного разряда (число ЭЛС есть ничто иное, как длина машинного слова). Если на какое-то время не рассматривать возможность конвейеризации, то число устройств управления k , число арифметико-логических устройств d в каждом устройстве управления и число элементарных логических схем w в каждом АЛУ составят тройку для описания данной вычислительной системы C:

t(C) = (k, d, w)

В таких обозначениях описания некоторых хорошо известных вычислительных систем будут выглядеть следующим  образом:

t( MINIMA ) = (1,1,1); 
t( IBM 701 ) = (1,1,36); 
t( SOLOMON ) = (1,1024,1); 
t( ILLIAC IV ) = (1,64,64); 
t( STARAN ) = (1,8192,1) - в полной конфигурации; 
t( C.mmp ) = (16,1,16) - основной режим работы; 
t( PRIME ) = (5,1,16); 
t( BBN Butterfly GP1000 ) = (256,~1,~32).

Несмотря на то, что перечисленным  системам присущ параллелизм разного  рода, он без особого труда может  быть отнесен к одному из трех выделенных уровней.

Теперь можно расширить  возможности описания, допустив возможность  конвейерной обработки на каждом из уровней. В самом деле, конвейерность на самом нижнем уровне (т.е. на уровне ЭЛС) это конвейерность функциональных устройств. Если функциональное устройство обрабатывает w-разрядные слова на каждой из w' ступеней конвейера, то для характеристики параллелизма данного уровня естественно рассмотреть произведение w×w'. Знак умножения × будем использовать на каждом уровне чтобы отделить число, представляющее степень параллелизма, от числа ступеней в конвейере. Компьютер TI ASC имеет четыре конвейерных устройства по восемь ступеней в каждом для обработки 64-х разрядных слов, следовательно, он может быть описан так:

t( TI ASC ) = (1,4,64×8)

Следующий уровень конвейерной  обработки - это конвейеризация на уровне команд. Предполагается, что в вычислительной системе есть несколько функциональных устройств, которые могут работать одновременно в рамках одного потока команд (в настоящее время используется специальный термин для обозначения  данной возможности - сцепление функциональных устройств). Классическим примером этому могут служить компьютеры фирмы Cray Research. А исторически первой, по всей вероятности, является машина CDC 6600, содержащая десять независимых последовательных функциональных устройств, способных подавать результат своей работы на вход другим функциональным устройствам, образуя единый поток команд:

Информация о работе Лекция по "Архитектуре ЭВМ"