"en pratique, chaque instruction est ensuite décomposée en micro-instructions qui suivent les principes de RISC."
Le ISC de RISC et CISC, veut dire "instruction set computer". On parle du jeu d'instruction et pas du tout de la micro-architecture interne. Le but premier des mips et sparc, les 1ers RISC, était de réduire la taille du pipeline en ayant l'unité de load/store bien séparé de l'ALU. Le nombre réduit de mode d'adressage (le moyen de choper les data, ici par registre quasi exclusivement) était aussi un avantage de simplicité.
"Decode → Execute → Memory" n'est clairement pas un "risc".
Aujourd'hui, le x86 est toujours plus complexe, et il me semble que la grammaire de l'assembleur x86 est ambiguë. Le décodeur est donc un monstre, ce qui permet à intel de mettre une sacré barrière à l'entré sur son marché. De l'autre coté le PowerPC dispose de plein de mode d'adressage, qui' l'éloigne aussi du risc. La taille des instructions des nouveaux ARM est mixte 16/32 bits.
On peut lire que les principes RISC ont "gagné", mais je pense surtout que les RISC sont devenus des CISC.
"simplement « sauter » l'étage mémoire du pipeline"
C'est simplement impossible car la mémoire peut aussi générer des données. Ce genre de bypass implique que l'étage suivant à des entrées multiples, et c'est tout, sauf simple.
"VLIW : Cependant, le bilan énergétique peut être désastreux (après tout, toutes les instructions sont exécutées, qu'elles soient utiles ou pas !)."
C'est même pire que ça, puisque le cpu peut passer sont temps à exécuter des instructions inutiles. Le fait de ne pas pouvoir faire correctement d’ordonnancement statique par le compilateur, en sans doute la raisons principale de l'échec de l'itanium qui devait prendre le relève du x86 pour le 64 bits. Mais il fallait des caches internes monstrueux à l'itanium pour aller vraiment plus vite que les Xeon (sauf en flottant).
" Les processeurs de type SPARC utilisent ces registres pour accélérer les changements de contexte entre threads/processus."
Perdu, les banc de registres à fenêtre , c'est pour les appels de fonctions. Sur SPARC, il y a 32 registres, 8 globaux et 3 paquets de 8 glissant sur une fenêtre de 128 registres ou plus. A chaque call, tout se décale de 8 registres, cela permet d'offrir 8 registres tout frais, sans faire de sauvegarde dans la pile (moins besoin de registre "callee save"). Par contre, une fois qu'il n'y plus de place, il y a une interruption pour tout sauver en mémoire. sur de gros programme avec beaucoup d'appel, cela peut tuer l'avantage de la simplification des fonctions.
# quelques trucs !
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Où vont les supercalculateurs ? D’où on vient, quels sont les problèmes, où l’on va (1re partie). Évalué à 7. Dernière modification le 05 juillet 2013 à 16:01.
"en pratique, chaque instruction est ensuite décomposée en micro-instructions qui suivent les principes de RISC."
Le ISC de RISC et CISC, veut dire "instruction set computer". On parle du jeu d'instruction et pas du tout de la micro-architecture interne. Le but premier des mips et sparc, les 1ers RISC, était de réduire la taille du pipeline en ayant l'unité de load/store bien séparé de l'ALU. Le nombre réduit de mode d'adressage (le moyen de choper les data, ici par registre quasi exclusivement) était aussi un avantage de simplicité.
"Decode → Execute → Memory" n'est clairement pas un "risc".
Aujourd'hui, le x86 est toujours plus complexe, et il me semble que la grammaire de l'assembleur x86 est ambiguë. Le décodeur est donc un monstre, ce qui permet à intel de mettre une sacré barrière à l'entré sur son marché. De l'autre coté le PowerPC dispose de plein de mode d'adressage, qui' l'éloigne aussi du risc. La taille des instructions des nouveaux ARM est mixte 16/32 bits.
On peut lire que les principes RISC ont "gagné", mais je pense surtout que les RISC sont devenus des CISC.
"simplement « sauter » l'étage mémoire du pipeline"
C'est simplement impossible car la mémoire peut aussi générer des données. Ce genre de bypass implique que l'étage suivant à des entrées multiples, et c'est tout, sauf simple.
"VLIW : Cependant, le bilan énergétique peut être désastreux (après tout, toutes les instructions sont exécutées, qu'elles soient utiles ou pas !)."
C'est même pire que ça, puisque le cpu peut passer sont temps à exécuter des instructions inutiles. Le fait de ne pas pouvoir faire correctement d’ordonnancement statique par le compilateur, en sans doute la raisons principale de l'échec de l'itanium qui devait prendre le relève du x86 pour le 64 bits. Mais il fallait des caches internes monstrueux à l'itanium pour aller vraiment plus vite que les Xeon (sauf en flottant).
" Les processeurs de type SPARC utilisent ces registres pour accélérer les changements de contexte entre threads/processus."
Perdu, les banc de registres à fenêtre , c'est pour les appels de fonctions. Sur SPARC, il y a 32 registres, 8 globaux et 3 paquets de 8 glissant sur une fenêtre de 128 registres ou plus. A chaque call, tout se décale de 8 registres, cela permet d'offrir 8 registres tout frais, sans faire de sauvegarde dans la pile (moins besoin de registre "callee save"). Par contre, une fois qu'il n'y plus de place, il y a une interruption pour tout sauver en mémoire. sur de gros programme avec beaucoup d'appel, cela peut tuer l'avantage de la simplification des fonctions.
"La première sécurité est la liberté"