Du point de vue de l'architecture informatique, et avec la mise en garde que la nomenclature varie parfois, en particulier lorsqu'il existe une famille d'architectures connexes qui a évolué depuis longtemps, ou lorsque le service marketing décide que les termes habituels doivent être utilisés dans un autre (soit pour mieux mettre le produit en lumière en utilisant un plus grand nombre, soit pour avoir un numéro simple pour différencier des produits plus ou moins liés).
Un mot a la taille normalement utilisée pour les opérations entières (souvent exprimée en taille de l'entier ou des registres à usage général, c'est-à-dire pas d'adresse ou de données, de bus internes ou externes, pas de registres d'adresse, pas de registres d'index). Un problème courant est que lorsqu'une architecture est une évolution d'une précédente, on garde souvent le terme mot pour la taille initiale et on utilise "mot double" ou "mot quad" pour ce qui est un mot si vous regardez l'architecture dans isolement. Historiquement, les mots n'ont pas toujours été une puissance de deux (je connais les tailles: 12, 16, 18, 24, 32, 36, 60, 64 et je ne pense pas que mes connaissances soient exhaustives).
L'adressable par mot signifie que la mémoire est considérée comme un tableau de mots, et donc aucune unité plus petite n'a d'adresse individuelle.
Un octet a différentes définitions. Le terme a été introduit pour désigner l'unité utilisée dans le codage de caractères à une époque où le codage multi-octets n'existait pas. Il est souvent utilisé pour désigner la plus petite unité adressable pour une machine qui n'est pas adressable par mot (et tant que ce n'est pas un bit). Je ne pense pas que ces deux définitions aient jamais donné une taille différente. (ni une taille différente de 6 ou 8 bits). Pour une machine adressable par mot, cela signifie souvent une unité plus petite qu'un mot pour laquelle la machine est prise en charge (par exemple, le PDP-10 - un ordinateur adressable par mot de 36 bits - avait des instructions d'octet qui pouvaient manipuler n'importe quelle taille de 1 à 35 ou 36 bits). De nos jours, c'est aussi souvent 8 bits. Souvent, plusieurs de ces définitions sont pratiquement équivalentes.
Les octets adressables caractérisent les machines où la mémoire est considérée comme un tableau d'octets dans l'une des sens ci-dessus.
Le quartet AFAIK n'a été utilisé que pour des quantités de 4 bits.
Par exemple, quelqu'un pourrait concevoir un nouveau type de CPU et de mémoire et définir son octet sur 16 bits?
Oui, mais je ne sais pas si cela aurait beaucoup de sens de le faire si l'on conserve l'utilisation de l'autorité de certification pour utiliser l'octet pour quelque chose de plus petit que le mot. Avoir un processeur 16 bits adressable par mot sans prise en charge de quelque chose de plus petit qu'un mot peut être un bon choix pour un processeur à usage spécial.
Secondairement, quel est l'antonyme de ce mot que je recherche? Adressable par page, adressable par bloc?
Les bits adressables, les octets adressables et les mots adressables sont les seuls termes que j'ai vus utiliser. Cela n'a pas beaucoup de sens de ne traiter que des unités plus grandes que le mot au niveau architectural. L'adressage par mot n'est de nos jours utilisé que pour des processeurs spéciaux tels que DSP. Je ne pense pas que l'adressabilité des bits ait été utilisée pour autre chose qu'un usage spécial, à l'exception d'IBM Stretch.
À propos de votre nouvelle question principale
Quel est le terme précis pour le plus petit bloc de mémoire adressable?
Je n'en connais aucun utilisé en architecture informatique (l' octet a été utilisé pour quelque chose de plus petit dans les machines adressables par mot), mais c'est la définition utilisée par C pour l' octet .
Le Burroughs B1700 était adressable par bits (en fait, l'adresse faisait référence à l'espace entre les bits à partir duquel vous pouviez lire en avant ou en arrière un nombre arbitraire de bits). (Ce n'était donc pas seulement IBM's Stretch, qui était un échec.)
La B1700 a été conçue pour être la machine la plus flexible. Les applications n'étaient pas censées être écrites au niveau des bits, mais des environnements différents conçus pour différents styles d'application. Ces environnements ont été programmés en microcode, fournissant les moteurs de machines virtuelles. Chaque langue (systèmes SDL pour OS, COBOL pour les entreprises, FORTRAN pour COBOL) a été écrite dans un environnement microcodé distinct. Ainsi, l'architecture pourrait être adaptée à tous les futurs styles d'application.
Wayne Wilner, l'un des concepteurs, a fait valoir que d'autres machines de l'époque obligeaient les programmeurs à se coucher dans le lit procrustéen d'octets et de mots de taille fixe. Ce dont chaque environnement d'exécution avait vraiment besoin, c'était de structures de données adaptées à l'application. Malheureusement, la plupart des architectures de machines actuelles sont encore procrustiennes (et donc programmées dans des langages comme C qui exposent cette structure de machine, plutôt que de prendre en charge des structures orientées problème).
D'autres lectures sur cette machine fascinante et sa philosophie sont disponibles sur:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.590.2624&rep=rep1&type=pdf
et plus en détail:
http://ianjoyner.name/Files/Wilner.pdf
Alors pourquoi le B1700 n'est plus fabriqué?
Burroughs avait trois gammes principales d'ordinateurs, les grands systèmes B5000-B7000 (architecture ALGOL), les systèmes moyens B2000-B4000 (architecture COBOL) et les petits systèmes B1000 (architecture à votre goût).
Les gros systèmes étaient vraiment chers, jusqu'au B5900 qui a été microcodé sur un processeur bon marché pour fournir la pile stack ALGOL. Jack Allweis, le concepteur du B5900, a souligné que la grande architecture du système se réduisait ainsi à de petits ordinateurs, mais le B1700 a été conçu pour être bon marché et n'a pas évolué.
Ainsi, les B1700 à B1900, bien que très performants à l'époque, sont morts pour des raisons commerciales.
Les grands systèmes Burroughs sont toujours disponibles en tant que Unisys ClearPath MCP et fonctionnent même sur votre PC en tant qu'émulation.
Autre note de bas de page, l'IPC sur le B1700 était pénible entre différentes machines virtuelles, mais très sécurisé (comme les micro-noyaux d'aujourd'hui). Les grands systèmes exécutaient tous des processus dans le même environnement où les données pouvaient être partagées de manière sécurisée, mais IPC était direct. C'est quelque peu entre les architectures micro-noyau (Mach) et non-noyau (Linux). Cependant, le B5000 est une machine très sécurisée, mais fonctionne également bien.
La sécurité est actuellement le plus gros problème de l'industrie, et ces machines devraient vraiment être relancées et étudiées pour montrer la voie à suivre.
la source
Question principale: Quel est le terme précis pour le plus petit bloc de mémoire adressable?
J'ajouterai une autre réponse pour aborder cela d'une manière différente. Dans le matériel électronique, nous l'appelons le bit - chiffre binaire. Il s'agit d'une entité qui peut représenter deux valeurs quelconques. Nous pensons généralement en termes de 0 et 1, mais cela pourrait être 3 ou 4, 365 ou 266, -3 ou -4, voire 25 ou 37.
Tout système de signalisation peut être utilisé pour représenter ces valeurs - drapeau haut, drapeau bas, yeux ouverts, yeux fermés, + 5v, -5v. Ce n'est pas important.
Ce qui est important, c'est que, philosophiquement, nous représentons le plus petit nombre distinctif d'informations. Cela peut être activé, désactivé ou vrai, faux ou haut, bas ou 0, 1 - tout ce qui distingue deux états distincts. Nous pouvons mapper ces valeurs sur l'un des systèmes de signalisation ci-dessus et bien d'autres.
Maintenant, la question est, comment pouvons-nous tester et définir une si petite quantité d'informations individuellement? Comme je l'ai dit dans la réponse précédente, le B1700 a choisi de traiter directement cette plus petite quantité d'informations.
Cependant, la plupart des machines ont décidé de ne traiter que de plus grandes quantités d'informations. Prenons un groupe de quatre bits avec une seule adresse. Donc, si nous obtenons la valeur de 1011 à notre emplacement, comment tester le deuxième bit à partir de la gauche. Nous utilisons un masque: les tests 1011 et 0100 ne sont que le deuxième bit. Alors, comment pouvons-nous mettre le deuxième bit à 1? Un peu d'arithmétique du processeur indique que la valeur sera 15 ou 1111, de sorte que les quatre bits entiers sont réécrits en mémoire, même si nous n'avons vraiment défini qu'un seul bit.
Maintenant, cela n'est pas utile pour la plupart des applications. La plupart des applications représentent des données ou des informations, haut, bas, vrai, faux, ouvert, fermé.
Nous voulons dire des choses comme:
si ouvert alors ... sinon ... fin
ou plus probablement appliquer cela à une entité plus grande:
si la porte est ouverte alors - très probablement 'door.open' ... sinon ... end
«la porte est ouverte» illustre l'adressage hiérarchique. L'adressage du système principal donne à l'entité la porte, et la porte a son propre adressage qui donne accès à open (et peut-être à d'autres attributs).
La plupart des ensembles ont également plus de deux valeurs possibles (un ensemble avec une valeur ne change jamais et n'a donc même pas besoin de représentation, donc zéro bit). Pour ceux-ci, nous avons énuméré des ensembles, comme (brume jaune, verte, bleue, violette, rouge). Ceux-ci définissent des ensembles et des types et le nombre exact de bits requis est donné par le nombre de valeurs (log2 (nombre de valeurs)).
Ainsi, l'adressage optimal dépend vraiment de la taille de l'entité utilisée dans l'application - peut-être même des entités de taille variable. Mais dans la plupart des matériels, ces adresses doivent être traduites à la taille fixe définie par le matériel. Bien sûr, cela pourrait coûter du temps. Cela devrait également être quelque chose qu'un traducteur automatique fait (compilateur ou interprète), pas un programmeur, tout comme un tel système générerait du code pour tester et définir des bits comme ci-dessus (si les bits ne sont pas directement adressables).
Un point important ici est de ne pas penser en termes d'électronique - l'électronique n'est qu'un moyen vraiment bon et rapide de traiter les calculs. Il n'y a rien de magique dans le calcul électronique qui permet de faire des calculs que vous ne pourriez pas faire autrement. La magie n'est que dans la vitesse. C'est pourquoi les abstractions de bas niveau telles que les mécanismes d'adressage (pointeurs) de bits, d'octets, de mots ou de matériel ne sont vraiment pas très utiles.
la source
Notre système informatique utilise par défaut la mémoire adressable en octets. Sa seule cellule pointe vers des informations sur 8 bits. Et la taille des cellules ne dépend pas de la longueur du processeur. Dans la mémoire adressable par mot, une cellule pointe vers une information de mot, mais la longueur du mot dépend de la longueur du processeur. Lorsque nous utilisons des mots de mémoire adressable, cela crée une ambiguïté. Ainsi, notre ordinateur utilise par défaut une mémoire adressable en octets.
la source