Heureusement, ce ne sont pas les 'personnes lambda' qui font tourner le monde, mais les gens formés...
Si seulement c'était vrai...
Jean-Marc Bourguet
Emmanuel Delahaye writes:
? Sur un tas de DSP, et m^me les plus récents, un byte vaut 16 ou 32 bits...
J'avoue avoir remarqué ce phénomène récemment et ça m'a semblé une
aberration, étant donné que dans l'esprit d'une personne lambda un byte c'est un octet soit 8 bits.
Ben non, pourquoi ? Une personne connaisssant les bases de l'informatique sait qu'un byte est plus petit objet adressable d'une architecture donnée.
La définition classique c'est un caractère. C'est d'ailleurs aussi la définition du C. Oui, elle impose en plus la possibilité d'avoir un pointeur vers les bytes, mais rien n'empèche que ce soit une structure "pointeur vers un mot, indice du caractère dans le mot" que l'architecture ne connaît pas. Si ce n'est pas le choix fait par tes architectures de DSP favorite, c'est d'ailleurs vraissemblablement parce qu'on y utilise tellement peu de caractères que ça ne vaut pas la peine d'introduire cette complexité mais j'ai l'impression que si on devait y traiter des IO de caractères, on verrait pas mal de problèmes pratiques résultant de ce choix.
D'ailleurs, il y a un certain nombre d'architecture où ta définition de byte le rendrait d'ailleurs équivalent au bit (trois exemples qui me viennent en tête: IBM Stretch, PDP-10, 8051; les deux premières avaient des "bytes de tailles variables" et la dernière un byte de 8 bits; la structure mémoire du 8051 est d'ailleurs assez intéressante).
Classiquement, il y avait deux types de machines: celles adressables par byte et celles adressables par mot. Les premières destinées aux charges "commerciales" où les manipulations de caractères joue un rôle important et où les calculs se faisaient en décimal sur des chaînes de caractères, les secondes destinées aux charges "scientifiques" où les manipulations de caractères ne jouent pas un rôle prépondérant et les calculs se faisaient en binaire sur des mots. Naturellement quand on a un espace d'adresse de 256 K mots (ce qui est beaucoup à l'époque) de 60 bits mettre un caractère par mot est stupide, d'autant plus qu'un jeu de caractères typique est un jeu 6 bits... donc on compacte les données même si on les décompacte parfois temporairement (c'est vrai aussi pour les autres données que les caractères) et il y a parfois des instructions pour agir sur des sous-partie du mot de taille fixe ou variable dans le cas au moins du Stretch et du PDP-10 et le mot byte designe une de ces sous-parties.
A ma connaissance, la première architecture avec la structure mémoire actuelle (adressable par byte mais avec une structure de mots par dessus) est l'IBM 360... qui a des bytes de 8 bits.
Pour revenir au C, les contraintes sur les noms externes sont telles qu'on peut mettre un nom externe encodé avec un jeu de caractère 6 bits dans un mot de 36 bits...
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Emmanuel Delahaye <emdel@YOURBRAnoos.fr> writes:
? Sur un tas de DSP, et m^me les plus récents, un byte vaut 16 ou 32
bits...
J'avoue avoir remarqué ce phénomène récemment et ça m'a semblé une
aberration, étant donné que dans l'esprit d'une personne lambda un byte
c'est un octet soit 8 bits.
Ben non, pourquoi ? Une personne connaisssant les bases de
l'informatique sait qu'un byte est plus petit objet
adressable d'une architecture donnée.
La définition classique c'est un caractère. C'est
d'ailleurs aussi la définition du C. Oui, elle impose en
plus la possibilité d'avoir un pointeur vers les bytes, mais
rien n'empèche que ce soit une structure "pointeur vers un
mot, indice du caractère dans le mot" que l'architecture ne
connaît pas. Si ce n'est pas le choix fait par tes
architectures de DSP favorite, c'est d'ailleurs
vraissemblablement parce qu'on y utilise tellement peu de
caractères que ça ne vaut pas la peine d'introduire cette
complexité mais j'ai l'impression que si on devait y traiter
des IO de caractères, on verrait pas mal de problèmes
pratiques résultant de ce choix.
D'ailleurs, il y a un certain nombre d'architecture où ta
définition de byte le rendrait d'ailleurs équivalent au bit
(trois exemples qui me viennent en tête: IBM Stretch,
PDP-10, 8051; les deux premières avaient des "bytes de
tailles variables" et la dernière un byte de 8 bits; la
structure mémoire du 8051 est d'ailleurs assez
intéressante).
Classiquement, il y avait deux types de machines: celles
adressables par byte et celles adressables par mot. Les
premières destinées aux charges "commerciales" où les
manipulations de caractères joue un rôle important et où les
calculs se faisaient en décimal sur des chaînes de
caractères, les secondes destinées aux charges
"scientifiques" où les manipulations de caractères ne jouent
pas un rôle prépondérant et les calculs se faisaient en
binaire sur des mots. Naturellement quand on a un espace
d'adresse de 256 K mots (ce qui est beaucoup à l'époque) de
60 bits mettre un caractère par mot est stupide, d'autant
plus qu'un jeu de caractères typique est un jeu 6
bits... donc on compacte les données même si on les
décompacte parfois temporairement (c'est vrai aussi pour les
autres données que les caractères) et il y a parfois des
instructions pour agir sur des sous-partie du mot de taille
fixe ou variable dans le cas au moins du Stretch et du
PDP-10 et le mot byte designe une de ces sous-parties.
A ma connaissance, la première architecture avec la
structure mémoire actuelle (adressable par byte mais avec
une structure de mots par dessus) est l'IBM 360... qui a des
bytes de 8 bits.
Pour revenir au C, les contraintes sur les noms externes
sont telles qu'on peut mettre un nom externe encodé avec un
jeu de caractère 6 bits dans un mot de 36 bits...
A+
--
Jean-Marc
FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
? Sur un tas de DSP, et m^me les plus récents, un byte vaut 16 ou 32 bits...
J'avoue avoir remarqué ce phénomène récemment et ça m'a semblé une
aberration, étant donné que dans l'esprit d'une personne lambda un byte c'est un octet soit 8 bits.
Ben non, pourquoi ? Une personne connaisssant les bases de l'informatique sait qu'un byte est plus petit objet adressable d'une architecture donnée.
La définition classique c'est un caractère. C'est d'ailleurs aussi la définition du C. Oui, elle impose en plus la possibilité d'avoir un pointeur vers les bytes, mais rien n'empèche que ce soit une structure "pointeur vers un mot, indice du caractère dans le mot" que l'architecture ne connaît pas. Si ce n'est pas le choix fait par tes architectures de DSP favorite, c'est d'ailleurs vraissemblablement parce qu'on y utilise tellement peu de caractères que ça ne vaut pas la peine d'introduire cette complexité mais j'ai l'impression que si on devait y traiter des IO de caractères, on verrait pas mal de problèmes pratiques résultant de ce choix.
D'ailleurs, il y a un certain nombre d'architecture où ta définition de byte le rendrait d'ailleurs équivalent au bit (trois exemples qui me viennent en tête: IBM Stretch, PDP-10, 8051; les deux premières avaient des "bytes de tailles variables" et la dernière un byte de 8 bits; la structure mémoire du 8051 est d'ailleurs assez intéressante).
Classiquement, il y avait deux types de machines: celles adressables par byte et celles adressables par mot. Les premières destinées aux charges "commerciales" où les manipulations de caractères joue un rôle important et où les calculs se faisaient en décimal sur des chaînes de caractères, les secondes destinées aux charges "scientifiques" où les manipulations de caractères ne jouent pas un rôle prépondérant et les calculs se faisaient en binaire sur des mots. Naturellement quand on a un espace d'adresse de 256 K mots (ce qui est beaucoup à l'époque) de 60 bits mettre un caractère par mot est stupide, d'autant plus qu'un jeu de caractères typique est un jeu 6 bits... donc on compacte les données même si on les décompacte parfois temporairement (c'est vrai aussi pour les autres données que les caractères) et il y a parfois des instructions pour agir sur des sous-partie du mot de taille fixe ou variable dans le cas au moins du Stretch et du PDP-10 et le mot byte designe une de ces sous-parties.
A ma connaissance, la première architecture avec la structure mémoire actuelle (adressable par byte mais avec une structure de mots par dessus) est l'IBM 360... qui a des bytes de 8 bits.
Pour revenir au C, les contraintes sur les noms externes sont telles qu'on peut mettre un nom externe encodé avec un jeu de caractère 6 bits dans un mot de 36 bits...
A+
-- Jean-Marc FAQ de fclc: http://www.isty-info.uvsq.fr/~rumeau/fclc Site de usenet-fr: http://www.usenet-fr.news.eu.org