Transfert de données entre FF dans une CPU

EralpB

Transfert de données entre FF dans une CPU


J’étais en cours d’organisation informatique et quand nous avons écrit ce que fait le CPU pendant une instruction d’ajout (comme des micro-instructions), quelque chose m’a fait réfléchir.

Je ne comprenais pas comment nous permettions à l’un des FF de sortir sur le bus interne et demandions aux autres FF de verrouiller les données. Si nous envoyons les signaux de contrôle au même cycle, comment celui-ci verrouille-t-il les données en même temps ? N’est-ce pas une violation de la configuration et du temps de maintien?

David Perek

Je pense qu’une chose à reconnaître dans la conception de l’architecture informatique est que vous pouvez modéliser des composants comme le fichier de registre comme un tas de tongs tout au long de la conception de haut niveau, mais à un moment donné, leur mise en œuvre sera très différente d’un simple 7400 identique de base les périphériques de série copiés et collés sur la puce et en fait, chacun peut avoir une conception légèrement différente jusqu’aux caractéristiques de chacun de ses transistors pour résoudre les problèmes.

Réponses


 Brian Drummond

Pas nécessairement. Des points bonus pour savoir qu’une entrée à un FF a comme configuration et spécification de temps de maintien, soit dit en passant.

Mais pour de nombreux modèles de FF, le temps de maintien peut être de 0 ns, c’est-à-dire que vous n’avez pas besoin de conserver les données à TOUT moment après le front d’horloge. (Lors de la conception du FF, vous pouvez le garantir – assurez-vous simplement d’utiliser des transistors plus lents ou des fils plus longs à l’entrée et plus rapides sur l’horloge!)

Maintenant, l’horloge verrouille les données, mais ce processus prend un certain temps – appelé retard de propagation ou retard de sortie d’horloge – puis le fil vers le FF suivant ajoute un certain retard. Donc, le prochain FF ne voit pas son entrée changer jusqu’à APRÈS cette fois, certainement supérieure à 0 ns, donc c’est sûr. (S’il n’est pas supérieur au temps de maintien réel, vous ÊTES en difficulté!)

Le temps d’installation est moins important à ce stade; puisque la sortie FF précédente change juste après le front d’horloge, il a presque tout un cycle pour arriver ici. Calculez clock cycle time - clock-output delay - wire delay - setup timeet si le nombre est positif, c’est sûr aussi.

Le temps d’installation est important lorsque vous commencez à ajouter des portes ou de longs fils entre les FF; ceux-ci ajoutent plus de retard. Donc, lorsque cette somme devient nulle, l’horloge est trop rapide!

(Il y a un autre aspect; les impulsions d’horloge arrivent à différents FF à différents moments; pour un calcul précis, vous devez tenir compte de ce « décalage d’horloge » dans les calculs de temps de configuration et de maintien).

Vous ne vous trompez donc pas; ce sont de vrais problèmes mais ils ont des solutions. Et la conception de puces implique BEAUCOUP de ces calculs (principalement automatisés par les outils, dans la conception FPGA) – appelés « analyse de synchronisation statique ».


 Ken Shirriff

J’ai inversé les anciens microprocesseurs (6502, Z-80, 8085) et l’astuce pour le transfert de données est qu’ils utilisent des horloges biphasées. Certaines bascules sont mises à jour au cours de la première phase, et les autres sont mises à jour au cours de la deuxième phase. Le premier ensemble de bascules ne dépend que des valeurs du deuxième ensemble et vice versa. Ainsi, vous n’avez pas de problème avec les entrées et sorties de bascule changeant en même temps.

Les tongs authentiques sont assez rares dans ces puces en raison de leur relative complexité. Au lieu de cela, les CPU utilisent beaucoup de logique dynamique avec des transistors de passage; cela contient des valeurs avec une capacité de fil plutôt qu’un verrou. Et il y a beaucoup de verrous à deux onduleurs, avec des transistors pass contrôlant les mises à jour.

 

#(une, #de, CPU, dans, données), entre, FF:, Transfert

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *