logo search

34. Архитектура вычислительной системы, разновидности.

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

Архитектура фон Неймана - модель реализации ВС с одним устройством обработки (процессором) и одним устройством хранения (памятью) (см. рис. 2). Память используется для хранения как программ, так и данных. На момент появления данной архитектуры программы в ВС были либо жестко зашиты в логику работы процессора ВС, либо задавались с помощью перекоммутации связей у процессора. Вынесение программ в память сильно упростило их модификацию. Выполнение команд происходит в циклах, каждый из которых содержит следующие стадии:

1) выборка очередной команды для исполнения (по адресу регистра-указателя команд),

2) декодирование кода команды, выработка управляющих сигналов для арифметического-логического устройства (АЛУ),

3) чтение требуемых операндов из памяти и их размещение в регистрах процессора,

4) исполнение команды в АЛУ и запись результатов в память или регистры процессора.

 

Рис. 2. Архитектура фон Неймана

Размещение данных и программ в одной памяти позволяет строить самомодифицирующиеся программы. Это позволяет реализовывать необычайно гибкие решения. Однако, с другой стороны, ошибки в программах могут приводить к порче как данных, так и самих программ.

С момента своего появления и по настоящий день архитектура фон Неймана является эталоном для последовательных ВС. Хотя в чистом виде она сейчас не применяется даже в самых простых ВС. Узкое место данной архитектуры ― пропускная способность шины между процессором и памятью. При доступе к памяти процессор простаивает. На момент появления архитектуры скорости работы процессора и памяти были приблизительно одинаковы. Сейчас скорость работы процессора существенно выше, чем у памяти. Для преодоления узкого места был предложен ряд усовершенствований этой базовой архитектуры. Два основных из них ― это использование конвейера команд (см. главу 3) и использование кэш памяти. Кэш память ― память более малого размера, чем оперативная. Но она более быстрая и расположена в процессоре. Часто используемые данные хранятся в кэш памяти, что исключает необходимость их чтения из оперативной памяти через шину.

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

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

Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно.

Архитектура с параллельными процессорами. Здесь несколько АЛУ работают под управлением одного УУ. Это означает, что множество данных может обрабатываться по одной программе — то есть по одному потоку команд. Высокое быстродействие такой архитектуры можно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных.

Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 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) - множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Ряд исследователей относят конвейерные машины к данному классу, однако это не нашло окончательного признания в научном сообществе. Будем считать, что пока данный класс пуст.

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