COMPTOIR
register

Samsung dégaine son Cortex A15

Samsung, un des concurrents énergique des Tegra3, Qualcomm et tutti quanti, vient d'annoncer son son nouveau CPU de la gamme Exynos. Il est le premier à être architecturé autour d'un CPU ARM Cortex A15 dual core et d'une puce graphique nouvelle venant de PowerVR, cette dernière saura rappeler des souvenirs aux geeks des années 2000 !

 

Concrètement, le modèle du jour, l'Exynos 5250, est capable de bombarder 14 milliards d'instructions par seconde à 2 GHz (attention ce sont des DMIPS), quasiment le double de ce que le Cortex A9 à 1.5 GHz pouvait donner de son côté, soit 7500 DMIPS. Ce n'est pas tout puisque la bande passante mémoire est doublée avec 12.8GB/s. Quant à la puce graphique, elle peut afficher jusqu'au 2560x1600, et est presque 4 fois plus puissante que celle embarquée avec le Cortex A9. L'Exynos 5250 a été gravé en 32nm utilisant la technologie High Metal k, il n'est qu'au stade du sampling, et sa production de masse est prévue pour le second trimestre 2012. Ca s'annonce chaud pour les tablettes !

 

samsung_exynos_5250_cortexa15.jpg  

Un poil avant ?

50 CPU pour Battlefield 3, mais guère plus hein....

Un peu plus tard ...

Le caméléon embauche, avez-vous le profil ?

Les 43 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un ragoteur temporaire, le Lundi 05 Décembre 2011 à 11h36  
Dr. Reinhold P. Weicker, Siemens AG, Vice Chairman of the Spec Open Systems Steering Committee, 1999 :

"Although the Dhrystone benchmark that I published in 1984 was useful at the
time," said Weicker, "it cannot claim to be useful for modern workloads and
CPUs because it is so short, it fits in on-chip caches, and fails to stress the
memory system. Also, because it is so short and does not read from an input file,
special compiler optimizations can benefit Dhrystone performance more than
normal program performance. In embedded computing, EEMBC (pronounced 'embassy') is collecting larger real-life embedded-computing programs
as the basis for benchmarks."
par Thibaut G., le Dimanche 04 Décembre 2011 à 22h20  
par Un ragoteur inspiré le Dimanche 04 Décembre 2011 à 21h59
Grossière erreur de Thibaut : "1 million instructions per second is not the same as a Dhrystone MIP"

2.0GHz dual-core Cortex A15 : 14 000 DMIPS
1.5GHz dual-core Cortex A9 : 7 500 DMIPS

L'unité de mesure de la performance d'un processeur embarqué (ARM, MIPS...) est le Dhrystone MIPS ou DMIPS.

Le nombre Dhrystone est le nombre d'itération par seconde d'un code de benchmark
(dévelopé en 1984 par Reinhold P. Weicker). Pour obtenir le DMIPS, on divise le Dhrystone par 1757 (le nombre de Dhrystones par seconde obtenu avec un VAX 11/780, qui est une machine 1 MIPS).
oui ce sont des DMIPS, je le précise du coup dans la news à la suite de ton intervention, mais le com certifie bien 14 milliards d'instructions par secondes, je n'ai pas dit que c'étaioent les mêmes que pour les CPU dits classiques hein
par Un ragoteur "ArthaX", le Dimanche 04 Décembre 2011 à 22h06  
par patator_bzh le Dimanche 04 Décembre 2011 à 22h01
Non, c'est grâce au pipeline que l'on peut monter en fréquence et avoir 1 instruction/cycle au maximum. On reste cependant à une seule instruction terminée par cycle d'horloge au maximum si le nombre d'unités de traitement est égale à 1. Certes, plusieurs instructions sont en cours d'exécution en même temps, mais une seule arrive à son terme par cycle.

Le moyen de monter ce nombre d'instructions par cycle d'horloge est de mettre plusieurs unités de traitement en parallèle (pas plusieurs coeurs!). On trouve alors deux types principaux d'archis: les superscalaire (le HW s'occupe de gérer les dépendances) et le VLIW où tout le boulot est fait par le compilateur (je passe sur l'EPIC d'Intel... <img src='http://www.forumsducomptoir.com/public/style_emoticons/<#EMO_DIR#>/ph34r.png' class='bbc_emoticon' alt='' /> ).

Toutes les techniques évoquées sont là pour exploiter pleinement l'ILP des programmes (Instruction Level Parallelism
Tu as raison j'ai tort.
@++
par patator_bzh, le Dimanche 04 Décembre 2011 à 22h01  
par Un ragoteur "ArthaX" le Dimanche 04 Décembre 2011 à 18h56
Non, Sandy Bridge est à 9 ou 10 IPS (Instruction Par Seconde) par cœur.
Le Cortex-A9 est à ~2,1 IPS par cœur.
Le Phenom II est à 7 à 8 IPS par cœur.
Sinon tu as ça !
C'est grâce aux pipelines que l'on peut dépasser l'instruction/cycle.
@++
Non, c'est grâce au pipeline que l'on peut monter en fréquence et avoir 1 instruction/cycle au maximum. On reste cependant à une seule instruction terminée par cycle d'horloge au maximum si le nombre d'unités de traitement est égale à 1. Certes, plusieurs instructions sont en cours d'exécution en même temps, mais une seule arrive à son terme par cycle.

Le moyen de monter ce nombre d'instructions par cycle d'horloge est de mettre plusieurs unités de traitement en parallèle (pas plusieurs coeurs!). On trouve alors deux types principaux d'archis: les superscalaire (le HW s'occupe de gérer les dépendances) et le VLIW où tout le boulot est fait par le compilateur (je passe sur l'EPIC d'Intel... <img src='http://www.forumsducomptoir.com/public/style_emoticons/<#EMO_DIR#>/ph34r.png' class='bbc_emoticon' alt='' /> ).

Toutes les techniques évoquées sont là pour exploiter pleinement l'ILP des programmes (Instruction Level Parallelism
par Un ragoteur inspiré, le Dimanche 04 Décembre 2011 à 21h59  
Grossière erreur de Thibaut : "1 million instructions per second is not the same as a Dhrystone MIP"

2.0GHz dual-core Cortex A15 : 14 000 DMIPS
1.5GHz dual-core Cortex A9 : 7 500 DMIPS

L'unité de mesure de la performance d'un processeur embarqué (ARM, MIPS...) est le Dhrystone MIPS ou DMIPS.

Le nombre Dhrystone est le nombre d'itération par seconde d'un code de benchmark
(dévelopé en 1984 par Reinhold P. Weicker). Pour obtenir le DMIPS, on divise le Dhrystone par 1757 (le nombre de Dhrystones par seconde obtenu avec un VAX 11/780, qui est une machine 1 MIPS).
par Un ragoteur "ArthaX", le Dimanche 04 Décembre 2011 à 20h26  
Je viens de comprendre ton erreur de compréhension Chambolle. Tout ce que tu dis a du sens, mais à une exception près.
Effectivement au mieux on a une instruction par cycle, ça c'est OK.
Mais grâce au pipelines, tu peux exécuter n instructions en parallèle. Si ton pipeline est de 17 étages, tu peux exécuter 17 instructions en parallèle et tu aurais 17 IPS. Mais malheureusement il y a des instructions de branchement qui viennent gripper le bon fonctionnement des pipelines.
Pour améliorer la situation, il y l'architecture "Out Of Order" et l'unité de prédiction.
Pour info le Cortex-A15 semble avoir entre 3,5 et 4 IPS par cœur.
@++
par chambolle, le Dimanche 04 Décembre 2011 à 20h13  
par Un ragoteur "ArthaX" le Dimanche 04 Décembre 2011 à 18h56
Non, Sandy Bridge est à 9 ou 10 IPS (Instruction Par Seconde) par cœur.
Le Cortex-A9 est à ~2,1 IPS par cœur.
Le Phenom II est à 7 à 8 IPS par cœur.
Sinon tu as ça !
C'est grâce aux pipelines que l'on peut dépasser l'instruction/cycle.
@++
Non, le pipeline ne peut pas depasser une instrucution par cycle. Lit la page de wikipedia, va voir sur les pages des constructeurs, lit les manuels de reference des processeurs avec les jeux d'instructions.
Cela permet d'amortir le cout ds instructions mais pas de depasser.
L'un des problemes majeurs est l'acces a la memoire et la vitesse de la lumiere (ou le deplacement d'une onde), donc l'ordi attend et il faut faire quelque chose en attendant.
par Un ragoteur "ArthaX", le Dimanche 04 Décembre 2011 à 18h56  
Non, Sandy Bridge est à 9 ou 10 IPS (Instruction Par Seconde) par cœur.
Le Cortex-A9 est à ~2,1 IPS par cœur.
Le Phenom II est à 7 à 8 IPS par cœur.
Sinon tu as ça !
C'est grâce aux pipelines que l'on peut dépasser l'instruction/cycle.
@++
par chambolle, le Dimanche 04 Décembre 2011 à 17h43  
par Un ragoteur "ArthaX" le Dimanche 04 Décembre 2011 à 17h22
1/ On découpe une instruction en plusieurs étapes (14 ou 17 ou 22 ou ...)
2/ ...
Cela ressemble au pipeline des processeurs.
Mais je vous recommande de lire sur wikipedia :
http://fr.wikipedia.org/wiki/Pipeline_(informatique)
Cela sert essentiellement à éviter d'attendre et à factoriser des opérations. Mais on ne descend pas en dessous du cycle par opération, meme en moyenne.
C'est comme l'hyperthreading : on essaie d'eviter de ne rien faire (dans ce cas en simulant 2 proc)
par Un ragoteur "ArthaX", le Dimanche 04 Décembre 2011 à 17h38  
(Suite)
Si tu as une longueur de pipeline de 17 étapes, tu peux exécuter 17 instructions par seconde.
Mais malheureusement il y a des instruction qui nécessitent de faire des sauts. Dès que ça arrivent dans la "pipeline", on ne peut plus traiter les instructions à la chaine comme ça, car le résultat d'une branche peut changer le résultat d'une instruction en cour de traitement. Il faut défaire tout ce qu'il y a dans ta "pipeline" du travail pour rien.

C'est pour ça que l'on a inventé le "Out Of Order". Ça permet de réarranger l'ordre des instructions reçu par le CPU.
Le Pentium IV avait une longueur de pipeline de plus de 20 étages, et c'est ça qui l'a perdu. Il passait trop de temps à défaire ce qu'il a fait.
@++
par Un ragoteur "ArthaX", le Dimanche 04 Décembre 2011 à 17h22  
par chambolle le Dimanche 04 Décembre 2011 à 11h09
Est-ce que quelqu'un peut m'expliquer comment un CPU qui bat à 2Ghz donc 2 milliards de fois par seconde, peut faire 14 milliards d'instructions par seconde ?
C'est comme le petit tailleur c'est 7 d'un coups ?
1/ On découpe une instruction en plusieurs étapes (14 ou 17 ou 22 ou ...)
2/ Le CPU commence par traiter la première étape de l'instruction (1/n ème du cycle)
3/ Le CPU traite la deuxième étape de l'instruction, mais les transistors qui ont traité la première étape de l'instruction sont libre de traité la première instruction du second instruction (2/n ème du cycle).
4/ Arrivée à la n/n éme étapes du cycle, donc 1Hz, tu as finis de traiter la première instruction, et (n-1) étapes de la deuxième instruction, et (n-2) étapes de la troisième instruction,...

(à suivre)
par patator_bzh, le Dimanche 04 Décembre 2011 à 15h27  
Et je rajouterais aussi qu'en Superscalaire, c'est le processeur lui-même qui va choisir les instructions qu'il va exécuter en même temps (le programmeur n'a rien à dire, contrairement aux SSE). Tu penses que c'est "à la marge", mais en fait, même s'ils parlent de performance pic, c'est loin d'être "à la marge". Il y a énormément de techniques mises en oeuvre pour casser les dépendances entre instructions d'un même programme (que ce soit des méthodes mises en oeuvre par les compilateurs ou directement par le processeur lui-même, cf renommage de registres).