1

la numérotation des lignes d'adresses commence par A1 pourquoi?

2

C'est une bonne question et je vous remercie de l'avoir posée.
Les droits inaliénables du troll :
1) le droit d'avoir raison
2) le droit d'être péremptoire
3) le droit de ne pas lire
4) le droit de ne pas répondre
5) le droit d'être de mauvaise foi
6) Autant pour moi / Faignant / Vivent Tintin et Milou

3

Bienvenue à toi aussi.

Sinon, comme ça ça fait vraiment penser à une question pour un devoir ou autre, et donc on va te laisser trouver l'explication comme un grand. C'est assez évident en plus.

4

bon, vu que ça se trouve un peu partout : a0 est absent parcque les versions d'origine ne disposaient pas d'assez de pattes pour se payer ce luxe. /LDS et /UDS sont là pour ça...
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

5

Rha le 68000 j'avais oublié ce détail #łove#
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

6

vince (./4) :
bon, vu que ça se trouve un peu partout : a0 est absent parcque les versions d'origine ne disposaient pas d'assez de pattes pour se payer ce luxe. /LDS et /UDS sont là pour ça...

Oui et non, si tu n'as pas assez de place pour placer un un signal A0 tu n'en à pas pour placer deux signaux /LDS et /UDS.

Disons que le bus de donnée du 68k est en 16 bits, il n'est donc pas "utile" d'avoir un A0 puisqu'il ne lit que des mots de 16 bits. En interne il est capable de se passer de l'octet fort s'il n'en à pas besoin (opérande .B) et les deux signaux supplémentaires sont là pour accéder à des des couples de périphériques 8 bits pour simuler un bus 16 bits (genre 2 eproms 8 bits pour la ROM)

Kochise
avatar
Si Dieu m'a de nouveau fait homme, cette fois il m'a pas raté : marcher sur l'eau et dupliquer les pains, ça marche p'us :/

7

Kochise (./6) :
(genre 2 eproms 8 bits pour la ROM)


pas besoin, tu en met un sur les bit 0 a 7, l'autre de 8 a 15
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

8

./6 : tu sais je dis ça, c'est un souvenir de la lecture de la doc du 68000, à une époque où la france n'avait jamais gagné la coupe du monde foot cheeky
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

9

LDS et UDS servent à optimiser l'accès à la mémoire.

En général on n'utilise jamais des mémoires 16 bits, toujours des mémoires 8 bits.

Le bus du 68k peut être configuré selon deux modes: 8 ou 16 bits.
* Si on configure le bus du CPU en mode 8 bits, D8 à D15 ne sont jamais utilisés. Dans ce cas, LDS se comporte comme A0, UDS est toujours son complément, les signaux A1..AN du CPU sont connectés aux signaux A1..AN des deux mémoires.
Le Chip select de la RAM est calculé à partir du décodage des bits d'adresses uniquement.

* Si par contre on configure le bus en mode 16 bits, on utilise LDS et UDS comme Chip select en plus du décodage d'adresses. On connecte les A1..AN du CPU aux signaux A0..AN-1 des mémoires.

il y a alors deux cas:

Pour un accès de largeur 8 bits (par exemple move.b) seul l'un des deux UDS ou LDS est utilisé, pour adresser l'unde des deux mémoires. D0..D7 ou D8..D15 sont utilisés selon la parité de l'adresse. L'autre DS est le complément du premier.

Pour un accès de largeur 16 bits (move.w) les deux signaux sont assertés en même temps pour adresser les deux banques, et le CPU lit les données simultanément sur D0..D15.

Pour un accès 32 bits, il faut 2 accès 16 bits.

10

squalyl (./9) :
Si on configure le bus du CPU en mode 8 bits,


Heu, rapelle moi comment tu configure ça sur un 68000 ?
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

11

Si je ne m'abuse, il n'y a pas de "mode 8 bits"...
Le bus physique du 68000 est sur 16bits de A1 à A15.
La logique interne en 32 bits (d'où processeur 16/32 bits). Les signaux LDS (low Data Signal) et UDS (Upper Data Signal) permettent d'adresser, d'aiguiller sur le bus physique et dans la ram, les mots longs (32bits) de poids faible dans une rangé de mémoire (LDS) et dans l'autre les mots de poid fort (UDS).

Si je ne m'abuse...

12

la largeur du bus de données correspond aux nombre de bits de données, donc

-en mode 8 bits: utilisation de D0 à D7 exclusivement
-en mode 16 bits: utilisation de D0 à D7 et D8 à D15.

Le nombre de bits d'adresses, définissant la quantité de mémoire adressable, est une autre histoire :-)

UDS et LDS représentent uniquement l'état "démultiplexé" du dernier bit d'adresse, donc ils font une différence entre 8 et 16 bits. Ils sélectionnent les octets de poids fort et faible d'un demi-mot (16 bits) et non les demi mots d'un mot long (32 bits).

Sinon il faudrait 4 lignes UUDS, ULDS, LUDS, LLDS (par exemple) pour pouvoir sélectionner 4 banques de mémoire 8 bits différentes, une pour chaque octet du mot de 32 bits. Mais dans ce cas, la ligne d'adresse A1 ne serait pas présente smile

sur le 68000 un accès 32 bits est obligatoirement réalisé en deux "cycles de bus".


le fait que les registres internes soient larges de 32 bits est encore une troisième histoire smile

on appelle le 68k 16/32 bits car son bus de données est large de 16 bits, mais il a des registres de 32 bits.

PS: je ne me prononce pas pour les CPU 68k plus récents style 68020 et supérieurs.

13

Bizzare, moi j'ai souvenir que le bus d'adresse du 68000 est sur.... 24bits et non 16 tongue

C'est le bus de donné qui est sur 16bits.

avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

14

15

Ok
Bon je retourne aux cours du Féroce Lapin wink

16

Il y a un rapport entre vos A0/D0 et les registres du même nom ?

17

An => ligne d'adresse numéro n (un ligne = un bit pour faire simple)
Dn => ligne de données numéro n

donc oui c'est accessible "directement" (il s'agit du bus d'adresses et du bus de données) mais non ce ne sont pas les registres D0 et A0 (qui font chacun plus de un bit ^^)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

18

À part le fait que A0 concerne les adresses et D0 les données, non smile

(A0 contient le bit 0 de l'adresse en cours d'accès, et D0 le bit 0 des données lues/écrites ; ça n'est pas lié à un registre en particulier)

EDIT : cross
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

19

Ok, merci. smile