Branch predictor that selects between predictions based on stored prediction selector and branch predictor index generation

   
   

An indirect branch predictor includes a buffer storing branch target addresses corresponding to previously executed indirect branch instructions. The buffer is indexed with an index derived from history information corresponding to previously predicted indirect branch instructions and from the PC of the particular indirect branch instruction being predicted. In one embodiment, the buffer may be tagless and/or direct mapped. In various embodiments, the indirect branch target predictor may generate the index to the buffer using one or more techniques to improve the accuracy of the prediction: (i) offsetting the history information from the various previously predicted indirect branch instructions; (ii) weighting the history information based on the age of the previously predicted indirect branch instructions; and/or (iii) reversing the bit order of the PC of the particular indirect branch instruction being predicted. In one embodiment, the indirect branch predictor may include a second buffer indexed by a portion of the PC of the particular indirect branch instruction being predicted. The second buffer may store target addresses corresponding to previously executed indirect branch instructions and prediction selection information which may be used to select a target address prediction from one of the buffer and the second buffer. The second buffer may accurately predict indirect branch instructions whose target addresses are relatively fixed, using the buffer indexed by history information to predict the indirect branch instructions having more frequently changing indirect targets.

Um predictor indireto da filial inclui um amortecedor que armazena os endereços do alvo da filial que correspondem às instruções de filial indiretas previamente executadas. O amortecedor é posicionado com um índice derivado da informação do history que corresponde às instruções de filial indiretas previamente preditas e do PC da instrução de filial indireta particular que está sendo predita. Em uma incorporação, o amortecedor pode ser tagless e/ou direto traçado. Em várias incorporações, o predictor indireto do alvo da filial pode gerar o índice ao amortecedor usando um ou mais técnica melhorar a exatidão da predição: (i) deslocando a informação do history das várias instruções de filial indiretas previamente preditas; (ii) tornando mais pesada a informação do history baseada na idade das instruções de filial indiretas previamente preditas; e/ou (iii) invertendo a ordem do bocado do PC da instrução de filial indireta particular que está sendo predita. Em uma incorporação, o predictor indireto da filial pode incluir um segundo amortecedor posicionado por uma parcela do PC da instrução de filial indireta particular que está sendo predita. O segundo amortecedor pode armazenar os endereços do alvo que correspondem às instruções de filial e à informação indiretas previamente executadas da seleção da predição que podem ser usadas selecionar uma predição do endereço do alvo de um do amortecedor e do segundo amortecedor. O segundo amortecedor pode exatamente predizer as instruções de filial indiretas cujos os endereços do alvo são relativamente fixos, usando o amortecedor posicionado pela informação do history para predizer as instruções de filial indiretas que têm alvos indiretos mais freqüentemente em mudança.

 
Web www.patentalert.com

< Communicating between address spaces

< Notification systems and methods with notifications based upon prior package delivery

> Memory address checking in a proccesor that support both a segmented and a unsegmented address space

> Method and apparatus for providing calculated and solution-oriented personalized summary-reports to a user through a single user-interface

~ 00108