Resumo Artigo Register Renaming
Os processadores superescalares tentam explorar o paralelismo de instruções visando aumento desempenho. Register Renaming é um mecanismo que têm sido desenvolvidos para aumentar a quantidade de instruções que um processador pode executar em paralelo. Com isso, os processadores atuais possuem um número reduzido de registradores, com o objetivo de ter uma instrução compacta. As instruções devem ser executadas serialmente, ocorrendo duas dependências chamadas de dependência de saída e anti-dependência. Essas são classificadas como falsas, pois a serialização só ocorre quando é utilizado o mesmo registrador de resultado em duas instruções diferentes. Podendo assim, ser eliminada fazendo a renomeação dos registradores. É importante lembrar que mesmo que haja um aumento no número de registradores, teríamos ainda assim certas limitações. Mas, além disso, um aumento no número de registradores acarretaria em um maior número de bits para a sua especificação, o que novamente levaria a um aumento no tamanho do código gerado. Especificando com maiores detalhes os tipos de conflitos de dados podemos citar a Read-after-write(RAW), onde a leitura de um registrador ou de um local de memória retorna o valor que foi colocado pela última escrita na ordem do programa e não qualquer outra escrita. Chamando assim de dependência real e requerendo que as instruções sejam executadas na ordem do programa. A Write-after-write(WAW), que são escritas sucessivas em um registrador em particular ou em um local de memória deixando nesse local o resultado gerado pela segunda escrita. Chamando de dependência de saída. E a Write-after-read(WAR), leitura de um registrador ou local de memória retornando o último valor prioritário escrito naquela local e não escrito pelo programa após a leitura. Chamando de dependência falsa ou anti-dependências que é o tipo que pode ser resolvida pela renomeação de registradores. Os registradores de arquitetura fornecem um determinado número