Автор: Пользователь скрыл имя, 09 Ноября 2011 в 22:35, доклад
Процессор - устройство, осуществляющее процесс автоматической обработки
данных и программное управление этим процессом. Процессоры можно классифици-
ровать, например, по следующим признакам:
(например, табличное), с которым связаны все регистры из блока РОН (рис. 4.3).
Регистры являются в данном случае равноправными, каждая пара регистров
может участвовать в любой операции. АЛУ связано с регистрами тремя магистралями
- магистрали A и B служат для подачи операндов в АЛУ, а магистраль C - для записи ре-
зультата в выбранный регистр из блока РОН.
Рис. 4.3
Иногда один из регистров все же выделяется как особый, в котором могут выполнять-
ся специальные операции, недоступные для других регистров. В ряде случаев этот ре-
гистр всегда является приемником результата (а иногда -обязательно и одним из
операндов). Тогда такой регистр называют аккумулятором, а процессор называют
процессором на базе аккумулятора. В принципе, в АЛУ такого процессора можно размес-
тить какое-то количество специализированных арифметических устройств жесткой
структуры, тогда полученное ОУ будет чем-то промежуточным между процедурным и
жестким.
4.3.2. Блочные операционные устройства
Для повышения производительности процессора при выполнении операций его опера-
ционное устройство может строиться по блочному принципу. В таких блочных О У реали-
зуется несколько функционально независимых исполнительных устройств, выполняющих
различные операции (или различные группы операций, например, три блока целочислен-
49
ного сложения, два - целочисленного умножения, по одному блоку деления, сложения и
умножения с плавающей запятой и т.д.).
Эти устройства работают параллельно, обрабатывая каждое свои операнды.
Управление этими устройствами осуществляется с помощью так называемых длин-
ных командных слов (Very Long Instruction Word - VLIW) . Командные слова вклю-
чают инструкции для каждого их исполнительных устройств, а также операнды
или указатели на них.
Преимуществом блочных ОУ является более высокая производительность, достигае-
мая за счет распараллеливания вычислений. В то же время, использование таких
устройств не всегда эффективно, поскольку не всегда есть возможность загрузить все
исполнительные устройства в каждом такте, в результате часть из них простаивает.
Более эффективными часто оказываются конвейерные операционные устройства, по-
скольку конвейеризовать вычисления в ряде случаев проще, чем распараллелить, что
связано с повторением однотипных вычислений в алгоритмах.
4.3.3. Конвейерные операционные устройства
Для конвейеризации вычислений необходимо:
- разбить вычисления
на последовательность
этапов;
- реализовать каждый этап аппаратно в виде ступени конвейера;
- обеспечить
фиксацию промежуточных
каждой ступени в регистрах-защелках.
Напомним, что эффективность конвейера будет тем выше, чем больше задач будет
поступать на его вход.
Типичным примером конвейерных операционных устройств могут служить так назы-
ваемые матричные умножители. Свое название они получили, во-первых, потому,
что включают фактически матрицу операционных элементов (сумматоров), а во-вторых,
поскольку одной из наиболее очевидных сфер их применения является умножение мат-
риц.
Рассмотрим процесс умножения двух двоичных четырехразрядных положительных
чисел:
50
По косвенной схеме умножения на устройстве с одним сумматором и набором ре-
гистров для реализации этого умножения необходимо в общем случае выполнить 4 ша-
га, на каждом их которых выполняется умножение A на очередной разряд bi, сложе-
ние A bi с текущей суммой частичных произведений и сдвиг новой полученной суммы на
1 разряд вправо.
Таким образом, время на
женно оценить как :
умн ( sm sh ) T = t + * t + t
& 4 4 ,
где t& -задержка на 1 логическом вентиле (при умножении A на bi), В формуле не при-
сутствуют затраты на сдвиги, так как они задаются жестко путем соединений линеек
сумматоров, кроме того, считаем, что все частичные произведения формируются за 1
логическое умножение. Для нашего случая время на умножение оказывается равным
13 t&. Таким образом, быстродействие умножителя по сравнению с обычной схемой
примерно в 3 раза выше. Кроме того, умножитель может работать в режиме конвейера. В
данном случае
число его ступеней равно 6 (так
как в сумматоре с
реносом придется организовывать три отдельные ступени). Пиковая производительность
конвейера при полной загрузке - 1 результат за 2t&, то есть в 20 раз выше, чем в обычной
схеме. Такой выигрыш достигается за счет дополнительных аппаратных затрат, ко-
торые выше, чем в первом случае примерно в 4-5 раз.
В умножителе Брауна используются несколько основных способов повышения
производительности:
- распараллеливание вычислений (одновременное вычисление всех Abi);
- конвейеризация
вычислений (цикл умножения
последовательность ступеней, межразрядные переносы сохраняются и
передаются на следующую ступень);
- аппаратная
реализация и специализация
расходов на сдвиг, который задается жестко, сохранение переноса__
расходов на сдвиг, который задается жестко, сохранение переноса
также диктуется выбранным для аппаратной реализации алгоритмом.
51
Как уже упоминалось, основным элементом матричного умножителя является
сумматор с сохранением переноса (ССП или Carry Save Adder - CSA). Его используют
не только в умножителях, но и везде, где необходимо ускорить сложение N чисел. Так,
на рис. 4.4. показан сумматор для сложения 3 чисел на базе ССП. Остановимся на прин-
ципе построения подобных устройств. Полный сумматор (ПС) позволяет складывать 3
одноразрядных числа. Обычно в качестве третьего слагаемого выступает перенос, по-
ступающий либо с предыдущего сумматора, либо со схемы передачи переноса. Но ес-
ли в качестве третьего слагаемого использовать соответствующий разряд третьего n-
разрядного
числа и не передавать перенос
в следующий одноразрядный
выходе сумматора сформируется сумма в данном разряде и перенос.
На выходе линейки таких сумматоров формируются два числа - собственно сумма
разрядов трех n-разрядных слагаемых и сумма переносов при сложении этих слагае-
мых. Сумма этих двух чисел и представляет собой значение суммы трех слагаемых:
S = X + Y + Z = Sxyz+ Cxyz.
Линейка полных сумматоров, обведенная на рис. 4.5 пунктиром - это и есть сумматор
с сохранением переноса (ССП). Данная схема имеет 3 входа и два выхода (имеются в
виду n-разрядные входы и выходы), поэтому в литературе можно встретить для нее обо-
значение ССП3-2.
Если подать два полученных числа на обычный параллельный сумматор, то на выходе
мы получим сумму 3 чисел. Если использовать не один ССП3-2, а дерево таких суммато-
ров, как показано на рис.4.5 (ССП8-2), то выполняется сложение 8 чисел, и так далее - для
N чисел мы используем схему ССПN-2. Фактически мы имеем схему, похожую на пира-
мидальную, но с одной общей
схемой передачи и ускорения переноса.
Ускорение схемы на базе ССП по сравнению с пирамидальным включением суммато-
ров зависит от времени задержки параллельного сумматора со схемой ускоренного пере-
носа (СУП):
t t N
t N
К
сум эс
сум
уск
3 / 2
2
log
log
+
=
• где tсум - время задержки параллельного
сумматора с СУП,
• tзс - задержка полного одноразрядного
сумматора. При этом необходимо отметить, что для
большинства вариантов СУП ускорение схемы с
ССП по сравнению с пирамидальной возрастает при
увеличении разрядности слагаемых, так как,
соответственно растет tсум, а tзсне меняется. На
базе быстродействующего сумматора на N чисел,
аналогичного представленному на рис. 4.5, можно
построить древовидный умножитель Уоллеса.
В таком устройстве умножение выполняется в
2 этапа - на
первом формируются все
произведения вида A • bi • 2i , на втором -
полученные N частичных произведений (где N –
количество разрядов множителя без учета
знаковых) складываются на сумматоре с ССПN-2 , как показано нарос. 4.6 на примере ум-
ножения на 8-и разрядный множитель. По
сравнению с умножителем Брауна мы имеем
выигрыш в быстродействии за счет
использования большего количества ССП, что
позволяет в большей степени распараллелить
процесс сложения частичных произведений.
Конвейерные ОУ могут использоваться
самостоятельно, но чаще являются составной
частью ОУ процедурного типа, либо - блочных
ОУ как аппаратные ускорители выполнения
4.4 Архитектура системы команд. RISC и CISC процессоры
Под архитектурой системы команд (ISA - Instruction Set Architecture) понимают
состав и возможности системы команд, общий взгляд на систему команд (СК) и свя-
занную с ней микроархитектуру процессора с точки зрения программиста. Во многом
именно архитектура СК определяет трактовку архитектуры компьютера вообще как
«…абстрактного представления о вычислительной машине с точки зрения программи-