Question

J'utilise un processeur RISC intégré. Il y a une chose fondamentale que j'ai un problème déterminer.

Le manuel CPU indique clairement que le ld r1, [p1] d'instruction (en C: r1 = * p1) prend un cycle. Taille du registre r1 est de 32 bits. Cependant, le bus de mémoire est seulement 16 bits de large. Alors, comment peut-il récupérer toutes les données dans un cycle?

Était-ce utile?

La solution

Les temps d'horloge assument toute la largeur zéro la mémoire de l'état d'attente. Le temps qu'il faut pour le noyau d'exécuter cette instruction est un cycle d'horloge.

Il y avait un moment où chaque instruction a pris un nombre différent de cycles d'horloge. La mémoire a été relativement rapide alors trop, généralement sans état d'attente. Il y avait un temps avant que les pipelines et où il fallait graver un fetching de cycle d'horloge, puis un décodage de cycle d'horloge, puis un cycle d'horloge d'exécution, ainsi que des cycles supplémentaires d'horloge pour les instructions de longueur variable et des cycles d'horloge supplémentaires si les instructions avait une opération de mémoire.

vitesses d'horloge Aujourd'hui sont élevés, puce immobilier est relativement pas cher, donc un cycle d'horloge ajouter ou est la norme se multiplient, tout comme les pipelines et les caches. vitesse d'horloge du processeur n'est plus le facteur déterminant pour la performance. La mémoire est relativement coûteux et lent. Ainsi caches (configuration, le nombre et la taille des), la taille des bus, la vitesse de la mémoire, la vitesse périphérique de déterminer les performances globales du système. Normalement, l'augmentation de la vitesse d'horloge du processeur, mais pas la mémoire ou des périphériques affichera un minimum si tout gain de performance, dans certaines occasions, il peut le rendre plus lent.

Taille de la mémoire et états d'attente ne font pas partie de la spécification d'exécution d'horloge dans le manuel de référence, ils parlent seulement ce que le noyau lui-même vous coûte en unités d'horloges pour chacune des instructions. Si elle est une architecture harvard où l'instruction et le bus de données sont séparées, puis une horloge est possible avec le cycle de mémoire. La récupération de l'instruction se produit au moins le cycle d'horloge avant sinon avant que, si au début du cycle d'horloge l'instruction est prête, décoder et exécuter (cycle de mémoire de lecture) se produit au cours d'une horloge à la fin de la un cycle d'horloge du résultat de la lecture est verrouillée dans le registre. Si l'instruction et le bus de données sont partagés, alors on pourrait dire qu'il se termine toujours dans un cycle d'horloge, mais vous ne recevez pas d'aller chercher l'instruction suivante donc il y a un peu là-bas stalle, ils pourraient tricher et appeler une horloge cycle.

Autres conseils

Si je comprends bien: quand on dit une instruction prendre un cycle, il est pas que l'instruction sera terminée dans un cycle. Nous devrions prendre le nombre d'instructions . Supposons que votre CPU a 5 ligne de conduite d'étape, que l'instruction serait prend 5 cycles si elle était exectued séquentielle.

scroll top