Cela dépend de la façon dont vous définissez «ordinateur».
À la plus petite extrémité de l'échelle, ce que vous pourriez appeler des microcontrôleurs traditionnels, vous n'obtenez pas de gestion de la mémoire et ne voyez rarement plus de RAM que la petite quantité intégrée à la puce. J'admets très peu de connaissances sur l'architecture des microcontrôleurs les plus performants actuellement disponibles, mais l'existence (ou leur absence) de ces fonctionnalités est probablement la clé pour distinguer un appareil le mieux adapté aux applications embarquées ou au calcul général. .
Par `` gestion de la mémoire '', je fais référence à la capacité d'exécuter des programmes dans des espaces d'adressage virtuels et de les mapper à la RAM physique disponible dans le système, une fonction exécutée par ce qu'on appelle généralement une unité de gestion de la mémoire (MMU).
Sans MMU, si vous essayez d'exécuter plusieurs processus, tous sont obligés de partager un seul espace d'adressage, ce qui signifie qu'à moins que tous les processus impliqués adhèrent à votre schéma d'allocation de mémoire, un processus peut très facilement en planter un autre. Donc, si vous contrôlez totalement la conception de tous les processus, comme avec un système embarqué, ce n'est pas autant une préoccupation. Cependant, si vous essayez de prendre en charge le calcul à usage général, vous ne pouvez pas garantir que tout le code qui sera exécuté respectera le schéma d'allocation de mémoire et que le système sera plutôt fragile.
Le manque de RAM n'est pas non plus un problème majeur pour les systèmes embarqués, (1) car il y a généralement beaucoup de flash, et (2) n'étant pas un ordinateur à usage général, vous n'avez pas à vous soucier d'exécuter des programmes inattendus à la ordre d'un utilisateur. Vous connaissez à l'avance la somme totale de tous les logiciels qui s'exécuteront sur le système, et vous n'avez besoin que de RAM pour les variables de ce logiciel. Cependant, lorsque vous essayez de transformer votre système en un ordinateur polyvalent, les utilisateurs s'attendent à pouvoir exécuter ce qui leur convient, et cela nécessite de la RAM.
Maintenant, il est tout à fait correct de faire des calculs à usage général sur des appareils sans MMU et pas beaucoup de mémoire. Le PC IBM original de 128 Ko de RAM, basé sur 8088 (16 bits) s'en est sorti, tant que vous n'aviez besoin que d'exécuter un programme à la fois.
Donc, si vous voulez définir «ordinateur» comme quelque chose comme la technologie de 1982, la réponse est certainement oui. Ou si vous avez un système fermé où vous pouvez atténuer les problèmes de ne pas avoir de MMU et / ou beaucoup de RAM (par exemple, des téléphones portables) en contrôlant soigneusement la conception du logiciel, oui également. Ou, si votre microcontrôleur a une MMU intégrée et des morceaux de RAM (ou peut les accueillir en externe), vous devriez être en mesure de construire un système qui ressemble davantage à des ordinateurs actuels.