Programação Paralela em Arquiteturas Multi-Core/Arquitetura Intel Core e Core 2: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Linha 107:
A microarquitetura possui 6 unidades independentes de pré-carregamento de dados:
A microarquiteturaCore possui também 2 unidades independentes de pré carregamento de instruções:
As unidades guarda informações sobre o padrões de acesso das unidades de execução aos dados e padrões de execução do programa. Alguns desses padrões de acesso são:
- Em um loop, os preditores de desvio <ref>Também conhecidos pelo estrangeirismo ''branch predictors''</ref> normalmente assumem que na próxima iteração a execução ocorrerá dentro do loop (a condição para saída do loop é considerada sempre como não verdadeira). Sendo assim, esse preditores de desvio sempre erram a previsão na iteração que sai do loop. A microarquitetura Core introduziu preditores queregistram em qual iteração um loop foi interrompido. Na próxima vez que o mesmo loop for executado, se o número de iterações antes de sair do loop for o mesmo, o preditor irá acertar a previsão da última iteração, prevendo-a como uma saída do loop
Linha 129 ⟶ 130:
Quando ocorre uma instrução STORE seguida de um LOAD, podem acontecer duas situações:
O problema é que para diferenciar os dois casos, é necessário saber os endereços de memória onde o STORE está salvando os dados. Este endeço só fica disponível alguns ciclos após o início da execução do STORE. Como consequência, o processador deve aguardar um ciclo após o início da execução do STORE para decidir se o LOAD já pode começar a ser executado (em paralelo com o STORE) ou se o seu início deve ser postergado para depois da finalização da execução do STORE.
|