84 seconds a more systematic approach would be to

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: proceed without waiting for the store. Assembly Instructions .L32: movl %edx,(%ecx) movl (%ebx),%edx incl %edx decl %eax jnc .L32 Execution Unit Operations storeaddr (%ecx) storedata %edx.0 load (%ebx) incl %edx.1a decl $eax.0 jnc-taken cc.1 %edx.1a %edx.1b %eax.1 Observe that the instruction movl %edx,(%ecx) is translated into two operations: the storeaddr instruction computes the address for the store operation, creates an entry in the store buffer, and sets the address field for that entry. The storedata instruction sets the data field for the entry. Since there is only one store unit, and store operations are processed in program order, there is no ambiguity about how the two operations match up. As we will see, the fact that these two computations are performed independently can be important to program performance. Figure 5.35 shows the timing of the operations for the first two iterations of write_read for the case of example A. As indicated by the dotted line between the storeaddr and load operations, the storeaddr operation creates an entry in the store buffer, which is then checked by the load. Since t...
View Full Document

This note was uploaded on 09/02/2010 for the course ELECTRICAL 360 taught by Professor Schultz during the Spring '10 term at BYU.

Ask a homework question - tutors are online