Re: How to implement the speculative loading?



On Oct 17, 4:55 pm, Ivan Wang <ivanwan...@xxxxxxxxx> wrote:
Modern chips support speculative loading. For example, on x86 this
feature is used for memory disambiguation and out-of-order loading.
My question is how this feature be implemented in modern
processor? Must it re-execute ALL the instructions that after the
load, just like a branch misprediction? Or it can ONLY re-execute the
instructions that relied on the loading value(e.g. via Reserver
Station tracking)?

I'm not quite sure what a "speculative load" is, unless it is a load
executed speculatively based on a previous branch (which, I don't
think is what you are talking about). Clearly, instructions that are
directly dependant on the load can't execute until the load finishes
(speculatively or otherwise) since some of the input values won't be
available until the load is done. Instructions following the load
might be considered speculative because the load may fail and generate
a fault, but that is run-of-the-mill OoO territory. The executed
instructions aren't speculative (they don't actually depend on the
loaded value), but they need to be nulled-out when the fault is
detected.

With speculative execution via branches, we assume that we either know
both possible target addresses for the branch (next instruction and
branch target) or that we pick up a good guess at the branch target
from branch prediction. With the load, however, there is no "load
prediction", other than the data caches, from which we could get the
loaded values.

Again, I'm mystified by the meaning of "speculative load".

- Jeff Dutky

.



Relevant Pages

  • Re: Bare-Metal Programming
    ... on one of these punch cards and loading into memory where it could be ... and execute it? ... BIOS program to load it. ... instructions, and lets you sit back and watch the machine instructions ...
    (comp.programming)
  • Re: questions about Public Constants
    ... You have an OBSCENE amount of processing on your computer now. ... 20 million vba instructions per second. ... However, in both cases, VBA, or the macro can execute the command to load ...
    (microsoft.public.access.modulesdaovba)
  • Re: IBM 45nm -- new or licensed from Intel?
    ... It's obvious that it is always better to load ... Though on RISCs you need several sethi/setlo instructions ... number of registers (which is not the case between x86-64 and ARM), ... pipeline length can be hidden by predecoding at the cost of ICache size ...
    (comp.arch)
  • Re: OT: Spanish (I think) translator help, please
    ... This sentence doesn't give general instructions, I'm pretty sure practi-taza is the name for a cup included with it, you might call it "practi-scoop", but it will be unique to that company, rather than some kind of size that you'd know if you speak spanish. ... If the weight per load is 5lb for wherever this is from, I'm guessing a US front loader takes 15-20lb, so you'd multiply the amount needed by 3-4, but without the cup, that's going to give a wide range of values. ...
    (rec.crafts.textiles.quilting)
  • Re: To clear a listbox
    ... >its value property during the load. ... I have no code in my Form_Load to fire the option button. ... If there are multiple option buttons and all are originally False, ... of the buttons will change to True and its OptionX_Click will execute ...
    (microsoft.public.vb.controls)