|
|
Классификация архитектур по параллельной обработке данныхСамой ранней и
наиболее известной является классификация архитектур вычислительных систем,
предложенная в 1966 году М.Флинном (Flynn). Классификация базируется на понятии
потока, под которым понимается последовательность элементов, команд или данных,
обрабатываемая процессором. На основе числа потоков команд и потоков данных
Флинн выделяет четыре класса архитектур:
- SISD = Single Instruction Single Data
- MISD = Multiple Instruction Single Data
- SIMD = Single Instruction Multiple Data
- MIMD = Multiple Instruction Multiple Data )
SISD
(single instruction stream / single data stream) - одиночный поток команд и
одиночный поток данных. Вообще говоря, эта архитектура не имеет отношения к
высокопроизводительным системам. К этому классу относятся, прежде всего,
классические последовательные машины. В таких машинах есть только один поток
команд, все команды обрабатываются последовательно друг за другом и каждая
команда инициирует одну операцию с одним потоком данных. Не имеет значения тот
факт, что для увеличения скорости обработки команд и скорости выполнения
арифметических операций может применяться конвейерная обработка. В случае
векторных систем векторный поток данных следует рассматривать как поток из
одиночных неделимых векторов.
MISD (multiple
instruction stream / single data stream) - множественный поток команд и
одиночный поток данных. Определение подразумевает наличие в архитектуре многих
процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни
другие специалисты в области архитектуры компьютеров до сих пор не смогли
представить убедительный пример реально существующей вычислительной системы,
построенной на данном принципе. Ряд исследователей относят конвейерные машины к
данному классу, однако это не нашло окончательного признания в научном
сообществе. В качестве аналог работы такой системы, по-видимому, можно
рассматривать работу банка. С любого терминала можно подать команду и что-то
сделать с имеющимся банком данных. Поскольку база данных одна, а команд много,
то мы имеем дело с множественным потоком команд и одиночным потоком данных.
SIMD (single instruction stream / multiple data stream)
- одиночный поток команд и множественный поток данных. В архитектурах подобного
рода сохраняется один поток команд, включающий, векторные команды. Это позволяет
выполнять одну арифметическую операцию сразу над многими данными - элементами
вектора. Способ выполнения векторных операций не оговаривается, поэтому
обработка элементов вектора может производиться либо процессорной матрицей, либо
с помощью конвейера.
MIMD (multiple instruction stream
/ multiple data stream) - множественный поток команд и множественный поток
данных. Этот класс предполагает, что в вычислительной системе есть несколько
устройств обработки команд, объединенных в единый комплекс и работающих каждое
со своим потоком команд и данных. Таким образом, в системе такого рода можно
наблюдать реальное распараллеливание. Класс MIMD чрезвычайно широк, поскольку
включает в себя всевозможные мультипроцессорные системы: В настоящее время он
является чрезвычайно заполненным и возникает потребность в классификации, более
избирательно систематизирующее архитектуры, которые попадают в один класс, но
совершенно различны по числу процессоров, природе и топологии связи между ними,
по способу организации памяти и, конечно же, по технологии программирования.
Основная идея такой классификации может состоять, например, в следующем.
Считаем, что множественный поток команд может быть обработан двумя способами:
либо одним конвейерным устройством обработки, работающем в режиме разделения
времени для отдельных потоков, либо каждый поток обрабатывается своим
собственным устройством. Первая возможность используется в MIMD компьютерах,
которые обычно называют конвейерными или векторными, вторая - в параллельных
компьютерах. В основе векторных компьютеров лежит концепция конвейризации, т.е.
явного сегментирования арифметического устройства на отдельные части, каждая из
которых выполняет свою подзадачу для пары операндов. В основе параллельного
компьютера лежит идея использования для решения одной задачи нескольких
процессоров, работающих сообща, причем процессоры могут быть как скалярными, так
и векторными.
[Назад] [Оглавление] [Вперед]
Последнее обновление 21.11.2001 WebMaster
|
|