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

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

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

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

Файлы: 1 файл

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

— 275.15 Кб (Скачать файл)

t(CDC 6600) = (1,1×10,~64)

(описан только центральный  процессор без учета управляющих  и периферийных подсистем).

Наконец, нам осталось рассмотреть  конвейеризацию на самом верхнем  уровне, известную как макро-конвейер. Поток данных, проходя через один процессор, поступает на вход другому, возможно через некоторую буферную память. Если независимо работают n процессоров, то в идеальной ситуации при отсутствии конфликтов и полной сбалансированности получаем ускорение в n раз по сравнению с использованием только одного процессора. Так компьютер PEPE, имея фактически три независимых системы из 288-ми устройств, описывается следующим образом:

t( PEPE ) = (1×3,288,32)

После расширения трехуровневой  модели параллелизма средствами описания потенциальных возможностей конвейеризации каждая тройка

t( PEPE ) = (k×k',d×d',w×w')

интерпретируется так:

  • k - число процессоров (каждый со своим УУ), работающих параллельно
  • k' - глубина макроконвейера из отдельных процессоров
  • d - число АЛУ в каждом процессоре, работающих параллельно
  • d' - число функциональных устройств АЛУ в цепочке
  • w - число разрядов в слове, обрабатываемых в АЛУ параллельно
  • w' - число ступеней в конвейере функциональных устройств АЛУ

Очевидна связь между классификацией Фенга и классификацией Хендлера: для получения максимальной степени параллелизма в терминах Фенга надо найти произведение всех шести величин в описании Хендлера. Здесь же заметим, что заложив в основу своей схемы явное указание на присутствующий параллелизм и возможную конвейеризацию, В.Хендлер сразу снимает массу вопросов, характерных для предшествующих схем Флинна, Шора и Фенга, по крайней мере, в плане описания векторно-конвейерных машин.

В дополнение к изложенному  способу описания архитектур Хендлер предлагает использовать три операции, которые будучи примененными к тройкам, позволят описать:

  • сложные структуры с подсистемами ввода-вывода, хост-компьютером или какими-то другими особенностями;
  • возможные режимы функционирования вычислительных систем, поддерживаемые для оптимального соответствия структуре программ.

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

t( CDC 6600 ) = (10,1,12) × (1,1×10,64),

где первый аргумент отражает существование десяти 12-ти разрядных  периферийных процессоров и тот  факт, что любая программа должна сначала быть обработана одним из них и лишь после этого передана центральному процессору для исполнения. Аналогично можно получить описание машины PEPE, принимая во внимание, что  в качестве хост-компьютера она использует CDC 7600:

t( PEPE ) = t( CDC 7600 ) × (1×3, 288, 32) = = (15, 1, 12) × (1, 1×9, 60) × (1×3, 288, 32)

Поток данных последовательно  проходит через три подсистемы, что  мы и отразили, соединив их знаком '×'.

Заметим, что все подсистемы последнего примера достаточно сложны и, вообще говоря, исходя только из данного описания могут представляться по-разному. Чтобы внести большую ясность, аналогично операции конвейерного исполнения, Хендлер вводит операцию параллельного исполнения (+), фиксирующую возможность независимого использования процессоров разными задачами:

t(n,d,w) = [{(1,d,w) + ... + (1,d,w)] {n раз}

В случае CDC 7600 уточненная запись вида:

(15, 1, 12) × (1, 1×9, 60) = [(1, 1, 12) + ... +(1, 1, 12)]} {15 раз} × (1, 1×9, 60)

говорит о том, что каждая задача может захватить свой периферийный процессор, а затем одна за одной они будут поступать в центральный процессор. И наконец третья операция - операция альтернативы (V), показывает возможные альтернативные режимы функционирования вычислительной системы. Чем больше для системы таких режимов, тем более гибкой архитектурой, по мнению Хендлера, она обладает. Например, компьютер C.mmp может быть запрограммирован для использования в трех принципиально разных режимах:

t( C.mmp ) = (16, 1, 16) V (1×16, 1,1 6) V (1, 16, 16).

 

  1. Классификация Скилликорна: описание архитектуры компьютера как абстрактной структуры, состоящей из компонент 4 типов (процессор команд, процессор данных, иерархия памяти, коммутатор).

В 1989 году была сделана очередная  попытка расширить классификацию  Флинна и, тем самым, преодолеть ее недостатки. Д.Скилликорн разработал подход, пригодный для описания свойств многопроцессорных систем и некоторых нетрадиционных архитектур, в частности dataflow и reduction machine.

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

  • процессор команд (IP - Instruction Processor) - функциональное устройство, работающее, как интерпретатор команд; в системе, вообще говоря, может отсутствовать;
  • процессор данных (DP - Data Processor) - функциональное устройство, работающее как преобразователь данных, в соответствии с арифметическими операциями;
  • иерархия памяти (IM - Instruction Memory, DM - Data Memory) - запоминающее устройство, в котором хранятся данные и команды, пересылаемые между процессорами;
  • переключатель - абстрактное устройство, обеспечивающее связь между процессорами и памятью.

Функции процессора команд во многом схожи с функциями устройств  управления последовательных машин  и, согласно Д.Скилликорну, сводятся к следующим:

  • на основе своего состояния и полученной от DP информации IP определяет адрес команды, которая будет выполняться следующей;
  • осуществляет доступ к IM для выборки команды;
  • получает и декодирует выбранную команду;
  • сообщает DP команду, которую надо выполнить;
  • определяет адреса операндов и посылает их в DP;
  • получает от DP информацию о результате выполнения команды.

Функции процессора данных делают его , во многом, похожим на арифметическое устройство традиционных процессоров:

  • DP получает от IP команду, которую надо выполнить;
  • получает от IP адреса операндов;
  • выбирает операнды из DM;
  • выполняет команду;
  • запоминает результат в DM;
  • возвращает в IP информацию о состоянии после выполнения команды.

В терминах таким образом определенных основных частей компьютера структуру традиционной фон-неймановской архитектуры можно представить в следующем виде:

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

  • 1-1 - переключатель такого типа связывает пару функциональных устройств;
  • n-n - переключатель связывает i-е устройство из одного множества устройств с i-м устройством из другого множества, т.е. фиксирует попарную связь;
  • 1-n - переключатель соединяет одно выделенное устройство со всеми функциональными устройствами из некоторого набора;
  • nxn - каждое функциональное устройство одного множества может быть связано с любым устройством другого множества, и наоборот.

Примеров подобных переключателей можно привести очень много. Так, все матричные процессоры имеют  переключатель типа 1-n для связи  единственного процессора команд со всеми процессорами данных. В компьютерах  семейства Connection Machine каждый процессор данных имеет свою локальную память, следовательно, связь будет описываться как n-n. В тоже время, каждый процессор команд может связаться с любым другим процессором, поэтому данная связь будет описана как nxn.

Классификация Д.Скилликорна состоит из двух уровней. На первом уровне она проводится на основе восьми характеристик:

  1. количество процессоров команд (IP);
  2. число запоминающих устройств (модулей памяти) команд (IM);
  3. тип переключателя между IP и IM;
  4. количество процессоров данных (DP);
  5. число запоминающих устройств (модулей памяти) данных (DM);
  6. тип переключателя между DP и DM;
  7. тип переключателя между IP и DP;
  8. тип переключателя между DP и DP.

Рассмотрим упомянутый выше компьютер Connection Machine 2. В терминах данных характеристик его можно описать:

(1, 1, 1-1, n, n, n-n, 1-n, nxn),

а условное изображение архитектуры  приведено на следующем рисунке:

Для сильно связанных мультипроцессоров (BBN Butterfly, C.mmp) ситуация иная. Такие системы состоят из множества процессоров, соединенных с модулями памяти с помощью динамического переключателя. Задержка при доступе любого процессора к любому модулю памяти примерно одинакова. Связь и синхронизация между процессорами осуществляется через общие (разделяемые) переменные. Описание таких машин в рамках данной классификации выглядит так:

(n, n, n-n, n, n, nxn, n-n, нет),

а саму архитектуру можно  изобразить так, как на следующем  рисунке:

Используя введенные характеристики и предполагая, что рассмотрение количественных характеристик можно  ограничить только тремя возможными вариантами значений: 0, 1 и n (т.е. больше одного), можно получить 28 классов архитектур.

В классах 1-5 находятся компьютеры типа dataflow и reduction, не имеющие процессоров команд в обычном понимании этого слова. Класс 6 это классическая фон-неймановская последовательная машина. Все разновидности матричных процессоров содержатся в классах 7-10. Классы 11 и 12 отвечают компьютерам типа MISD классификации Флинна и на настоящий момент, по мнению автора, пусты. Классы с 13-го по 28-й занимают всесозможные варианты мультипроцессоров, причем в 13-20 классах находятся машины с достаточно привычной архитектурой, в то время, как архитектура классов 21-28 пока выглядит экзотично.

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

В конце данного описания имеет смысл привести сформулированные автором три цели, которым должна служить хорошо построенная классификация:

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

 

  1. Основные классы современных параллельных компьютеров. SMP, MPP, NUMA, PVP, Кластеры.

 

 Основным параметром классификации паралелльных компьютеров является наличие общей (SMP) или распределенной памяти (MPP). Нечто среднее между SMP и MPP представляют собой NUMA-архитектуры, где память физически распределена, но логически общедоступна. Кластерные системы являются более дешевым вариантом MPP. При поддержке команд обработки векторных данных говорят о векторно-конвейерных процессорах, которые, в свою очередь могут объединяться в PVP-системы с использованием общей или распределенной памяти. Все большую популярность приобретают идеи комбинирования различных архитектур в одной системе и построения неоднородных систем.

При организациях распределенных вычислений в глобальных сетях (Интернет) говорят о мета-компьютерах, которые, строго говоря, не представляют из себя параллельных архитектур.

Более подробно особенности  всех перечисленных архитектур будут  рассмотрены далее на этой странице, а также в описаниях конкретных компьютеров - представителей этих классов. Для каждого класса приводится следующая  информация:

  • краткое описание особенностей архитектуры,
  • примеры конкретных компьютеров,
  • перспективы масштабируемости,
  • типичные особенности построения операционных систем,
  • наиболее характерная модель программирования (хотя возможны и другие).

Примечание. На данной странице рассматриваются наиболее типичные классы архитектур современных параллельных компьютеров и супер-ЭВМ. (Не рассматриваются устаревшие и проектируемые архитектуры.)

Массивно-параллельные системы (MPP)

Архитектура

Система состоит из однородных вычислительных узлов, включающих:

  • один или несколько центральных процессоров (обычно RISC),
  • локальную память (прямой доступ к памяти других узлов невозможен),
  • коммуникационный процессор или сетевой адаптер
  • иногда - жесткие диски (как в SP) и/или другие устройства В/В

К системе могут быть добавлены  специальные узлы ввода-вывода и  управляющие узлы. Узлы связаны через  некоторую коммуникационную среду (высокоскоростная сеть, коммутатор и  т.п.)

Примеры

IBM RS/6000 SP2, Intel PARAGON/ASCI Red, CRAY T3E, Hitachi SR8000, транспьютерные системы Parsytec.

Масштабируемость

Общее число процессоров  в реальных системах достигает нескольких тысяч (ASCI Red, Blue Mountain).

Операционная  система

Существуют два основных варианта:

  1. Полноценная ОС работает только на управляющей машине (front-end), на каждом узле работает сильно урезанный вариант ОС, обеспечивающие только работу расположенной в нем ветви параллельного приложения. Пример: Cray T3E.
  2. На каждом узле работает полноценная UNIX-подобная ОС (вариант, близкий к кластерному подходу). Пример: IBM RS/6000 SP + ОС AIX, устанавливаемая отдельно на каждом узле.

Модель программирования

Программирование в рамках модели передачи сообщений ( MPI, PVM, BSPlib)

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