Implementar o CAS com instruções AMO
ErFer7 opened this issue · 0 comments
ErFer7 commented
Contexto
Atualmente o CPU::cas
não usa instruções AMO, o professor pediu para que fossem implementadas.
Atenção
Essa issue deve ser feita com base na #34
Critérios
- Implementar o CAS com instruções AMO que funcione corretamente
O que é Atomic Memory Operations (AMO)?
- Instruções que executam atômicamente uma operação em um operando de mémoria -> set no registrador de destino para o valor de memória original;
- Se comportam melhor em grandes sistemas multiprocessadores do que load reservado e store condicional;
- Podem ser usadas para implementar operações de redução;
- Executam uma leitura e uma gravação em uma única transação de átomos de barramento -> úteis para comunicação com I/O.
O que é Compare and Swap (CAS)?
- Operação que compara um valor de registrador a um valor na memória endereçado por outro registrador;
- Caso os valores sejam iguais, troca um terceiro valor de registrador pelo valor da memória;
- Qualquer operação de sincronização de uma única palavra pode ser sintetizada a partir de CAS.