Основной тенденцией развития архитектур современных процессоров являются :
1. Распараллеливание
2. Конвейеризация
Распараллеливание и конвейеризация это методы организации кратных вычислений(повторяющихся) как в пространстве, так и во времени, как последовательно так и параллельно. То есть на самом деле существует 4 способа повышения производительности.
Современный процессор является устройством кратной логической обработки, где под кратными вычислениями понимается вычисление системы логических функций сразу на нескольких наборах аргументов.
Давайте рассмотрим процессор, как черный ящик. На его вход подается последовательность команд и данных и процессор, получается, вычисляет функцию f(A), где A=K*D, где K -команды,D — данные. Получается, это устройство последовательной обработки. Устройство обработки данных в такой постановке явяется устройством кратной обработки данных. Кратные вычисления — когда ставится задача повышения эффективности в вычислении какой-то функции, когда известно, что это вычисление требуется и для этого входного набора данных и для других наборов. Все современные тенденции развития архитектур процессоров направлены на их реализацию как устройств, которые выполняют последовательно несколько вычислений на измененных данных.
Введем критерии эффективности:
· Эффективность по времени x.
Определяет сколько времени m кратных вычислений в пересчете на один набор данных меньше, чем время вычисления в однократном случае, которое принято за единицу измерения времени.
t1-время однократного вычисления
tь-время m-кратного вычисления в пересчете на 1 набор
· Пространственная эффективность или эффективность по сложности вычислений h.
Пространственная(аппаратная) эффективность определяет во сколько раз пространственные затраты при кратных вычислениях, при пересчете на один набор данных, меньше, чем пространственные затраты в однократном случае, которые также приняты за единицу затрат.
u1-аппаратные затраты в однократном случае
uь-аппаратные затраты в m-кратном случае
· Комплексная эффективность J=xh.
Мы рассмотрели теоретические основы повышения эффективности использования процессоров а именно методы структурной организации кратных вычислений:
1. Последовательные вычисления во времени(повторная обработка)
2. Параллельные вычисления в пространстве(параллельная обработка)
3. Последовательные вычисления в пространстве(конвейерная)
4. Параллельные вычисления во времени
Если J=1 то это экстенсивный путь развития вычислительной техники
Если J<1 то это регресивный путь развития ВТ
Если J>1 то это интенсивный путь развития ВТ
Что мы сделали – мы по другому организовали вычисления при наличии тех же самых аппаратных средств.
Мы только и сделали что мысленно дкомпозировали это устройство на 2 последовательно соединенных блока. Этого оказалось достаточно чтобы наши вычисления стало гораздо эффективнее. Эта эффективность получена за счет того что после того как обработается первый набор данных блок F1 из стадии F1 осводождается результат подается на стадию F2 но на первую стадию через время Dt можно уже подать следующий набор данных не дожидаясь окончания вычислений всем устройством. И в результате такой организации у нас появляется дополнительная эффективность. В предельном случае считаем что Dt+Dt»1 при последовательной обработке, понятно что и оборудование которое требуется для этих частей:u1+u2»1. Это означает что в этом случае за исключением некоторых оговорок мы получаем повышение эффективности то есть мы достигаем результата при тех же аппаратных затратах за меньшее время или при том же самом времени при меньших аппаратных затратах о чем и говорим комплексный критерий эффективности.
Параллельно во времени: анализируя рис можно сделать вывод что комплексный критерий эффективности при параллельных вычислениях во времени должен быть больше единицы(по одной диагонали находятся u>1 по другой u=1). Значит используя метод морфологического анализа и классификации пришли к тому что у нас есть некая область в этой табличке которая не заполнена если мы попытаемся ее как-то заполнить мы должны найти способ организации повторяющихся вычислений которые по эффективности такой же как и конвейерная обработка то есть эффективность больше 1.
Нарисуем в пустой области рисунка следующий рисунок. Выполняя рассуждения по аналогии делаем вывод что наше устройство должно состоять из одного блока. Понятно что как и для параллельной обработки в пространстве мы должны туда сразу подавать все m наборов.
Давайте найдем параметры:
Какова структура устройства которая дает такой результат?
Для повышения эффективности у нас есть 2 пути:
1. Уменьшить время вычисления
2. Уменьшить затраты
Давайте посмотрим за счет чего можно уменьшить время вычисления?
Пусть у нас есть устройство вычисляющее некую обработку данных(случай последовательной обработки во времени):
Не надо уменьшать время обработки на одном наборе потому что эта формула свободна от учета этого времени. Тогда у нас измениться единица изменения времени а это приведет к тому что эффективность останется той же то есть здесь путь состоит не в уменьшении времени однократного вычисления. Эффективность не изменится потому что это эффективность относительная относительно случая однократного вычисления: когда у нас один набор данных подается это занимает ровно какуюто 1 затрат на оборудование и единицу затрат на время. Чтобы мы не делали с этим прямоугольничком как бы мы не улучшали его характеристики комплексная эффективность параллельных вычислений не изменится потому что это берется за основу: единичное время вычислений – единичные затраты. Значит мы должны что-то делать не углубляясь в этом направлении.
Для обеспечения комплексной эффективности больше 1 существуют 2 пути:
1. Уменьшать время вычисления Dt
2. Уменьшать аппаратные затраты которые должны быть больше чем m.
Как можно уменьшить время вычисления?
а) Если мы найдем некие общие выражения необходимы для вычисления на каждом из наборов и один раз их вычислим для всех наборов то при кратных вычислениях время вычисления в пересчете на 1 набор Dt<1.
б) выделить некие общие блоки которые используются для вычисления на каждом из наборов данных. При параллельных вычислениях во времени эти блоки не дублируются в количестве равном кратности вычислений что обеспечивает аппаратные затраты меньше m.
Структура устройства выполняющего параллельные вычисления во времени.
F1-общее оборудование для всех параллельных каналов
F2-оборудование параллельного канала
Здесь комплексная эффективность будет больше 1 даже если время вычисления Dt<1 будет равно 1.
Структура устройства оптической обработки данных параллельно во времени.
Примеры использования параллельных вычислений во времени в современных процессорах.
1. В многопроцессорных системах(МПС) с общей памятью. Это программный уровень.
2. Командный уровень. Примером является суперскалярная обработка. Например есть 2 ОБ.Память микропрограмм для них общая то есть некая часть микропрограмм которая может быть общая для 2 ОБ которые работают независимо. Единственная проблема это одновременный доступ к одной и той же ячейке. Решение этой проблемы это синхронизированная работа этих блоков.
3. Операционный уровень. Общие блоки в ОБ .
