Bonjour,
Il ne faut pas comparer le 68000 avec un 64 bits car le 68000 est un 16 bits.
Comme je l'ai dit plus haut, les modes d'adressages du 68000 sont très nombreux et il y a également moins d'instructions machines.
Mais je pense que sur la série des PC le registre accumulateur est unique.
Il faut savoir que tous les registres de données (D0 à D7 pour le 68000) du 68000 sont des accumulateurs.
Une souplesse absolue. De plus, les programmeurs préfèrent nettement programmer en 68000 que sur leur équivalent des PC et il y a probablement une raison.
Maintenant je ne connais pas trop l'assembleur des PC.
Mais merci pour ces précisions.
Debug Chr(0)
Re: Debug Chr(0)
Suite...
En te citant : DI et SI étant respectivement deux registres "Destination Index" et "Source Index".
Il est impossible de choisir d'autres registres.
Sur le 68000 tous les registres sont possibles pour ce cas de figure, et non pas seulement sur les registres DI et SI seulement possible sur les PC.
Donc quand même une grande souplesse.
Ce qui signifie, selon ce que tu veux dire, que si on veut utiliser d'autres registres, on est bien obliger de passer par un registre intermédiaire.
En te citant : DI et SI étant respectivement deux registres "Destination Index" et "Source Index".
Il est impossible de choisir d'autres registres.
Sur le 68000 tous les registres sont possibles pour ce cas de figure, et non pas seulement sur les registres DI et SI seulement possible sur les PC.
Donc quand même une grande souplesse.
Ce qui signifie, selon ce que tu veux dire, que si on veut utiliser d'autres registres, on est bien obliger de passer par un registre intermédiaire.
Re: Debug Chr(0)
Ah ben c'est clair !pat a écrit :Une souplesse absolue.
Tu me fais évoquer le 64bits, mais pas du tout : 16 bits uniquement, à moins qu'on évoque aussi le Zilog Z8001.
Code : Tout sélectionner
Z8001 (1979) = 18000 transistors 4MHZ 8192KB
8086 (1978) = 29000 transistors 5MHZ 1024KB
68000 (1979) = 68000 transistors 2MHZ 16384KB
Z8001 : 110 instr. 48 broches
8086 : 101 instr. 40 broches
68000 : 82 instr. 64 broches
8086
68000
Ces 3 processeurs ont un point commun : une ALU de 16 bits.
Alors... Pour une ALU... D'un point de vue électronique, je suis étonné...
Par bit, un simple registre RS requiert 4 portes, chaque porte 4 transistors. Donc 16 transo par bit. E/S = 2/2.
00 INVALID
01 OR {NOT A}
10 AND A
11 NOP
00 INVALID
01 OR A
10 AND {NOT A}
11 NOP
On rajoute un sélecteur en sortie, 4 portes de plus (discriminant, masque fort, masque faible, concentrateur), donc 16 transo de plus.
Total 32 transo E/S = 3/1
000 INVALID (*1)
001 OR {NOT A} (*1)
010 AND A
011 NOP
100 INVALID
101 OR A
110 AND {NOT A} (*2)
111 NOP (*2)
(*1) 2 bits d'op nous intéressent : on les inverse, 2 portes, 4 transo
Total 36 transo
(^1) (*2) On fourre deux fonction inversée ET pour récupérer nos 2 bits semblables (00 ou 11) ce qui nous fait 2 exceptions. 2 portes, 4 transo
Total 40 transo
On protège nos deux entrées avec l'exception 0... +8 transo
Total 48 transo
000 NOP
001 NOP
010 AND A
011 NOP
100 INVALID
101 OR A
110 AND {NOT A} (*2)
111 NOP (*2)
On protège nos deux entrées avec l'exception 1... +24 transo (attention à l'inversion des exceptions)
Total 72 transo
000 NOP
001 NOP
010 AND A
011 NOP
100 INVALID
101 OR A
110 NOP
111 NOP
Plus au coeur, on interface un second registre de 1 bit pour faire une bascule, 11 portes, 44 transo. (ÇA inverse les 2 entrées de poids faible)
Total, 116 transo.
(pas d'évolution)
000 NOP
001 NOP
010 OR A
011 INVALID (*3)
100 NOP
101 AND A
110 NOP
111 NOP (*3)
(*3) : On met une sécu sur les 2 bits de poids faible 3 portes 12 transo
Total 128 transo
000 NOP
001 NOP
010 OR A
011 NOP
100 NOP
101 AND A
110 NOP
111 NOP
Et on asservit la commande de notre bascule via nos 3 exceptions, par 3 états hauts. 2 portes, 8 transo
000 NOP
001 XOR A
010 OR A
011 NOP
100 NOP
101 AND A
110 NOP
111 NOP
Total 34 portes, 136 transos.
Voilà, avec 136 transistors, on a 3 fonctions asynchrones, AND, OR et XOR sur un registres d'un bit.
C'est donc 1088 transistors par registre d'un octet, pour assurer 3 fonctions asynchrones.
Comment ils peuvent avoir si peu de transistors (le 68000, qui est le plus garni, c'est l'équivalent de 64 registres de 1 octets qui disposent de 3 fonctions logiques asynchrones, ni plus ni moins), et assurer autant d'instructions ?
Re: Debug Chr(0)
A priori le 68000 s'est fait gruger par le 8088, une sorte de 8086 low-cost.
En gros, Intel avait un business avec IBM sur une technologie mémoire à l'époque, les cartes à bulles.
IBM, dans son projet de démocratisation de l'ordinateur, préférait le 68000 au 8086. Mais intel a présenté un 8086 qui s'est pris un coup de marteau : le 8088. L'avantage était dans le coût du matériel de l'époque, les cartes d'extension, les mémoires et les bus.
Tout était moins cher en 8 bits, et plus ou moins déjà rôdé dans les domaines de la production et de la commercialisation.
Le 16 bits, c'était un risque à prendre en terme d'échelle de commercialisation. IBM pouvait le faire, mais Intel a rappelé qu'ils avaient un contrat sur des cartes mémoire à bulle, donc a proposé son 8088, un 8086 16 bits, enfermé dans un circuit intégré 8 bits, qui ne nécessitait pas de lourds investissements dans la production électronique des cartes mère et d'extension.
C'est ainsi que le 8088, CPU bien moins puissant (deux fois moins de débit de données que le 8086) que le 68000, a pris le dessus commercial sur le 68000.
Logiciellement, le 8088 est strictement identique au 8086 (mais plus lent) donc c'est le standard Intel qui s'est démocratisé.
En gros, Intel avait un business avec IBM sur une technologie mémoire à l'époque, les cartes à bulles.
IBM, dans son projet de démocratisation de l'ordinateur, préférait le 68000 au 8086. Mais intel a présenté un 8086 qui s'est pris un coup de marteau : le 8088. L'avantage était dans le coût du matériel de l'époque, les cartes d'extension, les mémoires et les bus.
Tout était moins cher en 8 bits, et plus ou moins déjà rôdé dans les domaines de la production et de la commercialisation.
Le 16 bits, c'était un risque à prendre en terme d'échelle de commercialisation. IBM pouvait le faire, mais Intel a rappelé qu'ils avaient un contrat sur des cartes mémoire à bulle, donc a proposé son 8088, un 8086 16 bits, enfermé dans un circuit intégré 8 bits, qui ne nécessitait pas de lourds investissements dans la production électronique des cartes mère et d'extension.
C'est ainsi que le 8088, CPU bien moins puissant (deux fois moins de débit de données que le 8086) que le 68000, a pris le dessus commercial sur le 68000.
Logiciellement, le 8088 est strictement identique au 8086 (mais plus lent) donc c'est le standard Intel qui s'est démocratisé.
Re: Debug Chr(0)
Bonjour,
Je n'y connais rien en électronique, donc je ne pourrais pas répondre à ce que tu indiques.
Au sujet du 8088, tu me fais penser au 6809, un vieux 8 bits à vocation 16 bits.
Je préfère la pensée du 68000 car j'apprécie la simplicité, la souplesse et l'intuitivité du processeur.
Cela correspond parfaitement à ma personnalité.
Les instructions machines des PC me semblent beaucoup plus rigides que le 68000.
Et j'aime particulièrement la souplesse.
On ne peut pas tout avoir, c'est chacun son goût.
Merci donc pour tes explications très intéressantes !!!
Je n'y connais rien en électronique, donc je ne pourrais pas répondre à ce que tu indiques.
Au sujet du 8088, tu me fais penser au 6809, un vieux 8 bits à vocation 16 bits.
Je préfère la pensée du 68000 car j'apprécie la simplicité, la souplesse et l'intuitivité du processeur.
Cela correspond parfaitement à ma personnalité.
Les instructions machines des PC me semblent beaucoup plus rigides que le 68000.
Et j'aime particulièrement la souplesse.
On ne peut pas tout avoir, c'est chacun son goût.
Merci donc pour tes explications très intéressantes !!!