On n'en finit pas de s'interroger sur le mystérieux processeur A4 qui équipera l'iPad (lire : Dans les petits secrets de l'A4). Erik Sherman de Bnet a débusqué pas moins de neuf brevets déposés par Apple et qui ont tous trait à l'architecture d'un processeur, et plus particulièrement sur la vectorisation des données et le calcul parallèle.
L'avantage du calcul parallèle, c'est qu'un processeur peut exécuter plusieurs tâche simultanément. L'inconvénient, c'est qu'il faut que le code soit prévu pour le permettre. Sur Mac, Apple a mis au point différentes technologies du côté logiciel, comme Grand Central Dispatch et OpenCL, mais ces brevets portent sur l'architecture matérielle même des processeurs. Apple a en effet mis au point une technologie qui permet au processeur de déterminer lui-même quelles tâches peuvent être calculées en parallèle, ce qui évite d'avoir à modifier le code de manière spécifique. De cette façon, les applications s'exécutent plus rapidement.
Difficile de dire si l'A4 bénéficie de ces fonctionnalités, mais il est probable qu'elles finissent par se retrouver tôt ou tard dans les appareils d'Apple.
Vos réactions
le concept est vraiment génial sur papier, mais en tant que programmeur, j'espère qu'il y a une possibilité de désactivé pour une application donnée
@waxime [05.03.2010 - 19:19]
pourquoi donc "désactiver" ce qui est du rôle du processeur ?
les proceseurs intels font déjà du découpage / réarrangement du code qu'on leur balance
qu'on appelle cela "hyperthreading", "pipelining" ou autre, les processeurs prennent des décisions que vous en tant que "développeur de logiciel" ne connaissez pas. Décisions prises à chaud.
Ainsi, les processeurs peuvent décider d'exécuter une partie de votre programme avant l'autre (avant que cela ne soit visible pour l'utilisateur), de se dire que statistiquement la réponse attendue est déjà connue et commencer à calculer en amont. si finalement le résultat esperé est faux, ils reviennent en arrière. Dans la majorité des cas on gagne du temps.
Le processeur découpe une chaine d'instructions en sous-blocs et va essayer de "parralléliser" autant qu'il se peut dans les diverses unités de calculs qu'il a sa disposition ( et donc + un cpu a des unités de calculs adaptés en nombre, + il peut s'organiser, mais + il consomme. Le multi-coeur est la version extrème de ce principe).
oui les processeurs prennent des décisions sans vous le dire !
dans la pratique, on peut en général désactiver des fonctionnalités de cpus, comme on peut désactiver les unités de calculs vectoriels. Mais votre utilisateur ne sera jamais heureux de cela. (genre, désactiver VT des cpus intels parce que orf.. on sait pas trop.. c'est nouveau, on pourrait le faire payer à un tarif pro...)
-
Les compilateurs eux même décident de comment ils vont réellement écrire le code machine. une boucle peut être transformée en une exécution linéaire si le compilateur sait que cela est plus rapide. peu importe si le développeur avait écrit un while (i < 3) {.... en C.
Les compilateurs _transforment_ votre code, ils ne respectent pas forcément votre organisation, le but est de faire faire l'exact calcul que vous avez exprimé, le plus _vite_ possible.
oomu quel intérêt de désactiver cette fonctionnalité ??
Les compilateurs actuels optimisent bien le code, mais ne le rendent pas totalement parallélisable (j'avais vu une étude il y a pas mal de temps qui concluait qu'avec les archi d'OS actuels le nombre optimal de proc est autour de 2, au sens rapport nombre de proc/performance)
Mais là il s'agirait carrément d'une architecture matérielle prévue spécialement pour le parallèle... Comme le CELL ? Qui, à ce que j'ai cru comprendre, au niveau API, est un peu pénible...
Après si il y a un domaine où apple excelle, c'est la qualité du logiciel. Je leur fais donc confiance pour sortir un truc plutôt classe.
"Apple a en effet mis au point une technologie qui permet"
D'un côté on a des brevets et de l'autre ... une conclusion.
Question : est ce que vous avez analyser en détail les brevets en question afin de voir s'ils décrivent des éléments matériellement exact? Vu que les brevets américains permettent de breveter des idées et des concepts sans avoir besoin de faire la preuve de l'existance d'un matériel ou d'un logiciel correspondant, ils ne sont pas la preuve de la mise au point d'une technologie. Ils sont juste la preuve qu'on a eu l'idée d'une technologie donnée.
Conclure à la mise au point d'une technologie en se basant uniquement sur le dépot de brevet efectué aux états unis, c'est vendre la peau de l'ours avant de l'avoir tuer.
Je commence à me demander si macgeneration à pour prétention de (re)devenir un site d'information sérieux ou s'ils veulent devenir un site de pationnés qui rajoutent leur petite analyse perso aux nouvelles et rumeurs qui circulent sur le net.
Merci oomu pour ton commentaire. C'est intéressant à savoir :)
ce que je voulais dire, c'est qu'une application qui est déjà threader et que le nombre de thread est déjà compter au maximum, en ajouter des nouveau va créer une concurrence sur le processeur.
Perso j'ai pas compris la différence entre cette "nouvelle" technologie et les processeurs scalaires ? (qui existent depuis plusieurs décennies).
@waxime non pas forcément, chaque core a plusieurs unités de calculs, chacune est spécialisée dans une tâche et peuvent être utilisées en même temps (par exemple, un calcul arithmétique et un 'bit shifter')
D'après Ars Technica, le A4 est un bête ARM Cortex: http://arstechnica.com/apple/news/2010/02/meet-the-a4-the-ipads-brain.ars
C'est déjà le CPU du N900.