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
Alymenbr (discussão | contribs)
Alymenbr (discussão | contribs)
Linha 136:
Para solucionar o problema, a microarquitetura Core possui algoritmos que determinam com uma grande probabilidade se um par de instruções STORE-LOAD está operando sobre os mesmos dados, sem a necessidade de aguardar a definição dos endereços de memórias que as instruções estariam acessando.
 
 
Segue abaixo um exemplo do funcionamento da desambiguação de memória:
Vamos verificar como exemplo da desambiguação de memória o que acontece para a seguinte sequência de isntruções:
* 'STORE 13 ''REF''' - Guardar o valor 13 na posição ''REF'' da memória.
* 'LOAD ''REF'' A' - Carregar o conteúdo da posição ''REF'' da memória no registrador ''A''.
* 'ADD A, B, C' - Somar os registradores ''A'' e ''B'', atribuindo o resultado ao registrador ''C''.
 
----
[[Imagem:Desambiguacao_Memoria.png]]
----
 
No exemplo existem duas posições de memória, uma representada pelo quadrado vermelho e outra representada pelo quadrado azul. O sombreamento saindo do quadrado indica que a instrução acessando aquele endereço de memória ainda não finalizou.
Cada linha cinza representa um ciclo de execução do processador.
 
* Caso A: Nesse caso,
 
==== Intel Advanced Digital Media Boost ====