[Architecture de l'ordi] Taille bus d'adresses, (Résolu)

Taille bus d'adresses, (Résolu) [Architecture de l'ordi] - ASM - Programmation

Marsh Posté le 26-02-2007 à 16:27:52    

Salut,
Je voudrais savoir est ce que c'est possible de trouvé la taille du bus d'adresse si on connais la taille de la memoire centrale ?
y a t il une relation ?
 
merci


Message édité par bad___day le 01-03-2007 à 16:39:07
Reply

Marsh Posté le 26-02-2007 à 16:27:52   

Reply

Marsh Posté le 26-02-2007 à 16:29:44    

aucune relation

Reply

Marsh Posté le 26-02-2007 à 16:39:51    

Harkonnen a écrit :

aucune relation


J'ai pourtant trouvé des questions de ce genre sur des sujet d'examen, sur le net !

 

EDIT: cf:
http://www-gtr.iutv.univ-paris13.f [...] ture/Exams
 Correction CC1 (2eme liens) par exemple.

 


Message édité par bad___day le 26-02-2007 à 16:57:40
Reply

Marsh Posté le 26-02-2007 à 16:44:36    

ton lien est foireux... quant au rapport entre la taille du bus d'adresses et la quantité de mémoire présente, je serais curieux de le connaitre (ou plutot de lire les arguments de ceux qui disent qu'il y en a un)

Reply

Marsh Posté le 26-02-2007 à 16:47:29    

voila, j'ai édité le lien.

 

Sinon je remet la question du lien directement ici:
Quelle doit être la taille du bus d'adresses d'un processeur 16 bit, pour qu'il puisse accéder à une mémoire de 8ko ?

  


En suivant ce que j'ai trouvé en cherchant sur google:
http://fr.wikipedia.org/wiki/Chip_ [...] pplication

Citation :

Suivant le nombre de fils que possède le bus d'adresse d'un microprocesseur, on peut déterminer la taille mémoire maximum qu'il peut adresser.

 

eig.unige.ch/~abdennad/education/sye/gestion-memoire/cours-gm.pdf

Citation :

taille du bus d%u2019adresse indique la taille de la mémoire centrale que le processeur peut. adresser. Il est, par exemple, inutile d%u2019avoir une mémoire supérieur à 32 octet si le bus d'adresses est inférieur à 32 bit

 

Il y a bien une relation donc... Mais je n'arrive pas à bien comprendre le truc !

 


Message édité par bad___day le 26-02-2007 à 17:42:59
Reply

Marsh Posté le 26-02-2007 à 17:08:22    

il y a une relation avec la taille mémoire maximum, mais pas avec la taille de la mémoire physiquement présente sur la machine.
tu peux très bien avoir un processeur 32 bits (donc en théorie capable d'adresser 4 Go de mémoire maximum) et n'avoir que 32 Mo de RAM sur ta machine.

Message cité 1 fois
Message édité par Harkonnen le 26-02-2007 à 17:25:23
Reply

Marsh Posté le 26-02-2007 à 17:20:03    

Arréte moi si je me trempe, mais,
Si on à un bus de taille de 16 ligne, ( dans une architecture 8086 par exemple ),
il y auras 2 puissance 16 possibilité de représenté des adresse différente ! . donc la mémoire centrale sera adresser de 0 à (2 puissance 16)-1
donc la taille de la mémoire centrale sera de 2 puissance 16 octets !

 

Non ?

 


Message édité par bad___day le 26-02-2007 à 17:25:03
Reply

Marsh Posté le 26-02-2007 à 17:23:35    

dépend de la taille de la plus petite unité adressable.

Reply

Marsh Posté le 26-02-2007 à 17:27:31    

Taz a écrit :

dépend de la taille de la plus petite unité adressable.


2 octet par exemple.
( la mémoire centrale sera donc divisé en deux bonks. un d'adresse paire et autre d'adresse impaire  ) dans notre exemple.

 

Alors ?

 

Message cité 1 fois
Message édité par bad___day le 27-02-2007 à 17:54:12
Reply

Marsh Posté le 26-02-2007 à 17:29:12    

Vas-y c'est intéressant ce que tu racontes. Et si c'est 36bits, tu nous refais le coup des paires/impaires ?

Reply

Marsh Posté le 26-02-2007 à 17:29:12   

Reply

Marsh Posté le 26-02-2007 à 17:31:12    

Sauf qu'il y a tjs la vielle astuce de l'adressage par banque, cf le C=64 ou plus récement dans le même genre PAE, ou l'on peut adresser une memoire physique plus importante que ce que permet le bus d'adresse du processeur (et ou on bascule entre les différentes banques par un mécanisme ad hoc).
 
edit: http://sta.c64.org/cbm64mem.html $0001 / Bits #0-#2


Message édité par tbp le 26-02-2007 à 17:37:10
Reply

Marsh Posté le 26-02-2007 à 17:35:20    

tiens, j'ai failli encore me faire griller, j'allais effectivement parler de la mémoire paginée

Reply

Marsh Posté le 26-02-2007 à 17:39:26    

Taz a écrit :

Vas-y c'est intéressant ce que tu racontes. Et si c'est 36bits, tu nous refais le coup des paires/impaires ?


Oué oué je sais , mais là je ne donnais qu'un exemple... enfin bref.
 
ok, donc tu voulais dire quoi par: trouvé la taille du bus d'adresse si on connais la taille de la mémoire, dépend de la taille de la plus petite unité adressable ?
Comment ça ? peut tu m'expliquer stp ?


Message édité par bad___day le 26-02-2007 à 17:54:34
Reply

Marsh Posté le 26-02-2007 à 17:47:48    

Harkonnen a écrit :

tiens, j'ai failli encore me faire griller, j'allais effectivement parler de la mémoire paginée


Hmm. La pagination c'est autre chose; mais vu que je ne suis pas certain de la terminologie (surtout en français) pour l'adressage par banque, je ne vais pas faire le pénible.
 
edit: finalement si, je vais faire mon pénible.
http://en.wikipedia.org/wiki/Bank_switching
http://en.wikipedia.org/wiki/Paging


Message édité par tbp le 26-02-2007 à 17:50:51
Reply

Marsh Posté le 26-02-2007 à 18:34:01    

Harkonnen a écrit :

tu peux très bien avoir un processeur 32 bits (donc en théorie capable d'adresser 4 Go de mémoire maximum) et n'avoir que 32 Mo de RAM sur ta machine.


Mais dans ce cas il y auras des lignes du bus d'adresses qui ne vont servir à rien , (c'est inutile!).
 

Reply

Marsh Posté le 27-02-2007 à 09:00:18    

bad___day a écrit :

Mais dans ce cas il y auras des lignes du bus d'adresses qui ne vont servir à rien , (c'est inutile!).


réflechis un peu :sarcastic:

Reply

Marsh Posté le 27-02-2007 à 16:00:09    

Harkonnen a écrit :

réflechis un peu :sarcastic:


pour trouvé que ... ?
 

Reply

Marsh Posté le 27-02-2007 à 16:18:38    

déjà ce ne sont pas "des lignes du bus d'adresses qui ne serviront à rien". ça n'a aucun sens de dire ça. que ta machine possède 32 Mo ou 4 Go, les adresses restent en 32 bits.
si je suis ta logique, ça veut dire qu'avec mes 32 Mo de RAM, je n'aurais que 15 lignes d'utilisées, donc que mes adresses mémoires seront codées en 15 bits. autant te dire que rien ne tournera sur ma machine....
baisser la taille de la RAM ne restreint juste que le nombre d'adresses disponibles, pas la largeur du bus

Reply

Marsh Posté le 27-02-2007 à 16:41:28    

Harkonnen a écrit :

déjà ce ne sont pas "des lignes du bus d'adresses qui ne serviront à rien". ça n'a aucun sens de dire ça. que ta machine possède 32 Mo ou 4 Go, les adresses restent en 32 bits.
si je suis ta logique, ça veut dire qu'avec mes 32 Mo de RAM, je n'aurais que 15 lignes d'utilisées, donc que mes adresses mémoires seront codées en 15 bits. autant te dire que rien ne tournera sur ma machine....
baisser la taille de la RAM ne restreint juste que le nombre d'adresses disponibles, pas la largeur du bus


Non !, en suivant ma logique,
Avec 15 ligne tu peut t'auras 32 Ko de RAM, et pas 32 Mo !
2 puissance 15 ==> 32768 octet.

Message cité 1 fois
Message édité par bad___day le 27-02-2007 à 16:45:37
Reply

Marsh Posté le 27-02-2007 à 16:47:15    

bad___day a écrit :

Non !, en suivant ma logique,
Avec 15 ligne tu peut t'auras 32 Ko de RAM, et pas 32 Mo !
2 puissance 15 ==> 32768 octet.


oui je me suis planté, je voulais dire 25 lignes, et pas 15. mais le raisonnement est identique.
de toutes façons, comme t'as dit Taz, ça dépend de la plus petite unité adressable. ici je pars du principe que c'est l'octet.

Reply

Marsh Posté le 27-02-2007 à 16:52:10    

Quand on dit "un processeur 32 bits", ou "un processeur 16 bits" ou .... ,
ca veut dire quoi exactement (concrètement).

 


Message édité par bad___day le 27-02-2007 à 16:53:43
Reply

Marsh Posté le 27-02-2007 à 16:52:52    

taille de registre

Reply

Marsh Posté le 27-02-2007 à 16:57:26    

Si on nous pose une question de ce genre:
Quelle doit être la taille du bus d'adresses d'un processeur, pour qu'il puisse accéder à une mémoire de 8ko ?
Comment peut on répondre, alors ?
 

Reply

Marsh Posté le 27-02-2007 à 17:07:35    

Question imprécise, il pourrait très bien ne pas avoir de bus d'adresse et pourtant accéder à 8k de mémoire (par un port ou n'importe quel mécanisme). On aurait vu plus étrange.
 
La taille maximale de bus d'adresse requise pour adresser 8k est 13.
edit: oups, oublié de parler d'octets.


Message édité par tbp le 27-02-2007 à 17:09:38
Reply

Marsh Posté le 27-02-2007 à 17:07:53    

si la mémoire est adressable octet par octet alors il y 2**13 adresses différentes donc il faut 13bits d'adresse.

Reply

Marsh Posté le 27-02-2007 à 17:17:52    

bad___day a écrit :

Si on nous pose une question de ce genre:
Quelle doit être la taille du bus d'adresses d'un processeur, pour qu'il puisse accéder à une mémoire de 8ko ?
Comment peut on répondre, alors ?


et si on plus on sais que c'est un processeur 16 bit ?
(donc la taille maximal d'un registre est de 2octet..)

 

Message cité 1 fois
Message édité par bad___day le 27-02-2007 à 17:23:39
Reply

Marsh Posté le 27-02-2007 à 17:21:36    

Taz a écrit :

si la mémoire est adressable octet par octet alors il y 2**13 adresses différentes donc il faut 13bits d'adresse.


 
Pour être précis, il faut 13Bits d'adresses Minimum [:aloy]


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
Reply

Marsh Posté le 27-02-2007 à 17:21:49    

bad___day a écrit :

et si on plus on sais que c'est un processeur 16 bit ?
(donc la taille maximal d'un registre est de 2octet..)


ah que c'est pas lié q

Reply

Marsh Posté le 27-02-2007 à 17:25:12    

ixemul a écrit :

Pour être précis, il faut 13Bits d'adresses Minimum [:aloy]


Il me semble que c'est un peu le sens du verbe falloir, sinon on pourrait préciser "en moyenne" ou "au maximum".


Message édité par Taz le 27-02-2007 à 17:26:03
Reply

Marsh Posté le 27-02-2007 à 17:31:35    

Ok, donc il faut 13 bits d'adresses (13 bit, taille du bus d'adresse ?) Minimum, si la mémoire est adressable octet par octet.

 
Taz a écrit :

ah que c'est pas lié q


Je ne comprend pas le sens de ta réponse !  :heink:  ,
je disais donc, qu'elle doit être la taille du bus d'adresses d'un processeur 16 bit, pour qu'il puisse accéder à une mémoire de 8ko ?
ce n'ai pas la même chose que tout à l'heur non?

 

Message cité 1 fois
Message édité par bad___day le 27-02-2007 à 17:34:49
Reply

Marsh Posté le 27-02-2007 à 17:49:50    

1. c pas parce que l'on rajoute un systeme de memory banks que l'on alonge la qté de memoire adressable
c comme si on rajoutait directement des fils au bus. ( c juste un supercherie pour pallier aux limites du 16 bits )
 
ex:  on a un bus d'adresse de  16 bit (64kb max) , on rajoute 4 fils qui permette de selectionner 16 banks
 
ca nous fait donc (64k * 16) ce qui donne 1Mo adressable
 
un bus de 20 bit aurait fait la meme chose 2^20 = 1Mo tout pareil
 
2. les adresse sont toujours formulées d'apres le nombre de bit du bus, peu importe le nombre de memoire dispo sur la machine
c pas parce que il n'y a que 4mo sur un 386 que seuls 22 fils seront utilisé , les autres seront simplement a zero ^^
 
3. comme ca  ete dit precedement la taille de la memoire max depent de la maniere dont le systeme accede aux données (taille de la plus petite unité)
 
en principe c 8 bit mais on pourrait imagine une machine qui accede directement par word.... (donc 2x plus de memoire adressable, par contre un gaspillage monstre...)
 
 
EDIT : (a verifier)
memoire max adressable = (2^( taille du bus en bits + taille des autre fils eventuels (bank switching par ex) )) *(taille de la plus petite unité/8)
ex : bus 16 bit , plus petite unité = 1 word = 16 bits
(2^16)* (16/8)= 131072 octets= 128kb accessible

Message cité 1 fois
Message édité par red faction le 27-02-2007 à 18:03:59
Reply

Marsh Posté le 27-02-2007 à 17:58:26    

bad___day a écrit :

Ok, donc il faut 13 bits d'adresses (13 bit, taille du bus d'adresse ?) Minimum, si la mémoire est adressable octet par octet.
 
 
Je ne comprend pas le sens de ta réponse !  :heink:  ,
je disais donc, qu'elle doit être la taille du bus d'adresses d'un processeur 16 bit, pour qu'il puisse accéder à une mémoire de 8ko ?
ce n'ai pas la même chose que tout à l'heur non?


c'est pas lié au processeur. Tu trouves sans problème aujourd'hui des machines avec des processeurs 64bits et des bus 48bits par exemple.

Reply

Marsh Posté le 27-02-2007 à 17:59:13    

red faction a écrit :


3. comme ca  ete dit precedement la taille de la memoire max depent de la maniere dont le systeme accede au données (taille de la plus petite unité)
 
en principe c 8 bit mais on pourrait imagine une machine qui accede directement par word.... (donc 2x plus de memoire adressable, par contre un gaspillage monstre...)


historiquement c'était pas du tout le principe.

Reply

Marsh Posté le 27-02-2007 à 18:03:16    

Taz a écrit :

historiquement c'était pas du tout le principe.


tu veut dire quoi par la?

Reply

Marsh Posté le 27-02-2007 à 18:06:34    

Taz a écrit :

ah que c'est pas lié q


Donc selon toi, celui qui a fait la 2eme question de l'exercice 2 de cet examen:
http://www-gtr.iutv.univ-paris13.f [...] ection.pdf
est un goret,
ou quoi ?
 

Reply

Marsh Posté le 27-02-2007 à 18:59:46    

red faction a écrit :

tu veut dire quoi par la?


bah que 12 ou 36 étaient des valeurs possibles que ce n'est qu'a pres un peu de réflexion que l'idée d'utiliser octet == 1 caractere n'est apparu.

Reply

Marsh Posté le 27-02-2007 à 19:03:37    

bah il a tout mélangeait. Dans sa réponse, on voit bien que la plus petite unité adressable est 16bits.

Reply

Marsh Posté le 27-02-2007 à 20:43:20    

Citation :

c'est pas parce que il n'y a que 4mo sur un 80386 que seuls 22 fils seront utilisé , les autres seront simplement a zéro ^^


Donc toujours mis à 0 ^^, (c%u2019est comme s'il ne seront pas utiliser, quoi).

 
Citation :

c'est pas lié au processeur


Corrigez moi si je dis des bêtises,
Pour moi c'est lié au processeur:
Quand on a un "processeur 16 bit", donc la taille de registres et de 2 octet, et donc une variable en mémoire centrale est codé sur 2 octet maximum
( MOV AX,Z  ; AX est de 2octet ---> Z est codé sur 2octet ), donc le bus d'adresse est de 16 ligne minimum pour pouvoir représenté une adresse sur 2octet !

 
Citation :

Tu trouves sans problème aujourd'hui des machines avec des processeurs
64bits et des bus 48bits par exemple.


Oui c'est vrai. Mais comment ça ce fait !? À quoi va servir une aussi grande taille de registre alors que le bus d%u2019adresse est de 48 bits ?
Si la taille des registres du processeur sont de 64bits, c'est bien pour contenir des adresse de variables qui peuvent allez jusqu'à 64bits ! (8octet) maximum !! (Je sais que c'est pas possible, mais en théorie je ne vois pas trop comment l%u2019expliqué).

 

Bon je sais que dans tout ça j'ai du dire des bêtises alors corrigé moi si c%u2019est le cas. (Vos mieux avoir les idées plus claire dés maintenant :) ).

  


Message édité par bad___day le 27-02-2007 à 20:43:54
Reply

Marsh Posté le 27-02-2007 à 22:02:12    

Citation :

Quand on a un "processeur 16 bit", donc la taille de registres et de 2 octet, et donc une variable en mémoire centrale est codé sur 2 octet maximum


pas nécessairement. cas du 8086
processeur 16 bits  adressage mémoire 20 bits
80286 processeur 16 bits adressage mémoire 24 bits.
pour palier à l'étroitesse des registres 16 bits, on y a accolé des registres segments pour former une adresse 20 bits ou un déplacement 16 bits dans une mémoire virtuelle.

Citation :

Oui c'est vrai. Mais comment ça ce fait !? À quoi va servir une aussi grande taille de registre alors que le bus d%u2019adresse est de 48 bits ?
Si la taille des registres du processeur sont de 64bits, c'est bien pour contenir des adresse de variables qui peuvent allez jusqu'à 64bits ! (8octet) maximum !! (Je sais que c'est pas possible, mais en théorie je ne vois pas trop comment l%u2019expliqué).


un registre ne sert pas qu'à faire de l'adressage mémoire. cela sert aussi à faire des calculs.
donc on peut très bien limiter l'adressage à 48 fils mais manipuler des données de 64 bits.
du temps du Z80 (processeur 8 bits) il était tout à fait possible de manipuler des données de 16 bits.
de même sur un AMD64 il est possible de traiter des données de 8 bits comme des données de 64 bits.
en gros on peut dire que pour caractériser un processeur, il faut
une taille registre
une taille de bus de données
une taille de bus d'adresses
une taille d'unité d'adressage (en général un octet)
exemple
Z80 : 8 8 16 8
8088 : 16 8 20 8
8086 : 16 16 20 8
80286 : 16 16 24 8
80386 : 32 32 32 8
80386SX : 32 16 24 8 (je n'en suis pas absolument sur)
68008 : 32 8 24 8
68000 : 32 16 24 8
68020 : 32 32 32 8
l'art est de combiner tout ça pour en sortir un processeur capable de faire ce que l'on veut à moindre coût et compatible si possible avec la génération précédante.
 
edit : histoire de rendre la chose plus confuse, j'avais oublié un détail
le 8080 processeur "8bits" utilisait 2 registres B+C ou D+E ou H+L pour former une adresse 16 bits.
le Z80 qui en est une évolution était considéré comme "8bits" mais avait 2 registres 16 bits IX & IY
on pourait donc dire que c'est la taille de l'accumulateur qui défini le type de processeur mais dans ce cas, le 680xx n'a pas d'accumulateur.  
conclusion : la dénomination d'un processeur en catégorie 8, 16, 32 ou 64 bits dépend de la taille maximum des registres accessibles en assembleur capable de faire les opérations logique et, ou inclusif, ou exclusif.


Message édité par db__ le 28-02-2007 à 13:26:23
Reply

Marsh Posté le 27-02-2007 à 22:59:30    

merci pour ces chouettes détails.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed