En tant que passionné d'ingénierie générale, j'apprends chaque jour davantage sur le monde des microcontrôleurs. Une fois, je ne comprends pas très bien la signification de la version bit d'un microcontrôleur.
J'utilise l'ATmega8 depuis plusieurs mois et il semble fonctionner parfaitement pour mes besoins. Je sais comment des choses comme la vitesse d'horloge, la mémoire, le nombre de broches d'E / S, les types de bus de communication, etc. différencient un microcontrôleur d'un autre. Mais je ne comprends pas très bien la signification de, disons, 8 bits contre 16 bits contre 32 bits. Je comprends qu'une version plus élevée de bits permet à l'appareil de stocker de plus grands nombres, mais encore une fois, comment cela affecte-t-il ma décision? Si je conçois un produit, dans quel scénario hypothétique devrais-je décider qu'un processeur 8 bits ne fonctionnera tout simplement pas et que j'ai besoin de quelque chose de plus élevé.
Y a-t-il une raison de croire qu'une variante théorique 32 bits de l'ATmega8 (toutes choses égales par ailleurs) serait supérieure à une version 8 bits (si un tel appareil était possible)?
Je dis peut-être un non-sens, mais je suppose que c'est le résultat de ma confusion.
Réponses:
Ce n'est pas la largeur du nombre qu'il peut stocker, c'est la largeur avec laquelle il peut travailler en une seule opération. Habituellement (mais pas nécessairement), cela a également un degré de corrélation avec la largeur de l'adressage de la mémoire native, et donc la quantité de stockage qui peut être facilement mappée sans solutions de contournement laides telles que la segmentation ou le changement de banque.
Les cœurs 32 bits d'aujourd'hui sont supérieurs à 8 modèles dans la plupart des cas (flexibilité, modèle de mémoire plate et bien sûr performances), à l'exception des systèmes hérités, des applications avec un volume et une pression sur les prix extrêmes (sinon les prix ont tendance à mieux corréler avec sur la taille de la mémoire de la puce qu'avec la largeur du cœur) et les effets secondaires du processus / densité. Ce dernier peut fournir des éléments comme le fonctionnement 5 V, ou peut-être dans certains cas une plus grande dureté de rayonnement ou un avantage de simplicité si vous essayez de prouver que la conception du CPU elle-même est exempte d'erreurs logiques. Un dernier effet secondaire de processus / âge de valeur pour de nombreux amateurs est que les cœurs 8 bits dans les packages DIP sont communs, tandis que les périphériques 32 bits dans de tels packages sont plus rares (bien qu'ils existent).
la source
La valeur en bits est la taille du bus de données ou du canal de données, ce qui signifie qu'un MCU 8 bits ne peut (pour la plupart) fonctionner qu'avec des valeurs de 0 à 255 à chaque cycle d'horloge. Considérez-le comme le processeur dispose de 8 lignes numériques en parallèle. Et un 16 bits a 16 lignes et 32 bits a 32 lignes. Ainsi, pour chaque cycle d'horloge, il lit ces lignes de données, et plus il y a de lignes, plus la valeur avec laquelle vous pouvez travailler par cycle d'horloge est élevée.
8 bits =28 256
Des bus de données plus grands permettent également au processeur d'accéder à des adresses mémoire plus grandes.
Cela fait une grande différence lors des opérations mathématiques. Un nombre de 16 bits vous donne beaucoup plus de précision que les nombres de 8 bits. Les microcontrôleurs 16 bits sont également plus efficaces dans le traitement des opérations mathématiques sur des nombres supérieurs à 8 bits. Un microcontrôleur 16 bits peut fonctionner automatiquement sur deux nombres 16 bits, comme la définition commune d'un entier. Mais lorsque vous utilisez un microcontrôleur 8 bits, le processus n'est pas aussi simple. Les fonctions implémentées pour fonctionner sur de tels nombres prendront des cycles supplémentaires. Selon l'intensité du traitement de votre application et le nombre de calculs que vous effectuez, cela peut affecter les performances du circuit.
Différence entre le microcontrôleur 8 bits et 16 bits
la source