Pergunta

Estou usando um processador RISC incorporado. Há uma coisa básica que tenho um problema em descobrir.

O manual da CPU afirma claramente que a instrução ld r1, [p1] (em c: r1 = *p1) leva um ciclo. O tamanho do registro R1 é de 32 bits. No entanto, o barramento de memória tem apenas 16 bits de largura. Então, como ele pode buscar todos os dados em um ciclo?

Foi útil?

Solução

Os horários do relógio estão assumindo a largura total zero de espera da memória do estado. O tempo que leva para o núcleo executar essa instrução é um ciclo de relógio.

Houve um tempo em que cada instrução levou um número diferente de ciclos de relógio. A memória também era relativamente rápida, geralmente zero estado de espera. Houve um tempo antes de pipelines, onde você teve que queimar um ciclo de relógio buscando, depois um ciclo de relógio decodificando, depois um ciclo de relógio executando, além de ciclos extras de relógio para instruções de comprimento variável e ciclos de relógio extras se a instrução tivesse uma operação de memória.

Hoje, as velocidades do relógio são altas, o Chip Real Estate é relativamente barato; portanto, um ciclo de um relógio adicionar ou multiplicar é a norma, assim como os pipelines e caches. A velocidade do relógio do processador não é mais o fator determinante para o desempenho. A memória é relativamente cara e lenta. Portanto, os caches (configuração, número e tamanho), tamanho do barramento, velocidade de memória, velocidade periférica determinam o desempenho geral de um sistema. Normalmente, aumentando a velocidade do relógio do processador, mas não a memória ou os periféricos, mostrará o mínimo se houver um ganho de desempenho, em algumas ocasiões isso pode torná -lo mais lento.

O tamanho da memória e os estados de espera não fazem parte da especificação de execução do relógio no manual de referência, eles estão falando apenas sobre o que o próprio núcleo custa em unidades de relógios para cada uma das instruções. Se for uma arquitetura de Harvard em que o barramento de instruções e dados é separado, um relógio será possível com o ciclo de memória. A busca da instrução acontece pelo menos o ciclo do relógio anterior, se não antes, então, no início do ciclo do relógio, a instrução está pronta, decodificar e executar (o ciclo de memória de leitura) acontece durante o relógio no final do Um ciclo de relógio O resultado da leitura é preso ao registro. Se o barramento de instrução e dados for compartilhado, você poderá argumentar que ele ainda termina em um ciclo de relógio, mas você não consegue buscar a próxima instrução para que haja um pouco de barraca lá, eles podem trapacear e chamar isso de um relógio ciclo.

Outras dicas

Meu entendimento é: ao dizer que algumas instruções levam um ciclo, não é que a instrução seja concluída em um ciclo. Devemos assumir a contagem de instruções linha de tubo. Suponha que a sua CPU tenha uma linha de tubos de 5 estágios, que a instrução levaria 5 ciclos se fosse extrecida sequencialmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top