Организация ЭВМ и систем: Курс лекций (Позиционные системы счисления. Процессоры семейства IA-32. Лазерные принтеры), страница 33

Системы типа много потоков команд, много потоков данных (МКМД, Multiple Instruction stream Multiple Data stream, MIMD) имеют несколько процессоров, работающих как часть большой системы.

11.2.  Системы типа ОКМД

Эти системы распадаются на два вида: массивно-параллельные процессоры и векторные процессоры.

11.2.1. Массивно-параллельные процессоры (array processors)

Идея ЭВМ такого типа была впервые высказана в 1958 г. С тех пор было создано несколько коммерческих массивно-параллельных процессоров. Популярностью на рынке они не пользовались.

Рис. 11.1. Массивно-параллельный процессор ILLIAC IV

В массивно-параллельной системе содержится один БУ и несколько обрабатывающих элементов. Каждый обрабатывающий элемент, как правило, содержит АЛУ и локальную память. БУ рассылает команды, которые выполняются всеми обрабатывающими элементами одновременно, но каждый из них использует свои данные. В первой ЭВМ данного типа — ILLIAC IV — структурная схема процессора которой приведена на рисунке 11.1, каждый обрабатывающий элемент использовал данные из своей собственной памяти, а загрузка данных происходила во время инициализации.

Хотя все массивно-параллельные системы соответствуют этой модели, они могут отличаться друг от друга множеством особенностей.

Первый вопрос — это структура обрабатывающего элемента. Она может быть от однобитного АЛУ до устройства, выполняющего операции с плавающей точкой. Тип обрабатывающего элемента зависит от назначения ЭВМ: операции с плавающей точкой нужны для инженерных расчётов, но бесполезны при поиске данных.

Второй вопрос — локальная автономия обрабатывающего элемента. БУ выдаёт команду, но во многих массивно-параллельных системах на основе локальных данных решает, выполнять ему эту команду, или нет. Эта особенность придаёт процессору значительную гибкость.

Третий вопрос — связь элементов друг с другом. Этот вопрос приобретает принципиальную сложность в системах типа МКМД, поэтому подробно он разбирается именно там. Здесь чаще всего применяются прямоугольные решётки, которые просты в конструировании, изготовлении, легко программируются при решении задач с матрицами и обеспечивают масштабируемость системы.

11.2.2. Векторные процессоры (vector processor)

Системы этого типа весьма популярны на рынке, а ЭВМ Сеймура Крея доминировали в научной сфере десятилетиями.

Теоретически, тракт данных векторного процессора выглядит так же, как и тракт скалярного процессора, только регистры и АЛУ в нём векторные.

На практике векторные ЭВМ редко строятся по такой схеме по экономическим причинам: векторное АЛУ, которое, по сути, является комплектом из 64 скалярных АЛУ, слишком дорого стоит. Поэтому векторные процессоры обычно сочетают векторные регистры с конвейеризованными АЛУ.

11.3.  Системы типа МКМД

Такие системы распадаются на два класса:

—  системы с общей памятью,

—  системы с раздельной памятью.

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

11.3.1. Системы с общей памятью (мультипроцессоры)

В такой системе все процессоры имеют общую физическую память.

Организация взаимодействия между процессорами и между процессами в такой системе тривиальна. Благодаря этому системы такого типа понятны программистам и применимы к широкому кругу задач.

Одна из задач, где применение такой системы естественно — вычисление значений локально-конъюнктивных предикатов.

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

—  с однородным доступом к памяти (Uniform Memory Access, UMA),

—  с неоднородным доступом к памяти (NonUniform Memory Access, NUMA),

—  с доступом только к кэш-памяти (Cache Only Memory Access, COMA).