Организация процессоров
Эти устройства работают параллельно, обрабатывая каждое свои операнды. Управление этими устройствами осуществляется с помощью так называемых длинных командных слов (Very Long Instruction Word - VLIW) . Командные слова включают инструкции для каждого их исполнительных устройств, а также операнды или указатели на них. (О процессорах VLIW также см. пункт 3.5.5)
Преимуществом блочных ОУ является более высокая производительность, достигаемая за счет распараллеливания вычислений. В то же время, использование таких устройств не всегда эффективно, поскольку не всегда есть возможность загрузить все исполнительные устройства в каждом такте, в результате часть из них простаивает. Более эффективными часто оказываются конвейерные операционные устройства, поскольку конвейеризовать вычисления в ряде случаев проще, чем распараллелить, что связано с повторением однотипных вычислений в алгоритмах.
3.3.3. Конвейерные операционные устройства Для конвейеризации вычислений необходимо:
- разбить вычисления на последовательность одинаковых по времени этапов;
- реализовать каждый этап аппаратно в виде ступени конвейера;
- обеспечить фиксацию промежуточных результатов вычислений на выходе каждой ступени в регистрах-защелках.
Напомним, что эффективность конвейера будет тем выше, чем больше задач будет поступать на его вход (см. формулу 1.x).
Типичным примером конвейерных операционных устройств могут служить так называемые матричные умножители. Свое название они получили, во-первых, потому, что включают фактически матрицу операционных элементов (сумматоров), а во-вторых, поскольку одной из наиболее очевидных сфер их применения является умножение матриц.
Рассмотрим процесс умножения двух двоичных четырехразрядных положительных чисел:
a3 a2 a1 a0 b3 b2 b1 b0 + a3b0 a2b0 a1b0 a0b0 + a3b1 a2b1 a1b1 a0b1 + a3b2 a2b2 a1b2 a0b2
+ a3b3 a2b3 a1b3 a0b3
c7 c6 c5 c4 c3 c2 c1 c0 По косвенной схеме умножения на устройстве с одним сумматором и набором регистров для реализации этого умножения необходимо в общем случае выполнить 4 шага, на каждом их которых выполняется умножение A на очередной разряд bi , сложение A bi с текущей суммой частичных произведений и сдвиг новой полученной суммы на 1 разряд вправо.
|