Следует подчеркнуть информационный характер связи. Данная связь существует тогда и только тогда, когда для приемника принципиально важно содержимое элементов входящего потока. Когда именно содержимое, а не очередность элементов потока, например, определяет выполняемые им действия или их результат.
Опираясь на эти понятия можно дать следующие определения архитектуры процессора и вычислительной системы.
Архитектура процессора – это абстрактная структура, отражающая организацию процессора и представленная в виде ориентированного графа, состоящего из множества вершин, содержащего не менее одного УУ и не менее одного ИУ, а также множества дуг, образованных потоками команд, исходящими из УУ, и потоками данных, исходящими из ИУ, и при этом:
· соответствующий ему неориентированный граф – связный;
· каждый исходящий поток команд является входящим хотя бы для одного ИУ;
· каждое ИУ имеет хотя бы один входящий поток команд.
Архитектура вычислительной системы – это абстрактная структура, отражающая организацию системы и образованная несвязным множеством ориентированных графов, каждый из которых представляет архитектуру процессора.
Следовательно, обмен данными между процессорами в вычислительной системе может осуществляться только через отчуждение элементов потока данных.
Рассмотрим классический фон-неймановский процессор. Графически архитектура данного процессора представлена на рис.1. Она состоит всего из двух вершин (УУ и ИУ), соединенных потоком команд.
Рис. 1. Графическое изображение архитектуры классического фон-неймановского процессора: а) графическое изображение; б) условные обозначения.
Следует отметить, что любая другая непосредственная информационная связь, кроме связи по потоку команд, принципиально нереализуема в рамках фон-неймановской модели процессора, описание и исполнение алгоритмов в которой осуществляется только в виде упорядоченной последовательности операций, изменяющих состояние среды (памяти). Этот способ изначально предполагает отчуждение каждого полученного результата и, соответственно, потоки данных в этой архитектуре отсутствуют.
Расширив нотацию, предложенную М. Флинном, и используя заглавные буквы для описания источников и строчные для указания потоков, данный вид архитектуры можно описать как SISD(si). В скобках, после описания источников, указываются входящие потоки, т.е. потоки от которых зависит формирование исходящего потока. Таким образом, классический фон-неймановский процессор имеет архитектуру с одним источником команд (SI) и одним источником данных (SD), функционирование которого определяется одиночным потоком команд SD(si).
2.3. Классификация процессорных архитектур
Очевидно, что использование для количественной оценки источников и потоков двух значений – «одиночный» и «множественный», ограничивает количество возможных вариантов зависимостей. Двухкомпонентное описание архитектуры предполагает ее гомогенность и симметричность. А именно, в случае множественности каких-либо источников существующая зависимость распространяется на все множество (гомогенность), а при множественности потоков команд и данных их размерности считаются равными.
Рассматривая фон-неймановскую архитектуру как отправную точку можно, опираясь на принцип развития, путем последовательного усложнения зависимостей между потоками и исключения несвязных структур, построить полное множество возможных видов процессорных архитектур. Это множество делится на два основных класса:
· архитектуры с хранимой программой (контекстно-свободной программой), представленные в таблице 1;
· архитектуры с хранимым алгоритмом (контекстно-зависимой программой), приведенные в таблице 2.
Таблица 1. Базовые (гомогенные) модели архитектур процессоров с хранимой программой
Фон-неймановские архитектуры | Не фон-неймановские архитектуры | |||||
SISD |
SISD(si) | SISD(si,sd) | SI(sd)SD(si) | SI(sd)SD(si,sd) | ||
SIMD | SIMD(si) | SIMD(si,sd) | SIMD(si,md) | SI(md)MD(si) | SI(md)MD(si,sd) | SI(md)MD(si,md) |
MISD | MISD(mi) | MISD(mi,sd) | MI(sd)SD(mi) | MI(sd)SD(mi,sd) | ||
MIMD | MIMD(si,md) | MI(sd)MD(si,md) | ||||
MI(md)MD(si) | MI(md)MD(si,sd) | MI(md)MD(si,md) | ||||
MIMD(mi) | MIMD(mi,sd) |
MIMD(mi,md) | MI(sd)MD(mi) | MI(sd)MD(mi,sd) | MI(sd)MD(mi,md) | |
MI(md)MD(mi) | MI(md)MD(mi,sd) | MI(md)MD(mi,md) |
Принципиальное отличие данных классов заключается в зависимости потоков команд. Поток команд в архитектурах с хранимой программой может зависеть только от потока данных. В архитектурах с хранимым алгоритмом он всегда зависит от самого себя, или от самого себя и от потока данных.
Таблица 2. Базовые (гомогенные) модели архитектур процессоров с хранимым алгоритмом
Не фон-неймановские архитектуры | ||||||
SISD | SI(si)SD(si) | SI(si)SD(si,sd) | SI(si,sd)SD(si) | SI(si,sd)SD(si,sd) | ||
SIMD | SI(si)MD(si) | SI(si)MD(si,sd) | SI(si)MD(si,md) | SI(si,md)MD(si) | SI(si,md)MD(si,sd) | SI(si,md)MD(si,md) |
MISD | MI(si)SD(mi) | MI(si)SD(mi,sd) | MI(si,sd)SD(mi) | MI(si,sd)SD(mi,sd) | ||
MI(mi)SD(mi) | MI(mi)SD(mi,sd) | MI(mi,sd)SD(mi) | MI(mi,sd)MD(mi,sd) | |||
MIMD | MI(si)MD(si,md) | MI(si,sd)MD(si,md) | ||||
MI(si,md)MD(si) | MI(si,md)MD(si,sd) | MI(si,md)MD(si,md) | ||||
MI(si)MD(mi) | MI(si)MD(mi,sd) | MI(si)MD(mi,md) | MI(si,sd)MD(mi) | MI(si,sd)MD(mi,sd) | MI(si,sd)MD(mi,md) | |
MI(si,md)MD(mi) | MI(si,md)MD(mi,sd) | MI(si,md)MD(mi,md) | ||||
MI(mi)MD(si) | MI(mi)MD(si,sd) | MI(mi)MD(si,md) | MI(mi,sd)MD(si) | MI(mi,sd)MD(si,sd) | MI(mi,sd)MD(si,md) | |
MI(mi,md)MD(si) | MI(mi,md)MD(si,sd) | MI(mi,md)MD(si,md) | ||||
MI(mi)MD(mi) | MI(mi)MD(mi,sd) | MI(mi)MD(mi,md) | MI(mi,sd)MD(mi) | MI(mi,sd)MD(mi,sd) | MI(mi,sd)MD(mi,md) | |
MI(mi,md)MD(mi) | MI(mi,md)MD(mi,sd) | MI(mi,md)MD(mi,md) |
Как в первой, так и во второй таблицах есть пустые поля. Они отражают существование систем, т.е. несвязных структур, которые были исключены при построении множеств.