I am trying to optimize the high frequency ISR's performance in our application and was working on assembly routines. Refer spru430e (page 4-13). Under "Protection Against Register Conflicts", it says "All reads from and writes to CPU registers occur in either the D2 phase or the E phase of an instruction". Based on that, we can loose 1 to 3 cycles (ie) upto 4 times slower throughput. How do we know which instructions do it till only D2 which ones do till E?
In "Example 4−2. Diagramming Pipeline Activity", Is there not a pipeline stalling between instruction I4 and I5 by register conflict caused by AL? I do not understand how that is depicted in the pipeline diagram. I also do not understand the significance of B + + symbols there.
Clarify the number of wait cycles inserted between the two following instructions:
SUB AL, loc16First
MOV loc16Second, AL
If AL is involved AH in two adjacent instructions, is that also register conflict? Is AL, AH are considered separate entities or the same (in deciding register conflict), as SXM mode certainly has a bearing on them to act as conjoined twins. Clarify.
The pipeline section needs some addtional details. Where can we find more documentation on that? Any pointer to the relevant resources will be thankfully appreciated.
Sayee