IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Superscalaire, Pipeline, out of order, in-order


Sujet :

Assembleur

  1. #1
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut Superscalaire, Pipeline, out of order, in-order
    Pour ceux que cela étonne je sais sûrement tout ce qui sera dit mais j'aimerais des confirmations (qui sait j'ai peut être loupé un truc dans l'explication théorique).

    Alors première question le superscalaire c'est toujours par bloc de 2 instructions non ?
    Pour out of order , in-order , on gros en out of order(instruction dans le désordre) c'est pour en gros évité le pipeline stall ?

    En faite je me suis posé c'est question a cause de la prog PS2 et du code asm fourni :
    -j'ai pas regardé en détails , mais j'ai pas l'impression que le compilo fait attention que le proc soit superscalaire (en gros par bloc de 2 instructions).
    -le code devrait prendre en compte la pipeline , la aussi a première vu il met le code bien dans l'ordre (et si vous avez deja optimisé un proc avec pipeline vous les mettez pas forcément dans l’ordre pour éviter les stall).
    -sur un x86 , la pipeline n'est pas forcément pris en compte (de je que je vois la aussi avec le compilo) donc sur un compilo GCC x86 cela veut dire sûrement qu'il suppose que mon CPU est en OoO (out of order) ?


    Merci les copains ! (je pense que tout ceux qui posteront je les connais ).

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 440
    Points : 43 082
    Points
    43 082
    Par défaut
    Alors première question le superscalaire c'est toujours par bloc de 2 instructions non ?
    Je dirais non
    L'IBM RS/6000 a un degré de 4, mais c'est un vieux processeur. Sur les CPU récents, je ne sais pas. Je pense que c'est surtout le cas dans les processeurs ARM. Je crois que les x86 sont à 3.

    Le out-of-order, c'est justement la possibilité d’exécuter les instructions dans le désordre.
    Regardes le shéma ici.
    Séquençage des instructions dans un processeur doté d'un pipeline à 5 étages. Il faut 9 cycles pour exécuter 5 instructions. À t = 5, tous les étages du pipeline sont sollicités, et les 5 opérations ont lieu en même temps.
    Si tu as 5 calculs différents, ils seront effectués en même temps, mais si les calculs sont dépendants les uns des autres, tu perds le bénéfice de la parallélisation. En gros, le CPU devient bookmaker.

    le code devrait prendre en compte la pipeline , la aussi a première vu il met le code bien dans l'ordre
    Je pense que c'est dans le pipeline du CPU que le code est réordonné, le rôle du compilateur étant de faire en sorte de remplir le pipeline au mieux.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Je dirais non
    L'IBM RS/6000 a un degré de 4, mais c'est un vieux processeur. Sur les CPU récents, je ne sais pas. Je pense que c'est surtout le cas dans les processeurs ARM. Je crois que les x86 sont à 3.
    Et donc la différence fondamental entre un processeur superscalaire et un avec pipeline ?
    Ce qui me fait penser a cela c'est wikipedia il indique que le EE (le proc de la PS2) a une puissance du FPU de 0.6 GFLOPS pour 300 MHZ et cette puissance ne peut se faire que si 2 instruction sont exécuter en même temps.
    C'est un peu la définition du superscalaire non ?

    Sur wikipedia :
    Une architecture superscalaire contient plusieurs pipelines en parallèle. Il est possible d'exécuter plusieurs instructions simultanément. Sur un processeur superscalaire de degré 2, deux instructions sont chargées depuis la mémoire simultanément. C'est le cas des processeurs récents conçus pour maximiser la puissance de calcul. Notons toutefois qu'en général, chaque pipeline est spécialisé dans le traitement d'un certain type d'instruction : aussi seules des instructions de types compatibles peuvent être exécutées simultanément.
    J'ai je que j'ai pu voir effectivement , donc faudrait que je lise la doc pour voir quel sont les instructions qui peuvent se faire en parallèle (mais la doc pour le EE core n'indique rien de spécifique la dessus).


    Citation Envoyé par chrtophe Voir le message
    Je pense que c'est dans le pipeline du CPU que le code est réordonné, le rôle du compilateur étant de faire en sorte de remplir le pipeline au mieux.
    Malheureusement non , la doc est assez clair , le CPU ne réordonne rien du tout il peut faire des pipeline stall , il indique d’ailleurs assez clairement les cas de figure ou cela arrive.
    J'ai pas forcément regardé en détails le code assembleur fourni par le compilo (ou plutôt je me suis pas amusé a 'émuler de tête' la pipeline) ; mais quand un code asm prend la pipeline en compte c'est pas aussi lisible

    Je note au cas ou j'ai codé sur un processeur superscalire le VU0 et VU1 en assembleur ,et ce processeur prend on compte 2 instructions qui se font en parallèle , j'ai augmenté de 100% les performance en prenant en compte la pipeline ( au cas ou tu pense que le CPU réorganise ).
    La petite histoire j'avais des perf médiocre en codant normalement en asm , quand j'ai pris en compte la pipeline , j'ai pu évité tout les pipeline stall , mais cela rend le code très bordélique .

  4. #4
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 440
    Points : 43 082
    Points
    43 082
    Par défaut
    Attention, un co-processeur dédié,comme il y en a dans la PS2 aura un comportement spécifique.

    Dans un processeur super-scalaire, une instruction est divisée en plusieurs sous-instructions, traitées chacune à un étage différent. Une instruction parcourera tous les étages. 1 étage=1 cycle. Mais l’intérêt c'est que quand l'instruction 1 est au niveau du second étage, l'instruction 2 est dans le premier, etc. Les exécutions seront parallèles quand il y a plusieurs unités d’exécution des sous-instructions. Des étages peuvent être sautés si il n'ont pas d’intérêt pour l'instruction traitée.

    Pour le cas du x86, avec les instructions SIMD (MMX), 1 commande traitera simultanément plusieurs données en parallèle.

    à voir ceci :
    https://en.wikipedia.org/wiki/Superscalar_processor

    nstructions are issued from a sequential instruction stream
    The CPU dynamically checks for data dependencies between instructions at run time (versus software checking at compile time)
    The CPU can execute multiple instructions per clock cycle
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  5. #5
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par chrtophe Voir le message
    Dans un processeur super-scalaire, une instruction est divisée en plusieurs sous-instructions, traitées chacune à un étage différent. Une instruction parcourera tous les étages. 1 étage=1 cycle. Mais l’intérêt c'est que quand l'instruction 1 est au niveau du second étage, l'instruction 2 est dans le premier, etc. Les exécutions seront parallèles quand il y a plusieurs unités d’exécution des sous-instructions. Des étages peuvent être sautés si il n'ont pas d’intérêt pour l'instruction traitée.
    ça je le sais bien , mais cela n'est pas le cas avec un processeur avec une pipeline ? (sans qu'il soit superscalaire pour autant).
    De plus le co processeur de la PS2 fonctionne exactement comme tu le décris , donc pas si spécifique que ça

    Mais ce n'est pas cela que j'ai mal compris , mais plutôt quand le processeur superscalaire exécute 2 etage en même temps.
    comme le montre ce dessin :
    Nom : 300px-Superscalarpipeline.svg.png
Affichages : 1230
Taille : 16,9 Ko
    Je partait dans le principe qu'il exécute par défaut 2 instruction a la fois (enfin 2 étage) , c'est le cas du VU0 et VU1 qui sont superscalaire.
    Mais sur le EE core principal je n'en suis pas si certain que cela (ou alors il exécute 2 instruction par étage avec des instruction spécifique).

  6. #6
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour
    Je vais essayer d’apporter du mieux que je peux certaines réponses à votre question. Pour commencer, je répondrais ceci : sur votre image, vous avez une architecture superscalaire de degré 2 (ou encore pour faire simple deux étages) donc cela veut dire que deux instructions sont exécutées en même temps.

    Alors pour comprendre, je vais essayer de faire simple sous Excel par la figure ci-dessous avec un pipeline register et apporter quelque explication.
    Nom : Etatpe_1.PNG
Affichages : 1243
Taille : 12,3 Ko

    Normalement, pour un pipeline standard, il faut un temps d'horloge de T= 5 pour 1 instruction.
    Sur la figure, ci-dessus, on a un pipeline register à 5 étages donc pour 5 instructions, on a un temps T = 9 cycles pour toutes les exécuter. À temps T= 5; les 5 instructions s’exécutent en parallèle donc tous les étages sont en cours d'exécution (plus précisément 5 instructions, mais à des étapes différentes) résultat le processeur sera parfaitement capable de terminer une instruction par cycle.
    Sur votre figure, vous avez une architecture superscalaire de degré 2 ce qui veut dire que deux instructions peuvent s’exécuter en parallèle ainsi donc à temps = 5; 10 instructions peuvent s’exécutent en parallèle, mais à des étapes différentes. Résultat, il faut 9 cycles pour exécuter 10 instructions (voir ci-dessous)
    Nom : Etatpe_2.PNG
Affichages : 1354
Taille : 19,5 Ko

    Pour répondre à votre question sur: une architecture superscalaire de degré 2 deux instructions sont chargés en mémoire "si je peux dire ainsi" et a un temps T toute l'unité de calcul du processeur sera sollicité pour admettant 10 instructions s’exécuter en parallèle à des étapes différentes et donc 9 cycles suffisent pour exécuter 10 instructions.
    à bientôt
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  7. #7
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Citation Envoyé par sambia39 Voir le message
    Pour répondre à votre question sur: une architecture superscalaire de degré 2 deux instructions sont chargés en mémoire "si je peux dire ainsi" et a un temps T toute l'unité de calcul du processeur sera sollicité pour admettant 10 instructions s’exécutent en parallèle à des étapes différentes et donc 9 cycles suffisent pour exécuter 10 instructions.
    Donc si j'ai bien compris , un processeur superscalaire prend toujours 2 instructions ?
    Le seul que je connais par cœur c'est le co processeur de la PS2, mais la doc est clair il lit obligatoirement par bloc de 2 instructions et effectivement comme le dit votre description 10 instruction sont exécuter en 9 cycle si on évite les pipeline stall , sinon chaque instruction fait entre 4 et 9 cycle sans parallélisme.

    Mais sur le Processeur principal ,la doc est moins parlante sur ce sujet,je voulais donc savoir quand je lit le code source en asm de mon compilateur, je dois le lire par bloc de 2 ou pas ?
    En faite la question me servira aussi pour d'autre processeur comme le SH4 de la dreamcast.

    D’ailleurs les pipeline stall sont tous particulier pour chaque processeur ?
    Par exemple (c'est juste un exemple bidon , je vise aucun assembleur en particulier ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ADD r0,r1,r2
    ADD r5,r4,r0
    Ceci créer un pipeline stall sur le VU et donc l'instruction ne fait pas 1 cycle mais bel et bien 4-5 cycle.
    C'est pareil pour tout les processeurs scalaire/pipeline ?

  8. #8
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 440
    Points : 43 082
    Points
    43 082
    Par défaut
    Donc si j'ai bien compris , un processeur superscalaire prend toujours 2 instructions ?
    Je crois que le x86 a trois niveaux. Ca dépend de son architecture.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  9. #9
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonsoir
    Citation Envoyé par Kannagi Voir le message
    je dois le lire par bloc de 2 ou pas ?
    Cela dépend des IPL que vous avez sur l’architecture, je dirais que oui si vous avez un IPL à 2 degrés (pipeline register a deux degrés donc deux étages) oui puisqu’il y a forcément deux instructions qui sont exécutées simultanément si c'est trois ça sera trois.

    Citation Envoyé par Kannagi Voir le message
    Donc si j'ai bien compris , un processeur superscalaire prend toujours 2 instructions ?
    Attention : un processeur superscalaire peut ne pas toujours avoir deux instructions chaque fabricant d’architecture a le choix du degré de ces IPL (mais ça des contraintes également) enfin si je ne me trompe pas ça peut être 2 à 5, il faut se renseigner auprès du constructeur de l’architecture pour en être sur de plus pour de l’embarquer de mémoire pas plus de 3 voir maximum 4. a vérifier auprès des constructeurs.

    Citation Envoyé par Kannagi Voir le message
    D’ailleurs les pipeline stall sont tous particulier pour chaque processeur ?
    Je dirais oui les pipelines stall peuvent être particulier à chaque processeur et sont très compliqué de mon point de vue, mais a vérifié. Cependant il me semble que la gestion des conflits de données est pratiquement la même "a vérifié également". Exemple avec votre code assembleur si on considère qu’il y a conflit de données du genre la seconde instruction ADD a besoin du résultat R0 avant de s'exécuter il doit alors attendre que le calcule soit fini donc il est impossible d’exécuter cette tâche tant que la premier l'instruction ADD n'aura pas terminé son cycle d'exécution avant une étape et donc une solution consisterais à effectuer des insertions de bulle dans le pipeline (donc un IPC en diminution) ou utiliser des courts-circuits, mais là encore je ne connais pas très bien les architectures scalaires pour vous dire que cela est commun à tous d'autres utiliseront probablement des algorithmes de branchement mieux encore CPU vectoriel , mais encore une fois j'en suis pas être sûr il faut vous renseigner auprès du constructeur pour en être sûr.

    à bientôt
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  10. #10
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    ok donc j'avais mal compris ce que chrtophe me disais ,ok un proc superscalaire peut exécuter de 2 à 5 étage en même temps (cela dépend du proc dans mon cas c'est 2 ).

    mais là encore je ne connais pas très bien les architectures scalaires pour vous dire que cela est commun à tous d'autres utiliseront probablement des algorithmes de branchement mieux encore CPU vectoriel , mais encore une fois j'en suis pas être sûr il faut vous renseigner auprès du constructeur pour en être sûr.
    Pour moi les CPU vectoriel sont des processeurs qui peuvent faire plusieurs addition ou multiplication sur une instruction (bref pour la 3D c'est très utile).
    Si je poste ici c'est bien parce que j'espere avoir un retour de personne expérimenté sur les processeurs scalaires
    Et pour le constructeur ben comme je l'ai dit il ne détaille pas pour le CPU principal quand il y'a un pipeline stall , donc je demandais si c'est particulier au proc ou qu'il y'a une règle général.

    A vrai dire le but est d’être sur , je vérifierai tout ceci sur une machine réel au cas ou (mais bon c'est très chiant je prefere éviter ).

    Sinon je vous remercie de me répondre , mais je trouve cela inutile de me faire un cours sur la pipeline , je sais bien comment cela fonctionne , mes questions sont plus dans les détails.

    Mes questions de base était sur la pipeline stall et donc cela vient une autre question (par curiosité) , le compilateur devra dans mon cas du ADD , mettre des instruction entre les deux ADD (genre un ou plusieurs LOAD) donc le compilateur devra mettre le code dans le désordre pour éviter tout pipeline stall , et ma question est : ce que fait un processeur OoO non ?

  11. #11
    Membre expérimenté
    Avatar de sambia39
    Homme Profil pro
    No Comment
    Inscrit en
    Mai 2010
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : No Comment
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2010
    Messages : 543
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Non ce que fait le CPU OoO est tout autre d’ailleurs, il exécutera les instructions dans l’ordre a la quel, le compilateur a généré les codes donc cela peut être dans l’ordre ou dans le désordre ; entre les deux, l’exécution peut-être dans un autre ordre donc toutes les instructions sont "définis" de manière dynamique. Et attention la conception d’un CPU Oo0 diffère des autres ce n'est pas la même chose de mon point de vue, mais encore à vérifier, je dirais même que le compilateur ne pourrait pas prédire certaines erreurs sans CPU OoO

    Le mécanisme des pipeline stall vont être utiliser pour dire au CPU que pendant le temps "Ta" à "Tb" il y a aucun changement d’état mais arrivé à "Tb" la reprise des traitements doit s’effectuer. "je n’en suis pas sûr" mais il peut tout aussi bien mettre des LOAD, autres, ou faire de l’optimisation de code voir de la prédiction mais a vérifié.

    Désolé pour un cours sur les pipelines ne s'était pas de mon intention, je voulais juste me faire comprendre et apporter une réponse avec un exemple en partant du plus simple.

    PS: Si dans vos investigations, vous avez des réponses ( voir d'autre personne), je serais très intéressé pour évincer mes doutes merci et à bientôt
    Celui qui peut, agit. Celui qui ne peut pas, enseigne.
    Il y a deux sortes de savants: les spécialistes, qui connaissent tout sur rien,
    et les philosophes, qui ne connaissent rien sur tout.
    George Bernard Shaw

  12. #12
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 140
    Points
    10 140
    Par défaut
    Je reviens pour compléter les informations lu a droite et a gauche , et pour ma part j'en conclu que les processeur OoO ne sont bel et bien que des optimisations du in order.
    (Je le souligne parce que c'est différent que de parler d'augmentation , théoriquement un même processeur in order ou Out of order auront la même puissance de calcul).

    Exécution dans le désordre : en gros fait bel et bien ce qu'on fait en in order manuellement , ça veut dire en gros éviter que le processeur se 'bloque' .
    Exécution spéculative : et un souci qui arrive souvent en in order si vous faire un cmp , l'instruction suivante est exécuter (et du coup suivant les cas on est souvent tenté de mettre un ou plusieurs nop , ou d’exécuter partiellement le prochain if ).
    Renommage de registres : Arrive la aussi souvent en superscalaire in order , plus vous avez d'instruction plus vous avez de chance que le CPU se bloque , le renommage des registres a pour but d'éviter ce souci.

Discussions similaires

  1. Order by + order by cast
    Par candjoy dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/05/2015, 09h04
  2. [RegEx] preg_match range out of order
    Par bastien dans le forum Langage
    Réponses: 2
    Dernier message: 18/06/2010, 09h38
  3. [Checkstyle] 'static' modifier out of order with the JLS suggestions.
    Par zolive dans le forum Qualimétrie
    Réponses: 4
    Dernier message: 31/05/2007, 15h53
  4. ORDER BY
    Par mythtvtalk.com dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/07/2003, 11h56
  5. ORDER BY dans un ordre inhabituel
    Par Riam dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 21/03/2003, 13h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo