A microprocessor is provided with an instruction fetch mechanism that
simultaneously predicts multiple control-flow instructions. The
instruction fetch unit further 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.
Ein Mikroprozessor wird mit Instruktionsabruf Einheit versehen, die gleichzeitig voraussagt, daß mehrfach Anweisungen Steuerung-fließen. Instruktionsabruf Maßeinheit ist weiter fähig zur Behandlung der mehrfachen Arten von Steuerung-fließen Anweisungen. Instruktionsabruf Maßeinheit Gebrauch predecode Daten und die Niederlassung Vorhersagedaten zum Vorwählen folgende Instruktionsabruf Bündeladresse. Wenn ein Niederlassung misprediction ermittelt wird, wird eine behobene Niederlassung Zieladresse vorgewählt, während die folgenden Bündeladresse holen. Wenn kein Niederlassung misprediction auftritt und der Strom Bündel mit.einschließt genommen Steuerung-fließen Anweisung holen, dann holen die folgenden Bündeladresse wird vorgewählt gründeten auf der Art von Steuerung-fließen die ermittelte Anweisung. Wenn zuerst genommen Steuerung-fließen, ist Anweisung ein Rückkehrbefehl, eine Rücksprungadresse vom Rücksprungadresse Stapel wird vorgewählt, da die folgenden Bündeladresse holen. Wenn zuerst genommen Anweisung ist eine unbedingte Niederlassung Steuerung-fließen oder, vorausgesagte genommene bedingte Niederlassung, eine vorausgesagte Niederlassung Zieladresse wird vorgewählt, während die folgenden Bündeladresse holen. Wenn kein Niederlassung misprediction ermittelt wird und der Strom Bündel einschließt nicht ein Nehmen Steuerung-fließen Anweisung holen, dann wird eine aufeinanderfolgende Adresse vorgewählt, während die folgenden Bündeladresse holen.