A cache used with a pipelined processor includes an instruction cache,
instruction buffers for receiving instruction sub-blocks from the
instruction cache and providing instructions to the pipelined processor,
and a branch cache. The branch cache includes an instruction buffer
adjunct for storing an information set for each sub-block resident in the
instruction buffers. A branch cache directory stores instruction buffer
addresses corresponding to current entries in the instruction buffer
adjunct, and a target address RAM stores target addresses developed from
prior searches of the branch cache. A delay pipe is used to selectively
step an information set read from the buffer instruction adjunct in
synchronism with a transfer instruction traversing the pipeline. A
comparison, at a predetermined phase along the delay pipe, determines if
the information set identifies, as currently resident in the instruction
buffers, a target address that matches the target address in the transfer
instruction traversing the pipeline. If there is a finding that the
information set traversing the delay pipe identifies a target address in
the instruction buffers that matches the target address in the transfer
instruction traversing the pipeline and there is an indication of TRA-GO
from the pipeline, the instruction identified by the target address is
sent to the pipeline from the instruction buffers rather than from the
instruction cache.
Um esconderijo usado com um processador pipelined inclui um esconderijo da instrução, os amortecedores da instrução para receber a instrução secundário-obstruem do esconderijo da instrução e instruções fornecer ao processador pipelined, e de um esconderijo da filial. O esconderijo da filial inclui um adjunct do amortecedor da instrução para armazenar um jogo da informação para o cada secundário-obstrui o residente nos amortecedores da instrução. Um amortecedor da instrução das lojas do diretório do esconderijo da filial dirige-se a corresponder às entradas atuais no adjunct do amortecedor da instrução, e uma RAM do endereço do alvo armazena os endereços do alvo desenvolvidos das buscas prévias do esconderijo da filial. Atrasa a tubulação é usado pisar seletivamente um jogo da informação lido do adjunct da instrução do amortecedor no synchronism com uma instrução de transferência que atravessa o encanamento. Uma comparação, em uma fase predeterminada ao longo do atrasa a tubulação, determina se o jogo da informação identificar, como atualmente o residente nos amortecedores da instrução, um endereço do alvo que combine o endereço do alvo na instrução de transferência que atravessa o encanamento. Se houver que atravessar do jogo da informação atrasa uma tubulação encontrando identificar um endereço do alvo nos amortecedores da instrução que combine o endereço do alvo na instrução de transferência que atravessa o encanamento e haja uma indicação de TRA-GO do encanamento, a instrução identificada pelo endereço do alvo é emitida ao encanamento dos amortecedores da instrução melhor que do esconderijo da instrução.