A microprocessor is provided with an instruction fetch mechanism that
simultaneously predicts multiple control-flow instructions. The
instruction fetch unit farther is capable of handling multiple types of
control-flow instructions. The instruction fetch unit uses predecode data
and branch prediction data to select the next instruction fetch bundle
address. If a branch misprediction is detected, a corrected branch target
address is selected as the next fetch bundle address. If no branch
misprediction occurs and the current fetch bundle includes a taken
control-flow instruction, then the next fetch bundle address is selected
based on the type of control-flow instruction detected. If the first taken
control-flow instruction is a return instruction, a return address from
the return address stack is selected as the next fetch bundle address. If
the first taken control-flow instruction is an unconditional branch or
predicted taken conditional branch, a predicted branch target address is
selected as the next fetch bundle address. If no branch misprediction is
detected and the current fetch bundle does not include a taking
control-flow instruction, then a sequential address is selected as the
next fetch bundle address.
Un microprocessore è fornito di un'istruzione prende il meccanismo che predice simultaneamente che multiplo controllo-fluiscono le istruzioni. L'istruzione prende l'unità più lontano è capace di maneggiamento dei tipi multipli di controllo-fluisce istruzioni. L'istruzione prende i dati del predecode di usi dell'unità ed i dati di previsione del ramo per selezionare l'istruzione seguente prendono l'indirizzo del pacco. Se un misprediction del ramo è rilevato, un indirizzo corretto dell'obiettivo del ramo è selezionato mentre il seguenti prendono l'indirizzo del pacco. Se nessun misprediction del ramo accade e la corrente prende il pacco include preso controllo-fluisce istruzione, allora il seguenti prendono l'indirizzo del pacco sono selezionati hanno basato sul tipo di controllo-fluiscono istruzione rilevata. Se in primo luogo presi controllo-fluiscono l'istruzione è un'istruzione di ritorno, un indirizzo di ritorno dalla pila di indirizzo di ritorno è selezionata poichè il seguenti prendono l'indirizzo del pacco. Se in primo luogo presi controllo-fluiscono istruzione sono un ramo incondizionato o il ramo condizionale preso previsto, un indirizzo previsto dell'obiettivo del ramo è selezionato mentre il seguenti prendono l'indirizzo del pacco. Se nessun misprediction del ramo è rilevato e la corrente prende il pacco non include una presa controllo-fluisce istruzione, quindi un indirizzo sequenziale è selezionato mentre il seguenti prendono l'indirizzo del pacco.