Мущщина (10.01.2014 15:44, просмотров: 59) ответил Mahagam на есть, но не в таком количестве. и не на программиста, а на компилятор + помощь от программиста. такой подход сильно упрощает сам камень. (все эти ОоО становятся не нужны).
В каком количестве? В двойном, всего навсего:-)) По числу data-path'ей (блоков в твоей терминологии) В каждом data-path'е 4 функциональных устройства,(functional unit), именуемых L,S,M,D. 4 исполнительных модуля в твоей терминологии. Начиная с С6200 семейства:
M-юнит - это умножения;
L-юнит - АЛУ;
S-юнит - АЛУ,сдвиг и переходы;
D-юнит - АЛУ c ориентацией на генерацию адресов;
Что я тебе и сказал - АЛУ, умножитель, сдвигатель, генератор адресов :-)
Ну потом стали добавлять всякие возможности к блокам.
В 6700 они стали уметь плаваающие операции делать.
В 6400 - добавили возможность параллельного выполнения нескольких операций меньшей разрядности в одном блоке плюс еще всякого:-)
Ну и т.д.
Так что основное там - это возможность параллельной работы вообще говоря достаточно простых юнитов, которые, повторю, есть фактически в каждом процессоре. Этим 6000 семейство и отличается кардинально от всех прочих DSP фирмы ТI. Патамушта все остальные DSP этой фирмы есть непрерывное усовершенствование ее самого первого DSP - TMS320C10. :-))
6000 семейство - шаг, я бы сказал, в перпендикулярном направлении.
P.S. А на компилятор конечно можно полагаться. И полагаются. И аз грешный полагался. Но ровно до той поры, пока не возникала необходимость поиметь близкую к пиковой производительность, и не параллельном выполнении 8 операций nop, а на чем-нибудь осмысленном. В этом месте приходилось полагаться почему-то на себя, а не на компилятор. :-)