A line predictor caches alignment information for instructions. In response
to each fetch address, the line predictor provides alignment information
for the instruction beginning at the fetch address, as well as one or more
additional instructions subsequent to that instruction. The line predictor
may include a memory having multiple entries, each entry storing up to a
predefined maximum number of instruction pointers and a fetch address
corresponding to the instruction identified by a first one of the
instruction pointers. Additionally, each entry may include a link to
another entry storing instruction pointers to the next instructions within
the predicted instruction stream, and a next fetch address corresponding
to the first instruction within the next entry. The next fetch address may
be provided to the instruction cache to fetch the corresponding
instruction bytes. If the terminating instruction within the entry is a
branch instruction, the line predictor is trained with respect to the next
fetch address (and next index within the line predictor, which provides
the link to the next entry). As line predictor entries are created, a set
of branch predictors may be accessed to provide an initial next fetch
address and index. The initial training is verified by accessing the
branch predictors at each fetch of the line predictor entry, and updated
as dictated by the state of the branch predictors at each fetch.
Una línea predictor deposita la información de la alineación para las instrucciones. En respuesta a cada uno traiga la dirección, la línea predictor proporciona la información de la alineación para la instrucción que comienza en la dirección del traer, así como unas o más instrucciones adicionales subsecuentes a esa instrucción. La línea predictor puede incluir una memoria que tiene entradas múltiples, cada entrada que almacena hasta un número máximo predefinido de los indicadores de instrucción y una dirección del traer que corresponde a la instrucción identificada por primera de los indicadores de instrucción. Además, cada entrada puede incluir un acoplamiento a otra entrada que almacena indicadores de instrucción a las instrucciones siguientes dentro de la corriente predicha de la instrucción, y un siguiente trae la dirección que corresponde a la primera instrucción dentro de la entrada siguiente. El siguientes traen la dirección se pueden proporcionar al escondrijo de la instrucción para traer los octetos correspondientes de la instrucción. Si la instrucción que termina dentro de la entrada es una instrucción de rama, la línea predictor se entrena con respecto al siguiente trae la dirección (y el índice siguiente dentro de la línea predictor, que proporciona el acoplamiento a la entrada siguiente). Mientras que se crea la línea entradas del predictor, un sistema de predictors del rama se puede alcanzar para proporcionar un siguiente inicial trae la dirección y el índice. El entrenamiento inicial es verificado teniendo acceso a los predictors del rama en cada uno trae de la línea entrada del predictor, y puesto al día como dictado por el estado de los predictors del rama en cada uno traiga.