[an error occurred while processing this directive]
|
1). MPY юнит не занимает. То есть это нормально:
LDH .D1T1 *a15++[0],a1
|| LDH .D2T2 *b15++[0],b1LDH .D1T1 *a15++[0],a1
|| LDH .D2T2 *b15++[0],b1LDH .D1T1 *a15++[0],a1
|| LDH .D2T2 *b15++[0],b1NOP 2
MPY .M1X A1,B1,A2
MPY .M1X A1,B1,A2
|| ZERO .L1 A3MPY .M1X A1,B1,A2
|| ADD .L1 A2,A3,A3ADD .L1 A2,A3,A3
ADD .L1 A2,A3,A3
2) выборка делается fetch-packet'ами. То есть всегда блоками по 8 команд. Дальше они бьются на execute packet'ы. То есть самый тяжелый вариант - это 1 execute packet в одном fetch packet - такое бывает когда очень много инструкций напараллелил - трубеутся 1 fetch на 1 такт. Самый легкий вариант для выборки - это 8 непараллельных инструкций в fetch packet. Тогда требуется 1 fetch на 8 тактов.
3) Вполне понятная вырезка из доки:
Since the L1P is a direct mapped cache, each the data for each address can only reside in one of the possible 64 sets. The remaining 20 most significant address bits are used as a unique tag to label what data is currently residing in that cache line.
Посмотри раздел про кеш в SPRU190D - там все вплоть до формата тегов и полей расписано.
E-mail: info@telesys.ru