Baixe o app para aproveitar ainda mais
Prévia do material em texto
Filosofia de Design antes RISC Um dos princípios básicos de design para todos os processadores é adicionar velocidade ao fornecer alguma memória muito rápida para armazenar informações temporariamente. Essas memórias são conhecidas como registradores. Por exemplo, cada CPU inclui um comando para adicionar dois números. A operação básica de uma CPU seria carregar esses dois números nos registradores, adicioná-los e armazenar o resultado em outro registrador, por fim, pegar o resultado do último registrador e devolvê-lo à memória principal. No entanto, os registros têm a desvantagem de serem um tanto complexo de implementar. Cada um é representado por transistores no chip, neste aspecto a memória principal tende a ser muito mais simples e barata. Além disso, os registros adicionam complexidade à fiação, porque a unidade de processamento central precisa ser conectada a todos os registros para usá-los igualmente. Como resultado disso, muitos projetos de CPU limitam o uso de registradores de uma forma ou de outra. Alguns incluem poucos registros, embora isso limite sua velocidade. Outros dedicam seus registros a tarefas específicas para reduzir a complexidade; por exemplo, um registro pode ser capaz de fazer operações em um ou mais dos outros registros, enquanto o resultado pode ser armazenado em qualquer um deles. No mundo dos microcomputadores dos anos 70, esse era mais um aspecto das CPUs, já que os processadores eram lentos demais - na verdade, havia uma tendência de o processador ser mais lento do que a memória com a qual se comunicava. Nesses casos, fazia sentido excluir quase todos os registros e, então, fornece ao programador um bom número de maneiras de lidar com a memória para tornar seu trabalho mais fácil. Dado o exemplo da adição, a maioria dos projetos de CPU se concentrava em criar um comando que pudesse fazer todo o trabalho automaticamente: chamar os dois números que seriam adicionados, adicioná-los e armazená-los diretamente. Outra versão poderia ler os dois números da memória, mas armazenaria o resultado em um registro. Outra versão poderia ler um da memória e outro de um registro e armazená-lo na memória novamente. E assim por diante. O objetivo geral na época era fornecer todos os modos de endereçamento possíveis para todas as instruções, um princípio conhecido como ortogonalidade. Isso levava a uma CPU complexa, mas em teoria capaz de configurar cada comando possível individualmente, tornando o design mais rápido do que o programador usando comandos simples.
Compartilhar