In a first aspect of the invention, branch prediction hardware, comprising logic and interconnect, is configurable via a control line to alter the manner in which the branch prediction is generated. The configuration can be done programmatically in software. Or, the configuration can be done by hardware in response to processor events. Such processor events include the loading of the CS register and changes in the instruction workload. In a second aspect of the invention, related to speculative execution, the directions of a plurality of branches are predicted based partly on resolved branch history information. Tentative branch history information is then stored for each of the predicted branches. When a predicted branch is resolved, the resolved branch history information is updated based on the stored tentative branch history information for the branch most recently resolved. Additionally, the predictions may be partly based on preceding unresolved branch predictions if any are outstanding. In a third aspect of the invention, Hit/Miss information from a Branch Prediction Cache (BPC) can optionally be used in formulating the next state value of an addressed two-bit counter stored in a correlation-based branch history table. Since a Miss in the BPC may indicate that this branch has not been encountered recently, whatever state currently exists can be optionally forced to a state that is based solely on whether the branch is resolved taken or not. This feature may be enabled and disabled under software control. In a fourth aspect of the invention, information from the instruction decoder is optionally used to override the correlation-based branch history table based prediction for select branch instructions. This feature may be enabled and disabled under software or hardware control.

En un primer aspecto de la invención, ramifica el hardware de la predicción, abarcando lógica y la interconexión, es configurable vía una línea del control alterar la manera de la cual se genera la predicción del rama. La configuración se puede hacer programmatically en software. O, la configuración se puede hacer por el hardware en respuesta a acontecimientos del procesador. Tales acontecimientos del procesador incluyen el cargamento del registro y de los cambios del CS en la carga de trabajo de la instrucción. En un segundo aspecto de la invención, relacionado con la ejecución especulativa, las direcciones de una pluralidad de ramas se predicen basaron en parte en la información resuelta de la historia del rama. La información tentativa de la historia del rama entonces se almacena para cada uno de los ramas predichos. Cuando se resuelve un rama predicho, la información resuelta de la historia del rama es actualizada basada en la información tentativa almacenada de la historia del rama para el rama resuelto lo más recientemente posible. Además, las predicciones se pueden basar en parte en predicciones sin resolver precedentes del rama si cualesquiera son excepcionales. En un tercer aspecto de la invención, la información de Hit/Miss de un escondrijo de la predicción del rama (BPC) puede ser utilizada opcionalmente en formular el valor siguiente del estado de un contador tratado del dos-pedacito almacenado en una tabla correlacio'n-basada de la historia del rama. Puesto que una Srta. en el BPC puede indicar que este rama no se ha encontrado recientemente, cualquier estado existe actualmente puede ser forzado opcionalmente a un estado que se base solamente encendido si el rama está resuelto tomado o no. Esta característica se puede permitir e inhabilitar bajo control del software. En un cuarto aspecto de la invención, la información del decodificador de la instrucción se utiliza opcionalmente para eliminar la predicción basada tabla correlacio'n-basada de la historia del rama para las instrucciones de rama selectas. Esta característica se puede permitir e inhabilitar bajo control del software o del hardware.

 
Web www.patentalert.com

< Fluid dynamic bearing secondary capillary seal reservoir

< Data transfer and synchronization system

> Preseed layer for a magnetic recording disk

> Combined business card with bar code, laser punched holes and radio frequency IC

~ 00096