13.07.2015 Views

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

GENERAL OPTIMIZATION GUIDELINES3.6.4.1 Store-to-Load-Forwarding Restriction on Size <strong>and</strong> AlignmentData size <strong>and</strong> alignment restrictions for store-forwarding apply to processors basedon Intel NetBurst microarchitecture, Intel Core microarchitecture, Intel Core 2 Duo,Intel Core Solo <strong>and</strong> Pentium M processors. The performance penalty for violatingstore-forwarding restrictions is less for shorter-pipelined machines than for IntelNetBurst microarchitecture.Store-forwarding restrictions vary with each microarchitecture. Intel NetBurstmicroarchitecture places more constraints than Intel Core microarchitecture on codegeneration to enable store-forwarding to make progress instead of experiencingstalls. Fixing store-forwarding problems for Intel NetBurst microarchitecture generallyalso avoids problems on Pentium M, Intel Core Duo <strong>and</strong> Intel Core 2 Duo processors.The size <strong>and</strong> alignment restrictions for store-forwarding in processors based onIntel NetBurst microarchitecture are illustrated in Figure 3-3.Load Aligned withStore Will ForwardNon-Forwarding(a) Small load afterLarge StoreStoreLoadPenalty(b) Size of Load >=StoreStoreLoadPenalty(c) Size of Load >=Store(s)StoreLoadPenalty(d) 128-bit ForwardMust Be 16-ByteAlignedStoreLoadPenalty16-ByteBoundaryOM15155Figure 3-3. Size <strong>and</strong> Alignment Restrictions in Store Forwarding3-51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!