[an error occurred while processing this directive]
|
Аналогично, и каждая операция блекфина может быть записана в виде макроса на 55хх :). Точнее не макроса, конечно, а портирующего компилятора... Так как "приклеивать" что-то к предыдущей команде макрос не смогет. И с "приклеиванием" mem_dest=OP(mem_source1, mem_source2); на 55 не хуже получается.
Про common subexpressions - какая разница - хранить их в регистрах, или например на фрейме в стеке? Фрейм больше, чем регистровый файл. А доступ к нему не медленнее, так как стек можно и в двухпортовую область ОЗУ впердолить. Ну а так как каждая арифметическая операция может взять операнд из памяти, то и весь фрейм можно использовать как "темповые регистры". Это разве хуже?
Ортогональность в 55 есть, и вполне достаточная. Единственное, что ширина арифметического блока, на котором выполнится операция, будет равна ширине регистра-приемника. Если Tx или ARx приемник - то команда пойдет в А-юнит и будет 16-битная операция. Если приемник 40-битный, то в D-юнит на 40-битное АЛУ. Ну и соответственно таких операций две в параллель можно.
Про "по ходу обсуждения" - я к стилям в архитектуре совершенно спокойно отношусь. Нет каких-либо особых предпочтений.
E-mail: info@telesys.ru