Microcontrôleurs / microprocesseurs et différentes versions de bits, quelle est la différence?


20

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:


24

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).


3
La largeur qu'il peut gérer en une seule opération peut être importante lors de la synchronisation de parties asynchrones du programme. Si vous avez besoin de lire atomiquement une valeur 16 bits sur un micro 8 bits, vous devez probablement désactiver d'abord les interruptions que vous voudrez peut-être éviter pour maintenir un temps de réponse ISR faible.
ndim

Un autre trait où certains micros 8 bits peuvent être supérieurs à l'ARM (l'architecture 32 bits la plus populaire) est le twiddling de bits d'E / S. Un PIC 18Fxx (8 bits) peut définir ou effacer n'importe quel bit dans l'espace d'E / S avec une seule instruction, indépendamment de ce que contiennent les registres, tandis qu'un ARM nécessite généralement un processus en plusieurs étapes. Les puces ARM peuvent exécuter plus d'instructions par seconde que les puces PIC actuellement disponibles (certaines petites puces compatibles PIC à 100 MHz étaient auparavant disponibles chez Scenix, mais je pense qu'elles sont abandonnées), mais même les PIC disponibles peuvent toujours faire certains types de bit-banging plus rapide.
supercat

1
Bien que moins universels, certains périphériques ARM ont des éléments tels que les registres GPIOx_BSRR / GPIOx_BRR qui peuvent être écrits pour définir ou effacer des bits GPIO individuels.
Chris Stratton

8

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 = 28256

21665,536

2324,294,967,296

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.