Le microprocesseur doit être à seize bits (justification formelle)

, :

R — ( )
A — ( )
C — ( )

, ( — , ):

A = C = 2 ^ R

Le respect de cette condition signifie que n'importe quelle cellule est en mesure de contenir l'adresse de toute autre cellule et contient également des informations complètes sur l'action en cours. La réduction de l'espace d'adressage est lourde de liens vers une mémoire inexistante, et une augmentation des informations redondantes nécessaires pour garantir la capacité à adresser toute la mémoire. Même chose avec l'espace de commande. Ainsi, notre ensemble hypothétique ne cesse pas d'être infini, mais il devient plus définissable.

Y a-t-il d'autres conditions qui satisfont aux critères ci-dessus et sont évidentes sans aller plus loin dans les détails du développement d'une architecture de bas niveau? Oui, au moins une de ces conditions existe:

R = 2 ^ n Le

respect de cette condition signifie que pour spécifier le nombre de bits dans une cellule, un nombre entier de bits est requis (encore une fois, un excès ou un manque ici n'est pas souhaitable pour des raisons de facilité d'écriture et de fiabilité du code machine )

Évidemment, n = 4 est la valeur minimale acceptable, puisque 256 octets de mémoire avec n = 3 ne conviennent qu'à la programmation de guirlandes de Noël. À n= 5 on obtient la quantité de mémoire correspondant aux dernières avancées informatiques. Mais si nous supposons que le but principal de la mémoire adressée par le processeur est de stocker le code machine (moteur), et que les données que ce moteur manipule sont prises hors de l'espace d'adressage (c'est-à-dire, si nous supposons que les périphériques externes seront leurs transporteurs), alors cette quantité de mémoire (16 Go) sera clairement redondant. En effet, dans la RAM des ordinateurs modernes, seule une petite partie de la mémoire tombe dans la part du code machine, le reste est constitué de données. De plus, la séparation du code et des données au niveau matériel est cohérente avec l'idée d'un bon style dans la conception du microprocesseur et la programmation en langage d'assemblage. En mégabits de code machine écrit en acme effectif (à condition que les données soient supprimées en dehors de l'adresse du processeur adressée par la RAM),peut accueillir un axe complet. Si cette mémoire n'est pas suffisante (par exemple pour implémenter le multitâche), vous pouvez utiliser plusieurs processeurs, car la "division du travail" dans le domaine informatique contribue également, en règle générale, à la commodité du développement de programmes et à l'efficacité de leur fonctionnement. En principe, pour implémenter le multitâche, rien ne peut se passer avec un seul processeur: nous pouvons, par exemple, implémenter une interface rapide pour échanger des données entre la RAM et la mémoire externe - heureusement, une petite quantité de RAM vous permet de la mettre à jour non séquentiellement, mais en parallèle (dans un «cadre»), donc que n'importe quelle partie de la mémoire du processeur peut être écrasée en quelques ticks.En règle générale, il contribue à la commodité de l'élaboration de programmes et à l'efficacité de leur fonctionnement. En principe, pour implémenter le multitâche, rien ne peut se passer avec un seul processeur: nous pouvons, par exemple, implémenter une interface rapide pour échanger des données entre la RAM et la mémoire externe - heureusement, une petite quantité de RAM vous permet de la mettre à jour non séquentiellement, mais en parallèle (dans un «cadre»), donc que n'importe quelle partie de la mémoire du processeur peut être écrasée en quelques ticks.En règle générale, il contribue à la commodité de l'élaboration de programmes et à l'efficacité de leur fonctionnement. En principe, pour implémenter le multitâche, rien ne peut se passer avec un seul processeur: on peut, par exemple, implémenter une interface rapide pour échanger des données entre RAM et mémoire externe - heureusement, une petite quantité de RAM vous permet de la mettre à jour non séquentiellement, mais en parallèle (dans un «cadre»), donc que n'importe quelle partie de la mémoire du processeur peut être écrasée en quelques ticks.de sorte que n'importe quelle partie de la mémoire du processeur peut être remplacée en quelques ticks.de sorte que n'importe quelle partie de la mémoire du processeur peut être remplacée en quelques ticks.

Je suis tout cela au fait que tout obstacle causé par la limitation de la quantité de mémoire adressable à un mégaoctet peut être facilement contourné par la mise en œuvre matérielle de l'échange de données avec la mémoire externe. L'avantage d'utiliser une architecture à seize bits, en plus des considérations ci-dessus, peut être donné une justification formelle, à savoir:

R % n = 0 Le

respect de cette condition signifie qu'un nombre entier de valeurs dans la plage [0 .. R -1] peut être placé dans une cellule mémoire (par exemple, pour n = 5, cette condition n'est pas remplie - dans ce cas, Régal à 32 bits n'est pas divisible par 5 sans reste). La capacité du processeur étant un paramètre fondamental, une telle propriété peut s'avérer très utile à l'avenir.

Et enfin, l'argument principal en faveur du nombre 16, qui est la base de l'architecture de bas niveau, est le fait qu'il définit la quantité optimale d'espace de commande - le processeur PDP-11 peut servir d'exemple (ainsi que la majorité des processeurs modernes, dont l'extension de la capacité en bits n'a pratiquement pas affecté sur leur système de commandement).

Pour plus de clarté, je donnerai une séquence reflétant la nature fondamentale des justifications ci-dessus:

2 ^ 0 = 1
2 ^ 1 = 2
2 ^ 2 = 4 (= n )
2 ^ 4 = 16 (= R )
2 ^ 16 = 65536 (= A = C )

Il convient également de mentionner que depuis que l'informatique a commencé à se développer à un rythme effréné, aucune solution complète n'a peut-être été proposée. Même PDP-11 (à mon avis, la mise en œuvre la plus réussie) est peu susceptible d'utiliser l'espace de commande de plus de 50% - une partie assez importante de celui-ci est le code de sauvegarde, ainsi que des méthodes d'adressage qui sont formellement valides (car elles relèvent des règles générales), mais vraiment inutilisés, car ils conduisent soit à un gel garanti du programme (MOV - (PC), ...), soit simplement inutiles (MOV R1, R1).

En d'autres termes, dans le domaine des technologies de l'information, la «roue» n'a pas encore été inventée, enfin, ou toutes ne sont pas tout à fait «rondes» - ce qui rend le «vélo» pas tout à fait pratique. Peut-être pour cette raison, les ordinateurs «primitifs» (BK, DVK, Spectrum, ...) sont encore très demandés à ce jour. Par exemple, en tant que personne expérimentée en programmation, les technologies logicielles modernes, avec toute leur puissance et leur fiabilité, rappellent Frankenstein, provoquant des contradictions esthétiques. Bien que ce soit plus agréable que bouleversant, l'invention des roues non inventées est mon hobby. Je ne suis peut-être pas le seul à penser dans ce sens et quelqu'un d'autre trouvera cette activité intéressante.

Source: https://habr.com/ru/post/fr383567/


All Articles