Você está na página 1de 1

Pipeline

O risco estrutural pode ser detectado quando a instrução é decodificada e o pipeline


trava na busca da instrução no ponto apropriado. Isso permite que um carregamento ou
armazenamento seja executado ao custo de uma bolha de pipeline. Para
armazenamentos, o processador pode especular que um armazenamento não endereça
a memória que contém instruções que estarão no pipeline (ou pelo menos que o
armazenamento não altera a semântica de nenhuma dessas instruções).
Se for permitido um front-end e buffer mais amplos, o impacto do risco estrutural pode
ser reduzido. Esse buffer, mesmo que seja após a decodificação da instrução, pode ser
considerado um cache.
O risco estrutural relacionado a cargas e armazenamentos pode ser evitado pela
multiportação (ou acesso ao cache duas vezes em um único ciclo) ou pela pseudo
multiportação (banco) da memória. O processador ainda teria o risco de quase-controle
para as lojas. Os principais benefícios de tal implementação em relação a ter caches
separados seriam um manuseio um pouco mais simples de armazenamentos e uma
operação mais rápida ao executar código auto modificável. O processador ainda poderia
lidar com o problema de armazenamento com caches coerentes separados, mas
implementar a coerência e lidar com o atraso na realização de armazenamentos no
cache de instruções aumentaria a complexidade.
Eu diria que uma arquitetura Harvard modificada que implementa uma interface Von
Neumann (ou seja, é indistinguível do software, exceto no que diz respeito ao
desempenho) é Von Neumann. (As ISAs recentes geralmente evitam tais garantias. O
benefício de uma interface mais simples geralmente não é considerado compensador
da complexidade/desempenho.)

Fonte : https://cs.stackexchange.com/questions/40107/can-a-von-neumann-cpu-be-
pipelined

Você também pode gostar