Wikilivres frwikibooks https://fr.wikibooks.org/wiki/Accueil MediaWiki 1.45.0-wmf.9 first-letter Média Spécial Discussion Utilisateur Discussion utilisateur Wikilivres Discussion Wikilivres Fichier Discussion fichier MediaWiki Discussion MediaWiki Modèle Discussion modèle Aide Discussion aide Catégorie Discussion catégorie Transwiki Discussion Transwiki Wikijunior Discussion Wikijunior TimedText TimedText talk Module Discussion module Grec ancien/Lexique 0 29558 746346 745182 2025-07-08T17:48:32Z 2A01:CB05:8BC9:BF00:8DCE:19E4:FB9E:E422 746346 wikitext text/x-wiki {{Grec ancien}} {{Wiktionnaire|Catégorie:grec ancien}} Au cours de vos lectures, vous serez amené à rencontrer des mots que vous n’arriverez pas à traduire en français. Le mieux est d’avoir un dictionnaire grec-français (type Bailly) mais certains mots reviennent souvent ; voici un lexique non-exhaustif grec-français par ordre alphabétique avec des renseignements sur le mot (genre, déclinaison, etc.) [[Fichier:NAMA Stèle d'Hègèsô.jpg|left|170px|thumb|Stèle funéraire en marbre trouvée à Athènes. La défunte est Hègèsô, fille de Proxenos : la qualité du travail indique une famille noble. L’œuvre a été attribuée au sculpteur Callimaque. Musée archéologique d’Athènes, Grèce.]] __FORCERSOMMAIRE__ ==Α== '''ἆ (interjection)''' : ah !<br> '''ἃ ἅ (interjection)''' : ha ha.<br> '''ἇ ἇ (interjection)''' : .<br> '''ἀ- (préfixe)''' (Devient ''ἀν-'' devant un mot commençant par une voyelle.) : préfixe privatif.<br> '''ἀάω (verbe)''' : Blesser, frapper. Frapper l’esprit. Égarer, tromper. S’égarer, commettre une faute.<br> '''ἀϐαθέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἀϐαθής''.<br> '''ἀϐαθέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἀϐαθής''.<br> '''ἀϐαθής, -ής, -ές (adjectif)''' : superficiel.<br> '''ἀϐαθῶς (adverbe)''' : superficiellement.<br> '''ἀϐαρέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἀϐαρής''.<br> '''ἀϐαρέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἀϐαρής''.<br> '''ἀϐαρής, -ής, -ές (adjectif)''' : léger.<br> '''ἀϐαρῶς (adverbe)''' : légèrement.<br> '''ἄϐαξ, -κος (nom commun) (m)''' : Planche, tablette. Tableau de mathématicien. Table à jouer. Plat, assiette. Table pour compter les votes.<br> '''ἀϐϐᾶς, -ᾶ (nom commun) (m)''' : abbé.<br> '''αϐϐαεῖον, -ίου (nom commun) (n)''' : abbaye.<br> '''ἀϐέλιος, -ίου (nom commun) (m)''' : Forme crétoise de ''ἥλιος''.<br> '''ἀϐλαϐής, -ής, -ές (adjectif)''' : Inoffensif ; sûr.<br> '''ἁϐός, -ή, -όν (adjectif)''' : Forme dorienne de ''ἡϐός''.<br> '''ἁϐότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἁϐός''.<br> '''ἁϐότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἁϐός''.<br> '''ἁϐρός, -ά, -όν (adjectif)''' : tendre ; délicat.<br> '''ἁϐρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἁϐρός''.<br> '''ἁϐρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἁϐρός''.<br> '''ἁϐρότης, -τος (nom commun) (f)''' : Bonheur, prospérité. Affectation. Magnificence, faste, opulence.<br> '''ἁϐρῶς (adverbe)''' : tendrement ; délicatement.<br> '''ἀγαθοεργία, -ας (nom commun) (f)''' : charité.<br> '''ἀγαθός, -ή, -όν (adjectif)''' : Bon ; utile.<br> '''ἀγαθωσύνη, -ης (nom commun) (f)''' : bonté, bienveillance.<br> '''ἀγαθῶς (adverbe)''' : Bonnement ; utilement.<br> '''ἀγαλλίασις, -άσεως (nom commun) (f)''' : jubilation.<br> '''ἀγάλλω (verbe)''' : jubiler.<br> '''ἄγαλμα, -άλματος (nom commun) (n)''' : statue.<br> '''ἄγαν (adverbe)''' : trop.<br> '''ἀγάπη, -ης (nom commun) (f)''' : amour divin, universel, inconditionnel.<br> '''ἀγαπῶ (verbe)''' : aimer d’amour.<br> '''ἀγασός, -ή, -όν (adjectif)''' : Forme dorienne de ''ἀγαθός''.<br> '''ἀγγελιαφόρος, -ου (nom commun) (m)''' : messager.<br> '''ἀγγελικός, -ή, -όν (adjectif)''' : d’ange.<br> '''ἀγγελικῶς (adverbe)''' : angéliquement.<br> '''ἀγγελικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀγγελικός''.<br> '''ἀγγελικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀγγελικός''.<br> '''ἄγγελος, -έλου (nom commun) (m)''' : messager ; ange.<br> '''ἀγγέλλω (verbe)''' : annoncer.<br> '''ἀγγίζω (verbe)''' : toucher.<br> '''ἀγείρω (verbe)''' : assembler, rassembler.<br> '''ἀγελάζω (verbe)''' : rassembler en troupeau.<br> '''ἀγελαία, -ας (nom commun) (f)''' : .<br> '''ἀγελαῖος, -ία, -ῖον (adjectif)''' : .<br> '''ἀγελάς, -δος (nom commun) (f)''' : .<br> '''ἀγέλαστος, -ος, -ον (adjectif)''' : maussade ; sombre.<br> '''ἀγέλη, -ης (nom commun) (f)''' : troupeau.<br> '''ἁγεμών, -όνος (nom commun) (m)''' : Forme dorienne de ''ἡγεμών''.<br> '''ἁγίμων, -όνος (nom commun) (m)''' : Forme éolienne de ''ἡγεμών''.<br> '''ἁγιάζω (verbe)''' : Bénir ; consacrer.<br> '''ἁγιασμός, -οῦ (nom commun) (m)''' : bénédiction.<br> '''ἅγιος, -ία, -ιον (adjectif)''' : auguste, sacré ; saint.<br> '''ἁγίως (adverbe)''' : saintement.<br> '''ἁγιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἅγιος''.<br> '''ἁγιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἅγιος''.<br> '''ἄγκιστρον, -ίστρου (nom commun) (n)''' : crochet.<br> '''ἀγκυλίς, -δος (nom commun) (f)''' : crochet.<br> '''ἀγκύλος, -η, -ον (adjectif)''' : courbé.<br> '''ἀγκύλως (adverbe)''' : .<br> '''ἀγκυλώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀγκύλος''.<br> '''ἀγκυλώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀγκύλος''.<br> '''ἄγκυρα, -ύρας (nom commun) (f)''' : ancre.<br> '''ἀγκών, -ῶνος (nom commun) (m)''' : coude.<br> '''ἀγλαός, -ός, -όν (adjectif)''' : brillant.<br> '''ἁγνεία, -ας (nom commun) (f)''' : chasteté ; pureté. Purification ; raffinage<br> '''ἁγνίζω (verbe)''' : être chaste.<br> '''ἅγνισμα, -τος (nom commun) (n)''' : objet d'un sacrifice (ou offrande).<br> '''ἁγνιστής, -οῦ (nom commun) (m)''' : .<br> '''ἀγνόημα, -ήματος (nom commun) (n)''' : omission.<br> '''ἄγνοια, -ίας (nom commun) (f)''' : ignorance.<br> '''ἄγνος, -ου (nom commun) (m)''' : gattilier.<br> '''ἁγνός, -ή, -όν (adjectif)''' : chaste ; pur.<br> '''ἁγνότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἁγνός''.<br> '''ἁγνότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἁγνός''.<br> '''ἁγνότης, -τος (nom commun) (f)''' : chasteté ; pureté.<br> '''ἁγνῶς (adverbe)''' : chastement ; purement.<br> '''ἀγνοῶ (verbe)''' : ignorer.<br> '''ἄγνωστος, -ος, -ον (adjectif)''' : (Sens passif) Inconnu, ignoré. (Sens actif) ignorant.<br> '''ἀγνωστότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἄγνωστος''.<br> '''ἀγνωστότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἄγνωστος''.<br> '''ἀγνώστως (adverbe)''' : .<br> '''ἀγορά, -ᾶς (nom commun) (f)''' : marché ; assemblée.<br> '''ἀγορητής, -οῦ (nom commun) (m)''' : orateur.<br> '''ἄγος, -ους (nom commun) (n)''' : Sacrilège, souillure. Homme sacrilège, impie. Expiation.<br> '''ἀγριόχοιρος, -ίρου (nom commun) (m)''' : .<br> '''ἀγροῖκος, -ίκα, -ῖκον (adjectif)''' : .<br> '''ἄγριος, -ία, -ιον (adjectif)''' : qui vit dans les champs.<br> '''ἀγρός, -οῦ (nom commun) (m)''' : (Au pluriel) Champ. (Au singulier) Ferme, bien de campagne, fonds, propriété foncière. La campagne (par opposition à la ville).<br> '''ἄγρωστις, -ώστιδος (nom commun) (f)''' : chiendent officinal.<br> '''ἄγυρις, -ύριος (nom commun) (f)''' : Forme éolienne de ''ἀγορά''.<br> '''ἀγύρτης, -ου (nom commun) (m)''' : charlatan.<br> '''ἀγών, -ῶνος (nom commun) (m)''' : Assemblée, réunion.<br> '''ἀγωνία, -ας (nom commun) (f)''' : Lute dans les jeux, exercice, exercice gymnastique. (Figuré) Angoisse, anxiété.<br> '''ἀγωνίζομαι (verbe)''' : Se battre, concourir pour un prix.<br> '''ἀγωνιστής, -οῦ (nom commun) (m)''' : combattant.<br> '''ἄγω (verbe)''' : Conduire, mener.<br> '''ἀδαής, -ής, -ές (adjectif)''' : intrépide.<br> '''ἀδάμας, -αντος (nom commun) (m)''' : diamant.<br> ‎ '''ἀδελφή, -ῆς (nom commun) (f)''' : sœur.<br> '''ἀδελφεά, -άς (nom commun) (f)''' : Forme dorienne de ''ἀδελφή''.<br> '''ἀδελφεή, -ῆς (nom commun) (f)''' : Forme ionienne de ''ἀδελφή''.<br> '''ἀδελφεός, -οῦ (nom commun) (m)''' : Forme homérique et ionienne de ''ἀδελφός''.<br> '''ἀδελφειή, -ῆς (nom commun) (f)''' : Forme homérique de ''ἀδελφή''.<br> '''ἀδελφιός, -οῦ (nom commun) (m)''' : Forme crétoise de ''ἀδελφός''.<br> '''ἀδευφιός, -οῦ (nom commun) (m)''' : Autre forme crétoise de ''ἀδελφός''.<br> '''ἀδελφός, -οῦ (nom commun) (m)''' : frère.<br> '''ἀδεξιός, -ός, -όν (adjectif)''' : gauche ; maladroit.<br> '''ἀδιάλλακτος, -ος, -ον (adjectif)''' : intransigeant.<br> '''ἀδιανόητος, -ος, -ον (adjectif)''' : incompréhensible.<br> '''ᾄδω (verbe)''' : Forme attique de ''ἀείδω''.<br> '''ἀέ(ς) (adverbe)''' : Forme dorienne de ''ἀεί''.<br> '''ἄεθλον, -ου (nom commun) (n)''' : Forme homérique de ''ἆθλον''.<br> '''ἄεθλος, -ου (nom commun) (m)''' : Forme homérique et ionienne de ''ἆθλος''.<br> '''ἀείδω (verbe)''' : chanter.<br> '''ἀεικής, -ής, -ές (adjectif)''' : inapproprié ; malséant.<br> '''ἀεικῶς (adverbe)''' : malséantement.<br> '''ἀεικέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἀεικής''.<br> '''ἀεικέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἀεικής''.<br> '''ἀεί (adverbe)''' : toujours.<br> '''ἀέλιος, -ίου (nom commun) (m)''' : Forme dorienne, éolienne, et arcado-chypriote de ''ἥλιος''.<br> '''ἀεργός, -ή, -όν (adjectif)''' : .<br> '''ἀετός, -οῦ (nom commun) (m)''' : aigle.<br> '''ἄζα, -ης (nom commun) (f)''' : .<br> '''ἀζαθός, -ή, -όν (adjectif)''' : Forme arcado-chypriote de ''ἀγαθός''.<br> '''ἄζω (verbe)''' : .<br> '''ἀηδών, -ονός (nom commun) (f)''' : rossignol.<br> '''ἀήρ, -έρος (nom commun) (m)''' : air (que l'on respire).<br> '''ἄθεος, -ος, -ον (adjectif)''' : athée.<br> '''ἀθίγγανος, -ου (nom commun) (m)''' : tsigane.<br> '''ἄθικτος, -ος, -ον (adjectif)''' : intact.<br> '''ἄθλημα, -ήματος (nom commun) (n)''' : sport.<br> '''ἀθλητής, -οῦ (nom commun) (m)''' : sportif.<br> '''ἀθλητικός, -ή, -όν (adjectif)''' : sportif.<br> '''ἀθλητικῶς (adverbe)''' : sportivement.<br> '''ἀθλητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀθλητικός''.<br> '''ἀθλητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀθλητικός''.<br> '''ἀθλητικώτατα, -, - (adverbe)''' : Superlatif de ''ἀθλητικῶς''.<br> '''ἀθλητικώτερον, -, - (adverbe)''' : Comparatif de ''ἀθλητικῶς''.<br> '''ἄθλιος, -ία, -ιον (adjectif)''' : Concourant pour un prix ou luttant pour gagner un prix. Misérable, fieffé ; désolé.<br> '''ἀθλίως (adverbe)''' : misérablement.<br> '''ἄθλιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἄθλιος''.<br> '''ἄθλιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἄθλιος''.<br> '''ἆθλον, ἄθλου (nom commun) (n)''' : .<br> '''ἆθλος, ἄθλου (nom commun) (m)''' : compétition.<br> '''ἄθυρμα, -ύρματος (nom commun) (n)''' : jouet.<br> '''ἀθύρω (verbe)''' : jouer.<br> '''ἀθῷος, -ος, -ον (adjectif)''' : innocent.<br> '''ἀθῷότης, -τος (nom commun) (f)''' : innocence.<br> '''αἴ (interjection)''' : hélas.<br> '''αἰϐοῖ (interjection)''' : beurk.<br> '''αἰγαῖος, -ία, -ῖον (adjectif)''' : égéen.<br> '''αἰγίθαλλος, -άλλου (nom commun) (m)''' : mésange.<br> '''αἰγίς, -δος (nom commun) (f)''' : égide.<br> '''αἴγλη, -ης (nom commun) (f)''' : splendeur.<br> '''αἰδοΐα, -ας (nom commun) (f)''' : organe génital.<br> '''αἰδοῖος, -ία, -ῖον (adjectif)''' : pudique.<br> '''αἰδοῖον, -ίου (nom commun) (n)''' : vulve.<br> '''αἰδώς, -οῦς (nom commun) (f)''' : pudeur.<br> '''αἰεί (adverbe)''' : Forme ionienne de ''ἀεί''.<br> '''αἰέν (adverbe)''' : Forme homérique de ''ἀεί''.<br> '''αἰές (adverbe)''' : Autre forme dorienne de ''ἀεί''.<br> '''αἰή (adverbe)''' : Autre forme dorienne de ''ἀεί''.<br> '''αἰθάλη, -ης (nom commun) (f)''' : .<br> '''αἴθαλος, -άλου (nom commun) (m)''' suie.<br> '''αἰθήρ, -έρος (nom commun) (m/f)''' : éther.<br> '''αἰθιοπικός, -ή, -όν (f)''' : éthiopien.<br> '''αἶθος, -ἴθους (nom commun) (n)''' : Chaleur, feu.<br> '''αἴθουσα, - (nom commun) (f)''' : .<br> '''αἴθριος, -ια, -ιον (adjectif)''' : Clair, limpide ; beau.<br> '''αἰθύλιον, -ίου (nom commun) (n)''' : éthyle.<br> '''αἴθω (verbe)''' : brûler.<br> '''αἶι (adverbe)''' : Forme éolienne de ''ἀεί''.<br> '''-ακός, -ή, -όν (suffixe)''' : .<br> '''αἴξ, -γός (nom commun) (f)''' : chèvre.<br> '''αἰολικός, -ή, -όν (adjectif)''' : éolien.<br> '''αἰόλος, -α, -ον (adjectif)''' : agité.<br> '''αἰλουρίς, -δος (nom commun) (f)''' : chatte.<br> '''αἴλουρος, -ύρου (m/f)''' : Chat, chatte.<br> '''αἷμα, -ἵματος (nom commun) (n)''' : sang.<br> '''αἱμωδία, -ας (nom commun) (f)''' : hémodie.<br> '''αἱμωδιῶ (verbe)''' : saigner des dents.<br> '''αἱμοπτύσις, -εως (nom commun) (f)''' : crachement de sang.<br> '''αἱμορραγία, -ας (nom commun) (f)''' : perte de sang.<br> '''αἱμορραγῶ (verbe)''' : perdre du sang.<br> '''αἱμορροΐς, -δος (nom commun) (f)''' : hémorroïde.<br> '''αἱμορροῶ (verbe)''' : saigner.<br> '''αἱμόφυρτος, -ος, -ον (adjectif)''' : sanglant.<br> '''-αινα, -ίνης (suffixe) (f)''' : .<br> '''αἴνεσις, -έσεως (nom commun) (f)''' : louange.<br> '''αἰνέω (verbe)''' : louer.<br> '''αἴνιγμα, -ίγματος (nom commun) (n)''' : puzzle.<br> '''αἰνιγματικός, -ή, -όν (adjectif)''' : relatif aux puzzles.<br> '''αἰνίσσομαι (verbe)''' : parler par mystères.<br> '''αἶνος, -ἵνου (nom commun) (m)''' : fable.<br> '''αἰνῶ (verbe)''' : Parler de (suivi de l’accusatif). Trouver bon.<br> '''-αῖος, -ία -ῖον (suffixe)''' : ancien.<br> '''-αιότατος (suffixe)''' : Forme superlative de ''-αῖος''.<br> '''-αιότερος (suffixe)''' : Forme comparative de ''-αῖος''.<br> '''-αίως (suffixe)''' : Forme adverbiale de ''-αῖος''.<br> '''αἰπόλος, -ου (nom commun) (m)''' : chevrier.<br> '''αἵρεσις, -έσεως (nom commun) (f)''' : action de prendre, prise ; choix.<br> '''αἱρῶ (verbe)''' : Forme ionienne et poétique de ''αἴρω''.<br> '''αἴρω (verbe)''' : Lever. (Par suite) Enlever, supprimer, détruire, faire périr. (Par extension) Contester, nier. (Figuré) Faire une levée. (Figuré) Élever, exalter, grandir. Mettre hors de soi. (Passif) Être transporté.<br> '''αἶσα, -ἴσης (nom commun) (f)''' : Part ; destinée.<br> '''αἴσθημα, -ήματος (nom commun) (n)''' : sentiment.<br> '''αἴσθησις, -ήσεως (nom commun) (f)''' : Faculté de percevoir les sens, sensation. (Par extension) Action de percevoir l’intelligence, action de s’apercevoir. Organe des sens. L’un des cinq sens. Piste d’un animal.<br> '''αἰσθητήριος, -ος, -ον (adjectif)''' : sensoriel.<br> '''αἰσιοδοξία, -ας (nom commun) (f)''' : optimisme.<br> '''αἶσχος, -ἴσχους (nom commun) (n)''' : honte.<br> '''αἰσχρολογία, -ας (nom commun) (f)''' : obscénité.<br> '''αἰσχρός, -ά, -όν (adjectif)''' : laid, honteux.<br> '''αἰσχρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''αἰσχρός''.<br> '''αἰσχρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''αἰσχρός''.<br> '''αἰσχρῶς (adverbe)''' : honteusement.<br> '''αἰσχύνη, -ης (nom commun) (f)''' : opprobre ; vergogne.<br> '''αἰσχύνω (verbe)''' : déshonorer.<br> '''αἰτέω (verbe)''' : Demander. (Dialogue) Poser un postulat.<br> '''αἴτησις, -ήσεως (nom commun) (f)''' : demande.<br> '''αἰχμαλωσία, -ας (nom commun) (f)''' : captivité.<br> '''αἰχμαλωτίζω (verbe)''' : attraper ; capturer, saisir.<br> '''αἰχμάλωτος, - (nom commun) (m)''' : captif.<br> '''αἰών, -ῶνος (nom commun) (m)''' : temps (durée de la vie) ; moelle épinière.<br> '''αἰώνιος, -ος, -ον (adjectif)''' : Éternel. Perpétuel. Séculaire.<br> '''ἀΐω (verbe)''' : entendre.<br> '''ἀκαδημία, -ας (nom commun) (f)''' : académie.<br> '''ἀκακία, -ας (nom commun) (f)''' : innocence.<br> '''ἄκανθα, -ης (nom commun) (f)''' : épine, piquant.<br> '''ἀκανθοκνίδη, -ης (nom commun) (f)''' : ortie.<br> '''ἀκανθόχοιρος, -ίρου (nom commun) (m)''' : porc-épic.<br> '''ἀκαρής, -ής, -ές (adjectif)''' : insécable.<br> '''ἄκαρι, -άρεως (nom commun) (n)''' : ciron ; mite.<br> '''ἀκαριαῖος, -ία, -ῖον (adjectif)''' : instantané.<br> '''ἀκίνδυνος, -η, -ον (adjectif)''' : inoffensif ; sûr.<br> '''ἀκκίζομαι (verbe)''' : .<br> '''ἀκκιστικός, -ή, -όν (adjectif)''' : .<br> '''ἀκκισμός, -οῦ (nom commun) (m)''' : .<br> '''ἄκμων, -ονος (nom commun) (m)''' : enclume.<br> '''ἀκοίτης, -ου (nom commun) (m)''' : époux.<br> '''ἄκοιτις, -ίτης (nom commun) (f)''' : épouse.<br> '''ἀκοή, -ῆς (nom commun) (f)''' : ouïe.<br> '''ἀκολασία, -ας (nom commun) (f)''' : débauche, luxure ; stupre.<br> '''ἀκολουθία, -ας (nom commun) (f)''' : escorte ; suite.<br> '''ἀκόλουθος, -ύθου (nom commun) (m)''' : domestique ; serviteur.<br> '''ἀκολούθως (adverbe)''' : après ; ensuite.<br> '''ἀκολουθῶ (verbe)''' : escorter ; suivre.<br> '''ἀκόρεστος, -ος, -ον (adjectif)''' : (passif) Insatiable, inépuisable. (actif) Qui ne cause aucune satiété.<br> '''ἀκουστικός, -ή, -όν (adjectif)''' : relatif à l'ouïe.<br> '''ἀκούω (verbe)''' : écouter, entendre.<br> '''ἀκρίς, -δος (nom commun) (f)''' : Sauterelle ; criquet.<br> '''ἀκροϐάτης, -ου (nom commun) (m)''' : Danseur de corde, faiseur de tours d’agilité.<br> '''ἀκροποσθία, -ας (nom commun) (f)''' : prépuce.<br> '''ἀκρόπολις, -όλεως (nom commun) (f)''' : citadelle.<br> '''ἀκροστιχίς, -δος (nom commun) (f)''' : acrostiche.<br> '''ἄκρος, -α, -ον (adjectif)''' : extrême.<br> '''ἄκρον -ου (nom commun) (n)''' : .<br> '''ἀκτίς, -ῖνος (nom commun) (f)''' : rayon.<br> '''ἀκύρωσις, -ώσεως (nom commun) (f)''' : .<br> '''ἀκυρῶ (verbe)''' : .<br> '''ἀλαζονεία, -ας (nom commun) (f)''' : .<br> '''ἀλαζόνευμα, -ύματος (nom commun) (n)''' : .<br> '''ἀλαζονεύομαι (verbe)''' : .<br> '''ἀλαζονικός, -ή, -όν (adjectif)''' : .<br> '''ἀλαζονίστατα (nom commun) (f)''' : .<br> '''ἀλαζών, -όνος (nom commun) (m/f)''' : Imposteur, sans domicile fixe, escroc. Vantard.<br> '''ἀλαζών, -ών, -όν (adjectif)''' : .<br> '''ἀλάομαι (verbe)''' : vagabonder.<br> '''ἀλάϐαστρος, -άστρου (nom commun) (m)''' : vase de plâtre.<br> '''ἀλατιστός, -ή, -όν (adjectif)''' : .<br> '''ἄλγος, -ους (nom commun) (n)''' : Souffrance. Douleur physique. Peine, affliction. Sujet de peine.<br> '''ἀλείτης, -ου (nom commun) (m)''' : .<br> '''ἄλειμμα, -ίμματος (nom commun) (n)''' : .<br> '''ἀλειπτήριον, -ίου (nom commun) (m)''' : .<br> '''ἀλειπτήρ, -ῆρος (nom commun) (m)''' : .<br> '''ἀλείπτης ''' : .<br> '''ἀλειπτός ''' : .<br> '''ἄλειψις, -ῆρος (nom commun) (m)''' : .<br> '''ἄλειφαρ, -ίφατος (nom commun) (n)''' : pommade.<br> '''ἀλείφω (m)''' : pommader.<br> '''ἀλεκτρυών, -όνος (nom commun) (m/f)''' : Coq ; poule.<br> '''ἀλέκτωρ, -ορος (nom commun) (m)''' : coq.<br> '''ἀλεξανδρῖνος, -ίνη, -ῖνον (adjectif)''' : alexandrin.<br> '''ἀλέξω (verbe)''' : défendre. (prendre la défense)<br> '''ἄλευρον, -ύρου (nom commun) (n)''' : farine de froment.<br> '''ἀλευρώδης, -ώδης, -ῶδες (n)''' : semblable à de la farine de froment.<br> '''ἀλέω (verbe)''' : moudre.<br> '''ἄλη, -ης (nom commun)''' : errance.<br> '''ἀλήθεια, -ίας (nom commun) (f)''' : vérité.<br> '''ἀληθέστατος, -άτη, -έστατον (adjectif) (adjectif)''' : Superlatif de ''ἀληθής''.<br> '''ἀληθέστερος, -έρα, -έτερον (adjectif)''' : Comparatif de ''ἀληθής''.<br> '''ἀληθής, -ής, -ές (adjectif)''' : vrai.<br> '''ἀληθινός, -ή, -όν (adjectif)''' : vrai.<br> '''ἀληθινώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀληθινός''.<br> '''ἀληθινώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀληθινός''.<br> '''ἀληθινώτατα, -, - (adverbe)''' : Superlatif de ''ἀληθινῶς''.<br> '''ἀληθινώτερον, -, - (adverbe)''' : Comparatif de ''ἀληθινῶς''.<br> '''ἀληθινῶς (adverbe)''' : vraiment.<br> '''ἀληθῶς (adverbe)''' : vraiment.<br> '''ἀλήτης, -ου (nom commun) (m)''' : .<br> '''ἁλιεύς, -έως (nom commun) (m)''' : pêcheur.<br> '''ἁλιευτικός, -ή, -όν (adjectif)''' : qui concerne la pêche.<br> '''ἁλιεύω (verbe)''' : pêcher.<br> '''ἅλιος, -ίου (nom commun) (m)''' : Forme de ''ἥλιος''.<br> '''ἀλιτρός, -ός, -όν (adjectif)''' : vilain.<br> '''ἀλιτρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἀλιτρός''.<br> '''ἀλιτρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἀλιτρός''.<br> '''ἀλιτρῶς (adverbe)''' : vilainement.<br> '''ἀλκή, -ῆς (nom commun) (f)''' : force.<br> '''ἀλκμαῖος, -ία, -ῖον (adjectif)''' : jeune.<br> '''ἀλλά (conjonction)''' : (Devient ''ἀλλ’'' devant un mot commençant par une voyelle.) Mais. D’un autre côté, autrement.<br> '''ἀλλαγή, -ῆς (nom commun) (f)''' : Changement ; échange.<br> '''ἀλλάσσω (verbe)''' : Changer, altérer. Échanger.<br> '''ἄλλαξις, -άξεως (nom commun) (f)''' : troc.<br> '''ἄλληλος (adjectif)''' : .<br> '''ἀλληλούϊα (interjection)''' : alléluia.<br> '''ἁλμάω (verbe)''' : saumurer.<br> '''ἅλμη, -ης (nom commun) (f)''' : saumure.<br> '''ἀλόη, -ης (nom commun) (f)''' : aloès.<br> '''ἀλοιφή, -ῆς (nom commun) (f)''' : pommade.<br> '''ἇλος, ἅλου (nom commun) (m)''' : Forme dorienne de ''ἧλος''.<br> '''ἄλσος, -ους (nom commun) (n)''' : bois (lieu).<br> '''ἅλς, -ός (nom commun) (m/f)''' : sel ; mer.<br> '''ἅλυσις, -ύσεως (nom commun) (f)''' : chaîne (succession d’anneaux enserrés).<br> '''ἄλυσις, -ύσεως (nom commun) (f)''' : détresse ; angoisse.<br> '''ἄλυσσον, -ύσσου (nom commun) (n)''' : alysse.<br> '''ἀλύω (verbe)''' : Être tout excité ; divaguer.<br> '''ἄλφα (nom commun) (n)''' : alpha.<br> '''ἀλφάϐητος, -ήτου (nom commun) (m)''' : Ensemble des lettres servant à écrire.<br> '''ἄλφιτα, -ίτας (nom commun) (f)''' : farine d’orge.<br> '''ἀλφός, -οῦ (nom commun) (m)''' : lèpre blanche.<br> '''ἀλωπεκῆ, -ῆς (nom commun) (f)''' : peau de renard ; ruse.<br> '''ἀλωπεκία, -ας (nom commun) (f)''' : chute des cheveux.<br> '''ἀλωπεκίασις, -άσεως (nom commun) (f)''' : chute des cheveux.<br> '''ἀλωπεκίς, -δος (nom commun) (f)''' : casquette en peau de renard.<br> '''ἀλώπηξ, -εκος (nom commun) (f)''' : renard.<br> '''ἅμμα, -τος (nom commun) (n)''' : nœud.<br> '''ἅμαξα, -ης (nom commun) (f)''' : chariot.<br> '''ἁμαξαία, -ας (nom commun) (f)''' : .<br> '''ἁμαξαῖος, -ία, -ῖον (adjectif)''' : .<br> '''ἁμαξακάρινον, -ίνου (nom commun) (n)''' : .<br> '''ἁμαξάρχης, -ου (nom commun) (m)''' : .<br> '''ἀμαυρός, -ά, -όν (adjectif)''' : sombre ; obscur.<br> '''ἀμαύρωσις, -ώσεως (nom commun) (f)''' : obscurcissement.<br> '''ἀμαυρῶ (verbe)''' : s’obscurcir.<br> '''ἁμαρτάς, -δος (nom commun) (f)''' : Faute ; erreur, méprise.<br> '''ἁμαρτάνω (verbe)''' : Manquer le but. Se tromper, se méprendre. Commettre une faute, faillir, pécher.<br> '''ἁμάρτημα, -ήματος (nom commun) (n)''' : Échec ; faute. Péché.<br> '''ἁμαρτία, -ας (nom commun) (f)''' : Erreur ; faute. Péché<br> '''ἀμάτωρ, -ωρ, -ορ (adjectif)''' : Forme dorienne de ''ἀμήτωρ''.<br> '''ἀμϐλύς, -εῖα, -ύ (adjectif)''' : émoussé.<br> '''ἀμϐρόσιος, -ία, -όσιον (adjectif)''' : divin ; immortel.<br> '''ἀμϐροσίως (adverbe)''' : divinement ; immortellement.<br> '''ἀμϐροσιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀ μϐρόσιος''.<br> '''ἀμϐροσιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀμϐρόσιος''.<br> '''ἄμϐων, -ος (nom commun) (m)''' : Bord arrondi d’un vase.<br> '''ἀμέθυστος, -ος, -ον (adjectif)''' : sobre.<br> '''ἀμεθύω (verbe)''' : être sobre.<br> '''ἀμέλγω (verbe)''' : Traire. Sucer, boire.<br> '''ἀμελής, -ής, -ής (adjectif)''' : négligeant.<br> '''ἀμελῶ (verbe)''' : négliger.<br> '''ἀμέρα, -ας (nom commun) (f)''' : Forme dorienne de ''ἡμέρα''.<br> '''ἀμήν (adverbe)''' : amen.<br> '''ἀμήτωρ, -ωρ, -ορ (adjectif)''' : sans mère.<br> '''ἀμίς, -δος (nom commun) (f)''' : pot de chambre.<br> '''ἀμνάς, -δος (nom commun) (f)''' : agnelle.<br> '''ἀμνός, -οῦ (nom commun) (m)''' : agneau.<br> '''ἄμεσος (adverbe)''' : .<br> '''ἀμπέλιον, -ίoυ (nom commun) (n)''' : petite vigne.<br> '''ἄμπελος, -έλου (nom commun) (m)''' : vigne (plante).<br> '''ἀμπελών, -ος (nom commun) (m)''' : vigne (endroit où elle est plantée).<br> '''ἀμπρακικός, -η, -όν (adjectif)''' : ambracien.<br> '''ἀμυγδάλη, -ης (nom commun) (f)''' : amygdale.<br> '''ἀμύγδαλον, -άλoυ (nom commun) (n)''' : amande. (fruit)<br> '''ἄμυλος, -ύλoυ (nom commun) (m)''' : amidon.<br> '''ἀμύνω (verbe)''' : défendre.<br> '''ἀμφί (adverbe ; préposition)''' : Autour. Séparément ; pour soi. Autour. À partir de ; loin de. (Avec le génitif) Autour de ; au milieu de. (Avec le datif) Autour de (quelque chose). (Figuré) Au sujet de ; par suite de. (Avec l’accusatif) Autour de. (Par extension) En faisant le tour de : en circulant à travers ; à travers ; par. Au sujet de. Aux environs de. (Joint à ''περί'') Tout autour de.<br> '''ἀμφί- (préfixe)''' : De deux côtés ; en double. Tout autour de. Au sujet de.<br> '''ἀμφιθέατρον, -ου (nom commun) (n)''' : amphithéâtre.<br> '''ἀμφιθέητρον, -ου (nom commun) (n)''' : Forme ionienne de ''ἀμφιθέατρον''.<br> '''ἀμφισϐητήσιμος, -η, -ον (adjectif)''' : contestable.<br> '''ἀμφισϐητῶ (n)''' : contester.<br> '''ἀμφί (adverbe ; préposition)''' : Des deux côtés ; aux deux extrémités. Autour. À partir de ; loin de.<br> '''ἀμφίς (adverbe ; préposition)''' : Des deux côtés ; aux deux extrémités. Autour. À partir de ; loin de.<br> '''ἀμφορεύς, -έως (nom commun) (m)''' : amphore.<br> '''ἀμφότερος, -έρα, -ότερον (adjectif)''' : l’un l’autre, les deux.<br> '''ἄμφω (déterminant)''' : les deux.<br> '''ἀνά (adverbe, préposition)''' : En haut. En avant. En haut de, sur, à travers.<br> '''ἄνα- (préfixe)''' : De bas en haut. En arrière. (Par suite) faire le contraire. (Par extension) Faire de nouveau.<br> '''ἀναϐάλλω (verbe)''' : .<br> '''ἀναϐολεύς, -έως (nom commun) (m)''' : étrier.<br> '''ἀναϐολή, -ῆς (nom commun) (f)''' : ajournement, sursis.<br> '''ἀναγκάζω (verbe)''' : forcer, contraindre.<br> '''ἀναγκαῖος, -ία, -ῖον (adjectif)''' : (actif) Qui contraint. Nécessaire. Parent pour le sang. (passif) Contraint, forcé.<br> '''ἀνάγκη, -ης (nom propre) (f)''' : Nécessité, contrainte.<br> '''ἀναγράφω (verbe)''' : .<br> '''ἀνάδημα, -τος (nom commun) (n)''' : anadème.<br> '''ἀνάδοχος, -όχου (nom commun) (m/f)''' : parrain, marraine.<br> '''ἀναδρομή, -ῆς (nom commun) (f)''' : rétrospective.<br> '''ἀναδρομικός, -ή, -όν (adjectif)''' : rétrospectif.<br> '''ἀναδρομικῶς (adverbe)''' : rétrospectivement.<br> '''ἀνάδυσις, -ύσεως (nom commun) (f)''' : émergence.<br> '''ἀναδύομαι (verbe)''' : émerger.<br> '''ἀναζήτησις, -ήσεως (nom commun) (f)''' : recherche.<br> '''ἀναζητῶ (verbe)''' : rechercher.<br> '''ἀναθεωρῶ (verbe)''' : réviser.<br> '''ἀναθυμίασις, -άσεως (nom commun) (f)''' : effluve.<br> '''ἀναίδεια, -ας (nom commun) (f)''' : impudence.<br> '''ἀναιδέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἀναιδής''.<br> '''ἀναιδέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἀναιδής''.<br> '''ἀναιδής, -ής, -ές (adjectif)''' : impudent.<br> '''ἀναιδῶς (adverbe)''' : impudemment.<br> '''ἀναιμία, -ας (nom commun) (f)''' : manque de sang.<br> '''ἀναισχυντία, -ας (nom commun) (f)''' : effronterie.<br> '''ἀναίσχυντος, -ή, -όν (adjectif)''' : effronté.<br> '''ἀναίσχυντότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἀναίσχυντός''.<br> '''ἀναίσχυντότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἀναίσχυντός''.<br> '''ἀναίσχυντότατα, -, - (adverbe)''' : Superlatif de ''ἀναίσχυντῶς''.<br> '''ἀναίσχυντότερον, -, - (adverbe)''' : Comparatif de ''ἀναίσχυντῶς''.<br> '''ἀναίσχυντῶς (adverbe)''' : effrontément.<br> '''ἀνακινῶ (verbe)''' : .<br> '''ἀνακοίνωσις, -ώσεως (nom commun) (f)''' : communication.<br> '''ἀνακοινῶ (verbe)''' : communiquer.<br> '''ἀνακουφίζω (verbe)''' : soulager.<br> '''ἀνακούφισις, -ίσεως (nom commun) (f)''' : soulagement.<br> '''ἀνακτορία, -ας (nom commun) (f)''' : .<br> '''ἀνακτόριος, -ος, -ον (adjectif)''' : .<br> '''ἀνάκτορον, -όρου (nom commun) (n)''' : .<br> '''ἀναλαμϐάνω (verbe)''' : reprendre.<br> '''ἀνάλαψις, -άψεως (nom commun) (f)''' : Forme dorienne de ''ἀνάληψις''.<br> '''ἀνάληψις, -ήψεως (nom commun) (f)''' : Reprise, reprise de forces, rétablissement. Reconnaissance d'un enfant, action de le faire sien. (Religion chrétienne) Ascension, action d’être repris par le Ciel. Réception.<br> '''ἀναλογία, -ας (nom commun) (f)''' : proportion.<br> '''ἀναλογικός, -ή, -όν (adjectif)''' : proportionnel.<br> '''ἀναλογικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἀναλογικός''.<br> '''ἀναλογικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἀναλογικός''.<br> '''ἀναλογικότατα, -, - (adverbe)''' : Superlatif de ''ἀναλογικῶς''.<br> '''ἀναλογικότερον, -, - (adverbe)''' : Comparatif de ''ἀναλογικῶς''.<br> '''ἀναλογικῶς (adverbe)''' : proportionnellement.<br> '''ἀνάλογος, -η, -ον (adjectif)''' : commensurable.<br> '''ἀναμένω (verbe)''' : surveiller.<br> '''ἀνάμνησις, -ήσεως (nom commun) (f)''' : commémoration.<br> '''ἀναμνηστικός, -ή, -όν (adjectif)''' : commémoratif.<br> '''ἀναμνηστικῶς (adverbe)''' : commémorativement.<br> '''ἀναμνηστικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀναμνηστικός''.<br> '''ἀναμνηστικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀναμνηστικός''.<br> '''ἀναμνηστικώτατα, -, - (adverbe)''' : Superlatif de ''ἀναμνηστικῶς''.<br> '''ἀναμνηστικώτερον, -, - (adverbe)''' : Comparatif de ''ἀναμνηστικῶς''.<br> '''ἄναξις, -εως (nom commun) (f)''' : .<br> '''ἄναξ, -κτος (nom commun) (m)''' : maître, chef, roi.<br> '''ἀνάπαιστος, -ίστου (nom commun) (m)''' : anapeste.<br> '''ἀνάπαυσις, -ύσεως (nom commun) (f)''' : repos.<br> '''ἀναπαύω (verbe)''' : reposer.<br> '''ἄνασσα, -ας (nom commun) (f)''' : maîtresse, reine.<br> '''ἀνάστασις, -άσεως (nom commun) (f)''' : résurrection.<br> '''ἀναστεναγμός, -οῦ (nom commun) (m)''' : soupir.<br> '''ἀναστενάζω (verbe)''' : soupirer.<br> '''ἀνατέλλω (verbe)''' : .<br> '''ἀνατολή, -ῆς (nom commun) (f)''' : est.<br> '''ἀνατολικός, -ή, -όν (adjectif)''' : oriental.<br> '''ἀνατολικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἀνατολικός''.<br> '''ἀνατολικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἀνατολικός''.<br> '''ἀνατολικότατα, -, - (adverbe)''' : Superlatif de ''ἀνατολικῶς''.<br> '''ἀνατολικότερον, -, - (adverbe)''' : Comparatif de ''ἀνατολικῶς''.<br> '''ἀνατολικῶς (adverbe)''' : orientalement.<br> '''ἀναφέρω (verbe)''' : alléguer ; mentionner.<br> '''ἀναφλέγω (verbe)''' : enflammer.<br> '''ἀνάφλεξις, -έξεως (nom commun) (f)''' : combustion.<br> '''ἀναφορά, -ᾶς (nom commun) (f)''' : allégation, mention.<br> '''ἀναφορικός, -ή, -όν (adjectif)''' : allégatoire.<br> '''ἀναχώρησις, -ήσεως (nom commun) (f)''' : départ.<br> '''ἀνδραποδίζω (verbe)''' : vendre des hommes libres en esclavage.<br> '''ἀνδράποδον, -όδου (nom commun) (n)''' : captif.<br> '''ἀνδρείκελον, -έλου (nom commun) (n)''' : marionnette.<br> '''ἀνδρεῖος, -ία, -ῖον (adjectif)''' : masculin.<br> '''ἀνδρειότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἀνδρεῖος''.<br> '''ἀνδρειότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἀνδρεῖος''.<br> '''ἀνδρείως (adverbe)''' : masculinement.<br> '''ἀνδρομανία, -ας (nom commun) (f)''' : andromanie.<br> '''ἀνδροπρέπεια, -ίας (nom commun) (f)''' : virilité.<br> '''ἀνδροπρεπής -ής -ές (adjectif)''' : viril.<br> '''ἀνδροπρεπῶς (adverbe)''' : virilement.<br> '''ἀνδρότης, -τος (nom commun) (f)''' : virilité.<br> '''ἀνδρών, -ῶνος (nom commun) (m)''' : Appartement réservé aux hommes.<br> '''ἀνεκδιήγητος, -ος, -ον (adjectif)''' : inénarrable.<br> '''ἀνέκδοτος, -ος, -ον (adjectif)''' : Non donnée en mariage, en parlant d’une jeune fille. Inédit, non publié.<br> '''ἀνέμη, -ης (nom commun) (f)''' : rouet.<br> '''ἄνεμος, -έμου (nom commun) (m)''' : vent.<br> '''ἀνερρίπτω (verbe)''' : .<br> '''ἀνερωτῶ (verbe)''' : .<br> '''ἀνευθυνότης, -ητος (nom commun) (f)''' : irresponsabilité.<br> '''ἀνευθύνω (verbe)''' : être irresponsable.<br> '''ἀνεύρυσμα, -ύσματος (nom commun) (n)''' : élargissement, dilatation.<br> '''ἀνευρύνω (verbe)''' : élargir, dilater.<br> '''ἀνεψιά, -ᾶς (nom commun) (f)''' : nièce.<br> '''ἀνεψιός, -οῦ (nom commun) (m)''' : neveu.<br> '''ἄνηθον, -ήθου (nom commun) (n)''' : aneth.<br> '''ἀνήρ, -δρός (nom commun) (n)''' : Homme, époux ; mâle des animaux.<br> '''ἄνθεμον, -έμου (nom commun) (n)''' : Diminutif d’''ἄνθος''.<br> '''ἀνθολογέω (verbe)''' : cueillir des fleurs.<br> '''ἁνθολογία, -ας (nom commun) (f)''' : florilège.<br> '''ἀνθολόγιον, -ου (nom commun) (n)''' : recueil.<br> '''ἀνθόλωψ, -πος (nom commun) (m)''' : antilope.<br> '''ἄνθος, -ους (nom commun) (n)''' : fleur.<br> '''ἄνθραξ, κος (nom commun) (m)''' : charbon.<br> '''ἀνθρακιά, -ᾶς (nom commun) (f)''' : pile de charbon.<br> '''ἀνθρωπάριον, -ίου (nom commun) (n)''' : homuncule.<br> '''ἀνθρώπινος, -η, -ον (adjectif)''' : humain.<br> '''ἀνθρωπίσκος, -ου (nom commun) (m)''' : mannequin.<br> '''ἄνθρωπος, -ώπου (nom commun) (m)''' : homme, genre humain.<br> '''ἀνθρωποκεντρικός, -ή, -όν (adjectif)''' : anthropocentrique.<br> '''ἀνθρωποειδής, -ής, -ες, (adjectif)''' : anthropoïde.<br> '''ἀνθρωπολογία, -ας''' : anthropologie.<br> '''ἀνθρωπομορφισμός, -οῦ (nom commun) (m)''' : anthropomorphisme.<br> '''ἀνθρωποφαγία, -ας (nom commun) (f)''' : cannibalisme.<br> '''ἀνθρωποφάγος, -ου (nom commun) (n)''' : cannibale.<br> '''ἀνία, -ας (nom commun) (f)''' : ennui.<br> '''ἁνία, -ας (nom commun) (f)''' : Forme dorienne de ''ἡνία''.<br> '''ἄνισος, -η, -ον (adjectif)''' : inégal.<br> '''ἀνίστημι (verbe)''' : ressusciter.<br> '''ἄν (adverbe, particule)''' : .<br> '''ἄννησον, -ήσου (nom commun) (n)''' : anis.<br> '''ἀνόδων, -οντος (nom commun) (m/f)''' : édenté.<br> '''ἀνόητος, -ος, -ον (adjectif)''' : .<br> '''ἄνοια, -ας (nom commun) (f)''' : démence.<br> '''ἄνοιγμα, -ίγματος (nom commun) (n)''' : orifice, ouverture.<br> '''ἀνοίγω (verbe)''' : ouvrir.<br> '''ἄνοιξις, -ίξεως (nom commun) (f)''' : ouverture.<br> '''ἀνωμαλία, -ας (nom commun) (f)''' : inégalité, irrégularité.<br> '''ἀνώμαλος, -ος, -ον (adjectif)''' : inégal, irrégulier.<br> '''ἄνοικτος, -ος, -ον (adjectif)''' : impitoyable.<br> '''ἀνοικτότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἄνοικτος''.<br> '''ἀνοικτότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἄνοικτος''.<br> '''ἀνοικτότατα, -, - (adverbe)''' : Superlatif de ''ἀνοίκτως''.<br> '''ἀνοικτότερον, -, - (adverbe)''' : Comparatif de ''ἀνοίκτως''.<br> '''ἀνοίκτως (adverbe)''' : impitoyablement.<br> '''ἀνορεξία, -ας (nom commun) (f)''' : manque d’appétit.<br> '''ἄνους, -ους, -ουν (adjectif)''' : dément.<br> '''ἀνταγωνίζεσθαι (verbe)''' : contrarier.<br> '''ἀνταγωνιστής, -οῦ (nom commun) (m)''' : adversaire.<br> '''ἀνταίρω (verbe)''' : se rebeller.<br> '''ἀνταπαίτησις, -ήσεως (nom commun) (f)''' : .<br> '''ἀνταπαιτητής, -οῦ (nom commun) (m)''' : .<br> '''ἀνταπαιτῶ (verbe)''' : .<br> '''ἀνταρσία, -ας (nom commun) (m)''' : rébellion.<br> '''ἀντάρτης, -ου (nom commun) (m)''' : rebelle.<br> '''ἀντάρτικος, -η, -ον (adjectif)''' : rebelle.<br> '''ἀντάρτικῶς (adverbe)''' : Forme adverbiale de ''ἀντάρτικός''.<br> '''ἀντάρτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀντάρτικός''.<br> '''ἀντάρτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀντάρτικός''.<br> '''ἀντάρτικώτατα, -, - (adverbe)''' : Superlatif de ''ἀντάρτικῶς''.<br> '''ἀντάρτικώτερον, -, - (adverbe)''' : Comparatif de ''ἀντάρτικῶς''.<br> '''ἀντέχω (verbe)''' : endurer.<br> '''ἀντιάς, -δος (nom commun) (f)''' : (anatomie) amygdale.<br> '''ἀντιγραφέυς, -έως (nom commun) (m)''' : copiste.<br> '''ἀντιγραφή, -ῆς (nom commun) (f)''' : recopiage.<br> '''ἀντιγράφω (verbe)''' : copier. (un texte écrit)<br> '''ἀντί (préposition)''' : En face de. À l’encontre de, contre. Au lieu de, à la place de. À l’égal de. En échange de. Par succession, par addition. En comparaison de. (En mot composé) En face, à l'encontre. En opposition avec. En échange de, en retour. Au lieu de, à l'égal de. Par correspondance. (En composition) En face, à l'encontre.<br> '''ἀντίληψις, -ήψεως (nom commun) (f)''' : perception.<br> '''ἀντιπαράθεσις, -έσεως (nom commun) (f)''' : confrontation.<br> '''ἀντιπαρατίθημι (verbe)''' : confronter.<br> '''ἀντίπους, -δός (nom commun) (m)''' : antipode.<br> '''ἀντίρρησις, -ήσεως (nom commun) (f)''' : objection.<br> '''ἀντίστοιχος, -ος, -ον (adjectif)''' : correspondant.<br> '''ἀντιστοίχοτατα, -, - (adverbe)''' : Superlatif de ''ἀντιστοίχως''.<br> '''ἀντιστοίχοτερον, -, - (adverbe)''' : Comparatif de ''ἀντιστοίχως''.<br> '''ἀντιστοίχως (adverbe)''' : conformément.<br> '''ἀντιστοιχῶ (verbe)''' : correspondre.<br> '''ἀντισυνταγματικός, -ή, -όν (adjectif)''' : inconstitutionnel.<br> '''ἀντισυνταγματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀντισυνταγματικός''.<br> '''ἀντισυνταγματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀντισυνταγματικός''.<br> '''ἀντισυνταγματικώτατα, -, - (adverbe)''' : Superlatif de ''ἀντισυνταγματικῶς''.<br> '''ἀντισυνταγματικώτερον, -, - (adverbe)''' : Comparatif de ''ἀντισυνταγματικῶς''.<br> '''ἀντισυνταγματικότης, -τος (nom commun) (f)''' : inconstitutionnalité.<br> '''ἀντισυνταγματικῶς (adverbe)''' : inconstitutionnellement.<br> '''ἀντίφασις, -άσεως (nom commun) (f)''' : contradiction.<br> '''ἀντιφάσκω (verbe)''' : contredire.<br> '''ἀντιφατικός -ή -όν (adjectif)''' : contradictoire.<br> '''ἀντιφατικῶς (adverbe)''' : contradictoirement.<br> '''ἀντιφατικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀντισυνταγματικός''.<br> '''ἀντιφατικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀντισυνταγματικός''.<br> '''ἀντιφατικώτατα, -, - (adverbe)''' : Superlatif de ''ἀντιφατικῶς''.<br> '''ἀντιφατικώτερον, -, - (adverbe)''' : Comparatif de ''ἀντιφατικῶς''.<br> '''ἀντιφατικότης, -τος (nom commun) (f)''' : contradiction.<br> '''ἀντίχειρ, -ος (nom commun) (m)''' : pouce.<br> '''ἀντοχή, -ῆς (nom commun) (f)''' : endurance.<br> '''ἀνυπακοή, -ῆς (nom commun) (f)''' : désobéissance.<br> '''ἀνυπάκουος, -η, -ον (adjectif)''' : désobéissant.<br> '''ἀνύψωσις, -ώσεως (nom commun) (f)''' : élévation.<br> '''ἀνυπακούω (verbe)''' : désobéir.<br> '''ἀνώδυνος, -ος, -ον (adjectif) ''' : qui n’est pas douloureux. Qui n’est pas causé par la douleur.<br> '''ἀνώγειον, -ίου (nom commun) (n)''' : grenier.<br> '''ἀνώτατος, -άτη, -ώτατον (adjectif)''' : suprême.<br> '''ἀνώτερος, -έρα, -ώτερον (adjectif)''' : supérieur.<br> '''ἀνωτερότης, -τος (nom commun) (f)''' : supériorité.<br> '''ἄνω (adverbe)''' : Sur, vers le haut ; au dessus.<br> '''ἀξιάκουστος, -ος, -ον (adjectif)''' : digne d’être écouté.<br> '''ἀξίνη, -ης (nom commun) (f)''' : pioche (outil). Hache<br> '''ἀξιο- (préfixe)''' : qui est digne de.<br> '''ἀξιοθέατος, -ος, -ον (adjectif)''' : digne d’être contemplé.<br> '''ἀξιόπιστος, -ος, -ον (adjectif)''' : digne de foi.<br> '''ἄξιος, -α, -ον (adjectif)''' : de valeur, digne de, méritant.<br> '''ἀξίωμα, -τος (nom commun) (n)''' : Prix, valeur. Ce dont on a été jugé digne. Considération, estime. Marque de considération, honneur. Haut rang, dignité. Ce que l’on juge convenable, ce qui paraît juste.<br> '''ἀξιῶ (verbe)''' : mériter (quelque chose).<br> '''ἄξων, -ονος (nom commun) (m)''' : Axe. Essieu de roue. Axe du ciel, du monde. Axe d’un chemin d’où chemin, route. Crochet du mors d’un cheval. Tablette de bois construite sur un pivot. Arbre ou axe de rotation, pivot, battant balistique.<br> '''ἀοιδός, -οῦ (nom commun) (m)''' : Chanteur ; chantre.<br> '''ἀόρατος, -ος, ον (adjectif)''' : invisible.<br> '''ἄορ, -ος (nom commun) (n)''' : épée pendue à la ceinture.<br> '''ἀορτήρ, -ῆρος (nom commun) (m)''' : bandoulière.<br> '''ἀπαγορευτικός, -ή -όν (adjectif)''' : prohibitif.<br> '''ἀπαγόρευσις, -ύσεως (nom commun) (f)''' : prohibition.<br> '''ἀπαγορεύω (verbe)''' : prohiber.<br> '''ἀπαγωγεύς, -έως (nom commun) (m)''' : ravisseur.<br> '''ἀπαγωγή, -ῆς (nom commun) (f)''' : (Droit) En termes de droit athénien, action d’emmener à un procès un malfaiteur pris en flagrant délit. Action de faire dévier du droit chemin. Paiement (d’une contribution ou d’une amende).<br> '''ἀπάγω (verbe)''' : conduire ; emmener.<br> '''ἀπαισιοδοξία, -ας (nom commun) (f)''' : pessimisme.<br> '''ἀπαίτησις, -ήσεως (nom commun) (f)''' : exigence (ce que l’on exige).<br> '''ἀπαιτῶ (verbe)''' : exiger.<br> '''ἀπαλλαγή, -ῆς (nom commun) (f)''' : exonération.<br> '''ἀπαλλακτικός, -ή -όν (adjectif)''' : exonérant.<br> '''ἀπαλλάσσω (verbe)''' : exonérer.<br> '''ἀπαπαῖ (interjection)''' : ouille.<br> '''ἀπαρνοῦμαι (verbe)''' : .<br> '''ἀπάτωρ, -ωρ, -ορ (adjectif)''' : sans père.<br> '''ἄπειμι (verbe)''' : Être absent, s’absenter. Partir, s’en aller.<br> '''ἀπειρέσιος, -ία, -έσιον (adjectif)''' : Illimité, immense ; innombrable.<br> '''ἀπειρεσιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀπειρέσιος''.<br> '''ἀπειρεσιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀπειρέσιος''.<br> '''ἀπειρεσίως (adverbe)''' : immensément.<br> '''ἄπειρος, -ος, -ον (adjectif)''' : infini.<br> '''ἀπειρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἄπειρος''.<br> '''ἀπειρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἄπειρος''.<br> '''ἀπείρως (adverbe)''' : infiniment.<br> '''ἀπελευθέρωσις, -ώσεως (nom commun) (f)''' : libération.<br> '''ἀπεργάζομαι (verbe)''' : .<br> '''ἀπέχθεια, -ας (nom commun) (f)''' : répugnance.<br> '''ἀπεχθής, -ής, -ές (adjectif)''' : répugnant.<br> '''ἀπήνη, -ης (nom commun) (f)''' : .<br> '''ἀπίθανος, -ος, -ον (adjectif)''' : improbable ; incroyable.<br> '''ἄπιον, -ίου (nom commun) (n)''' : poire.<br> '''ἀπιστία, -ας (nom commun) (f)''' : infidélité ; déloyauté.<br> '''ἀπιστίη, -ης (nom commun) (f)''' : Forme ionienne de ''ἀπιστία''.<br> '''ἄπιστος, -ος, -ον (adjectif)''' : infidèle ; déloyal.<br> '''ἀπλάνεια, -ίας (nom commun) (f)''' : constance.<br> '''ἄπληστος, -η, -ον (adjectif)''' : .<br> '''ἁπλότης, -τος (nom commun) (f)''' : simplicité.<br> '''ἁπλοῦς, -ῆ, -οῦν (adjectif)''' : simple.<br> '''ἀπό (adverbe ; préposition)''' (Devient ''ἀπ’'' devant un mot commençant par une voyelle à esprit doux, et ''ἀφ’'' devant un mot commençant par une voyelle à esprit rude.) : Au loin, en venant de.<br> '''ἀπό- (préfixe)''' : séparation, éloignement, changement, achèvement, cessation, retour, privation, négation.<br> '''ἀπόγειον, -ίου (nom commun) (n)''' : apogée.<br> '''ἀπόγειος, -ος, -ον (adjectif)''' : Qui part de terre, ou vient de son souffle. Éloigné de la terre.<br> '''ἀπόγονος, -όνου (nom commun) (m)''' : descendant.<br> '''ἀπογραφή, -ῆς (nom commun) (f)''' : Registre, liste. Copie.<br> '''ἀπογράφω (m)''' : copier.<br> '''ἀπόδειξις, -ίξεως (nom commun) (f)''' : évidence, preuve.<br> '''ἀποδεικτικός, -ή, -όν (adjectif)''' : évident.<br> '''ἀποδεικτικῶς (adverbe)''' : évidemment.<br> '''ἀποδεικτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀποδεικτικός''.<br> '''ἀποδεικτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀποδεικτικός''.<br> '''ἀποδεικτικώτατα, -, - (adverbe)''' : Superlatif de ''ἀποδεικτικῶς''.<br> '''ἀποδεικτικώτερον, -, - (adverbe)''' : Comparatif de ''ἀποδεικτικῶς''.<br> '''ἀπολογητικός, -ή, -όν (adjectif)''' : défensif.<br> '''ἀπολογητικῶς (adverbe)''' : défensivement.<br> '''ἀπολογητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀπολογητικός''.<br> '''ἀπολογητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀπολογητικός''.<br> '''ἀπολογητικώτατα, -, - (adverbe)''' : Superlatif de ''ἀπολογητικῶς''.<br> '''ἀπολογητικώτερον, -, - (adverbe)''' : Comparatif de ''ἀπολογητικῶς''.<br> '''ἀπολογία, -ας (nom commun) (f)''' : Défense, justification.<br> '''ἀπόλυτος, -η, -ον (adjectif)''' : absolu.<br> '''ἀπολύτως (adverbe)''' : absolument.<br> '''ἀπολύω (verbe)''' : congédier, licencier ; renvoyer.<br> '''ἀποπομπαῖος, -ία, -ῖον (adjectif)''' : expiatoire.<br> '''ἀποπέμπω (verbe)''' : emporter le mal.<br> '''ἀποθνῄσκω (verbe)''' : mourir.<br> '''ἀποκάλυψις, -ύψεως (nom commun) (f)''' : dévoilement.<br> '''ἀποκαλύπτω (verbe)''' : dévoiler.<br> '''ἀποκεφαλισμός, -οῦ (nom commun) (f)''' : décapitation.<br> '''ἀποκεφαλίζω (verbe)''' : décapiter.<br> '''ἀποκρουστικός, -ή, -όν (adjectif)''' : . <br> '''ἀποκρούω (verbe)''' : . <br> '''ἀπόκρυφος, -ος, -ον (adjectif)''' : . <br> '''ἀπολαμϐάνω (verbe)''' : jouir. (Avoir l’usage, la possession actuelle de quelque chose.)<br> '''ἀπόλαυσις, -ύσεως (nom commun) (f)''' : jouissance (Satisfaction voluptueuse ; plaisir né de la relation sexuelle épanouie.)<br> '''ἀπολαύω (verbe)''' : jouir. (Éprouver un vif plaisir, un orgasme, etc.)<br> '''ἀπολέγω (verbe)''' : Décliner, refuser.<br> '''ἀπολογία, -ας (nom commun) (f)''' : Défense, justification.<br> '''ἀπόλογος, -όγου (nom commun) (m)''' : Défense. Narration, récit détaillé.<br> '''ἀποπατῶ (verbe)''' : déféquer.<br> '''ἀποπνίγω (verbe)''' : suffoquer.<br> '''ἀπορρίπτω (verbe)''' : .<br> '''ἀπόσπασμα, -άσματος (nom commun) (n)''' : fragment.<br> '''ἀποστρέφω (verbe)''' : .<br> '''ἀποστροφή, -ῆς (nom commun) (f)''' : répulsion.<br> '''ἀπόστροφος, -ος, -ον (adjectif)''' : répulsif.<br> '''ἀποτέλεσμα, -έσματος (nom commun) (n)''' : résultat ; effet.<br> '''ἀποτελῶ (verbe)''' : échouer.<br> '''ἀποστέρησις, -ήσεως (nom commun) (f)''' : frustration.<br> '''ἀποστερῶ (verbe)''' : frustrer.<br> '''ἀποτέφρωσις, -ώσεως (nom commun) (f)''' : incinération.<br> '''ἀποτεφρῶ (verbe)''' : incinérer.<br> '''ἀποτυγχάνω (verbe)''' : échouer.<br> '''ἀποτυχία, -ας (nom commun) (f)''' : échec.<br> '''ἀπουσία, -ας (nom commun) (f)''' : absence.<br> '''ἄπους, -ους, -ουν (adjectif)''' : apode.<br> '''ἀποφαίνω (verbe)''' : décider.<br> '''ἀπόφασις, -άσεως (nom commun) (f)''' : décision.<br> '''ἀποφεύγω (verbe)''' : s’échapper.<br> '''ἀπόφημι (verbe)''' : .<br> '''ἀποφθέγγομαι (verbe)''' : .<br> '''ἀπόφθεγμα, -έγματος (nom commun) (n)''' : précepte, sentence.<br> '''ἀποφθορά, -ᾶς (nom commun) (f)''' : avortement.<br> '''ἀποφόρητον, -ου (nom commun) (n)''' : étrenne.<br> '''ἀποφυγή, -ῆς (nom commun) (f)''' : échappée.<br> '''ἄποψις, -όψεως (nom commun) (f)''' : opinion, point de vue.<br> '''ἀποψύχω (verbe)''' : s’évanouir.<br> '''ἁπτικός, -ή, -όν (adjectif)''' : tactile.<br> '''ἀπύ (adverbe ; préposition)''' : Forme arcado-chypriote et éolienne de ''ἀπό''.<br> '''ἀπών, -οῦσα, -όν (adjectif)''' : absent.<br> '''ἅπτω (verbe)''' : toucher.<br> '''ἅπτω (verbe)''' : ajuster, attacher ; nouer.<br> '''ἄρα (conjonction)''' : (Devient ''ἄρ’'' devant un mot commençant par une voyelle, et ''ῥά'' après un mot monosyllabique ou un mot finissant par une voyelle.) puis, et, alors. Par suite, ainsi donc, donc. Puisque, à savoir, c’est-à-dire, en effet. Ayant donc, ainsi parlé.<br> '''ἆρα (particule)''' : (Devient ''ἆρ’'' devant un mot commençant par une voyelle.) est-ce que.<br> '''ἀρά, -ᾶς (nom commun) (f)''' : Prière. Imprécation.<br> '''ἄρακος, -άκου (nom commun) (m)''' : pois.<br> '''ἀράχνη, -ης (nom commun) (f)''' : araignée.<br> '''ἀρϐύλη, -ης (nom commun) (f)''' : botte (chaussure épaisse au long col).<br> '''ἄρδις, -ος (nom commun) (f)''' : pointe de flèche.<br> '''ἀργά (adverbe)''' : tard.<br> '''ἄργιλλος, -ίλλου (nom commun) (m)''' : argile.<br> '''ἀργιλλοφόρητος''' : mot fantôme selon Rosane Rocher (1961), comme καλποφόρος, ὀφιοφόρος, ὠποφόρος et σμνρμοφόρος.<br> '''ἀργιλλώδης (adjectif)''' : argileux.<br> '''ἀργός, -ή, -όν (adjectif)''' : blanc ; étincelant.<br> '''ἄργυρος, -ύρου (nom commun) (m)''' : argent. (métal)<br> '''ἀργῶ (verbe)''' : .<br> '''ἀρετά, -ᾶς (nom commun) (f)''' : Forme dorienne de ''ἀρετή''.<br> '''ἀρετή, -ῆς (nom commun) (f)''' : vertu.<br> '''ἀρή, -ῆς (nom commun) (f)''' : Forme ionienne de ''ἀρά''.<br> '''ἄρθρον, -ου (nom commun) (n)''' : Jointure, articulation. Article. (outil grammatical)<br> '''ἀριστερός, -ά, -όν (adjectif)''' : Qui est à gauche.<br> '''ἀριστόϐουλος, -ος, -ον (adjectif)''' : .<br> '''ἄριστος, -η, -ον (adjectif)''' : excellent.<br> '''ἀρκαδικός, -ή, -όν (adjectif)''' : arcadien.<br> '''ἄρκευθος, -ύθου (nom commun) (f)''' : genévrier.<br> '''ἄρκτος, -ου (nom commun) (m/f)''' : ours(e).<br> '''ἄρκυς, -ος (nom commun) (m)''' : filet.<br> '''ἄρμα, -τος (nom commun) (t)''' : char.<br> '''ἁρμονία, -ας (nom commun) (f)''' : harmonie.<br> '''ἁρμονικός, -ή, -όν (adjectif)''' : harmonieux.<br> '''ἁρμονικῶς (adverbe)''' : harmonieusement.<br> '''ἁρμονικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἁρμονικός''.<br> '''ἁρμονικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἁρμονικός''.<br> '''ἁρμονικώτατα, -, - (adverbe)''' : Superlatif de ''ἁρμονικῶς''.<br> '''ἁρμονικώτερον, -, - (adverbe)''' : Comparatif de ''ἁρμονικῶς''.<br> '''ἀρνοῦμαι (verbe)''' : refuser.<br> '''ἄρουρα, -ας (nom commun) (f)''' : aroure.<br> '''ἀρουραῖος, -ίου (nom commun) (m)''' : rat.<br> '''ἁρπακτικός, -οῦ (nom commun) (m)''' : prédateur.<br> '''ἅρπαξ, -γος (nom commun) (m)''' : rapace, pillard.<br> '''ἁρπίς, -ῖδος (nom commun) (f)''' : pantoufle.<br> '''ἀρραϐών, -ῶνος (nom commun) (n)''' : arrhes.<br> '''ἄρρητος, -ος, -ον (adjectif)''' : Indicible ; ineffable, (Mathématiques) irrationnel.<br> '''ἄρσην, -ην, -εν (adjectif)''' : Mâle ; dur, fort.<br> '''ἄρρην, -ενος (nom commun) (m)''' : Forme attique de ''ἄρσην''.<br> '''ἄρσην, -ενος (nom commun) (m)''' : Homme adulte ; mâle.<br> '''ἄρσης, -ενος (nom commun) (m)''' : Forme laconienne de ''ἄρσην''.<br> '''ἄρριχος, -ίχου (nom commun) (m)''' : panier.<br> '''ἄρρωστος, -ος, -ον (adjectif)''' : .<br> '''ἀρρωστότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἄρρωστος''.<br> '''ἀρρωστότερος, -έρα, -ότερον (adjectif)'''' : Comparatif de ''ἄρρωστος''.<br> '''ἀρρωστότατα, -, - (adverbe)''' : Superlatif de ''ἀρρώστως''.<br> '''ἀρρωστότερον, -, - (adverbe)''' : Comparatif de ''ἀρρώστως''.<br> '''ἀρρώστως (adverbe)''' : .<br> '''ἄρτι (adverbe)''' : justement ; exactement. Maintenant.<br> '''ἄρτιος, -ία, -ον (adjectif)''' : Parfait, complet ; achevé. (Mathématiques) Pair, en parlant des nombres.<br> '''ἀρτίως (adverbe)''' : parfaitement ; complètement.<br> '''ἀρτιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἄρτιος''.<br> '''ἀρτιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἄρτιος''.<br> '''ἀρτοποιός, -οῦ (nom commun) (m)''' : boulanger .<br> '''ἄρτος, -ου (nom commun) (m)''' : pain. (aliment)<br> '''ἀρτῶ (verbe)''' : Attacher. (Au passif) Dépendre, pendre, être attaché à.<br> '''ἀρύϐαλλος, ου (nom commun) (m)''' : flacon à huile.<br> '''ἀρχάγγελος, -έλου (nom commun) (m)''' : messager en chef ; archange.<br> '''ἀρχαῖος, -ία, -ῖον (adjectif)''' : ancien.<br> '''ἀρχαιότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἀρχαῖος''.<br> '''ἀρχαιότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἀρχαῖος''.<br> '''ἀρχαίως (adverbe)''' : anciennement.<br> ''', -, - (adverbe)''' : Superlatif de ''ἀρχαίως''.<br> ''', -, - (adverbe)''' : Comparatif de ''ἀρχαίως''.<br> '''ἀρχαϊκός, -ή, -όν (adjectif)''' : vieilli.<br> '''ἀρχαϊκότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἀρχαϊκός''.<br> '''ἀρχαϊκότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἀρχαϊκός''.<br> '''ἀρχαϊκῶς (adverbe)''' : vieillement.<br> '''ἀρχαϊκώτατα, -, - (adverbe)''' : Superlatif de ''ἀρχαϊκῶς''.<br> '''ἀρχαϊκώτερον, -, - (adverbe)''' : Comparatif de ''ἀρχαϊκῶς''.<br> '''ἀρχέτυπον, -ύπου (nom commun) (n)''' : modèle.<br> '''ἀρχή, -ῆς (nom commun) (f)''' : commencement, commandement.<br> '''ἀρχηγός, -οῦ (nom commun) (m)''' : chef.<br> '''-άρχης, -ου (suffixe)''' : qui est chef de.<br> '''ἀρχι- (préfixe)''' : relatif au commencement, au commandement.<br> '''ἀρχιδιάκονος, -όνου (nom commun) (m/f)''' : archidiacre.<br> '''ἀρχιδιήκονος, -όνου (nom commun) (m/f)''' : Forme ionienne de ''ἀρχιδιάκονος''.<br> '''ἀρχίκλωψ, -πός (nom commun) (m)''' : maître voleur.<br> '''ἀρχίμιμος, -ίμου (nom commun) (m)''' : archimime.<br> '''ἀρχιτέκτων, -ονος (nom commun) (m)''' : maître d’œuvre.<br> '''ἄρχων, -οντος (nom commun) (m)''' : archonte.<br> '''ἄρωμα, -ώματος (nom commun) (n)''' : parfum.<br> '''ἄρω (verbe)''' : nouer.<br> '''ἄσϐολος, -όλου (nom commun) (f)''' : suie.<br> '''ἀσέϐεια, -ας (nom commun) (f)''' : impiété.<br> '''ἀσεϐής, -ής, -ές (adjectif)''' : impie.<br> '''ἀσεϐῶ (verbe)''' : être impie.<br> '''ἀσέλγεια, -ας (nom commun) (f)''' : lubricité.<br> '''ἀσελγέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἀσελγής''.<br> '''ἀσελγέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἀσελγής''.<br> '''ἀσελγής, -ής, -ές (adjectif)''' : lubrique.<br> '''ἀσελγότατα, -, - (adverbe)''' : Superlatif de ''ἀσελγῶς''.<br> '''ἀσελγότερον, -, - (adverbe)''' : Comparatif de ''ἀσελγῶς''.<br> '''ἀσελγῶς (adverbe)''' : lubriquement.<br> '''ἀσελγῶ (verbe)''' : être lubrique.<br> '''ἀσθενής, -ής, -ές (adjectif)''' : malade.<br> '''ἄσθμα, -τος (nom commun) (n)''' : asthme.<br> '''ἄσις, - (nom commun) (f)''' : Boue, argile.<br> '''ἀσκάλαϐος, -άϐου (nom commun) (m)''' : gecko.<br> '''ἄσκαυλος, -ύλου (nom commun) (m)''' : cornemuse.<br> '''ἀσκέω (verbe)''' : entraîner.<br> '''ἄσκημα, -ήματος (nom commun) (n)''' : entraînement.<br> '''ἄσκησις, -ήσεως (nom commun) (f)''' : exercice.<br> '''ἀσκητεία, -ας (nom commun) (f)''' : ascétie.<br> '''ἀσκητήριον, -ίου (nom commun) (n)''' : .<br> '''ἀσκητής, -οῦ (nom commun) (m)''' : ascète.<br> '''ἀσκητικός, -ή, -όν (adjectif)''' : ascétique.<br> '''ἀσκός, -οῦ (nom commun) (m)''' : outre.<br> '''ἀσκῶ (verbe)''' : exercer.<br> '''ᾆσμα, -τος (nom commun) (n)''' : chant.<br> '''ἀσπάλαξ, -κος (nom commun) (m)''' : taupe.<br> '''ἄσπαλος, -άλου (nom commun) (m)''' : squale.<br> '''ἀσπίς, -δος (nom commun) (f)''' : bouclier.<br> '''ἀστακός, -οῦ (nom commun) (m)''' : homard.<br> '''ἀστεῖος, -ία, -ῖον (adjectif)''' : urbain.<br> '''ἀστήρ, -έρος (nom commun) (m)''' : étoile.<br> '''ἀστικός, -ή, -όν (adjectif)''' : urbain.<br> '''ἀστραπή, -ῆς (nom commun) (f)''' : éclair.<br> '''ἄστρον, -ου (nom commun) (n)''' : Astre, constellation, système d’étoiles.<br> '''ἀστυνομία, -ας (nom commun) (f)''' : police urbaine.<br> '''ἀστυνόμος, -ου (nom commun) (m)''' : astynome.<br> '''ἀστύνομος, -ος, -ον (adjectif)''' : public.<br> '''ἄστυ, -εως (nom commun) (n)''' : Cité ; ville.<br> '''ἀστυφύλαξ, -κος (nom commun) (m)''' : policier.<br> '''ἄσυλον, -ύλου (nom commun) (n)''' : asile.<br> '''ἄσυλος, -ος, -ον (adjectif)''' : inviolable.<br> '''ἀσυμμετρία, -ας (nom commun) (f)''' : mauvaise proportion.<br> '''ἄσυχος, -ος, -ον (adjectif)''' : Forme dorienne de ''ἥσυχος''.<br> '''ἀσφάλεια, -ίας (nom commun) (f)''' : sécurité.<br> '''ἀσφαλής, -ής, -ές (adjectif)''' : sûr.<br> '''ἄσφαλτος, -άλτου (nom commun) (f)''' : asphalte.<br> '''ἀσφαλῶς (adverbe)''' : sûrement.<br> '''-άς, -δος (suffixe) (f)''' : Forme des noms d’agent.<br> '''ἄτα, -ας (nom commun)''' : Forme dorienne de ''ἄτη''.<br> '''ἄτακτος, -η, -ον (adjectif)''' : vilain.<br> '''ἀταξία, -ας (nom commun) (f)''' : vilénie.<br> '''ἀταραξία, -ας (nom commun) (f)''' : Calme ; imperturbabilité.<br> '''ἅτερος, -έρα, -ερον (adjectif)''' : Forme dorienne de ''ἕτερος''.<br> '''ἄτερος, -έρα, -ερον (adjectif)''' : Forme éolienne de ''ἕτερος''.<br> '''ἄτη, -ης (nom commun)''' : Outrage. (Religion) Péché, faute. Ruine.<br> '''ἀτιμάζω (verbe)''' : déshonorer.<br> '''ἄτρακτος, -άκτου (nom commun) (n)''' : fuseau.<br> '''ἀτραπός, -οῦ (nom commun) (f)''' : sentier.<br> '''ἄττα, -ου (nom commun) (m)''' : Forme homérique de ''πάππας'' et ''τατᾶ''.<br> '''ἀτύχημα, -ήματος (nom commun) (n)''' : accident.<br> '''ἀτυχῶ (verbe)''' : avoir un accident.<br> '''αὐθάδεια, -ας (nom commun) (f)''' : insolence.<br> '''αὐθάδης, -ής, -ές (adjectif)''' : insolent.<br> '''αὖθις (adverbe)''' : à nouveau.<br> '''αὖλαξ, -ὔλακος (nom commun) (m)''' : irrigation.<br> '''αὐλή, -ῆς (nom commun) (f)''' : cour.<br> '''αὐλητής, -οῦ (nom commun) (m)''' : joueur d’aulos.<br> '''αὐλητρίς, -δος (nom commun) (f)''' : joueuse d’aulos.<br> '''αὐλίζομαι (verbe)''' : passer la nuit.<br> '''αὖλις, - (nom commun) (f)''' : résidence, camp.<br> '''αὐλός, -οῦ (nom commun) (m)''' : aulos.<br> '''αὐλῶ (verbe)''' : jouer de l’aulos.<br> '''αὐξάνω (verbe)''' : augmenter.<br> '''αὔξη, -ης (nom commun) (f)''' : croissance.<br> '''αὔξημα, -ήματος (nom commun) (n)''' : .<br> '''αὔξησις, -ήσεως (nom commun) (f)''' : Accroissement, hausse.<br> '''αὔξιμος, -ος, -ον (adjectif)''' : .<br> '''αὐξητικός, -ή, -όν (adjectif)''' : .<br> '''αὔξω (verbe)''' : croître.<br> '''ἀϋπνία, -ας (nom commun) (f)''' : insomnie.<br> '''αὔρα, -ας (nom commun) (f)''' : aura.<br> '''αὔρη, -ης (nom commun) (f)''' : Forme ionienne de ''αὔρα''.<br> '''αὔριον (adverbe)''' : demain, bientôt.<br> '''αὐστηρός, -ή, -όν (adjectif)''' : sévère.<br> '''αὐστηρότης, -τος (nom commun) (f)''' : sévérité.<br> '''αὐστηρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''αὐστηρότατος''.<br> '''αὐστηρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''αὐστηρότατος''.<br> '''αὐστηρῶς (adverbe)''' : sévèrement.<br> '''αὐτανάφλεξις, -έξεως (nom commun) (f)''' : combustion spontanée.<br> '''αὐτάναξ, -κτος (nom commun) (m)''' : empereur.<br> '''αὐτάρ (adverbe)''' : mais, cependant.<br> '''αὐτίκα (adverbe)''' : aussitôt, sur-le-champ.<br> '''αὐτοκίνητος, -ος, -ον (adjectif)''' : .<br> '''αὐτοκινῶ (verbe)''' : .<br> '''αὐτοκράτειρα, -ας (nom commun) (f)''' : impératrice.<br> '''αὐτοκρατορία, -ας (nom commun) (f)''' : empire.<br> '''αὐτοκράτωρ, -ορος (nom commun) (m)''' : empereur.<br> '''αὐτολεξεί (adverbe)''' : mot pour mot.<br> '''αὐτός -ή, -ό (pronom personnel)''' : il.<br> '''αὐτοσχεδιάζω (verbe)''' : improviser.<br> '''αὐτοσχεδιασμός, -οῦ (nom commun) (m)''' : improvisation.<br> '''αὐτοσχέδιος, -ος, -ον (adjectif)''' : improvisé.<br> '''αὐτοσχεδίως (verbe)''' : de façon improvisée.<br> '''αὐτόχθων, -ων, -ον (adjectif)''' : indigène.<br> '''αὐτοψία, -ας (nom commun) (f)''' : autopsie.<br> '''αὐχήν, -ένος (nom commun) (m)''' : nuque.<br> '''αὕω (verbe)''' : soustraire.<br> '''ἀφαίρεσις, -έσεως (nom commun) (f)''' : soustraction.<br> '''ἀφαιρῶ (verbe)''' : soustraire.<br> '''ἀφεδρών, -ῶνος (nom commun) (m)''' : latrine.<br> '''αφέλεια, -ίας (nom commun) (f)''' : ingénuité, naïveté.<br> '''ἀφελής, -ής, -ές (adjectif)''' : ingénu, naïf.<br> '''ἁφή, -ῆς (nom commun) (f)''' : toucher.<br> '''ἀφήγημα, -ήματος (nom commun) (n)''' : récit.<br> '''ἀφηγηματικός, -ή -όν (adjectif)''' : narratif.<br> '''ἀφηγηματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἀφηγηματικός''.<br> '''ἀφηγηματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἀφηγηματικός''.<br> '''ἀφηγηματικώτατα, -, - (adverbe)''' : Superlatif de ''ἀντιφατικῶς''.<br> '''ἀφηγηματικώτερον, -, - (adverbe)''' : Comparatif de ''ἀντιφατικῶς''.<br> '''ἀφήγησις, -ήσεως (nom commun) (f)''' : narration.<br> '''ἀφηγητής, -οῦ (nom commun) (m)''' : narrateur.<br> '''ἀφηγοῦμαι (verbe)''' : narrer.<br> '''ἄφθα, -ης (nom commun) (f)''' : aphte.<br> '''ἀφίημι (verbe)''' : Envoyer, renvoyer. Laisser aller, lâcher, relâcher. Libérer.<br> '''ἄφιξις, -ίξεως (nom commun) (f)''' : arrivée.<br> '''ἀφόδευσις, -ύσεως (nom commun) (f)''' : défécation.<br> '''ἀφοδεύω (verbe)''' : déféquer.<br> '''ἀφοπλίζω (verbe)''' : désarmer.<br> '''ἀφοπλισμός, -οῦ (nom commun) (m)''' : désarmement.<br> '''ἀφροδισιακός -ή -όν (adjectif)''' : aphrodisiaque.<br> '''ἀφροδισιασμός, -οῦ (nom commun) (m)''' : aphrodisiasme.<br> '''ἀφροδισιαστικός, -ή -όν (adjectif)''' : aphrodisiastique.<br> '''ἀφορισμός, -οῦ (nom commun) (m)''' : abolition, excommunication.<br> '''ἀφροδίσιος, -α, -ον (adjectif)''' : vénérien.<br> '''ἀφορίζω (verbe)''' : abolir, excommunier.<br> '''ἀφοσίωσις, -ώσεως (nom commun) (f)''' : dévotion.<br> '''ἀφρός, -οῦ (nom commun) (m)''' : écume.<br> '''ἀφύη, -ῆς (nom commun) (f)''' : anchois.<br> '''ἀναχαίνω (verbe)''' : retenir son souffle.<br> '''ἀναχάσκω (verbe)''' : ouvrir la bouche.<br> '''ἀχαριστῶ (verbe)''' : .<br> '''ἁχατης, -ου (nom commun) (m)''' : agate.<br> '''ἀχλυόεις, -εσσα, -εν (adjectif)''' : brumeux.<br> '''ἀχλυοέντως (adverbe)''' : .<br> '''ἀχλυοέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἀχλυόεις''.<br> '''ἀχλυοέστερος, -έρα, -ερον (adjectif)''' : Comparatif de ''ἀχλυόεις''.<br> '''ἄχλυσις, -εως (nom commun) (f)''' : .<br> '''ἀχλύς, -ος (nom commun) (f)''' : brume, ténèbres.<br> '''ἀχλυώδης, -ης, -ες (adjectif)''' : .<br> '''ἀχλυῶ (verbe)''' : .<br> '''ἀχράς, -δος (nom commun) (f)''' : poire.<br> '''ἄχερδος, -έρδου (nom commun) (f)''' : poire.<br> '''ἀχυρών, -ῶνος (nom commun) (m)''' : grange.<br> '''ἀψίνθιον, -ίου (nom commun) (n)''' : absinthe.<br> '''ἄψογος, -ος, -ον (n)''' : impeccable.<br> '''ἄψ (adverbe)''' : En arrière (sans mouvement), en retour. Encore.<br> '''ἄωτον, -ου (nom commun) (n)''' : summum.<br> '''ἄω (verbe)''' : souffler, dormir.<br> '''Ἀαρών (nom propre) (m)''' : Aaron.<br> '''Ἀϐαδδών (nom propre) (m)''' : Abaddon.<br> '''Ἀϐδίας, -ου (nom propre) (m)''' : Abdias.<br> '''Ἅϐελ (nom propre) (m)''' : Abel.<br> '''Ἀϐέλλα, -ας (nom propre) (f)''' : Avella.<br> '''Ἀϐενέζερ (nom propre) (m)''' : Ebenezer.<br> '''Ἀϐησσυνία, -ας (nom propre) (f)''' : Abyssinie.<br> '''Ἀϐιά (nom propre) (m)''' : Abija.<br> '''Ἀϐιάθαρ (nom propre) (m)''' : Abiathar.<br> '''Ἀϐιγαία, -ας (nom propre) (m)''' : Abigaëlle.<br> '''Ἀϐραάμ (nom propre) (m)''' : Abraham.<br> '''Ἀϐράμης, -ου (nom propre) (m)''' : Forme alternative de ''Ἀϐραάμ''.<br> '''Ἀϐραμίας, -ου (nom propre) (m)''' : Forme alternative de ''Ἀϐραάμ''.<br> '''Ἄϐραμος, - (nom propre) (m)''' : Forme alternative de ''Ἀϐραάμ''.<br> '''Ἀγαμέμνων, -ονος (nom propre) (m)''' : Agamemnon.<br> '''Ἀγαθή, -ῆς (nom propre) (f)''' : Agathe.<br> '''Ἀγαθοκλῆς, -έους (nom propre) (m)''' : Agathoclès.<br> '''Ἀγήνωρ, -ορος (nom propre) (m)''' : Agénor.<br> '''Ἀγησίλαος, -άου (nom propre) (m)''' : Agésilas.<br> '''Αἰγεύς, -έως (nom propre) (m)''' : Égée.<br> '''Αἰγιδιός, -οῦ (prénom) (m)''' : Gilles.<br> '''Αἴγλη, -ης (nom propre) (f)''' : Églé.<br> '''Αἰγόκερως, -έρωτος (nom commun) (f)''' : Capricorne.<br> '''Ἄγκυρα, -ύρας (nom propre) (f)''' : Ankara.<br> '''Ἀγλαΐα, -ας (nom propre) (f)''' : Aglaé.<br> '''Ἀγλαός, -οῦ (nom propre) (m)''' : Aglaos.<br> ''', - (nom propre) (m)''' : Agrios.<br> '''Ἁγνοδίκη, -ης (nom propre) (f)''' : Agnodice.<br> '''Ἁγνωνίδης, -ου (nom propre) (m)''' : .<br> '''Ἀγρίππας, -α (nom propre) (m)''' : Agrippa.<br> '''Ἀγριππίνη, -ης (nom propre) (f)''' : Agrippine.<br> '''Ἀδάμ (nom propre) (m)''' : Adam.<br> '''ᾍδης, -ου (nom propre) (m)''' : [[wikt:Hadès|Hadès]].<br> '''Ἀδικία, -ας (nom propre) (f)''' : Adicie.<br> '''Ἁδριανούπολις, -όλεως (nom propre) (f)''' : Edirne.<br> '''Ἁδριανός, -οῦ (nom propre) (m)''' : Hadrien.<br> '''Ἄδωνις, -ώνιδος (nom propre) (m)''' : Adonis.<br> '''Ἀζαζέλ (nom propre) (m)''' : Azazel.<br> '''Ἀθανάσιος, -ίου (nom propre) (m)''' : Athanase.<br> '''Ἀθάνα, -ας (nom propre) (f)''' : Forme dorienne de ''Ἀθηνᾶ''.<br> '''Ἀθηνᾶ, -ᾶς (nom propre) (f)''' : [[wikt:Athéna|Athéna]].<br> '''Ἀθῆναι, -ῶν (nom propre) (f)''' : Athènes.<br> '''Ἀθηναία, -ας (nom propre) (f)''' : Forme de ''Ἀθηνᾶ''.<br> '''Ἀθηναῖα, -ίας (nom commun) (f)''' : Athénienne.<br> '''Ἀθηναῖος, -ίου (nom commun) (m)''' : Athénien.<br> '''Ἀθήναιος, -ίου (nom propre) (m)''' : Athénée.<br> '''Ἀθήνη, -ης (nom propre) (f)''' : Forme ionienne de ''Ἀθηνᾶ''.<br> '''Ἀθηνόδωρος, -ώρου (nom propre) (m)''' : Athénodore.<br> '''Ἀθύρ (nom propre) (m)''' : Athyr.<br> '''Ἅθωρ (nom propre) (f)''' : Hathor.<br> '''Ἄθως, -ω (nom propre) (m)''' : Athos (géant) ; mont Athos.<br> '''Αἰακός, -οῦ (nom propre) (m)''' : Éaque.<br> '''Αἴας, -ντος (nom propre) (m)''' : Ajax.<br> '''Αἰαία, -ας (nom propre) (f)''' : Ééa.<br> '''Ἀΐδας, -ου (nom propre) (m)''' : Forme dorienne de ''ᾍδης''.<br> '''Ἀΐδης, -ου (nom propre) (m)''' : Forme homérique de ''ᾍδης''.<br> '''Ἀϊδωνεύς, -έως (nom propre) (m)''' : Forme de ''ᾍδης''.<br> '''Αἰγεύς, -έως (nom propre) (m)''' : Égée.<br> '''Αἰγιδιός, -οῦ (prénom) (m)''' : Gilles.<br> '''Αἴγισθος, -ίσθου (nom propre) (m)''' : Égisthe.<br> '''Αἰγύπτια, -ίας (nom commun) (m)''' : Égyptienne.<br> '''Αἰγυπτιακή, -ῆς (nom propre) (f)''' : égyptien (langue).<br> '''Αἰγύπτιος, -ίου (nom commun) (m)''' : Égyptien.<br> '''Αἴγυπτος, -ύπτου (nom propre) (m)''' : Égypte.<br> '''Αἰήτης, -ου (nom propre) (m)''' : Éétès.<br> '''Αἰκατερίνη, -ης (prénom) (f)''' : Catherine.<br> '''Αἰθαλία, -ας (nom propre) (f)''' : Italie.<br> '''Αἰθήρ, -έρος (nom propre) (m)''' : [[wikt:Éther|Éther]].<br> '''Αἰθιοπία, -ας (nom propre) (f)''' : Éthiopie.<br> '''Αἰθιοπίς, -δος (nom commun) (f)''' : Éthiopienne.<br> '''Αἰθίοψ, -πος (nom commun) (m)''' : Éthiopien.<br> '''Αἰμιλία, -ας (nom propre) (f)''' : Émilie.<br> '''Αἰμίλιος, -ίου (nom propre) (m)''' : Émile.<br> '''Αἰνέας, -ου (nom propre) (m)''' : Forme poétique de ''Αἰνείας''.<br> '''Αἰνείας, -ου (nom propre) (m)''' : Énée.<br> '''Αἰνειάς, -δος (nom propre) (f)''' : Énéide.<br> '''Αἰολίς, -δος (nom propre) (f)''' : Éolide.<br> '''Αἰολεύς, -έως (nom commun) (m)''' : Éolien.<br> '''Αἴολος, -όλου (nom propre) (m)''' : [[wikt:Éole|Éole]].<br> '''Αἴολος, -όλου (nom propre) (m)''' : Éole (fils d'Hellen).<br> '''Αἶσα, -ἴσης (nom commun) (f)''' : [[wikt:Ésa|Ésa]].<br> '''Αἰσχύλος, -ου (nom propre) (m)''' : Eschyle.<br> '''Αἴσωπος, -ώπου (nom propre) (m)''' : Ésope.<br> '''Αἴτνη, -ης (nom propre) (f)''' : Etna.<br> '''Αἰών, -ῶνου (nom propre) (m)''' : Éon.<br> '''Ἀκαδημία, -ας (nom propre) (f)''' : jardin d’Académos, près d’Athènes, où Platon enseignait.<br> '''Ἀκάδημος, -ήμου (nom propre) (m)''' : Académos.<br> '''Ἄκις, -εως (nom propre) (m)''' : Acis.<br> '''Ἀκταίων, -ος (nom propre) (m)''' : Actéon.<br> '''Ἀκτέων, -ος (nom propre) (m)''' : Forme poétique d’''Ἀκταίων''.<br> '''Ἄκτωρ, -ορος (nom propre) (m)''' : Actor (frère cadet d’Augias).<br> '''Ἀκκώ, -οῦς (nom propre) (f)''' : Aléria.<br> '''Ἀλαλίη, -ης (nom propre) (f)''' : Aléria.<br> '''Ἀλϐίων, -ος (nom propre) (m)''' : Albion.<br> '''Ἀλεξάνδρεια, -ίας (nom propre) (f)''' : Alexandrie.<br> '''Ἀλεξανδρέττα, -ας (nom commun) (f)''' : Alexandrine.<br> '''Ἀλεξανδρεύς, -έως (nom commun) (m)''' : Alexandrin.<br> '''Ἀλέξανδρος, -άνδρου (nom propre) (m)''' : Alexandre.<br> '''Ἀλέξανδρος ὁ Μέγας (nom propre) (m)''' : Alexandre le Grand.<br> '''Ἄλεξις, - (nom propre) (m)''' : Alexis.<br> '''Ἀληκτώ, -οῦς (nom propre) (f)''' : Alecto (une des Érynies).<br> '''Ἀλήτης, -ου (nom propre) (m)''' : Alétès.<br> '''Ἀλθαία, -ας (nom propre) (f)''' : Althée.<br> '''Ἀλιλάτ (nom propre) (f)''' : Al-Lat.<br> '''Ἀλκάθοος, -ου (prénom) (m)''' : Alcathoos.<br> '''Ἀλκείδης, ου (nom propre) (m)''' : Alcide (Premier nom d’Héraclès.).<br> '''Ἄλκης, -ους (nom propre) (m)''' : Alceste.<br> '''Ἄλκηστις, -ήστιδος (nom propre) (f)''' : Alceste.<br> '''Ἀλκιϐιάδης, ου (nom propre) (m)''' : Alcibiade.<br> '''Ἀλκίνοος, -ου (nom propre) (m)''' : Alcinoos.<br> '''Ἀλκμαίων, -ος (nom propre) (m)''' : Alcméon.<br> '''Ἀλκμήνη, -ης (nom propre) (f)''' : Alcmène.<br> '''Ἀλφιτώ, -οῦς (nom propre) (f)''' : Alphito.<br> '''Ἀλώπηξ, -εκος (nom propre) (f)''' : Vulpecula.<br> '''Ἀμϐρόσιος, -ίου (nom propre) (m)''': Ambroise.<br> '''Ἀμαζών, -όνος (nom propre) (f)''' : Amazone.<br> '''Ἀμένωφις, - (nom propre) (m)''': Aménophis.<br> '''Ἄμηστρις, -δος (nom propre) (f)''' : Amestris.<br> '''Ἀμαύνι (nom propre) (f)''' : Amemet.<br> '''Ἀμπρακία, -ας (nom propre) (f)''' : Ambracie.<br> '''Ἀμπρακιώτης, -ου (nom commun) (m)''' : Ambracien.<br> '''Ἀμπρακιῶτις, -ώτιδος (nom commun) (f)''' : Ambracienne.<br> '''Ἀμύντας, -ου (nom propre) (m)''' : Amyntas.<br> '''Ἀμφιμέδων, -οντος (nom propre) (m)''' : Amphimédon.<br> '''Ἀμφιστρεύς, -έως (nom propre) (m)''' : Amphitrée.<br> '''Ἀμφιτρίτη, -ης (nom propre) (f)''' : Amphitrite.<br> '''Ἀμφιτροπή, -ῆς (nom propre) (f)''' : Amphitropée.<br> '''Ἀμφιτρύων, -ωνος (nom propre) (m)''' : Amphitryon.<br> '''Ἀναξίϐια, -ας (nom propre) (f)''' : Anaxibie.<br> '''Ἀναξίϐιος, -ίου (nom propre) (m)''' : Anaxibios.<br> '''Ἀννίϐας, -ου (nom propre) (m)''' : Hannibal.<br> '''Ἀνδρέας, -ου (prénom) (m)''' : André.<br> '''Ἄννα, -ας (prénom) (f)''' : Anne.<br> '''Ἀνάγκη, -ης (nom propre) (f)''' : Ananké.<br> '''Ἀναῗτις, -ΐτεως (nom propre) (f)''' : Anaïs.<br> '''Ἀναξαγόρας, -ου (nom propre) (m)''' : Anaxagore.<br> '''Ἀναξίμανδρος, -ου (nom propre) (m)''' : Anaximandre.<br> '''Ἀναξιμήνης, -ου (nom propre) (m)''' : Anaximène.<br> '''Ἀναστασία, -ας (nom propre) (f)''' : Anastasie.<br> '''Ἀναστάσιος, -ίου (nom propre) (m)''' : Anastase.<br> '''Ἀνατόλιος, -ίου (nom propre) (m)''' : Anatole.<br> '''Ἄνουϐις, -ύϐιδος (nom propre) (m)''' : [[wikt:Anubis|Anubis]].<br> '''Ἄνουκις, -δος (nom propre) (f)''' : Anoukis.<br> '''Ἀντέρως, -τος (nom propre) (m)''' : [[wikt:Antéros|Antéros]].<br> '''Ἀντιγόνη, -ης (nom propre) (f)''' : Antigone.<br> '''Ἀντίκλεια, -ας (nom propre) (f)''' : Anticlée (mère d'Ulysse).<br> '''Ἀντικύθηρα, -ήρων (nom propre) (n)''' : Anticythère.<br> '''Ἀντίνοoς, -όου (nom propre) (m)''' : Antinoüs.<br> '''Ἀντίπολις, -όλεως (nom propre) (f)''' : Antipolis.<br> '''Ἀντισθένης, -ους (nom propre) (m)''' : Antisthène. (Philosophe né vers 444 av. J.-C. et décédé vers 365 av. J.-C.)<br> '''Ἄντων, -ου (nom propre) (m)''' : Anton.<br> '''Ἀξιός, -οῦ (nom propre) (m)''' : Axius.<br> '''Ἀπάτη, -ης (nom propre) (f)''' : Apaté.<br> '''Ἀπιδανός, -οῦ (nom propre) (m)''' : Apidanus.<br> '''Ἆπις, Ἄπιδος (nom propre)''' : Apis.<br> '''Ἀπολλόδωρος, -ώρου (nom propre) (m)''' : Apollodore.<br> '''Ἀπόλλων, -ωνος (nom propre) (m)''' : [[wikt:Apollon|Apollon]].<br> '''Ἀρά, -ᾶς (nom propre) (f)''' : [[wikt:Ara|Ara]].<br> '''Ἀραϐία, -ας (nom propre) (f)''' : Arabie.<br> '''Ἀράχνη, -ης (nom propre) (f)''' : Arachné.<br> '''Ἄραψ, -ϐος (nom commun) (m/f)''' : Arabe.<br> '''Ἀραράτ (nom propre) (m)''' : Ararat.<br> '''Ἀργαῖος, -ίου (nom propre) (m)''' : Argaïos.<br> '''Ἀργοναῦτης, -ύτου (nom commun) (m)''' : Argonaute.<br> '''Ἀργῷος, -ῴος, -ῷον (adjectif)''' : .<br> '''Ἀργώ, -οῦς (nom propre) (f)''' : Argo.<br> '''Ἀρετή, -ῆς (nom propre) (f)''' : Arété (déesse).<br> '''Ἄρευς, -εως (nom propre) (m)''' : Forme éolienne de ''Ἄρης''.<br> '''Ἄρης, -εως (nom propre) (m)''' : [[wikt:Arès|Arès]].<br> '''Ἀρήτη, -ης (nom propre) (f)''' : Arété (philosophe grecque de l'école des Cyrénaiques).<br> '''Ἀρίσταρχος, -άρχου (nom commun) (m)''' : Aristarque.<br> '''Ἀριστόϐουλος, -ύλου (nom propre) (m)''' : Aristobule.<br> '''Ἀριστογείτων, -ονος (nom propre) (m)''' : Aristogiton.<br> '''Ἀριστοτέλης, -ους (nom propre) (m)''' : Aristote.<br> '''Ἀριστώνυμος, -ύμου (nom propre) (m)''' : Aristonyme.<br> '''Ἀρίων, -ονος (nom propre) (m)''' : Arion.<br> '''Ἀρκαδία, -ας (nom propre) (f)''' : Arcadie.<br> '''Ἀρκάς, -δος (nom commun) (m/f)''' : Arcadien ; Arcadienne.<br> '''Ἀρκτοῦρος, -ύρου (nom propre) (m)''' : Arcturus.<br> '''Ἁρμαγεδών (nom propre) (m)''' : Armageddon.<br> '''Ἁρμόδιος, -ίου (nom propre) (m)''' : Harmodios.<br> '''Ἀρσένιος, -ίου (nom propre) (m)''' : Arsène.<br> '''Ἀρσινόη, -ης (nom propre) (f)''' : Arsinoé.<br> '''Ἀρταξέρξης, -ου (nom propre) (m)''' : Artaxerxès.<br> '''Ἄρτεμις, -έμιδος (nom propre) (f)''' : [[wikt:Artémis|Artémis]].<br> '''Ἀρχίας, -ου (nom propre) (m)''' : Archias.<br> '''Ἀρχιμήδης, -ους (nom propre) (m)''' : Archimède.<br> '''Ἀσάνα, -ας (nom propre) (f)''' : Forme dorienne de ''Ἀθηνᾶ''.<br> '''Ἀσδρούϐας, -ου (nom propre) (m)''' : Hasdrubal (véritable nom de Clitomaque de Carthage).<br> '''Ἀσήρ (nom propre) (m)''' : Aser.<br> '''Ἀσκαλωνίτης, -ου (nom commun) (m)''' : Ascalonite.<br> '''Ἀσκαλωνῖτις, -ίτιδος (nom commun) (f)''' : Ascalonite.<br> '''Ἀσκάλων, -ος (nom propre) (m)''' : Ascalon.<br> '''Ἀσκληπιός, -οῦ (nom propre) (m)''' : [[wikt:Asclépios|Asclépios]].<br> '''Ἀσμοδαῖος, -ίου (nom propre) (m)''' : Asmodée.<br> '''Ἀσεννέθ (nom propre) (m)''' : Asnath.<br> '''Ἀσπαθίνης, -ου (nom propre) (m)''' : Aspathinès.<br> '''Ἀσσυρία, -ας (nom propre) (f)''' : Assyrie.<br> '''Ἀσσύριος, -ίου (nom commun) (m)''' : Assyrien.<br> '''Ἀστάρτη, -ης (nom propre) (f)''' : Astarté.<br> '''Ἀστυάναξ, -κτος (nom propre) (m)''' : Astyanax.<br> '''Ἀστυάνασσα, -ας (nom propre) (f)''' : Astyanassa.<br> '''Ἄστυ, -εως (nom propre) (n)''' : Athènes.<br> '''Ἄτη, -ης (nom propre) (f)''' : [[wikt:Até|Até]]. (Déesse de l’égarement.)<br> '''Ἀττική, -ῆς (nom propre) (f)''' : Attique.<br> '''Ἀτλαντίς, -δος (nom propre) (f)''' : (Toponymie) océan Atlantique. (Mythologie) Atlantide.<br> '''Ἄτλας, -αντος (nom propre) (m)''' : Atlas.<br> '''Ἄτροπος, -όπου (nom propre) (f)''' : Atropos (troisième Moire).<br> '''Αὐγείας, -ου (nom propre) (m)''' : Augias.<br> '''Αὐλίς, -δος (nom propre) (f)''' : Aulis.<br> '''Αὐνάν (nom propre) (m)''' : Onan.<br> '''Αὐξώ, -οῦς (nom propre) (f)''' : Auxo.<br> '''Αὐσονία, -ας (nom propre) (f)''' : Italie.<br> '''Αὐσονίη, -ης (nom propre) (f)''' : Forme alternative de ''Αὐσονία''.<br> '''Αὔσων, -ονος (nom propre) (m)''' : Auson (fils d’Ulysse.)<br> '''Αὐτόλυκος, -ύκου (nom propre) (m)''' : Autolycos (Aïeul maternel d’Ulysse.)<br> '''Αὐτομέδων, -οντος (nom propre) (m)''' : Automédon (Conducteur du char d’Achille.)<br> '''Αὔως, -ω (nom propre) (f)''' : Forme alternative de ''Ἕως''.<br> '''Ἀφρική, -ῆς (nom propre) (f)''' : Afrique.<br> '''Ἀφροδίτη, -ης (nom propre) (f)''' : Aphrodite.<br> '''Ἀφρόδιτος, -ίτου (nom propre) (m)''' : Aphroditos.<br> '''Ἀφρώ, -οῦς (nom propre) (f)''' : Aphrô.<br> '''Ἀχαΐα, -ας (nom propre) (f)''' : Achaïe.<br> '''Ἀχαιμένης, -ους (nom propre) (m)''' : Achéménès.<br> '''Ἀχαιμενίδης, -ου (nom propre) (m)''' : Achéménide.<br> '''Ἀχαιός, -οῦ (nom propre) (m)''' : Achaïos (fils de Xouthos).<br> '''Ἀχατης, -ου (nom propre) (m)''' : Achatès (fleuve de Sicile).<br> '''Ἀχελῷος, -ῴου (nom propre) (m)''' : Achéloos.<br> '''Ἀχέρων, -οντος (nom propre) (m)''' : Achéron.<br> '''Ἀχιλλεύς, -έως (nom propre) (m)''' : Achille.<br> '''Ἀωσφόρος, -ου (nom propre) (m)''' : Forme dorienne de ''Ἑωσφόρος''.<br> ==Β== '''βαθμίς, -δος (nom commun) (f)''' : échelon.<br> '''βάθρον, -ου (nom commun) (n)''' : podium.<br> '''βαθέως (adverbe)''' : profondément.<br> '''βάθος, -ους (nom commun) (n)''' : Profondeur, hauteur.<br> '''βαθύς, -εῖα, -ύ (adjectif)''' : profond.<br> '''βαθύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''βαθύς''.<br> '''βαθύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''βαθύς''.<br> '''βαΐον, -ου (nom commun) (n)''' : rameau.<br> '''βακτηρία, -ας (nom commun) (f)''' : Bâton de marche ; bâton employé comme insigne de juge.<br> '''βαλανεῖον, -ίου (nom commun) (n)''' : bain (lieu public).<br> '''βαλανεύς, -έως (nom commun) (n)''' : plongeur.<br> '''βάλανος, -άνου (nom commun) (f)''' : Gland de chêne. (Botanique) Datte. Fermoir d’un collier. Pêne d’un verrou. Moule de mer (poisson). Noix, châtaigne. Suppositoire.<br> '''βαλάντιον, -ίου (nom commun) (n)''' : bourse (sac d'argent).<br> '''βαλλίζω (verbe)''' : danser.<br> '''βάμϐαξ, -κος (nom commun) (m)''' : coton.<br> '''βαμϐακερός, -ή, -όν (adjectif)''' : .<br> '''βαμϐακηρός, -ά, -όν (adjectif)''' : .<br> '''βαμϐάκινος, -ίνου (nom commun) (n)''' : .<br> '''βαμϐάκιον, -ίου (nom commun) (n)''' : .<br> '''βαμϐακοειδής, -ής, -ές (adjectif)''' : .<br> '''βανά, -ᾶς (nom commun) (f)''' : Forme béotienne de ''γυνή''.<br> '''βάπτω (verbe)''' : plonger, teindre ; baptiser.<br> '''βάρϐαρα, -ας (nom commun) (f)''' : barbare.<br> '''βάρϐαρικός, -ή, -όν (adjectif)''' : barbare.<br> '''βάρϐαρικῶς (adverbe)''' : barbarement.<br> '''βάρϐαρικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''βάρϐαρικός''.<br> '''βάρϐαρικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''βάρϐαρικός''.<br> '''βάρϐαρικώτατα, -, - (adverbe)''' : Superlatif de ''βάρϐαρικῶς''.<br> '''βάρϐαρικώτερον, -, - (adverbe)''' : Comparatif de ''βάρϐαρικῶς''.<br> '''βάρϐαρος, -άρου (nom commun) (m)''' : barbare.<br> '''βαρέως (adverbe)''' : lourdement.<br> '''βᾶρις, -άριδος (nom commun) (f)''' : barque.<br> '''βᾶρκις, -άρκιδος (nom commun) (f)''' : barque.<br> '''βαρύς, -εῖα, -ύ (adjectif)''' : lourd.<br> '''βαρύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''βαρύς''.<br> '''βαρύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''βαρύς''.<br> '''βασιλεία, -ας (nom commun) (f)''' : pouvoir royal ; royauté. Royaume.<br> '''βασίλεια, -ίας (nom commun) (f)''' : princesse. (héritière du souverain régnant)<br> '''βασιλείδης, -ου (nom commun) (m)''' : prince. (héritier du souverain régnant)<br> '''βασίλειος, -ία, -ιον (adjectif)''' : royal.<br> '''βασιλεύς, -έως (nom commun) (m)''' : roi.<br> '''βασιλήϊος, -, - (adjectif)''' : Forme ionienne de ''βασίλειος''.<br> '''βασιλῇος, -, - (adjectif)''' : Forme éolienne de ''βασίλειος''.<br> '''βασιλικός, -ή, -όν (adjectif)''' : royal.<br> '''βασίλισσα, -ας (nom commun) (f)''' : reine.<br> '''βάσις, -εως (nom commun) (f)''' : Action de marcher, marche. Organe pour la marche. Ce sur quoi l’on marche ou l’on se tient.<br> '''βάσκανος, -ος, -ον (adjectif)''' : Maléfique ; médisant.<br> '''βασκάνως (adverbe)''' : maléfiquement.<br> '''βασκανώτατος, -, - (adverbe)''' : Superlatif de ''βάσκανος''.<br> '''βασκανώτερος, -, - (adverbe)''' : Comparatif de ''βάσκανος''.<br> '''βασσάρα, -ας (nom commun) (f)''' : renard.<br> '''βαστάζω (verbe)''' : lever, soulever. Relever. Tenir dans ses bras ou ses mains.<br> '''βάτος, -ου (nom commun) (f)''' : Ronce, buisson. Épine.<br> '''βατός, -ή, -όν (adjectif)''' : accessible.<br> '''βάτραχος, -άχου (nom commun) (m/f)''' : Crapaud ; grenouille.<br> '''βατῶ (verbe)''' : Forme phocienne de ''πατῶ''.<br> '''βαυϐάω (verbe)''' : s’endormir.<br> '''βαυϐών, -ῶνος (nom commun) (m)''' : godemichet.<br> '''βαυϐώ, -οῦς (nom commun) (f)''' : nourrice.<br> '''βαυκάλημα, -ήματος (nom commun) (n)''' : berceuse.<br> '''βαυκίζομαι (verbe)''' : être prude.<br> '''βαυκός, -ή, -όν (adjectif)''' : prude.<br> '''βαυκότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''βαυκός''.<br> '''βαυκότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''βαυκός''.<br> '''βαυκῶς (adverbe)''' : prudemment.<br> '''βαυκώτατα, -, - (adverbe)''' : Superlatif de ''βαυκῶς''.<br> '''βαυκώτερον, -, - (adverbe)''' : Comparatif de ''βαυκῶς''.<br> '''βαφεύς, -έως (nom commun) (m)''' : peintre.<br> '''βδαλεύς, -έως (nom commun) (m)''' : suceur.<br> '''βδάλσις, - (nom commun) (f)''' : succion.<br> '''βδάλλω (verbe)''' : Sucer, téter. Traire le lait.<br> '''βδέλλα, -ης (nom commun) (f)''' : sangsue.<br> '''βδέω ‎(verbe)''' : péter (flatuler)<br> '''βεϐαιῶ (verbe)''' : garantir (se rendre garant de la valeur, de la qualité d’une chose).<br> '''βέϐηλος, -ος, -ον (adjectif)''' : Franchissable, profane. Impur, interdit.<br> '''βεϐηλότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''βέϐηλος''.<br> '''βεϐηλότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''βέϐηλος''.<br> '''βέϐηλως (adverbe)''' : profanement.<br> '''βεϐηλώτατα, -, - (adverbe)''' : Superlatif de ''βεϐρῶς''.<br> '''βεϐηλώτερον, -, - (adverbe)''' : Comparatif de ''βεϐρῶς''.<br> '''βεϐρός, -ά, -όν (adjectif)''' : stupide.<br> '''βεϐρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''βεϐρός''.<br> '''βεϐρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''βεϐρός''.<br> '''βεϐρῶς (adverbe)''' : stupidement.<br> '''βεϐρώτατα, -, - (adverbe)''' : Superlatif de ''βεϐρῶς''.<br> '''βεϐρώτερον, -, - (adverbe)''' : Comparatif de ''βεϐρῶς''.<br> '''βελόνη, -ης (nom commun) (f)''' : aiguille.<br> '''βέλος, -ους (nom commun) (n)''' : flèche.<br> '''βέλτιστος, -ίστη, -έλτιστον (adjectif)''' : Superlatif de ''ἀγαθός''.<br> '''βελτίων, -ων, -έλτιον (adjectif)''' : Comparatif de ''ἀγαθός''.<br> '''βένθος, -ους (nom commun) (n)''' : benthos.<br> '''βερϐέριον, -ίου (nom commun) (n)''' : .<br> '''βεῦδος, -ύδους (nom commun) (n)''' : .<br> '''βέφυρα, -ύρας (nom commun) (f)''' : Forme béotienne de ''γέφυρα ''.<br> '''βῆ βῆ (onomatopée)''' : bêlement.<br> '''βῆμα, -ήματος (nom commun) (n)''' : .<br> '''βήξ, -χός (nom commun) (m)''' : toux.<br> '''βήσσω (verbe)''' : tousser.<br> '''βῆτα (nom commun) (n)''' : bêta.<br> '''βήττω (verbe)''' : Forme attique ''βήσσω''.<br> '''βία, -ας (nom commun) (f)''' : Force, violence.<br> '''βιάζω (verbe)''' : Contraindre, forcer. (Au passif) Être contraint, forcé soumis.<br> '''βιϐάζω (verbe)''' : Faire aller ; exalter.<br> '''βιϐλαρίδιον, -ίου (nom commun) (n)''' : livret.<br> '''βιϐλιοθήκη, -ης (nom commun) (f)''' : bibliothèque.<br> '''βιϐλίον, -ου (nom commun) (n)''' : livre.<br> '''βιϐλιοπωλεῖον, -ίου (nom commun) (n)''' : librairie.<br> '''βιϐλιοπώλης, -ου (nom commun) (m)''' : libraire.<br> '''βίϐλος, -ου (nom commun) (f)''' : Papier fait à partir de l'écorce de papyrus.<br> '''βιϐρώσκω (verbe)''' : Dévorer, manger avec avidité. (Figuré) Dévorer ou engloutir (une fortune).<br> '''βίος, -ου (nom commun) (m)''' : vie.<br> '''βίωσις, -ώσεως (nom commun) (f)''' : manière de vie.<br> '''βινῶ (verbe)''' : foutre, baiser (avoir un rapport sexuel).<br> '''βιῶ (verbe)''' : être, vivre.<br> '''βλαδαρός, -ά, -όν (adjectif)''' : flasque.<br> '''βλαδύς, -εῖα, -ύ (adjectif)''' : faible.<br> '''βλαδυτής, -ῆτος (nom commun) (f)''' : faiblesse.<br> '''βλακότατα, -, - (adverbe)''' : Superlatif de ''βλακωδῶς''.<br> '''βλακότερον, -, - (adverbe)''' : Comparatif de ''βλακωδῶς''.<br> '''βλακωδῶς (adverbe)''' : stupidement.<br> '''βλακώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''βλάξ''.<br> '''βλακώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''βλάξ''.<br> '''βλαπτικός, -ή, -όν (adjectif)''' : .<br> '''βλαπτικῶς (adverbe)''' : -ment.<br> '''βλαπτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''βλαπτικός''.<br> '''βλαπτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''βλαπτικός''.<br> '''βλαπτικώτατα, -, - (adverbe)''' : Superlatif de ''βλαπτικῶς''.<br> '''βλαπτικώτερον, -, - (adverbe)''' : Comparatif de ''βλαπτικῶς''.<br> '''βλάπτω (verbe)''' : Léser, endommager. (Au passif) Éprouver un accident. Gêner, embarrasser. (En parlant de l’esprit) Troubler sa raison. (Postérieur) Faire du tort, nuire.<br> '''βλάξ, -κός (nom commun) (m/f)''' : stupide.<br> '''βλαισός, -ή, -όν (adjectif)''' : balbutiant.<br> '''βλέμμα, -τος (nom commun) (n)''' : Regard. (Au pluriel) Yeux.<br> '''βλεννογόνος, -ου (nom commun) (m)''' : muqueuse.<br> '''βλεννός, -οῦ (nom commun) (m)''' : mucus.<br> '''βλέπω (verbe)''' : voir.<br> '''βλεφαρίς, -δος (nom commun) (f)''' : cil.<br> '''βλεφαρῖτις, -ίτης (nom commun) (f)''' : blépharite.<br> '''βλέφαρον, -άρου (nom commun) (n)''' : paupière.<br> '''βλῆμα, -ήματος (nom commun) (n)''' : projectile.<br> '''βοή, -ῆς (nom commun) (f)''' : clameur.<br> '''βοήθεια, -ας (nom commun) (f)''' : aide.<br> '''βοηθός, -ός, -όν (adjectif)''' : aidant.<br> '''βοηθῶ (verbe)''' : aider.<br> '''βοιώτιος, -, - (adjectif)''' : béotien.<br> '''βόλλα, -ας (nom commun) (f)''' : Forme éolienne de ''βουλή''.<br> '''βορά, -ᾶς (nom commun) (f)''' : proie.<br> '''βόρειος, -ία, -ιον (adjectif)''' : septentrional.<br> '''βορειώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''βόρειος''.<br> '''βορειώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''βόρειος''.<br> '''βορειώτατα, -, - (adverbe)''' : Superlatif de ''βόρειως''.<br> '''βορειώτερον, -, - (adverbe)''' : Comparatif de ''βόρειως''.<br> '''βόρειως (adverbe)''' : septentrionalement.<br> '''βόμϐος, -ου (nom commun) (m)''' : bourdonnement.<br> '''βομϐυλιός, -οῦ (nom commun) (m)''' : .<br> '''βόμϐυξ, -κος (nom commun) (m)''' : ver à soie ; sorte de flûte.<br> '''βόρειος, -α, -ον (adjectif)''' : septentrional.<br> '''βορρᾶς, -ᾶ (nom commun) (m)''' : nord.<br> '''βόσκω (verbe)''' : Nourrir. Paître, se nourrir (en parlant des animaux)<br> '''βόστρυχος, -ύχου (nom commun) (m)''' : boucle de cheveux.<br> '''βοτάνη, -ης (nom commun) (f)''' : herbe.<br> '''βοτανηφάγος, -ος, -ον (adjectif)''' : herbivore.<br> '''βοτανηφόρος, -ος, -ον (adjectif)''' : enherbé.<br> '''βοτανίδιον, -ίου (nom commun) (n)''' .<br> '''βοτανίζω (verbe)''' : désherber.<br> '''βοτάνιον, -ίου (nom commun) (n)''' : .<br> '''βοτανικός, -ή, -όν (adjectif)''' : botanique.<br> '''βοτανισμός, -οῦ (nom commun) (m)''' : botanisme.<br> '''βοτανολογία ''' : botanologie.<br> '''βοτανολόγος ''' : herboriste.<br> '''βοτανολογῶ (verbe)''' : herboriser.<br> '''βοτανώδης, -ης, -ης (adjectif)''' : botanique.<br> '''βοτήρ, -ῆρος (nom commun) (m)''' : berger ; pasteur.<br> '''βοτόν, -οῦ (nom commun) (n)''' : bétail.<br> '''βουϐών, -ῶνος (nom commun) (m)''' : aine.<br> '''βουίζω (verbe)''' : bourdonner.<br> '''βουκολικός, -ή, -όν (adjectif)''' : pastoral.<br> '''βουκολικῶς (adverbe)''' : pastoralement.<br> '''βουκολικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''βουκολικικός''.<br> '''βουκολικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''βουκολικικός''.<br> '''βουκολικώτατα, -, - (adverbe)''' : Superlatif de ''βουκολικικῶς''.<br> '''βουκολικώτερον, -, - (adverbe)''' : Comparatif de ''βουκολικικῶς''.<br> '''βουκόλος, -ου (nom commun) (m)''' : bouvier.<br> '''βουλευτήριον, -ίου (nom commun) (n)''' : bouleutérion.<br> '''βουλή, -ῆς (nom commun) (f)''' : Volonté, vouloir. Décision, conseil. Sénat athénien.<br> '''βούλησις, -ήσεως (nom commun) (f)''' : volonté.<br> '''βούπρηστις, -ήστιδος (nom commun) (f)''' : bupreste.<br> '''βουνός, -οῦ (nom commun) (m)''' : mont, montagne.<br> '''βοῦς, -ός (nom commun) (m/f)''' : bœuf, vache.<br> '''βουστροφηδόν (adverbe)''' : En écrivant alternativement de gauche à droite, puis de droite à gauche.<br> '''βούτημα, -ήματος (nom commun) (n)''' : biscuit.<br> '''βούτυρον, -ύρου (nom commun) (n)''' : beurre.<br> '''βραδινός, -ή -όν (adjectif)''' : Forme éolienne de ''ῥαδινός''.<br> '''βραϐευτής, -οῦ (nom commun) (m)''' : arbitre.<br> '''βραδέως (adverbe)''' : lentement.<br> '''βραδύς, -εῖα, -ύ (adjectif)''' : lent.<br> '''βραδύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''βραδύς''.<br> '''βραδύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''βραδύς''.<br> '''βραδυτής, -ῆτος (nom commun) (f)''' : lenteur.<br> '''βράγος, -ους (nom commun) (n)''' : bas-fond.<br> '''βραχέως (adverbe)''' : courtement.<br> '''βράχος, -ου (nom commun) (m)''' : écueil.<br> '''βραχύς, -εῖα, -ύ (adjectif)''' : court.<br> '''βραχύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''βραχύς''.<br> '''βραχύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''βραχύς''.<br> '''βρέμω (verbe)''' : gronder, retentir.<br> '''βρένθος, -ου (nom commun) (m)''' : fierté.<br> '''βρέφος, -ους (nom commun) (n)''' : fœtus, nouveau-né.<br> '''βρεχμός, -οῦ (nom commun) (m)''' : .<br> '''βρία, -ης (nom commun) (f)''' : ville.<br> '''βρίμημα, -ήματος (nom commun) (n)''' : .<br> '''βρεττανικός, -ή, -όν (adjectif)''' : breton insulaire.<br> '''βρεττανικῶς (adverbe)''' : en breton insulaire.<br> '''βρεττανικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''βρεττανικός''.<br> '''βρεττανικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''βρεττανικός''.<br> '''βρεττανικώτατα, -, - (adverbe)''' : Superlatif de ''βρεττανικῶς''.<br> '''βρεττανικώτερον, -, - (adverbe)''' : Comparatif de ''βρεττανικῶς''.<br> '''βρόμος, -ου (nom commun) (m)''' : Frémissement, grondement. Pétillement du feu. Grondement du tonnerre.<br> '''βροντή, -ῆς (nom commun) (f)''' : Tonnerre. Stupeur.<br> '''βροχίς, -δος (nom commun) (f)''' : .<br> '''βρόχος, -ου (nom commun) (m)''' : nœud coulant.<br> '''βρυγμός, -οῦ (nom commun) (m)''' : bruxisme.<br> '''βρύον, -ου (nom commun) (n)''' : mousse (plante).<br> '''βρυχηθμός, -οῦ (nom commun) (m)''' : rugissement.<br> '''βρυχός, -οῦ (nom commun) (m)''' : brycose.<br> '''βρυχῶμαι (verbe)''' : rugir.<br> '''βύας, -ου (nom commun) (m)''' : hibou.<br> '''βύρσα, -ας (nom commun) (f)''' : outre, cuir.<br> '''βρώσιμος, -ος, -ον (adjectif)''' : mangeable.<br> '''βρῶσις, -ώσεως (nom commun) (f)''' outre, cuir.<br> '''βωϐός, -ή -όν (adjectif)''' : muet.<br> '''βωλά, -ᾶς (nom commun) (f)''' : Forme dorienne de ''βουλή''.<br> '''Βάαλ (nom propre) (m)''' : Baal.<br> '''Βαϐυλωνεύς, -έως (nom commun) (m)''' : Babylonien.<br> '''Βαϐυλωνία, -ας (nom commun) (f)''' : Babylonie.<br> '''Βαϐυλωνιακός, -ός, -όν (adjectif)''' : babylonien.<br> '''Βαϐυλώνιος, -ος, -ον (adjectif)''' : babylonien.<br> '''Βαϐυλωνίς, -δος (nom commun) (f)''' : Babylonienne.<br> '''Βαϐυλών, -ῶνος (nom propre) (f)''' : Babylone.<br> '''Βάκχος, -ου (nom propre) (m)''' : Bacchus. (Épithète de Dionysos, parfois de Zeus.)<br> '''Βαλλά, -ᾶς (nom propre) (f)''' : Bilha.<br> '''Βαρϐάρα, -ας (nom propre) (f)''' : Barbara.<br> '''Βαρϐαρικόν, -οῦ (nom propre) (m)''' : Barbaricum.<br> '''Βαρθολομαῖος, -ίου (nom propre) (m)''' : Barthélémy.<br> '''Βασίλειος, -ίου (nom propre) (m)''' : Basile.<br> '''Βαταυΐα, -ας (nom propre) (f)''' : Batavie.<br> '''Βατραχομυομαχία, -ας (nom propre) (f)''' : Bataille des grenouilles et des rats. (Parodie de l’''Iliade'' attribuée à un dénommé Pigrès d’Halicarnasse par Plutarque.)<br> '''Βάττος, -ου (nom propre) (m)''' : Battos.<br> '''Βαυϐώ, -οῦς (nom propre) (f)''' : Baubo.<br> '''Βαῦκος, -ύκου (nom propre) (m)''' : Baukos.<br> '''Βεελφεγώρ (nom propre) (m)''' : Belphégor.<br> '''Βενδῖς, -ίδος (nom propre) (f)''' : Bendis.<br> '''Βερενίκη, -ης (nom propre) (f)''' : Bérénice.<br> '''Βηθανία, -ας (nom propre) (f)''' : Béthanie.<br> '''Βηθλεέμ (nom propre) (f)''' : Bethléem.<br> '''Bηλησαμα, -ας (nom propre) (f)''' : Belisama.<br> '''Βῆλος, -ήλου (nom propre) (m)''' : Bel.<br> '''Βηρυτός, -οῦ (nom propre) (f)''' : Beyrouth.<br> '''Βία, -ας (nom propre) (m)''' : Bia.<br> '''Βλάσιος, -ίου (nom propre) (m)''' : Blaise.<br> '''Βλάχος, -ου (nom commun) (m)''' : Valaque.<br> '''Βοανεργές (nom propre) (m)''' : Boanergès.<br> '''Βοιωτία, -ας (nom propre) (f)''' : Béotie. (Région de Grèce centrale.)<br> '''Βοιωτός, -οῦ (nom commun) (m)''' : Béotien.<br> '''Βοιωτίς, -δος (nom commun) (f)''' : Béotienne.<br> '''Βορέας, -ου (nom propre) (m)''' : Borée. (dieu du vent du Nord)<br> '''Βορέης, -ου (nom propre) (m)''' : Forme ionienne de ''Βορέας''.<br> '''Βορρᾶς, -ᾶ (nom propre) (m)''' : Forme attique de ''Βορέας''.<br> '''Βοσπορίτης, -ου (nom commun) (m)''' : Bosphorite.<br> '''Βόσπορος, -όρου (nom propre) (m)''' : Bosphore.<br> '''Βούϐαστις, -άστιος (nom propre) (f)''' : Bastet.<br> '''Βουκέφαλος, -άλου (nom propre) (m)''' : Bucéphale (Cheval préféré d’Alexandre le Grand.)<br> '''Βουτώ, -οῦς (nom propre) (f)''' : Ouadjet.<br> '''Βρέννος, -ου (nom commun) (m)''' : Brennos.<br> '''Βρεττανία, -ας (nom propre) (f)''' : Bretagne (province romaine).<br> '''Βρεττανίς, -δος (nom commun) (f)''' : Bretonne insulaire.<br> '''Βρεττανός, -οῦ (nom commun) (m)''' : Breton insulaire.<br> '''Βύϐλος, -ου (nom commun) (f)''' : Byblos.<br> '''Βυζάντιον, -ίου (nom propre) (n)''' : Byzance.<br> '''Βύζας, -αντος (nom propre) (m)''' : Byzas.<br> '''Βιθυνία, -ας (nom propre) (f)''' : Bithynie.<br> '''Βιθυνίς, -δος (nom commun) (f)''' : Bithynienne.<br> '''Βιθυνός, -οῦ (nom commun) (o)''' : Bithynien.<br> ==Γ== '''γα (particule)''' : Forme dorienne et béotienne de ''γε''.<br> '''γαίω (verbe)''' : exulter, se réjouir.<br> '''γάλα, -κτος (nom commun) (n)''' : lait.<br> '''γαλανός, -ός, -όν (adjectif)''' : Forme dorienne de ''γαληνός''.<br> '''γαλήνη, -ης, -ης (nom commun) (f)''' : Calme de la mer. (Par extension) Calme, sérénité. Galène. Antidote contre les morsures de vipères.<br> '''γαληνός, -ός, -όν (adjectif)''' : calme (spécialement à propos de la mer).<br> '''γαλέη, -ης (nom commun) (f)''' : belette.<br> '''γαλῆ, -ς (nom commun) (f)''' : Forme alternative de ''γαλέη''.<br> '''γαλιῶ (verbe)''' : Être lascif comme une belette.<br> '''γάμμα (nom commun) (n)''' : gamma.<br> '''γαμέτης, -ου (nom commun) (m)''' : époux, mari.<br> '''γαμῶ (verbe)''' : se marier (quand on parle d’un homme)<br> '''γάργαλος, -άλου (nom commun) (m)''' : .<br> '''γαργαλίζω (verbe)''' : chatouiller.<br> '''γαργαλισμός, -οῦ (nom commun) (m)''' : chatouille.<br> '''γαργαρεών, -ῶνος (nom commun) (m)''' : luette.<br> '''γάρ (conjonction)''' : car ; en effet.<br> '''γαστήρ, -τρός (nom commun) (f)''' : ventre.<br> '''γαῦρος, -ύρη, -ῦρον (adjectif)''' : Exultant, joyeux. Hautain, dédaigneux.<br> '''γαυρότατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''γαῦρος''.<br> '''γαυρότερος, -έρα, -ερον (adjectif)''' : Comparatif de ''γαῦρος''.<br> '''γαῦρως (adverbe)''' : joyeusement ; hautainement, dédaigneusement.<br> '''γαυρότης, -τος (nom commun) (f)''' : Exultation. Emportement, férocité.<br> '''γε (particule)''' : (Devient ''γ’'' devant un mot commençant par une voyelle.) Marque une restriction, une affirmation, ou une conclusion.<br> '''γείτων, -ονος (nom commun) (m/f)''' : voisin(e).<br> '''γέλαιμι (verbe)''' : Forme éolienne de ''γελάω''.<br> '''γελάω (verbe)''' : Rire ; briller.<br> '''γελοῖος, -ία, -ῖον (adjectif)''' : ridicule ; risible.<br> '''γελοιότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''γελοῖος''.<br> '''γελοιότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''γελοῖος''.<br> '''γελοίως (adverbe)''' : ridiculement ; risiblement.<br> '''γελόω (verbe)''' : Forme homérique de ''γελάω''.<br> '''γέλως, -τος (nom commun) (m)''' : rire.<br> '''γελωτοποιός, -ός, -όν (adjectif)''' : comique.<br> '''γελωτοποιός, -οῦ (nom commun) (m)''' : Bouffon ; pitre.<br> '''γεμίζω (verbe)''' : emplir.<br> '''γέμισμα, -ίσματος (nom commun) (n)''' : emplissage.<br> '''γενεά, -ᾶς (nom commun) (f)''' : naissance, genre ; espèce.<br> '''γένεσις, -έσεως (nom commun) (f)''' : origine, source. Naissance. Création.<br> '''γενετήσιος, -α, -ον (adjectif)''' : sexuel.<br> '''γενετησιότατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''γενετήσιος''.<br> '''γενετησιότερος, -έρα, -ερον (adjectif)''' : Comparatif de ''γενετήσιος''.<br> '''γενετησίως (adverbe)''' : sexuellement.<br> '''γενναῖος, -ία, -ῖον (adjectif)''' : vaillant.<br> '''γενναιότατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''γενναῖος''.<br> '''γενναιότερος, -έρα, -ερον (adjectif)''' : Comparatif de ''γενναῖος''.<br> '''γενναίως (adverbe)''' : vaillamment.<br> '''γενναιότης, -ητος (nom commun) (f)''' : vaillance.<br> '''γεννητικός, -η, -ον (adjectif)''' : génital.<br> '''γένος, -ους (nom commun) (n)''' : naissance, origine, descendance ; race, genre, espèce ; classe, corporation; nation, peuple, tribu.<br> '''γεννῶ (verbe)''' : accoucher.<br> '''γερόντειος, -α, -ον (adjectif)''' : .<br> '''γεροντεύω (verbe)''' : .<br>'''γέρανος, -άνου (nom commun) (m/f)''' : grue (oiseau).<br> '''γερουσία, -ας (nom commun) (f)''' : sénat.<br> '''γερουσιάρχης, -ου (nom commun) (m)''' : président du sénat.<br> '''γερουσιαστής, -οῦ (nom commun) (m)''' : sénateur.<br> '''γέρων, -οντος (nom commun) (m)''' : vieillard.<br> '''γεῦμα, -ύματος (nom commun) (n)''' : déjeuner.<br> '''γεῦσις, -ύσεως (nom commun) (f)''' : goût.<br> '''γεύω (verbe)''' : goûter.<br> '''γέφυρα, -ύρας (nom commun) (f)''' : Chaussée. Pont.<br> '''γεω- (préfixe)''' : relatif à la terre.<br> '''γῆ, -ς (nom commun) (f)''' : terre.<br> '''γήινος, -η, -ο (adjectif)''' : terrestre.<br> '''γήρανσις, -άνσεως (nom commun) (f)''' : .<br> '''γηράσκω (verbe)''' : .<br> '''γῆρας, -ήρως (nom commun) (n)''' : vieillesse.<br> '''γῆρυς, -ήρυος (nom commun) (f)''' : Voix ; discours.<br> '''γηρύω (verbe)''' : chanter.<br> '''γιγαντιαῖος, -ία, -ῖον (adjectif)''' : gigantesque.<br> '''γιγαντιότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''γιγαντιαῖος''.<br> '''γιγαντιότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''γιγαντιαῖος''.<br> '''γιγαντίως (adverbe)''' : gigantesquement.<br> ''', -, - (adverbe)''' : Superlatif de ''γιγαντίως''.<br> ''', -, - (adverbe)''' : Comparatif de ''γιγαντίως''.<br> '''γίγας, -αντος (nom commun) (m)''' : géant.<br> '''γίγνομαι (verbe)''' : engendrer.<br> '''γίνιουμαι (verbe)''' : Forme béotienne de ''γίγνομαι''.<br> '''γίνομαι (verbe)''' : Forme ionienne de ''γίγνομαι''.<br> '''γίνυμαι (verbe)''' : Forme thessalienne de ''γίγνομαι''.<br> '''γιγνώσκω (verbe)''' : Apprendre à connaître.<br> '''γινώσκω (verbe)''' : Forme ionienne de ''γιγνώσκω''.<br> '''γλάγος, -ους (nom commun) (n)''' : Forme poétique de ''γάλα''.<br> '''γλάσσα, -ης (nom commun) (f)''' : Forme ionienne de ''γλῶσσα''.<br> '''γλαυκός, -ή, -όν (adjectif)''' : Brillant, étincelant, éclatant. D’un vert pâle ou gris.<br> '''γλαυκότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''γλαυκός''.<br> '''γλαυκότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''γλαυκός''.<br> '''γλαυκῶς (adverbe)''' : vivement.<br> '''γλαυκώτατα, -, - (adverbe)''' : Superlatif de ''γλαυκῶς''.<br> '''γλαυκώτερον, -, - (adverbe)''' : Comparatif de ''γλαυκῶς''.<br> '''γλαῦξ, -κός (nom commun) (f)''' : chouette.<br> '''γλαύσσω (verbe)''' : briller (En parlant des yeux).<br> '''γλεῦκος, -ύκους (nom commun) (n)''' : moût.<br> '''γλέφαρον, -άρου (nom commun) (n)''' : Forme dorienne de ''βλέφαρον''.<br> '''γλήνη, -ης (nom commun) (f)''' : pupille (partie de l’œil).<br> '''γλῆνος, -ήνους (nom commun) (n)''' : splendeur.<br> '''γλουτιαῖος, -ία, -αῖν (adjectif)''' : glutéal.<br> '''γλουτός, -οῦ (nom commun) (m)''' : derrière ; fesse.<br> '''γλυκέως (adverbe)''' : doucement.<br> '''γλυκερός, -ή, -όν (adjectif)''' : doux.<br> '''γλυκερῶς (adverbe)''' : doucement.<br> '''γλυκύς, -εῖα, -ύ (adjectif)''' : doux, sucré.<br> '''γλυκύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''γλυκύς''.<br> '''γλυκύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''γλυκύς''.<br> '''γλυκώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''γλυκερός''.<br> '''γλυκώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''γλυκερός''.<br> '''γλυπτόν, -οῦ (nom commun) (n)''' : .<br> '''γλώνη, -ης (nom commun) (f)''' : poupée.<br> '''γλῶσσα, -ώσσης (nom commun) (f)''' : langue. (Organe buccal ; expression orale)<br> '''γλωσσίς, -δος (nom commun) (f)''' : glotte.<br> '''γλῶττα, -ώττης (nom commun) (f)''' : Forme attique de ''γλῶσσα''.<br> '''γλωττίς, -δος (nom commun) (f)''' : Forme attique de ''γλωσσίς''.<br> '''γνάθος, -ου (nom commun) (f)''' : mâchoire.<br> '''γνήσιος, -α, -ον (adjectif)''' : véritable.<br> '''γνῶσις, -ώσεως (nom commun) (f)''' : Savoir ; connaissance, notion. Reconnaissance ; enquête, instruction judiciaire.<br> '''γοάω (verbe)''' : se lamenter.<br> '''γόγγρος, -ου (nom commun) (m)''' : congre.<br> '''γόησσα, -ας (nom commun) (f)''' : enchanteresse ; magicienne.<br> '''γόης, -τος (nom commun) (m)''' : enchanteur ; magicien.<br> '''γονεύς, -έως (nom commun) (m)''' : père (parent).<br> '''γονή, -ῆς (nom commun) (f)''' : génération ; procréation.<br> '''γονόρροια, -ας (nom commun) (f)''' : gonorrhée.<br> '''γόνος, -ου (nom commun) (m)''' : procréation.<br> '''γόνυ, -ατος (nom commun) (n)''' : genou.<br> '''γόος, -ου (nom commun) (m)''' : lamentation.<br> '''γοργός, -ή, -όν (adjectif)''' : terrible.<br> '''γούνα, -ας (nom commun) (f)''' : .<br> '''γοῦνος, -ύνου (nom commun) (m)''' : Forme ionienne de ''γόνος''.<br> '''γοῶ (verbe)''' : enchanter, ensorceler.<br> '''γράθμα, -τος (nom commun) (n)''' : Forme dorienne de ''γράμμα''.<br> '''γραῖα, -ίας (nom commun) (f)''' : vieillarde.<br> '''γραμματεύς, -έως (nom commun) (m)''' : scribe.<br> '''γράμμα, -τος (nom commun) (n)''' : Caractère gravé. Signes divers. Traits d’un dessin ou d’une peinture.<br> '''γραπτός, -ή, -όν (adjectif)''' : écrit.<br> '''γραπτότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''γραπτός''.<br> '''γραπτότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''γραπτός''.<br> '''γραπτῶς (adverbe)''' : .<br> '''γραῦς, -ός (nom commun) (f)''' : vieillarde.<br> '''γραφεύς, -έως (nom commun) (m)''' : peintre.<br> '''γραφή, -ῆς (nom commun) (f)''' : peinture.<br> '''γραφία, -ας (nom commun) (f)''' : écriture.<br> '''-γραφία, -ας (suffixe)''' : relatif à l’écriture.<br> '''γραφικός, -ή, -όν (adjectif)''' : peint.<br> '''γραφικῶς (adverbe)''' : graphiquement.<br> '''γραφικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''γραφικός''.<br> '''γραφικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''γραφικός''.<br> '''γραφίς, -δος (nom commun) (f)''' : .<br> '''γράφω (verbe)''' : écrire.<br> '''γρηγοράς, -δος (nom commun) (f)''' : vivacité.<br> '''γρήγορος, -η, -ον (adjectif)''' : vif.<br> '''γρηγόρως (adverbe)''' : vivement.<br> '''γρηγορώτατα, -, - (adverbe)''' : Superlatif de ''γρηγόρως''.<br> '''γρηγορώτερον, -, - (adverbe)''' : Comparatif de ''γρηγόρως''.<br> '''γρηγορώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''γρήγορος''.<br> '''γρηγορώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''γρήγορος''.<br> '''γρῖφος, -ίφου (nom commun) (m)''' : filet ; énigme.<br> '''γρόνθος, -ου (nom commun) (m)''' : poing.<br> '''γρύλλος, -ου (nom commun) (m)''' : grillon.<br> '''γρύψ, -πός (nom commun) (m)''' : griffon.<br> '''γυμνάζω (verbe)''' : entraîner (diriger l’exercice sportif).<br> '''γυμνάσιον, -ίου (nom commun) (n)''' : Lieu public réservé aux exercices corporels.<br> '''γυμνός, -ή, -όν (adjectif)''' : Nu ; légèrement vêtu.<br> '''γυμνότατα, -, - (adverbe)''' : Superlatif de ''γυμνῶς''.<br> '''γυμνότερον, -, - (adverbe)''' : Comparatif de ''γυμνῶς''.<br> '''γυμνότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''γυμνός''.<br> '''γυμνότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''γυμνός''.<br> '''γυμνότης, -τος (nom commun) (f)''' : nudité.<br> '''γύμνωσις, -ώσεως (nom commun) (f)''' : dénudage.<br> '''γυμνῶς (adverbe)''' : .<br> '''γυμνῶ (verbe)''' : dénuder.<br> '''γυνά, -ᾶς (nom commun) (f)''' : Forme dorienne de ''γυνή''.<br> '''γυναικᾶς, - (nom commun) (m)''' : homme à femmes.<br> '''γυναικεῖον, -ίου (nom commun) (n)''' : Appartement réservé aux femmes.<br> '''γυναικεῖος, -ία, -ῖον (adjectif)''' : féminin.<br> '''γυναικειότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''γυναικεῖος''.<br> '''γυναικειότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''γυναικεῖος''.<br> '''γυναικείως (adverbe)''' : fémininement.<br> '''γυναικομανία, -ας (nom commun) (f)''' : gynécomanie.<br> '''γυνή, -αικός (nom commun) (f)''' : Femme, épouse ; femelle des animaux.<br> '''γυρῖνος, -ίνου (nom commun) (m)''' : têtard.<br> '''γῦρος, -ύρου (nom commun) (m)''' : Anneau ; cercle.<br> '''γυρός, -οῦ (nom commun) (m)''' : rond.<br> '''γύψ, -πος (nom commun) (m)''' : vautour.<br> '''γωνία, -ας (nom commun) (f)''' : Angle ; coin.<br> '''γωρυτός, -οῦ (nom commun) (m)''' : carquois.<br> '''Γαϐριήλ (nom propre) (m)''' : Gabriel.<br> '''Γάζα, -ης (nom commun) (f)''' : Gaza.<br> '''Γαῖα, -ίας (nom propre) (f)''' : [[wikt:Gaïa|Gaïa]].<br> '''Γαῖη, -ίης (nom propre) (f)''' : Forme ionienne de ''Γαῖα''.<br> '''Γαλινθιάς, -δος (nom propre) (f)''' : Galanthis.<br> '''Γαλάτεια, -ίας (nom propre) (f)''' : Galatée (Néréide).<br> '''Γαλατεία, -ας (nom propre) (f)''' : Galatée.<br> '''Γαλάτης, -ου (nom commun) (m)''' : Galate.<br> '''Γαλατία, -ας (nom propre) (f)''' : Galatie.<br> '''Γαλλία, -ας (nom propre) (f)''' : Gaule.<br> '''Γανυμήδης, -ου (nom propre) (m)''' : Ganymède.<br> '''Γεδεών, -ος (nom propre) (m)''' : Gédéon.<br> '''Γελλώ, -οῦς (nom propre) (f)''' : Gello.<br> '''Γέλων, -ος (nom propre) (m)''' : Gélon.<br> '''Γεννησαρέτ (nom propre) (f)''' : Gennésaret.<br> '''Γερμανία, -ας (nom propre) (f)''' : Allemagne.<br> '''Γερμανίς, -δος (nom commun) (f)''' : Allemande.<br> '''Γερμανός, -οῦ (nom commun) (m)''' : Allemand.<br> '''Γέτης, -ου (nom commun) (m)''' : Gète.<br> '''Γεώργιος, -ίου (prénom) (m)''' : Georges.<br> '''Γῆρας, -ήρως (nom propre) (m)''' : Géras.<br> '''Γηρυόνης, -ου (nom propre) (m)''' : Forme alternative de ''Γηρυών''.<br> '''Γηρυών, -όνος (nom propre) (m)''' : Géryon.<br> '''Γῆ, -ς (nom propre) (f)''' : Terre.<br> '''Γλαῦκος, -ύκου (nom propre) (m)''' : Glaucos.<br> '''Γοργώ, -όνος (nom propre) (f)''' : Gorgone.<br> '''Γότθος, -ου (nom commun) (m)''' : Goth.<br> '''Γοῦτος, -ύτου (nom commun) (m)''' : Geat.<br> '''Γραῖα, -ίας (nom propre) (f)''' : Grée.<br> '''Γρηγόριος, -ίου (nom propre) (m)''' : Grégoire.<br> '''Γύγης, -ου (nom propre) (m)''' : Gygès.<br> '''Γύθειον, -ίου (nom propre) (n)''' : Gythio.<br> '''Γύθιον, -ίου (nom propre) (n)''' : Forme alternative de ''Γύθειον''.<br> ==Δ== '''δάγυς, -ύδος (nom commun) (f)''' : dagyde.<br> '''δαήρ, -έρος (nom commun) (m)''' : beau-frère.<br> '''δαιμόνιος, -ία, -όνιον (adjectif)''' : étrange.<br> '''δαιμόνιον, -ίου (nom commun) (n)''' : génie (être merveilleux).<br> '''δαιμονίως (adverbe)''' : étrangement.<br> '''δαιμονίοτατα, -, - (adverbe)''' : Superlatif de ''δαιμονίως''.<br> '''δαιμονίοτερον, -, - (adverbe)''' : Comparatif de ''δαιμονίως''.<br> '''δαιμονιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''δαιμόνιος''.<br> '''δαιμονιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''δαιμόνιος''.<br> '''δαίμων, -ονος (nom commun) (m)''' : divinité.<br> '''δακκύλιος, -υλίου (nom commun) (m)''' : Forme béotienne de ''δάκτυλος''.<br> '''δάκνω (verbe)''' : mordre.<br> '''δάκος, -ους (nom commun) (n)''' : .<br> '''δάκρυ, -ύου (nom commun) (n)''' : larme.<br> '''δακτύλιον, -ίου (nom commun) (n)''' : anneau.<br> '''δάκτυλος, -ύλου (nom commun) (m)''' : doigt.<br> '''δάλτος, -ου (nom commun) (f)''' : Forme chypriote de ''δέλτος''.<br> '''δαμάζω (dompter)''' : domestiquer ; dompter.<br> '''δάμαλις, -άλεως (nom commun) (f)''' : génisse.<br> '''δαμοκρατία, -ας (nom commun) (f)''' : Forme dorienne de ''δημοκρατία''.<br> '''δᾶμος, -άμου (nom commun) (m)''' : Forme dorienne de ''δῆμος''.<br> '''δάνειον, -ίου (nom commun) (n)''' : prêt.<br> '''δάνος, -ου (nom commun) (m)''' : Forme macédonienne de ''θάνατος''.<br> '''δαρθάνω (verbe)''' : s’endormir.<br> '''δάσος, -ους (nom commun) (n)''' : bois (lieu), forêt.<br> '''δασύνω (verbe)''' : .<br> '''δασύς, -εῖα, -ύ (adjectif)''' : Velu, poilu. feuillu ; boisé.<br> '''δασύτης, -τος (nom commun) (f)''' : pilosité.<br> '''δαῦκον, -ύκου (nom commun) (n)''' : carotte ou navet utilisé en médecine.<br> '''δεῖγμα, -ίγματος (nom commun) (f)''' : échantillon.<br> '''δείδω (verbe)''' : avoir peur.<br> '''δείκτης, -ου (nom commun) (m)''' : index.<br> '''δεινός, -ή, -όν (adjectif)''' : terrible.<br> '''δέ (particule)''' : mais, puis, d’autre part, donc.<br> '''δέκα (adjectif numéral)''' : dix.<br> '''δεκαετία, -ας (nom commun) (f)''' : décennie.<br> '''δεκάς, -δος (nom commun) (f)''' : dizaine.<br> '''δέκομαι (verbe)''' : Forme éolienne et ionienne de ''δέχομαι''.<br> '''δελεάζω (verbe)''' : appâter.<br> '''δέλεαρ, -τος (nom commun) (n)''' : appât.<br> '''δέλτα (nom commun) (n)''' : delta.<br> '''δέλτος, -ου (nom commun) (f)''' : tablette d’écriture.<br> '''δέλφαξ, -κος (nom commun) (f)''' : .<br> '''δελφίς, -ῖνος (nom commun) (m)''' : dauphin.<br> '''δελφύς, -ος (nom commun) (f)''' : matrice.<br> '''δέμω (verbe)''' : construire.<br> '''δενδρολίϐανον, -άνου (nom commun) (n)''' : romarin.<br> '''δένδρον, -ου (nom commun) (n)''' : arbre.<br> '''δένδρεον, -ου (nom commun) (n)''' : Forme homérique de ''δένδρον''.<br> '''δεξιτερός, -ή, -όν (adjectif)''' : Forme de ''δεξιός''.<br> '''δεξιός, -ά, -όν (adjectif)''' : qui est à droite, placé à droite. (Par suite) De bon augure, favorable. Qui a de la dextérité, adroit, industrieux, habile.<br> '''δέος, -ους (nom commun) (n)''' : effroi, peur.<br> '''δέρας, -ατος (nom commun) (n)''' : peau, cuir.<br> '''δέρκομαι (verbe)''' : voir clair.<br> '''δέρμα, -τος (nom commun) (n)''' : peau.<br> '''δέρω (verbe)''' : écorcher.<br> '''δέσμευσις, -ύσεως (nom commun) (f)''' : lien.<br> '''δεσμεύω (verbe)''' : lier.<br> '''δέσμη, -ης (nom commun) (f)''' : bouquet, faisceau, liasse. '''δεσμός, -οῦ (nom commun) (m)''' : Lien (corde, câble, amarre, courroie, nœud). (Par extension) Clou. (D’ordinaire au pluriel) Liens, chaînes, fers. (Par suite) Emprisonnement, prison. (En général) Captivité. (Figuré) Liens d’amitié.<br> '''δέσποινα, -ίνης (nom commun) (f)''' : maîtresse d’une maisonnée.<br> '''δεσπότης, -ου (nom commun) (m)''' : maître d’une maisonnée ; maître d’un dème.<br> '''δεῦμα, -ύματος (nom commun) (n)''' : chair cuite.<br> '''δεῦρο (adverbe)''' : ici (avec mouvement).<br> '''δευτεραγωνιστής, -οῦ (nom commun) (m)''' : deutéragoniste.<br> '''δεύτερος, -α, -ον (adjectif)''' : deuxième.<br> '''δευτήρ, -ῆρος (nom commun) (m)''' : chaudron.<br> '''δεύω (verbe)''' : mouiller.<br> '''δέφυρα, -ύρας (nom commun) (f)''' : Forme crétoise de ''γέφυρα''.<br> '''δέχομαι (verbe)''' : Accepter, admettre, agréer. Accueillir, recevoir, recueillir, adopter. Prendre, revêtir, comporter.<br> '''δή (particule)''' : vraiment, assurément.<br> '''δῆγμα, -ήγματος (nom commun) (m)''' : morsure.<br> '''δηκτήριος, -ος, -ον (adjectif)''' : mordant.<br> '''δηλητήρ, -ρός (nom commun) (m)''' : destructeur.<br> '''δηλοῦμαι (verbe)''' : détruire.<br> '''δήλωσις, -ώσεως (nom commun) (f)''' : déclaration.<br> '''δηλῶ (verbe)''' : déclarer.<br> '''δημοκρατία, -ας (nom commun) (f)''' : république.<br> '''δημόσιος, -ία, -όσιον (adjectif)''' : public.<br> '''δημοσίως (adverbe)''' : publiquement.<br> '''δημοσιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''δημόσιος''.<br> '''δημοσιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''δημόσιος''.<br> '''δῆμος, -ήμου (nom commun) (m)''' : contrée, pays, terre.<br> '''δημότης, -ου (nom commun) (m)''' : concitoyen.<br>‎ '''δημοτικός, -ή, -όν (adjectif)''' : commun.<br> '''δημοτικῶς (adverbe)''' : communément.<br> '''δημοτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''δημοτικός''.<br> '''δημοτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''δημοτικός''.<br> '''δημοτικώτατα, -, - (adverbe)''' : Superlatif de ''δημοτικῶς''.<br> '''δημοτικώτερον, -, - (adverbe)''' : Comparatif de ''δημοτικῶς''.<br> '''δημωδέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''δημώδης''.<br> '''δημωδέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''δημώδης''.<br> '''δημώδης, -ης, -ες (adjectif)''' : vernaculaire.<br> '''δημωδῶς (adverbe)''' : vernaculairement.<br> '''δήν (particule)''' : il y a longtemps.<br> '''δηρός, -ά, -όν (adjectif)''' : .<br> '''διά (adverbe ; préposition)''' : .<br> '''διαϐεϐαιῶ (verbe)''' : garantir (se rendre garant de l’existence de la réalité d’une chose).<br> '''διαϐιϐάζω (verbe)''' : lire.<br> '''διαϐιϐρώσκω (verbe)''' : .<br> '''διάϐολος, -ου (masculin) (m)''' : calomniateur ; diable.<br> '''διαϐολικός, -ή, -όν (adjectif)''' : du diable.<br> '''διαϐολικῶς (adverbe)''' : diaboliquement.<br> '''διαϐολικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''διαϐολικός''.<br> '''διαϐολικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''διαϐολικός''.<br> '''διάγνωσις, -ώσεως (nom commun) (f)''' : .<br> '''διάδημα, -ήματος (nom commun) (n)''' : diadème.<br> '''διαδῶ (verbe)''' : .<br> '''διάζωμα, -ώματος (nom commun) (n)''' : caleçon.<br> '''διάθεσις, -έσεως (nom commun) (f)''' : disposition.<br> '''διαθήκη, -ης (nom commun) (f)''' : testament, volonté (document écrit). Testament (livre religieux)<br> '''διαίρεσις, -έσεως (nom commun) (f)''' : division.<br> '''διαίσθησις, -ήσεως (nom commun) (f)''' : intuition.<br> '''διαισθητικός, -ή, -όν (adjectif)''' : intuitif.<br> '''διαισθητικῶς (adverbe)''' : intuitivement.<br> '''διαιτητής, -οῦ (nom commun) (m)''' : arbitre.<br> '''διακινῶ (verbe)''' : .<br> '''διάκονος, -όνου (nom commun) (m/f)''' : Serviteur, servante.<br> '''διακοπή, -ῆς (nom commun) (f)''' : interruption.<br> '''διακόπτω (verbe)''' : interrompre.<br> '''διακορεύω (verbe)''' : déflorer.<br> '''διακόρησις, -ήσεως (nom commun) (f)''' : défloration.<br> '''διάκρισις, -ίσεως (nom commun) (f)''' : discrétion ; distinction.<br> '''διακριτικός, -ή, -όν (adjectif)''' : discret ; distinct.<br> '''διακριτικότατα, -, - (adverbe)''' : Superlatif de ''διακριτικῶς''.<br> '''διακριτικότερον, -, - (adverbe)''' : Comparatif de ''διακριτικῶς''.<br> '''διακριτικότατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''διακριτικός''.<br> '''διακριτικότερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''διακριτικός''.<br> '''διακριτικῶς (adverbe)''' : discrètement ; distinctement.<br> '''διάλεξις, -έξεως (nom commun) (f)''' : exposé.<br> '''διαλέγομαι (verbe)''' : discuter.<br> '''διάλεκτος, -έκτου (nom commun) (f)''' : discussion ; dialecte.<br> '''διαλλάττω (verbe)''' : transiger.<br> '''διάλογος, -όγου (nom commun) (m)''' : dialogue.<br> '''διαμαστίγωσις, -ώσεως (nom commun) (f)''' : .<br> '''διαμαστιγῶ (verbe)''' : .<br> '''διανόησις, -ήσεως (nom commun) (f)''' : pensée.<br> '''διανοῶ (verbe)''' : penser.<br> '''διαπραγμάτευσις, -ύσεως (nom commun) (f)''' : négociation.<br> '''διαπραγματεύομαι (verbe)''' : négocier.<br> '''διαρρήγνυμι (verbe)''' : cambrioler.<br> '''διαρρήκτης, -ου (nom commun) (m)''' : cambrioleur.<br> '''διάρρηξις, -ήξεως (nom commun) (m)''' : cambriolage.<br> '''διάρροια, -ας (nom commun) (f)''' : diarrhée.<br> '''διάσεισις, -ίσεως (nom commun) (f)''' : commotion.<br> '''διασείω (verbe)''' : .<br> '''διασκέδασις, -άσεως (nom commun) (f)''' : divertissement.<br> '''διάστασις, -άσεως (nom commun) (f)''' : dimension.<br> '''διαστέλλω (verbe)''' : Répandre, séparer. Distinguer, déterminer.<br> '''διάστημα, -ήματος (nom commun) (n)''' : espace.<br> '''διαστολή, -ῆς (nom commun) (f)''' : Élargissement, expansion, dilatation. Petite coche ou fente.<br> (Figuré) Distinction.<br> '''διάστρεμμα, -έμματος (nom commun) (n)''' : entorse.<br> '''διαστρέφω (verbe)''' : disposer.<br> '''διατίθημι (verbe)''' : disposer.<br> '''διατριϐή, -ῆς (nom commun) (f)''' : conversation (philosophique).<br> '''διαφθείρω (verbe)''' : corrompre.<br> '''διαφθορά, -ᾶς (nom commun) (f)''' : corruption.<br> '''διαφθορεῖον, -ίου (nom commun) (n)''' : .<br> '''διαφθορεύς, -έως (nom commun) (m)''' : .<br> '''διαχειριστής, -οῦ (masculin) (m)''' : gestionnaire.<br> '''διαχείρισις, -ίσεως (nom commun) (f)''' : gestion.<br> '''διαχειριστικός, -ή, -όν (adjectif)''' : .<br> '''διαχειριστικῶς (adverbe)''' : -ment.<br> '''διαχειριστικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''διαχειριστικός''.<br> '''διαχειριστικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''διαχειριστικός''.<br> '''διαχειριστικώτατα, -, - (adverbe)''' : Superlatif de ''διαχειριστικῶς''.<br> '''διαχειριστικώτερον, -, - (adverbe)''' : Comparatif de ''διαχειριστικῶς''.<br> '''διδάσκαλος, -άλου (nom commun) (m)''' : instituteur.<br> '''διδάσκω (verbe)''' : enseigner, instruire ; entraîner.<br> '''διαφέρω (verbe)''' : différer.<br> '''διαφορά, -ᾶς (nom commun) (f)''' : différence.<br> '''διαφορετικός, -ή, -όν (adjectif)''' : différent.<br> '''διαφορετικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''διαφορετικός''.<br> '''διαφορετικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''διαφορετικός''.<br> '''διαφορετικώτατα, -, - (adverbe)''' : Superlatif de ''διαφορετικῶς''.<br> '''διαφορετικώτερον, -, - (adverbe)''' : Comparatif de ''διαφορετικῶς''.<br> '''δίδυμος, -ος, -ον (adjectif)''' : double ; jumeau.<br> '''δίδωμι (verbe)''' : donner.<br> '''διείσδυσις, -ύσεως (nom commun) (f)''' : pénétration.<br> '''διεισδύω (verbe)''' : pénétrer.<br> '''διεύθυνσις, -ύνσεως (nom commun) (f)''' : direction.<br> '''διευθύνων, -ουσα, -ον (adjectif)''' : directeur.<br> '''διευθυντής, -οῦ (nom commun) (m)''' : directeur.<br> '''διευθύνω (verbe)''' : diriger.<br> '''διθύραμϐος, -άμϐου (nom commun) (m)''' : dithyrambe.<br> '''διήγημα, -ήματος (nom commun) (n)''' : conte.<br> '''διήγησις, -ήσεως (nom commun) (f)''' : narration.<br> '''διηγοῦμαι (verbe)''' : narrer.<br> '''διήκονος, -όνου (nom commun) (m/f)''' : Forme ionienne de ''διάκονος''.<br> '''διίσταμαι (verbe)''' : .<br> '''διίστημι (verbe)''' : .<br> '''δικάζω (verbe)''' : juger.<br> '''δικαίωμα, -ώματος (nom commun) (n)''' : (Droit) Jugement. Justification. Décret.<br> '''δικαιῶ (verbe)''' : rendre juste.<br> '''δικαστήριον, -ίου (nom commun) (n)''' : tribunal.<br> '''δικαστής, -οῦ (nom commun) (m)''' : juge.<br> '''δίκη, -ης (nom commun) (f)''' : Coutume, manière, mode. Ordre, loi, droit. Justice. Jugement. Punition, vengeance, pénalité.<br> '''δίκτυον, -ύου (nom commun) (n)''' : filet.<br> '''δίνη, -ης (nom commun) (f)''' : tourbillon.<br> '''δίλημμα, -ήμματος (nom commun) (n)''' : dilemme.<br> '''διπλοῦς, -ῆ, -οῦν ‎(adjectif)''' : double.<br> '''διοίκησις, -ήσεως (nom commun) (f)''' : administration.<br> '''διοικητής, -οῦ (nom commun) (m)''' : administrateur.<br> '''διοικητικός, -ή, -όν ‎(adjectif)''' : administratif.<br> '''διοικῶ (verbe)''' : administrer.<br> '''διορθώνω (verbe)''' : corriger.<br> '''δισσός, -ή, -όν ‎(adjectif)''' : double.<br> '''δισσότατα, -, - (adverbe)''' : Superlatif de ''δισσῶς''.<br> '''δισσότερον, -, - (adverbe)''' : Comparatif de ''δισσῶς''.<br> '''δισσότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''δισσός''.<br> '''δισσότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''δισσός''.<br> '''δίς (adverbe)''' : deux fois.<br> '''δισσῶς (adverbe)''' : doublement.<br> '''δίφθογγος, -όγγου (nom commun) (f)''' : diphtongue.<br> '''δίφουρα, -ύρας (nom commun) (f)''' : Forme laconienne de ''γέφυρα''.<br> '''δίφρος, -ου (nom commun) (m)''' : tabouret.<br> '''διχόνοια, -ας (nom commun) (f)''' : discorde.<br> '''διχορεῖος, -ίου (nom commun) (m)''' : dichorée.<br> '''δίψα, -ης (nom commun) (f)''' : soif.<br> '''διψώ (verbe)''' : avoir soif.<br> '''διωγμός, -οῦ (nom commun) (m)''' : persécution.<br> '''διώκω (verbe)''' : persécuter.<br> '''διῶρυξ, -ώρυγος (nom commun) (f)''' : canal.<br> '''δμωή, -ῆς (nom commun) (f)''' : domestique, servante.<br> '''δμῳή, -ῆς (nom commun) (f)''' : esclave.<br> '''δμῴιος, -ίου (nom commun) (m)''' : esclave.<br> '''δμώς, -ός (nom commun) (m)''' : domestique, serviteur.<br> '''δόγμα, -τος (nom commun) (n)''' : Opinion. Décision, décret, arrêt. Doctrine.<br> '''δογματικός, -ή, -όν (adjectif)''' : doctrinal.<br> '''δογματικῶς (adverbe)''' : doctrinalement.<br> '''δογματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''δογματικός''.<br> '''δογματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''δογματικός''.<br> '''δοθιήν, -ένος (nom commun) (m)''' : furoncle.<br> '''δόκησις, -ήσεως (nom commun) (f)''' : Opinion ; croyance.<br> '''δοκέω (verbe)''' : Penser, supposer. Sembler.<br> '''δολερός, -ή, -όν (adjectif)''' : rusé.<br> '''δολιόω (verbe)''' : abuser.<br> '''δόλος, -ου (nom commun) (m)''' : ruse.<br> '''δόξα, -ης (nom commun) (f)''' : Opinion, vue, point de vue, conjecture, supposition. (Dans le Nouveau Testament.) Gloire, honneur ; splendeur.<br> '''δοξάζω (verbe)''' : Imaginer. Glorifier.<br> '''δοξολογία, -ας (nom commun) (f)''' : doxologie.<br> '''δοξόλογος, -όγου (nom commun) (m)''' : doxologue.<br> '''δοξοσοφία, -ας (nom commun) (f)''' : doxosophie.<br> '''δοξόσοφος, -όφου (nom commun) (m)''' : doxosophe.<br> '''δουλεία, -ας (nom commun) (f)''' : servitude.<br> '''δουλεύω (verbe)''' : être esclave. Travailler à gages, faire un travail mercenaire.<br> '''δούλη, -ης (nom commun) (f)''' : esclave.<br> '''δοῦλος, -ύλου (nom commun) (m)''' : esclave.<br> '''δουλόω (verbe)''' : asservir.<br> '''δούξ, -κός (nom commun) (m)''' : chef.<br> '''δόμος, -ου (nom commun) (m)''' : Maison, palais ; chambre, appartement.<br> '''δομή, -ῆς (nom commun) (f)''' : structure.<br> '''δόμησις, -ήσεως (nom commun) (f)''' : construction.<br> '''δομικός, -ή, -όν (suffixe)''' : structurel.<br> '''δομικῶς (adverbe)''' : structurellement.<br> '''δομικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''δομικός''.<br> '''δομικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''δομικός''.<br> '''δομικώτατα, -, - (adverbe)''' : Superlatif de ''δομικῶς''.<br> '''δομικώτερον, -, - (adverbe)''' : Comparatif de ''δομικῶς''.<br> '''δόναξ, -κος (nom commun) (m)''' : Roseau ; objet fait de roseau.<br> '''δονέω (verbe)''' : agiter.<br> '''δόνημα, -ήματος (nom commun) (n)''' : agitation.<br> '''δορκάς, -δος (f)''' : chevreuil.<br> '''δοράκινον, -ίνου (nom commun) (n)''' : pêche (fruit).<br> '''δόρκος, -ου (nom commun) (m)''' : Forme de ''δορκάς''.<br> '''δόρκων, -ος (nom commun) (m)''' : Forme de ''δορκάς''.<br> '''δόρξ, -κος (nom commun) (m)''' : Forme de ''δορκάς''.<br> '''δόσις, -εως (nom commun) (f)''' : don ; cadeau.<br> '''δοχεῖον, -ίου (nom commun) (n)''' : récipient.<br> '''δράκαινα, -ίνης (nom commun) (f)''' : dracène.<br> '''δράκων, -οντος (nom commun) (m)''' : dragon.<br> '''δρᾶμα, -άματος (nom commun) (n)''' : action théâtrale ; pièce de théâtre.<br> '''δραπέτης, -ου (nom commun) (m)''' : fugitif.<br> '''δράσσομαι (verbe)''' : saisir.<br> '''δραχμή, -ῆς (nom commun) (f)''' : Poignée, contenu de la main. Drachme attique.<br> '''δράω (verbe)''' : .<br> '''δρίλαξ, -κος (nom commun) (m)''' : sangsue.<br> '''δρομαῖος, -ία, -ῖον (adjectif)''' : .<br> '''δρομάς, -δος (nom commun) (m)''' : dromadaire.<br> '''δρόμος, -ου (nom commun) (m)''' : Course (de chevaux), lutte à la course, tour de promenade.<br> '''δρόσος, -ου (nom commun) (f)''' : rosée.<br> '''δρυμός, -οῦ (nom commun) (m)''' : bois (lieu), forêt.<br> '''δύη, -ης (nom commun) (f)''' : misère.<br> '''δύναμις, -εως (nom commun) (f)''' : force en puissance.<br> '''δύο (adjectif numéral)''' : deux.<br> '''δύσις, -εως (nom commun) (f)''' : ouest.<br> '''δυσλογία, -ας (nom commun) (f)''' : .<br> '''δυσμικός, -ή, -όν (adjectif)''' : occidental.<br> '''δυσ- (préfixe)''' : Difficulté, malheur.<br> '''δυσσέϐεια, -ίας (nom commun) (f)''' : impiété.<br> '''δυσσεϐέστατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''δυσσεϐής''.<br> '''δυσσεϐέστερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''δυσσεϐής''.<br> '''δυσσεϐής, -ής, -ές (adjectif)''' : impie.<br> '''δυσσεϐῶς (adverbe) : impieusement.<br> '''δυστύχημα, -ήματος (nom commun) (n)''' : accident.<br> '''δυστυχής, -ής, -ές (adjectif)''' : malheureux.<br> '''δυστυχία, -ας (nom commun) (f)''' : malheur.<br> '''δυστυχῶς (adverbe)''' : malheureusement.<br> '''δυστυχῶ (verbe)''' : causer un malheur.<br> '''δυτικός, -ή, -όν (adjectif)''' : occidental.<br> '''δυτικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''δυτικός''.<br> '''δυτικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''δυτικός''.<br> '''δυτικότατα, -, - (adverbe)''' : Superlatif de ''δυτικῶς''.<br> '''δυτικότερον, -, - (adverbe)''' : Comparatif de ''δυτικῶς''.<br> '''δυτικῶς (adverbe)''' : occidentalement.<br> '''δύω (verbe)''' : S’enfoncer, se plonger. (Par extension) Pénétrer dans. (Par analogie) Se revêtir de.<br> '''δώδεκα (adjectif numéral)''' : douze.<br> '''δωδεκάς, -δος (nom commun) (f)''' : douzaine.<br> '''δῶμα, -ώματος (nom commun) (n)''' : Construction. Maison, demeure. Chambre principale. Temple (demeure d’un dieu).<br> '''δωμάτιον, -ίου (nom commun) (n)''' : chambre.<br> '''δωράκινον, -ίνου (nom commun) (n)''' : pêche (fruit).<br> '''δῶρον, -ώρου (nom commun) (n)''' : Don ; présent. Paume de la main ; palme.<br> '''δώτωρ, -ορος (nom commun) (m)''' : donneur.<br> '''δῶ (verbe)''' : Lier, attacher. (Par extension) Enfermer, emprisonner. (Par analogie) Entraver, empêcher, retenir. (Figuré) Lier, enchaîner. Manquer, avoir besoin de. (Impersonnel) Il est besoin de, il faut. (Forme moyenne) Avoir besoin. (Par suite) Demander, prier.<br> '''Δαϐίδ (nom propre) (m)''' : Forme alternative de ''Δαυίδ''.<br> '''Δαίδαλος, -άλου (nom propre) (m)''' : Dédale.<br> '''Δάκης, -ου (nom commun) (n)''' : Dace.<br> '''Δαμασκός, -οῦ (nom propre) (f)''' : Damas.<br> '''Δαμαστής, -οῦ (nom propre) (m)''' : Damastès (Autre surnom de Polypémon).<br> '''Δαμάτηρ, -τρός (nom propre) (f)''' : Forme arcado-chypriote, béotienne, et dorienne de ''Δημήτηρ''.<br> '''Δαμιανός, -οῦ (nom propre) (m)''' : Damien.<br> '''Δαμία, -ας (nom propre) (f)''' : Damia.<br> '''Δάμις, - (nom propre) (m)''' : Damis.<br> '''Δάν, -ός (nom propre) (m)''' : Forme de ''Ζεύς''.<br> '''Δανιήλ (nom propre) (m)''' : Daniel.<br> '''Δάνος, -ου (nom commun) (m)''' : Forme macédonienne de ''Θάνατος''.<br> '''Δαυείδ (nom propre) (m)''' : Forme alternative de ''Δαυίδ''.<br> '''Δαυίδ (nom propre) (m)''' : David.<br> '''Δεῖμος, -ίμου (nom propre) (m)''' : Déimos.<br> '''Δεινώ, -οῦς (nom propre) (f)''' : Dino. (une des Grées)<br> '''Δέσποινα, -ίνης (nom propre) (f)''' : [[wikt:Despina|Despina]].<br> '''Δεύς, -ως (nom propre) (m)''' : Forme laconienne de ''Ζεύς''.<br> '''Δῃάνειρα, -ίρας (nom propre) (f)''' : Déjanire.<br> '''Δηϊδάμεια, -ίας (nom propre) (f)''' : Déidamie.<br> '''Δηιόκης, -ου (nom propre) (m)''' : Déjocès.<br> '''Δηΐφοϐος, -όϐου (nom propre) (m)''' : Déiphobe.<br> '''Δημήτηρ, -τρος (nom propre) (f)''' : [[wikt:Déméter|Déméter]].<br> '''Δημήτριος, -ίου (nom propre) (m)''' : Démétrios.<br> '''Δημιουργός, -οῦ (nom propre) (m)''' : Créateur.<br> '''Δημοσθένης, -ους (nom propre) (m)''' : Démosthène.<br> '''Δημώναξ, -ώνακτος (nom propre) (m)''' : Démonax.<br> '''Δίδυμοι, -ων (nom propre) (m)''' : Gémeaux.<br> '''Δίκη, -ης (nom propre) (f)''' : [[wikt:Dicé|Dicé]]. (Déesse de la justice divine.)<br> '''Δίκτυον, -ύου (nom propre) (n)''' : Réticule.<br> '''Διόδωρος, -ώρου (nom propre) (m)''' : Diodore.<br> '''Διογένης, -ους (nom propre) (m)''' : Diogène.<br> '''Διόνυσος, -ύσου (nom propre) (m)''' : [[wikt:Dionysos|Dionysos]].<br> '''Διομέδων, -οντος (nom propre) (m)''' : Diomède.<br> '''Διώνη, -ης (nom propre) (f)''' : [[wikt:Dioné|Dioné]].<br> '''Δούναϐις, -άϐεως (nom propre) (m)''' : Danube.<br> '''Δύμη, -ης (nom propre) (f)''' : Dymé.<br> '''Δυσνομία, -ας (nom propre) (m)''' : Dysnomie.<br> '''Δωμάτηρ, -τρός (nom propre) (f)''' : Forme éolienne de ''Δημήτηρ''.<br> '''Δωριεύς, -έως (nom commun) (m)''' : Dorien.<br> '''Δωρικός, -ή, -όν (adjectif)''' : dorien.<br> '''Δωρίς, -δος (nom propre) (f)''' : Doris. (Océanide) (nom commun) Dorienne.<br> '''Δωροθέα, -ας (nom propre) (f)''' : Dorothée.<br> '''Δωρόθεος, -έου (nom propre) (m)''' : Dorothéos.<br> '''Δῶρος, -ώρου (nom propre) (m)''' : Doros.<br> ==Ε== '''ἐάν (conjonction)''' : si (éventuel).<br> '''ἔαρ, -ος (nom commun) (n)''' : printemps.<br> '''ἑϐδομάς, -δος (nom commun) (f)''' : semaine.<br> '''ἑϐδομήκοντα (adjectif numéral)''' : soixante-dix.<br> '''ἕϐδομος, -όμη, -ομον (adjectif numéral)''' : septième.<br> '''ἑϐραΐζω (verbe)''' : .<br> '''ἑϐραῖος, -ία, -ῖον (adjectif)''' : israélite.<br> '''ἑϐραϊκός, -ή, -όν (adjectif)''' : hébraïque.<br> '''ἑϐραϊστί (adverbe)''' : en hébreu.<br> '''ἐγγόνη, -ης (nom commun) (f)''' : petite-fille.<br> '''ἐγγύησις, -ήσεως (nom commun) (f)''' : garantie.<br> '''ἐγγύς (adverbe)''' : proche.<br> '''ἐγγυῶμαι (verbe)''' : garantir (se rendre garant, répondre d’une chose, du maintien, de l’exécution d’une chose).<br> '''ἐγείρω (verbe)''' : réveiller.<br> '''ἐγκέφαλος, -άλου (nom commun) (m)''' : cerveau.<br> '''ἔγκλησις, -ίσεως (nom commun) (f)''' : accusation.<br> '''ἔγκλισις, -ίσεως (nom commun) (f)''' : mode (grammaire).<br> '''ἐγκόπρησις, -ήσεως (nom commun) (f)''' : incontinence fécale.<br> '''ἐγκόσμιος, -α, -ο (adjectif)''' : .<br> '''ἔγκυος, -ος, -ον (adjectif)''' : enceinte.<br> '''ἐγκυμονῶ (verbe)''' : engrossir.<br> '''ἐγκύμων, -ων, -ον (adjectif)''' : .<br> '''ἐγώ (pronom personnel)''' : je.<br> '''ἔδαφος, -άφους (nom commun) (n)''' : sol.<br> '''ἐδεμικός, -ή, -όν (adjectif)''' : édénique.<br> '''ἐδεμικῶς (adverbe)''' : édéniquement.<br> '''ἐδεμικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐδεμικός''.<br> '''ἐδεμικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐδεμικός''.<br> '''ἐδεμικώτατα, -, - (adverbe)''' : Superlatif de ''ἐδεμικῶς''.<br> '''ἐδεμικώτερον, -, - (adverbe)''' : Comparatif de ''ἐδεμικῶς''.<br> '''ἔδεσμα, -έσματος (nom commun) (n)''' : nourriture.<br> '''ἕδρα, -ας (nom commun) (f)''' : Siège. Trône. Résidence, demeure. Partie du corps sur laquelle on s'assied. Action de s'asseoir. Assemblée siégeante.<br> '''ἑδραῖος, ία, -ῖον (adjectif)''' : .<br> '''ἐδώδιμος, -η, -ο (adjectif)''' : mangeable.<br> '''ἐδωδή, -ῆς (nom commun) (f)''' : .<br> '''ἔδω (verbe)''' : nourrir.<br> '''ἕζομαι (verbe)''' : asseoir.<br> '''ἔζω (verbe)''' : nourrir.<br> '''ἐθίζω (verbe)''' : accoutumer.<br> '''ἐθικός, -ή, -όν (adjectif)''' : coutumier.<br> '''ἐθικῶς (adverbe)''' : coutumièrement.<br> '''ἐθικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐθικός''.<br> '''ἐθικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐθικός''.<br> '''ἐθνικός, -ή, -όν (adjectif)''' : national.<br> '''ἐθνικῶς (adverbe)''' : sagement.<br> '''ἐθνικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐθνικός''.<br> '''ἐθνικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐθνικός''.<br> '''ἔθνος, -ους (nom commun) (n)''' : Famille, ensemble des proches. Nation. Tribu. (Religion) (Au pluriel) Gentils, les non-juifs, usage tardif dans la Bible. Troupeau.<br> '''ἔθος, -ους (nom commun) (n)''' : coutume.<br> '''ἔθω (verbe)''' : avoir coutume de ; être habituel.<br> '''-ειδής, -ής, -ές (suffixe)''' : en forme de.<br> '''-ειδῶς (suffixe)''' : .<br> '''-ειδέστατος, -άτη, -έστατον (suffixe)''' : Superlatif de ''-ειδής''.<br> '''-ειδέστερος, -έρα, -έστερον (suffixe)''' : Comparatif de ''-ειδής''.<br> '''εἰδοποίησις, -ήσεως (nom commun) (f)''' : information.<br> '''εἰδοποιῶ (verbe)''' : informer.<br> '''εἶδος, -ἴδους (nom commun) (f)''' : Forme du corps ; air d'une personne ou d'une chose.<br> '''εἰδύλλιον, -ίου (nom commun) (n)''' : Petit poème lyrique.<br> '''εἰδωλολάτρης, -ου (nom commun) (m)''' : païen.<br> '''εἰδωλολατρία, -ας (nom commun) (f)''' : paganisme.<br> '''εἴδωλον, -ώλου (nom commun) (n)''' : Simulacre, fantôme ; image, portrait.<br> '''εἴδω (verbe)''' : voir.<br> '''εἰ (adverbe, conjonction)''' : si.<br> '''εἰ μή (conjonction)''' : à moins que ; sauf si.<br> '''εἰκονικός, -ή, -όν (adjectif)''' : virtuel.<br> '''εἰκός, -τος (nom commun) (n)''' : raison.<br> '''εἰκών, -όνος (nom commun) (f)''' : image, portrait.<br> '''εἴκω (verbe)''' : Être semblable ; ressembler.<br> '''εἰσαφίημι (verbe)''' : .<br> '''εἰς (adverbe ; préposition)''' : Dans. Jusqu’à ; vers.<br> '''εἷς, ἑνός (adjectif numéral)''' : un.<br> '''εἰκοσαριά, -ᾶς (nom commun) (f)''' : vingtaine.<br> '''εἴκοσι(ν) (adjectif numéral)''' : vingt.<br> '''ἐείκοσι(ν) (adjectif numéral)''' : Forme homérique de ''εἴκοσι(ν)''.<br> '''ϝίκατι(ν) (adjectif numéral)''' : Forme béotienne de ''εἴκοσι(ν)''.<br> '''ϝείκατι(ν) (adjectif numéral)''' : Forme dorienne de ''εἴκοσι(ν)''.<br> '''βείκατι(ν) (adjectif numéral)''' : Forme sud-orientale de ''εἴκοσι(ν)''.<br> '''εἷλιξ, -κος (nom commun) (f)''' : Forme poétique de ''ἕλιξ''.<br> '''εἰλύω (verbe)''' : .<br> '''εἴλω (verbe)''' : tourner ; enrouler. Entasser.<br> '''εἷμα, -ἵματος (nom commun) (n)''' : Couverture ; vêtement.<br> '''εἶμι (verbe)''' : aller, se déplacer.<br> '''εἰμί (verbe)''' : être.<br> '''-εῖον, -ίου (suffixe) (n)''' : lieu caractéristique.<br> '''εἶπα (verbe)''' : Forme ionienne de ''εἶπον''.<br> '''εἴπην (verbe)''' : Forme dorienne de ''εἶπον''.<br> '''ἔειπον (verbe)''' : Forme homérique de ''εἶπον''.<br> '''εἶπον (verbe)''' : dire, parler.<br> '''εἰρωνεία, -ας (nom commun) (f)''' : dissimulation.<br> '''εἴρων, -ος (nom commun) (m/f)''' : dissimulateur.<br> '''εἰσϐάλλω (verbe)''' : envahir.<br> '''εἰσϐδάλλω (verbe)''' : .<br> '''εἰσϐολέυς, -έως (nom commun) (m)''' : envahisseur.<br> '''εἰσϐολή, -ῆς (nom commun) (f)''' : invasion.<br> '''εἰσχωρῶ (verbe)''' : pénétrer.<br> '''ἕκαστος, -άστη, -αστον (adjectif)''' : Chaque, chacun.<br> '''ἑκάτερος, -έρα, -άτερον (adjectif)''' : L’un de deux, chacun des deux.<br> '''ἑκατόν (adjectif numéral)''' : cent.<br> '''ἑκατομμύριον, -ίου (nom commun) (n)''' : million.<br> '''ἑκατονταρχία, -ας (nom commun) (f)''' : centurie.<br> '''ἑκατόνταρχος, -άρχου (nom commun) (m)''' : centurion.<br> '''ἐκϐιάζω (verbe)''' : faire chanter.<br> '''ἐκϐιασμός, -οῦ (nom commun) (m)''' : chantage.<br> '''ἐκδίδω (verbe)''' : éditer.<br> '''ἐκδίκησις, -ήσεως (nom commun) (f)''' : vengeance.<br> '''ἐκδικητής, -οῦ (nom commun) (m)''' : vengeur.<br> '''ἐκδικητικός, -ή, -ον (adjectif)''' : vengeur.<br> '''ἐκδικῶ (verbe)''' : venger.<br> '''ἔκδοσις, -όσεως (nom commun) (f)''' : édition.<br> '''ἐκδοχή, -ῆς (nom commun) (f)''' : version.<br> '''ἐκδύω (verbe)''' : Faire disparaître, ôter.<br> '''ἐκ (adverbe ; préposition ; préfixe)''' (Devient ''ἐξ'' devant un mot commençant par une voyelle, et ''ἐγ'' devant un mot commençant par ''β'', ''δ'', ''λ'' ou ''μ''.) : Hors, dehors.<br> '''ἐκεῖθεν (adverbe démonstratif)''' : de là-bas.<br> '''ἐκεῖ (adverbe démonstratif)''' : là-bas (sans mouvement).<br> '''ἐκεῖσε (adverbe démonstratif)''' : là-bas (avec mouvement).<br> '''ἐκείνῃ (adverbe démonstratif)''' : par là-bas.<br> '''ἔκζεμα, -έματος (nom commun) (n)''' : eczéma.<br> '''ἑκηϐόλος, -όλου (nom commun) (m)''' : tireur d’élite.<br> '''ἔκθεσις, -έσεως (nom commun) (f)''' : exposition.<br> '''ἐκκαλέω (verbe)''' : sommer.<br> '''ἐκκένωσις, -ώσεως (nom commun) (f)''' : évacuation.<br> '''ἐκκενῶ (verbe)''' : évacuer.<br> '''ἐκκεντρικός, -ή, -όν (adjectif)''' : excentrique.<br> '''ἐκκίνησις, -ήσεως (nom commun) (f)''' : départ.<br> '''ἐκκλεισία, -ας (nom commun) (f)''' : Forme thessalienne de ''ἐκκλησία''.<br> '''ἐκκλησία, -ας (nom commun) (f)''' : assemblée.<br> '''ἐκκλησίασμα, -άσματος (nom commun) (n)''' : congrégation.<br> '''ἐκλέγω (verbe)''' : choisir, sélectionner.<br> '''ἐκλεκτικός, -ή, -όν (adjectif)''' : sélectif.<br> '''ἐκλογή, -ῆς (nom commun) (f)''' : choix, élection.<br> '''ἐκμιαίνομαι (verbe)''' : éjaculer.<br> '''ἐκπομπή, -ῆς (nom commun) (f)''' : émission.<br> '''ἐκπέμπω (verbe)''' : émettre.<br> '''ἔκστασις, -άσεως (nom commun) (f)''' : transport spirituel.<br> '''ἐκτάμνω (verbe)''' : Forme homérique et ionienne de ''ἐκτέμνω''.<br> '''ἐκτέμνω (verbe)''' : .<br> '''ἐκθέτης, -ου (nom commun) (m)''' : exposant.<br> '''ἐκθετικός, -ή, -όν (adjectif)''' : exponentiel.<br> '''ἔκρηξις, -ήξεως (nom commun) (f)''' : explosion.<br> '''ἐκτίθημι (verbe)''' : exposer.<br> '''ἑκτικός, -ή, -όν (adjectif)''' : habituel.<br> '''ἑκτικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἑκτικός''.<br> '''ἑκτικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἑκτικός''.<br> '''ἑκτικῶς (adverbe)''' : habituellement.<br> '''ἐκτιμῶ (verbe)''' : estimer.<br> '''-εκτομία, -ας (suffixe)''' : action de couper.<br> '''ἐκτός (adverbe ; préposition)''' : au-dehors ; hors de.<br> '''ἑκυρά, -ᾶς (nom commun) (f)''' : belle-mère.<br> '''ἑκυρός, -οῦ (nom commun) (m)''' : beau-père.<br> '''ἐκφεύγω (verbe)''' : échapper à.<br> '''ἔκφρασις, -άσεως (nom commun) (f)''' : expression.<br> '''ἐκφράζω (verbe)''' : exprimer.<br> '''ἐκφοϐῶ (verbe)''' : intimider.<br> '''ἐκχύμωμα, -ώµατος (nom commun) (n)''' : Forme alternative de ''ἐκχύμωσις''.<br> '''ἐκχύμωσις, -ώσεως (nom commun) (f)''' : bleu.<br> (tache de sang extravasé).<br> '''ἐκχῶ (verbe)''' : s’écouler.<br> '''ἐλάσσων, -ων, -ον (adjectif)''' : Comparatif de ''ἐλαχύς''.<br> '''ἐλάττωμα, -ώµατος (nom commun) (n)''' : vice.<br> '''ἔλαφος, -άφου (nom commun) (m/f)''' : Cerf ; biche.<br> '''ἐλαφρός, -ή, -όν (adjectif)''' : léger, leste ; agile.<br> '''ἐλαφρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἐλαφρός''.<br> '''ἐλαφρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἐλαφρός''.<br> '''ἐλαφρῶς (adverbe)''' : légèrement, lestement ; agilement.<br> '''ἐλαχέως (adverbe)''' : petitement, courtement ; moyennement.<br> '''ἐλάχιστος, -ίστη, -άχιστον (adjectif)''' : Superlatif de ''ἐλαχύς''.<br> '''ἐλαχύς, -άχεια, -ύ (adjectif)''' : petit, court ; moyen.<br> '''ἔλεγχος, -έγχους (nom commun) (n)''' : examen ; réfutation.<br> '''ἐλέγχω (verbe)''' : examiner ; réfuter.<br> '''ἐλεεινός, -ή, -όν (adjectif)''' : compatissant.<br> '''ἐλέφας, -αντος (nom commun) (m)''' : Éléphant ; dent d’éléphant ; défense d’éléphant, ivoire. Objet garni d’ivoire ou ressemblant à de l’ivoire.<br> '''ἐλεημοσύνη, -ης (nom commun) (f)''' : aumône.<br> '''ἐλεημονέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἐλεήμων''.<br> '''ἐλεημονέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἐλεήμων''.<br> '''ἐλεήμονως (adverbe)''' : charitablement.<br> '''ἐλεήμων, -ων, -ον (adjectif)''' : charitable.<br> '''ἔλεος, -έου (nom commun) (f)''' : Pitié ; compassion.<br> '''ἐλευθερία, -ας (nom commun) (f)''' : liberté.<br> '''ἐλευθερίη, -ας (nom commun) (f)''' : Forme ionienne de ''ἐλευθερία''.<br> '''ἐλεύθερος, -έρα, ύθερον (adjectif)''' : libre. Qui convient à un homme libre, digne d’un homme libre.<br> '''ἐλευθέρως (adverbe)''' : librement.<br> '''ἐλευθερώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐλεύθερος''.<br> '''ἐλευθερώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐλεύθερος''.<br> '''ἐλελεῦ (verbe)''' : pousser un cri de guerre.<br> '''ἐλελελεῦ (nom commun)''' : cri de guerre.<br> '''ἐλεῶ (verbe)''' : avoir pitié.<br> '''ἕλιξ, -κος (nom commun) (f)''' : Spirale, vrille. (Par analogie) Oreille externe.<br> '''ἑλίσσω (verbe)''' : tourner autour.<br> '''ἕλκηθρον, -ήτρου (nom commun) (n)''' : traîneau.<br> '''ἕλκω (verbe)''' : hisser.<br> '''ἐλλείπω (verbe)''' : Laisser derrière soi. Laisser de côté, négliger ; omettre. Manquer, faire défaut. (Intransitif) Rester en arrière.<br> '''ἔλλειψις, -ίψεως (nom commun) (f)''' : Manque, défaut ; insuffisance.<br> '''ἑλληνίζω (verbe)''' : parler grec.<br> '''ἑλληνικός, -ή, -όν (adjectif)''' : grec.<br> '''ἑλληνικῶς (adverbe)''' : .<br> '''ἑλληνικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἑλληνικός''.<br> '''ἑλληνικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἑλληνικός''.<br> '''ἑλληνιστής, -οῦ (nom commun) (m)''' : homme parlant grec.<br> '''ἑλληνιστί (adverbe)''' : en grec.<br> '''ἑλληνίστρια, -ας (nom commun) (f)''' : femme parlant grec.<br> '''ἐλλός, -οῦ (nom commun) (m)''' : faon.<br> '''ἐλπίς, -δος (nom commun) (f)''' : espoir.<br> '''ἔλυτρον, -ύτρου (nom commun) (n)''' : Enveloppe, étui, fourreau. (Par extension) Tout ce qui sert d’enveloppe.<br> '''ἐλύω (verbe)''' : Entourer, rouler autour.<br> '''ἔμϐρυον, -ύου (nom commun) (n)''' : embryon.<br> '''ἔμεσις, -έσεως (nom commun) (f)''' : .<br> '''ἐμετικός, -ή, -όν (adjectif)''' : vomitif.<br> '''ἔμετος, -έτου (nom commun) (f)''' : vomissement.<br> '''ἐµμί (verbe)''' : Forme éolienne de ''εἰμί''.<br> '''ἐμῶ (verbe)''' : vomir.<br> '''ἐμμονή, -ῆς (nom commun) (f)''' : obsession.<br> '''ἐμός, -ή, -όν (adjectif possessif)''' : mon.<br> '''ἐμπειρία, -ας (nom commun) (f)''' : expérience.<br> '''ἐμπειρικός, -ή, -όν (adjectif)''' : expérienciel.<br> '''ἐμπειρικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἐμπειρικός''.<br> '''ἐμπειρικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἐμπειρικός''.<br> '''ἐμπειρικότατα, -, - (adverbe)''' : Superlatif de ''ἐμπειρικῶς''.<br> '''ἐμπειρικότερον, -, - (adverbe)''' : Comparatif de ''ἐμπειρικῶς''.<br> '''ἐμπειρικῶς (adverbe)''' : expérienciellement.<br> '''ἐμπλάσσω (verbe)''' : emplâtrer.<br> '''ἔμπλαστρον, -άστρου (nom commun) (n)''' : emplâtre.<br> '''ἔμπνευσις, -ύσεως (nom commun) (f)''' : .<br> '''ἐμπορεῖον, -ίου (nom commun) (n)''' : boutique.<br> '''ἐμπόρευμα, -ύματος (nom commun) (n)''' : marchandise.<br> '''ἐμπορεύομαι (verbe)''' : commercer.<br> '''ἐμπόριον, -ίου (nom commun) (n)''' : commerce.<br> '''ἔμπορος, -όρου (nom commun) (m)''' : marchand.<br> '''ἐμπρός (verbe)''' : devant.<br> '''ἐμφαίνω (verbe)''' : Montrer ; présenter.<br> '''ἐμφανής, -ής, -ές (adjectif)''' : apparent.<br> '''ἐμφανίζω (verbe)''' : apparaître.<br> '''ἐμφάνισις, -ίσεως (nom commun) (f)''' : apparence.<br> '''ἔμφασις, -άσεως (nom commun) (f)''' : apparence.<br> '''ἔμφραγμα, -άγματος (nom commun) (n)''' : infarctus.<br> '''ἐμφρουρῶ (verbe)''' : .<br> '''ἐμφύσημα, -ήματος (nom commun) (n)''' : inflation.<br> '''ἐμφυσηματώδης, -ης, -ες (adjectif)''' : inflationnaire.<br> '''ἐναλλακτικός, -ή, -όν (adjectif)''' : alternatif.<br> '''ἐναλλακτικῶς (adverbe)''' : alternativement.<br> '''ἐναλλακτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐναλλακτικός''.<br> '''ἐναλλακτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐναλλακτικός''.<br> '''ἐνάρετος, -ος, -ον (adjectif)''' : vertueux.<br> '''ἔνδεια, -ας (nom commun) (f)''' : indigence.<br> '''ἐνδεής, -ής, -ής (adjectif)''' : indigent.<br> '''ἐνδόμυχος, -ος, -ον (adjectif)''' : intime.<br> '''ἔνδον (adverbe ; préposition)''' : en dedans, intérieurement, à l'intérieur ; au-dedans de, à l'intérieur de.<br> '''ἔνδος (adverbe ; préposition)''' : Forme dorienne de ''ἔνδον''.<br> '''ἐνδοτάτω (adverbe)''' : Superlatif de ''ἔνδον''.<br> '''ἐνδοτέρω (adverbe)''' : Comparatif de ''ἔνδον''.<br> '''ἔνδυμα, -ύματος (nom commun) (n)''' : vêtement.<br> '''ἐνέργεια, -ίας (nom commun) (f)''' : force en action.<br> '''ἐνεργής, -ής, -ής (adjectif)''' : productif.<br> '''ἐνεργός, -ός, -όν (adjectif)''' : actif.<br> '''ἐνεργούμενος, -ένου (nom commun) (m)''' : énergumène.<br> '''ἐνεργῶ (verbe)''' : Agir, produire, accomplir, exécuter. Agir sur, influencer (particulièrement en mauvaise part en parlant du mauvais esprit). (Voie moyenne) Opérer, agir.<br> '''ἐνενήκοντα (adjectif numéral)''' : quatre-vingt-dix.<br> '''ἐνέχομαι (verbe)''' : .<br> '''ἔνθα (adverbe)''' : ici.<br> '''ἐνθάδε (adverbe)''' : ici-même.<br> '''ἐνθένδε (adverbe)''' : d’ici.<br> '''ἐννέα (adjectif numéral)''' : neuf.<br> '''ἔνεμα, -έματος (nom commun) (n)''' : lavement. (Remède liquide.)<br> '''ἔνεσις, -έσεως (nom commun) (f)''' : injection.<br> '''ἐνεστώς, -ῶτος (nom commun) (n)''' : présent.<br> '''ἐννῆ (adjectif numéral)''' : Forme de ''ἐννέα''.<br> '''ἐνέχομαι (verbe)''' : .<br> '''ἐνίημι (verbe)''' : injecter.<br> '''ἐν (adverbe ; préposition)''' : Dans, en, parmi.<br> '''ἐν- (préfixe)''' (Devient ''ἐγ-'' devant ''γ'', ''κ'', ''ξ'', ''χ'' ; ''ἐλ-'' devant ''λ'' ; ''ἐμ-'' devant ''β'', ''µ'', ''π'', ''φ'', ''ψ'' ; ''ἐρ-'' devant ''ρ'' dans quelques mots comme ''ἔρρινον'' ; ''ἐσ-'' devant ''σ''.) : in-.<br> '''ἐνηλικίωσις, -ώσεως (nom commun) (f)''' : majorité.<br> '''ἐνήλικος -η -ον (adjectif)''' : adulte.<br> '''ἐνῆλιξ, -ήλικος (nom commun) (m)''' : adulte.<br> '''ἔνθεσις, -έσεως (nom commun) (f)''' : enthèse.<br> '''ἐνθουσιασμός, -οῦ (nom commun) (m)''' : enthousiasme.<br> '''ἐνθουσιαστικός, -ή, -όν (adjectif)''' : enthousiasmant.<br> '''ἐνθουσιαστικῶς (adverbe)''' : -ment.<br> '''ἐνθουσιαστικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐνθουσιαστικός''.<br> '''ἐνθουσιαστικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐνθουσιαστικός''.<br> '''ἐνθουσιαστικώτατα, -, - (adverbe)''' : Superlatif de ''ἐνθουσιαστικῶς''.<br> '''ἐνθουσιαστικώτερον, -, - (adverbe)''' : Comparatif de ''ἐνθουσιαστικῶς''.<br> '''ἐνθουσιώδης, -ης, -ες (adjectif)''' : enthousiaste.<br> ''', -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐνθουσιώδης''.<br> ''', -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐνθουσιώδης''.<br> ''', -, - (adverbe)''' : Superlatif de ''''.<br> ''', -, - (adverbe)''' : Comparatif de ''''.<br> '''ἐνίοτε (adverbe)''' : quelquefois.<br> '''ἔννοια, -ίας (nom commun) (f)''' : concept.<br> '''ἐνοριακός, -ή, -όν (adjectif)''' : paroissial.<br> '''ἐνορία, -ας (nom commun) (f)''' : paroisse.<br> '''ἐνοχή, -ῆς (nom commun) (f)''' : culpabilité.<br> '''ἕννυμι (verbe)''' : enfiler. (mettre un vêtement)<br> '''ἑνότης, -τος (nom commun) (f)''' : unité.<br> '''ἐνούρησις, -ήσεως (nom commun) (f)''' : incontinence urinaire.<br> '''ἐνουρῶ (verbe)''' : ne pas pouvoir retenir son urine.<br> '''ἐνοχή, -ῆς (nom commun) (f)''' : culpabilité.<br> '''ἐνόχλησις, -ήσεως (nom commun) (f)''' : Dérangement ; embêtement.<br> '''ἐνοχλητικός, -ή, -όν (adjectif)''' : Dérangeant ; embêtant.<br> '''ἐνοχλῶ (verbe)''' : Déranger ; embêter.<br> '''ἐνσκήπτω (verbe)''' : sévir.<br> '''ἔνταξις, -άξεως (f)''' : insertion.<br> '''ἐντάσσω (verbe)''' : insérer.<br> '''ἐνταῦθα (adverbe)''' : là.<br> '''ἐντίθημι (verbe)''' : introduire.<br> '''ἐντρέπω (verbe)''' : .<br> '''ἐντύπωσις, -ώσεως (nom commun) (f)''' : impression.<br> '''ἐντυπῶ (verbe)''' : .<br> '''ἕνωσις, -ώσεως (nom commun) (f)''' : union.<br> '''ἐνώτιον, -ίου (nom commun) (n)''' : boucle d'oreille.<br> '''ἔορ, -ος (nom commun) (f)''' : Fille ; cousine.<br> '''ἐρείκη, -ης (nom commun) (f)''' : bruyère.<br> '''ἑορτάζω (verbe)''' : fêter.<br> '''ἑορτή, -ῆς (nom commun) (f)''' : fête.<br> '''ἐξαδελφή, -ῆς (nom commun) (f)''' : cousine.<br> '''ἐξάδελφος, -ου (nom commun) (m)''' : cousin.<br> '''ἐξαίρεσις, -έσεως (nom commun) (m)''' : extraction.<br> '''ἐξαίρω (verbe)''' : exalter.<br> '''ἐξαιρῶ (verbe)''' : retirer.<br> '''ἐξαίσιος, -ια, -ιον (adjectif)''' : .<br> '''ἑξαν (adverbe)''' : Forme dorienne de ''ἑξῆς''.<br> '''ἔξαρσις, -άρσεως (nom commun) (f)''' : exaltation.<br> '''ἐξάρτημα, -ήματος (nom commun) (n)''' : accessoire.<br> '''ἕξ (adjectif numéral) (m/f/n)''' : six.<br> '''ϝέξ (adjectif numéral) (m/f/n)''' : Forme dorienne de ''ἕξ''.<br> '''ἑξακόσιοι (adjectif numéral)''' : six-cents.<br> '''ἐξάντλησις, -ήσεως (nom commun) (f)''' : épuisement.<br> '''ἐξαντλῶ (verbe)''' : épuiser.<br> '''ἐξαπάτησις, -ήσεως (nom commun) (f)''' : supercherie.<br> '''ἐξαπατῶ (verbe)''' : .<br> '''ἐξέδρα, -ας (nom commun) (f)''' : plate-forme.<br> '''ἐξέγερσις, -έρσεως (nom commun) (f)''' : insurrection.<br> '''ἑξείης (adverbe)''' : Forme poétique de ''ἑξῆς''.<br> '''ἐξήγησις, -ήσεως (nom commun) (f)''' : Exposé. Explication.<br> '''ἐξηγητής, -ου (nom commun) (m)''' : .<br> '''ἐξἡγοῦμαι (verbe)''' : Conduire, exposer.<br> '''ἑξήκοντα (adjectif numéral)''' : soixante.<br> '''ἑξῆς (adverbe)''' : .<br> '''ἐξιλέωσις, -ώσεως (nom commun) (f)''' : expiation.<br> '''ἐξιλεῶ (verbe)''' : expier.<br> '''ἐξέλιξις, -ίξεως (nom commun) (f)''' : évolution.<br> '''ἐξελίσσω (verbe)''' : évoluer.<br> '''ἐξευτελίζω (verbe)''' : humilier.<br> '''ἐξέτασις, -άσεως (nom commun) (f)''' : examen, recherche.<br> '''ἐξίστημι (verbe)''' : déplacer.<br> '''ἕξις, -εως (nom commun) (f)''' : habitude.<br> '''ἐξόγκωμα, -ώματος (nom commun) (n)''' : Proéminence ; protubérance.<br> '''ἔξοδος, -ου (nom commun) (f)''' : Issue ; sortie, départ.<br> '''ἐξομολόγησις, -ήσεως (nom commun) (f)''' : confession.<br> '''ἐξομολογητήριον, -ίου (nom commun) (n)''' : confessionnal.<br> '''ἐξομολογητής, -οῦ (nom commun) (m)''' : confesseur.<br> '''ἐξομολογῶ (verbe)''' : confesser.<br> '''ἐξορία, -ας (nom commun) (f)''' : exil.<br> '''ἐξορίζω (verbe)''' : exorciser.<br> '''ἐξορκισμός, -οῦ (nom commun) (m)''' : exorcisme.<br> '''ἐξορκιστής, -οῦ (nom commun) (m)''' : exorciste.<br> '''ἐξύπνημα, -ήματος (nom commun) (n)''' : réveil.<br> '''ἔξυπνος, -ος, -ον (adjectif)''' : .<br> '''ἐξυπνῶ (verbe)''' : réveiller.<br> '''ἐξωθῶ (verbe)''' : .<br> '''ἐξωκκλήσιον, -ίου (nom commun) (n)''' : chapelle.<br> '''ἐξωµίς, -δος (nom commun) (f)''' : exomide.<br> '''ἐξώστης, -ου (nom commun) (m)''' : balcon.<br> '''ἐξωτερικός, -ή, -όν (adjectif)''' : extérieur, externe.<br> '''ἐξωτικός, -ή, -όν (adjectif)''' : étranger.<br> '''ἔξω (adverbe)''' : hors de.<br> '''ἐπαινῶ (verbe)''' : vanter.<br> '''ἐπαναλαμϐάνω (verbe)''' : répéter ; reprendre.<br> '''ἐπαλήθευσις, -ύσεως (nom commun) (f)''' : vérification.<br> '''επαληθευτικός, -ή, -όν (adjectif)''' : vérificatif.<br> '''ἐπαληθευτικῶς (adverbe)''' : vérificativement.<br> '''ἐπαληθευτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''επαληθευτικός''.<br> '''ἐπαληθευτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''επαληθευτικός''.<br> '''ἐπαληθευτικώτατα, -, - (adverbe)''' : Superlatif de ''επαληθευτικῶς''.<br> '''ἐπαληθευτικώτερον, -, - (adverbe)''' : Comparatif de ''επαληθευτικῶς''.<br> '''ἐπαληθεύω (verbe)''' : vérifier.<br> '''ἐπαναληπτικός, -ή, -όν (adjectif)''' : répétitif.<br> '''ἐπαναληπτικῶς (adverbe)''' : répétitivement.<br> '''ἐπαναληπτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐπαναληπτικός''.<br> '''ἐπαναληπτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐπαναληπτικός''.<br> '''ἐπαναληπτικώτατα, -, - (adverbe)''' : Superlatif de ''ἐπαναληπτικῶς''.<br> '''ἐπαναληπτικώτερον, -, - (adverbe)''' : Comparatif de ''ἐπαναληπτικῶς''.<br> '''ἐπανάληψις, -ήψεως (nom commun) (f)''' : répétition.<br> '''ἐπανάστασις, -άσεως (nom commun) (f)''' : révolution.<br> '''ἐπανεκκίνησις, -ήσεως (nom commun) (f)''' : redémarrage.<br> '''ἐπάνω (adverbe)''' : .<br> '''ἐπαρχία, -ας (nom commun) (f)''' : province.<br> '''ἔπαρχος, -άρχου (nom commun) (m)''' : .<br> '''ἐπάρχω (verbe)''' : .<br> '''ἐπαφή, -ῆς (nom commun) (f)''' : contact.<br> '''ἐπαφίημι (verbe)''' : contacter.<br> '''ἐπεξῆς (adverbe)''' : Forme ionienne de ''ἐφεξῆς''.<br> '''ἐπένδυσις, -ύσεως (nom commun) (f)''' : .<br> '''ἐπενδύω (verbe)''' : revêtir par-dessus.<br> '''ἐπένθεσις, -έσεως (nom commun) (f)''' (Grammaire) Insertion d’une lettre à l’intérieur d’un mot.<br> '''ἐπεντίθημι (verbe)''' : Insérer une lettre à l’intérieur d’un mot.<br> '''ἐπερώτησις, -ήσεως (nom commun) (f)''' : interpellation.<br> '''ἑπτά (adjectif numéral)''' : sept.<br> '''ἐπεισοδιακός, -ή, -όν (adjectif)''' : épisodique.<br> '''ἐπεισόδιον, -ου (nom commun) (n)''' : épisode.<br> '''ἐπιϐαίνω (verbe)''' : Monter. (Marine) Embarquer, monter dans un bateau. (Militaire) Attaquer, avancer sur l’ennemi. Monter à cheval, aller à cheval.<br> '''ἐπιϐδάλλω (verbe)''' : .<br> '''ἐπιϐήτωρ, -ορος (nom commun) (m)''' : étalon.<br> '''ἐπιϐλαϐής, -ής, -ές (adjectif)''' : .<br> '''ἐπίϐλημα, -ήματος (nom commun) (m)''' : châle.<br> '''ἐπίγραθμα, -άθματος (nom commun) (n)''' : Forme dorienne de ''ἐπίγραμμα''.<br> '''ἐπίγραμμα, -άμματος (nom commun) (n)''' : inscription.<br> '''ἐπίδειξις, -ίξεως (nom commun) (f)''' : exhibition.<br> '''ἐπιδεκτικός, -ή, -όν (adjectif)''' : .<br> '''ἐπιδέχομαι (verbe)''' : .<br> '''ἐπιείκεια, -ίας (nom commun) (f)''' : indulgence.<br> '''ἐπιεικής, -ής, -ές (adjectif)''' : indulgent.<br> '''ἐπί (adverbe)''' (Devient ''ἐπ<nowiki>'</nowiki>'' devant une voyelle avec esprit doux et ''ἐφ<nowiki>'</nowiki>'' devant une voyelle avec esprit rude.) : sur.<br> '''ἐπιθαλάμιον, -ίου (nom commun) (n)''' : .<br> '''ἐπιθιγγάνω (verbe)''' : .<br> '''ἐπιτιθέναι (verbe)''' : .<br> '''ἐπίθεσις, -έσεως (nom commun) (f)''' : attaque ; assaut.<br> '''ἐπίθετον, -έτου (nom commun) (n)''' : adjectif.<br> '''ἐπίθετος, -, - (adjectif)''' : adjectival.<br> '''ἐπίθημα, -ήματος (nom commun) (n)''' : .<br> '''ἐπιθυμέω (verbe)''' : désirer.<br> '''ἐπιθυμία, -ας (nom commun) (f)''' : Désir, souhait. Passion.<br> '''ἐπίθυμος, -, - (adjectif)''' : Désireux ; passionné.<br> '''ἐπικαλοῦμαι (verbe)''' : invoquer.<br> '''ἐπικαλύπτω (verbe)''' : recouvrir.<br> '''ἐπικάλυψις, -ύψεως (nom commun) (f)''' : recouvrement.<br> '''ἐπικός, -ή, -όν (adjectif)''' : relatif aux vers.<br> '''ἐπικότατα, -, - (adverbe)''' : Superlatif de ''ἐπικῶς''.<br> '''ἐπικότερον, -, - (adverbe)''' : Comparatif de ''ἐπικῶς''.<br> '''ἐπικύρωσις, -ώσεως (nom commun) (f)''' : ratification.<br> '''ἐπικυρῶ (verbe)''' : ratifier.<br> '''ἐπικῶς (adverbe)''' : épiquement.<br> '''ἐπικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐπικός''.<br> '''ἐπικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐπικός''.<br> '''ἐπιλαμϐάνω (verbe)''' : invoquer.<br> '''ἐπίληπτος, -ος, -ον (adjectif)''' : .<br> '''ἐπιληψία, -ας (nom commun) (f)''' : .<br> '''ἐπιλογή, -ῆς (nom commun) (f)''' : sélection.<br> '''ἐπίλογος, -όγου (nom commun) (m)''' : postface.<br> '''ἐπίπληξις, -ήξεως (nom commun) (f)''' : réprimande.<br> '''ἐπιπλήττω (verbe)''' : réprimander.<br> '''ἐπιτίθημι (verbe)''' : attaquer.<br> '''ἐπιείκεια, -ίας (nom commun) (f)''' : indulgence.<br> '''ἐπιεικής, -ής -ές (adjectif)''' : indulgent.<br> '''ἐπιμέλεια, -ίας (nom commun) (f)''' : sollicitude.<br> '''ἐπιμελής, -ής -ές (adjectif)''' : soigneux.<br> '''ἐπιμέλησις, -ήσεως (nom commun) (f)''' : soin.<br> '''ἐπιμελότατα, -, - (adverbe)''' : Superlatif de ''ἐπιμελῶς''.<br> '''ἐπιμελότερον, -, - (adverbe)''' : Comparatif de ''ἐπιμελῶς''.<br> '''επιμελοῦμαι (verbe)''' : prendre soin de, veiller à ; se préoccuper de.<br> '''ἐπιμελῶς (adverbe)''' : soigneusement.<br> '''ἐπιούσιος, -α, -ον (adjectif)''' : supersubstantiel.<br> '''ἔπιπλον, -ίπλου (nom commun) (n)''' : fourniture.<br> '''ἐπίρρημα, -ήματος (nom commun) (n)''' : adverbe.<br> '''ἐπιρρίπτω (verbe)''' : .<br> '''ἐπιρρωνύω (verbe)''' : corroborer.<br> '''ἐπίρρωσις, -ώσεως (nom commun) (f)''' : corroboration.<br> '''ἐπίσημος, -α, -ον''' : Marqué, noté. Notable, remarquable.<br> '''ἐπισκέπτης, -ου (nom commun) (m)''' : visiteur.<br> '''ἐπισκέπτομαι (verbe)''' : visiter.<br> '''ἐπίσκεψις, -έψεως (nom commun) (f)''' : visite (action de visiter).<br> '''ἐπιστάζω (verbe)''' : saigner du nez.<br> '''ἐπίσταμαι (verbe)''' : Savoir ; connaitre.<br> '''ἐπίσταξις, -άξεως (nom commun) (f)''' : saignement nasal.<br> '''ἐπιστέλλω (verbe)''' : envoyer.<br> '''ἐπιστήμη, -ης (nom commun) (f)''' : Science ; savoir.<br> '''ἐπιστημονέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἐπιστήμων''.<br> '''ἐπιστημονέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἐπιστήμων''.<br> '''ἐπιστήμονως (adverbe)''' : savamment.<br> '''ἐπιστήμων, -ων, -ον (adjectif)''' : Savant ; instruit.<br> '''ἐπιστολή, -ῆς (nom commun) (f)''' : Ordre ou avis émis par un message verbal ou écrit. Message écrit, lettre.<br> '''ἐπιστολικός, -ή, -όν (adjectif)''' : épistolaire.<br> '''ἐπιστολικῶς (adverbe)''' : épistolairement.<br> '''ἐπιστολικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐπιστολικός''.<br> '''ἐπιστολικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐπιστολικός''.<br> '''ἐπιστολικώτατα, -, - (adverbe)''' : Superlatif de ''ἐπιστολικῶς''.<br> '''ἐπιστολικώτερον, -, - (adverbe)''' : Comparatif de ''ἐπιστολικῶς''.<br> '''ἐπιστροφή, -ῆς (nom commun) (f)''' : retour.<br> '''ἐπιτακτικός, -ή, -όν (adjectif)''' : impératif.<br> '''ἐπιτακτικῶς (adverbe)''' : impérativement.<br> '''ἐπιτακτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐπιτακτικός''.<br> '''ἐπιτακτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐπιτακτικός''.<br> '''ἐπιτακτικώτατα, -, - (adverbe)''' : Superlatif de ''ἐπιτακτικῶς''.<br> '''ἐπιτακτικώτερον, -, - (adverbe)''' : Comparatif de ''ἐπιτακτικῶς''.<br> '''ἐπιτέμνω (verbe)''' : .<br> '''ἐπιτήδειος, -α, -ον (adjectif)''' : commode ; pratique.<br> '''ἐπιτηδειότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἐπιτήδειος''.<br> '''ἐπιτηδειότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἐπιτήδειος''.<br> '''ἐπιτηδειότατα, -, - (adverbe)''' : Superlatif de ''ἐπιτηδείως''.<br> '''ἐπιτηδειότερον, -, - (adverbe)''' : Comparatif de ''ἐπιτηδείως''.<br> '''ἐπιτηδείως (adverbe)''' : commodément.<br> '''ἐπιτομή, -ῆς (nom commun) (f)''' : compendium.<br> '''ἐπιτόνιον, -ίου (nom commun) (n)''' : .<br> '''ἐπιτρέπω (verbe)''' : autoriser, permettre.<br> '''ἐπιφέρω (verbe)''' : .<br> '''ἐπιφώνημα, -ήματος (nom commun) (n)''' : interjection.<br> '''ἐπιφώνησις, -ήσεως (nom commun) (f)''' : .<br> '''ἐπιφωνῶ (verbe)''' : .<br> '''ἐπιχαιρεκακία, -ας (nom commun) (f)''' : .<br> '''ἐπιχαιρέκακος, -ος, -ον (adjectif)''' : .<br> '''ἐπιχαίρω (verbe)''' : réjouir.<br> '''ἐπιχείρημα, -ήματος (nom commun) (n)''' : argument.<br> '''ἐπιχειρῶ (verbe)''' : cicatriser.<br> '''ἕπομαι (verbe)''' : argumenter.<br> '''ἔπος, -ους (nom commun) (n)''' : Parole ; vers.<br> '''ἐποποιία, -ας (nom commun) (f)''' : épopée.<br> '''ἐπουλῶ (verbe)''' : cicatriser.<br> '''ἐπύλλιον, -ίου (nom commun) (n)''' : .<br> '''ἐπῳδή, -ῆς (nom commun) (f)''' : incantation.<br> '''ἐπώδυνος, -ος, -ον (adjectif)''' : douloureux. Causé par la douleur.<br> '''ἑπωµίς, -δος (nom commun) (f)''' : épaulette.<br> '''ἐπωνύμιον, -ίου (nom commun) (n)''' : nom de famille.<br> '''ἐπωφελής, -ής, -ές (adjectif)''' : .<br> '''ἔραμαι (verbe)''' : aimer d'amour, désirer.<br> '''ἔρανος, -άνου (nom commun) (m)''' : quête.<br> '''ἐραστής, -οῦ (nom commun) (m)''' : amant.<br> '''ἑραστός, -ή, -όν (adjectif)''' : aimable, amoureux.<br> '''ἐράστρια, -ας (nom commun) (f)''' : amante.<br> '''ἐραστριάω (verbe)''' : être amoureux.<br> '''ἐρέϐινθος, -ίνθου (nom commun) (m)''' : pois chiche.<br> '''ἔρεϐος, -έϐους (nom commun) (n)''' : obscurité.<br> '''ἐρρωσθαι (verbe)''' : se bien porter.<br> '''ἐργάζομαι (verbe)''' : travailler.<br> '''ἐργαλεῖον, -ίου (nom commun) (n)''' : outil.<br> '''ἐργαστήριακός, -ή -όν (adjectif)''' : laborantin.<br> '''ἐργαστήριον, -ίου (nom commun) (n)''' : atelier, laboratoire.<br> '''ἐργαστήρ, -ῆρος (nom commun) (m)''' : travailleur.<br> '''ἐργάτης, -ου (nom commun) (m)''' : ouvrier, travailleur.<br> '''ἔργον, -ου (nom commun) (n)''' : travail.<br> '''ἐργώδης, -ης, -ες (adjectif)''' : laborieux.<br> '''ϝέργον, -ου (nom commun) (n)''' : Forme dorienne de ''ἔργον''.<br> '''ϝάργον, -ου (nom commun) (n)''' : Forme éléenne de ''ἔργον''.<br> '''ἐρέσσω (verbe)''' : ramer.<br> '''ἐρετμόν, -οῦ (nom commun) (n)''' : rame.<br> '''ἐρεύγομαι (verbe)''' : roter.<br> '''ἔρευνα, -ας (nom commun) (f)''' : enquête, recherche.<br> '''ἐρευνητής, -οῦ (nom commun) (m)''' : enquêteur, chercheur.<br> '''ἐρευνῶ (verbe)''' : enquêter, rechercher.<br> '''ἐρέφω (verbe)''' : toiturer, couronner.<br> '''ἐρημίτης, -ου (nom commun) (m)''' : ermite.<br> '''ἔρημος, -ήμου (nom commun) (f)''' : désert.<br> '''ἑρμηνεύς, -έως (nom commun) (m)''' : Interprète, traducteur ; messager des dieux.<br> '''ἑρμηνευτικός, -ή, -όν (adjectif)''' : .<br> '''ἑρμηνεύω (verbe)''' : Exprimer sa pensée par la parole. (Par suite) Faire connaître, indiquer, exposer (quelque chose). Interpréter, traduire.<br> '''ἔρομαι (verbe)''' : Demander, enquêter ; s’enquérir de.<br> '''ἑρπετόν, -οῦ (nom commun) (n)''' : Reptile ; serpent.<br> '''ἕρπυλλος, -ύλλου (nom commun) (m)''' : serpolet.<br> '''ἑρπυσμός, -οῦ (nom commun) (m)''' : fluage.<br> '''ἐρῥωσθαι (verbe)''' : se bien porter.<br> '''ἔρσην, -ενος (nom commun) (m)''' : Forme crétoise et éolienne de ''ἄρσην''.<br> '''ἐρεύθω (verbe)''' : rougir.<br> '''ἔρχομαι (verbe)''' : Venir, aller. S'en aller.<br> '''ἐρύθημα, -ήματος (nom commun) (n)''' : érythème.<br> '''ἐρυθρός, -ά, -όν (adjectif)''' : rouge.<br> '''ἐρυσίπελας, -έλατος (nom commun) (n)''' : inflammation cutanée.<br> '''ἐρωή, -ῆς (nom commun) (f)''' : précipitation.<br> '''ἐρωδιός, -οῦ (nom commun) (m)''' : héron.<br> '''ἐρωμένη, -ης (nom commun) (f)''' : femme aimé.<br> '''ἐρώμενος, -ένου (nom commun) (m)''' : homme aimé.<br> '''ἔρως, -τος (nom commun) (n)''' : amour « naturel » ; désir sexuel, plaisir corporel.<br> '''ἐρώτημα, -ήματος (nom commun) (n)''' : question.<br> '''ἐρωτηματικός, -ή, -όν (adjectif)''' : interrogatif.<br> '''ἐρωτηματικότατα, -, - (adverbe)''' : Superlatif de ''ἐρωτηματικῶς''.<br> '''ἐρωτηματικότερον, -, - (adverbe)''' : Comparatif de ''ἐρωτηματικῶς''.<br> '''ἐρωτηματικῶς (adverbe)''' : érotiquement.<br> '''ἐρωτηματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐρωτηματικός''.<br> '''ἐρωτηματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐρωτηματικός''.<br> '''ἐρώτησις, -ήσεως (nom commun) (f)''' : interrogation.<br> '''ἐρωτικός, -ή, -όν (adjectif)''' : relatif à l'amour « naturel ».<br> '''ἐρωτικότατα, -, - (adverbe)''' : Superlatif de ''ἐρωτικῶς''.<br> '''ἐρωτικότερον, -, - (adverbe)''' : Comparatif de ''ἐρωτικῶς''.<br> '''ἐρωτικῶς (adverbe)''' : érotiquement.<br> '''ἐρωτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐρωτικός''.<br> '''ἐρωτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐρωτικός''.<br> '''ἐρωτῶ (verbe)''' : interroger.<br> '''ἐρῶ (verbe)''' : aimer d'amour, désirer. Verser hors de ; vomir.<br> '''ἐσσαῖος, -ίου (nom commun) (m)''' : essénien.<br> '''ϝεσή, -ῆς (nom commun) (f)''' : toilettes.<br> '''ἐσθής, -ήτος (nom commun) (f)''' : vêtement.<br> '''ἐσθίω (verbe)''' : manger.<br> '''ἐσθλός, -ή, -όν (adjectif)''' : Excellent ; (poétique) bon.<br> '''ἐσθλῶς (adverbe)''' : excellemment.<br> '''ἐσθλώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐσθλός''.<br> '''ἐσθλώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἐσθλός''.<br> '''ἐσλός, -ή, -όν (adjectif)''' : Forme dorienne de ''ἐσθλός''.<br> '''ἑσπέρα, -ας (nom commun) (f)''' : Soir ; ouest.<br> '''ϝεσπέρα, -ας (nom commun) (f)''' : Forme ancienne de ''ἑσπέρα''.<br> '''ἕσπερος, -ος, -ον (adjectif)''' : Relatif au soir ; occidental.<br> '''ἑστίασις, -άσεως (nom commun) (f)''' : restauration.<br> '''ἑστιατόριον, -ίου (nom commun) (n)''' : restaurant.<br> '''ἑστιάτωρ, -ορος (nom commun) (m)''' : restaurateur.<br> '''ἑστιάω (verbe)''' recevoir chez soi.<br> '''ἐσχάρα, -ας (nom commun) (f)''' : Foyer ; autel domestique et sanctuaire pour les suppliants. Autel pour les sacrifices. Brasier. Réchaud.<br> '''ἐσχάριον, -ίου (nom commun) (n)''' : cale (dispositif maritime).<br> '''ἔσχατος, -άτη, -ον (adjectif)''' : dernier.<br> '''ἐσωτερικός, -ή, -όν (adjectif)''' : intérieur, interne.<br> '''ἔσω (adverbe)''' : .<br> '''ἐσωτάτω (adverbe)''' : Superlatif de ''ἔσω''.<br> '''ἐσωτέρω (adverbe)''' : Comparatif de ''ἔσω''.<br> '''ἑταῖρα, -ίρας (nom commun) (f)''' : compagne.<br> '''ἑταιρείη, -ης (nom commun) (f)''' : Forme ionienne de ''ἑταιρεία''.<br> '''ἑταιρεῖος, -ία, -ῖον (adjectif)''' : compagnon.<br> '''ἑταῖρη, -ίρης (nom commun) (f)''' : Forme ionienne de ''ἑταῖρα''.<br> '''ἑταίρησις, -ήσεως (nom commun) (f)''' : compagnie.<br> '''ἑταῖρος, -ίρου (nom commun) (m)''' : compagnon.<br> '''ἐτεός, -ά, -όν (adjectif)''' : .<br> '''ἐτεῶς (adverbe)''' : .<br> '''ἐτεώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἐτεός''.<br> '''ἐτεώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de''ἐτεός''.<br> '''ἔτης, -ου (nom commun) (m)''' : cousin ; voisin.<br> '''ἔτος, -ους (nom commun) (n)''' : année.<br> '''ϝέτος, -ους (nom commun) (n)''' : Forme ancienne de ''ἔτος''.<br> '''ἔτυμος, -η, -ον (adjectif)''' : Vrai ; réel, véritable.<br> '''εὐάζω (verbe)''' : .<br> '''εὐαί (interjection)''' : .<br> '''εὐαγγελίζω (verbe)''' : annoncer une bonne nouvelle.<br> '''εὐαγγελισμός, -οῦ (nom commun) (m)''' : annonciation.<br> '''εὖγμα, -ὔγματος (nom commun) (n)''' : vœu.<br> '''εὐδαιμονία, -ας (nom commun) (f)''' : bonheur.<br> '''εὐδαίμων, -ων, -ον (adjectif)''' : heureux.<br> '''εὐδαιμόνως (adverbe)''' : heureusement.<br> '''εὐδαιμονέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''εὐδαίμων''.<br> '''εὐδαιμονέστερος, -έρα, -έρερον (adjectif)''' : Comparatif de ''εὐδαίμων''.<br> '''εὕδω (verbe)''' : dormir.<br> '''εὐγενής, -ής, -ές (adjectif)''' : noble.<br> '''εὐεργεσία, -ας (nom commun) (f)''' : bénéfice.<br> '''εὐεργέτης, -ου (nom commun) (n)''' : bienfaiteur.<br> '''εὐεργέτις, -δος (nom commun) (f)''' : bienfaitrice.<br> '''εὐεργετῶ (bénéfice)''' : bénéficier.<br> '''εὐ- (préfixe)''' : bon, bien.<br> '''εὐθέως (adverbe)''' : Directement ; immédiatement.<br> '''εὔθυνα, -ύνης (nom commun) (f)''' : responsabilité.<br> '''εὐθυνότης, -ητος (nom commun) (f)''' : responsabilité.<br> '''εὐθύνω (verbe)''' : être responsable.<br> '''εὐθύς, -εῖα, -ύ (adjectif)''' : Direct ; immédiat.<br> '''εὐθύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''εὐθύς''.<br> '''εὐθύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''εὐθύς''.<br> '''εὐλάϐεια, -ας (nom commun) (f)''' : piété.<br> '''εὐλαϐής, -ής, -ές (adjectif)''' : pieux.<br> '''εὐλαϐικός, -ή, -όν (adjectif)''' : .<br> '''εὐλαϐικῶς (adverbe)''' : avec piété.<br> '''εὐλαϐῶς (adverbe)''' : pieusement.<br> '''εὐλαλος, -ος, -ον (adjectif)''' : qui parle bien.<br> '''εὐλογιά, -ᾶς (nom commun) (f)''' : variole.<br> '''εὐλογία, -ας (nom commun) (f)''' : louange.<br> '''εὐμετάϐλητος, -η, -ον (adjectif)''' : .<br> '''εὐμορφία, -ας (nom commun) (f)''' : beauté.<br> '''εὔμορφος, -ος, -ον (adjectif)''' : beau.<br> '''εὔνοια, -ίας (nom commun) (f)''' : faveur.<br> '''εὐνοϊκός, -ή, -όν (adjectif)''' : favorable.<br> '''εὐνοϊκῶς (adverbe)''' : favorablement.<br> '''εὐνοϊκώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''εὐνοϊκός''.<br> '''εὐνοϊκώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''εὐνοϊκός''.<br> '''εὐνοϊκώτατα, -, - (adverbe)''' : Superlatif de ''εὐνοϊκῶς''.<br> '''εὐνοϊκώτερον, -, - (adverbe)''' : Comparatif de ''εὐνοϊκῶς''.<br> '''εὔνους, -ους, -ουν (adjectif)''' : .<br> '''εὐπατρίδης, -ου (nom commun) (m)''' : gentilhomme.<br> '''εὐοπλέω (verbe)''' : être bien armé.<br> '''εὐρετήριον, -ήριου (nom commun) (n)''' : index (liste).<br> '''εὐρέως (adverbe)''' : largement.<br> '''εὐρύς, -εῖα, -ύ (adjectif)''' : Large. (Par extension) Vaste, spacieux.<br> '''εὐρύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''εὐρύς''.<br> '''εὐρύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''εὐρύς''.<br> '''εὔρωστος, -ος, -ον (adjectif)''' : .<br> '''εὐρωστότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''εὔρωστος''.<br> '''εὐρωστότερος, -έρα, -ότερον (adjectif)'''' : Comparatif de ''εὔρωστος''.<br> '''εὐρωστότατα, -, - (adverbe)''' : Superlatif de ''εὐρώστως''.<br> '''εὐρωστότερον, -, - (adverbe)''' : Comparatif de ''εὐρώστως''.<br> '''εὐρώστως (adverbe)''' : .<br> '''εὐσέϐεια, -ίας (nom commun) (f)''' : piété.<br> '''εὐσεϐέστατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''εὐσεϐής''.<br> '''εὐσεϐέστερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''εὐσεϐής''.<br> '''εὐσεϐής, -ής, -ές (adjectif)''' : pieux.<br> '''εὐσεϐῶς (adverbe)''' : pieusement.<br> '''εὐσυνείδητος, -ος, -ον (adjectif)''' : consciencieux.<br> '''ἐύς, -εῖα, -ύ (adjectif)''' : bon, brave.<br> '''εὐτελέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''εὐτελής''.<br> '''εὐτελέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''εὐτελής''.<br> '''εὐτελής, -ής, -ές (adjectif)''' : Bon marché. De vil prix, de peu de valeur. Avare.<br> '''εὐτελίζω (verbe)''' : mépriser.<br> '''εὐτελῶς (adverbe)''' : .<br> '''εὐτυχία, -ας (nom commun) (f)''' : bonheur.<br> '''εὖ (adverbe)''' : Bien (idée d’origine) Noblement. Bien, régulièrement ; justement. Bien, avec bienveillance. Heureusement.<br> '''εὐτυχέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''εὐτυχής''.<br> '''εὐτυχέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''εὐτυχής''.<br> '''εὐτυχής, -ής, -ές (adjectif)''' : heureux.<br> '''εὐτυχῶς (adverbe)''' : heureusement.<br> '''εὔφλεκτος, -ος, -ον (adjectif)''' : inflammable.<br> '''εὐφραδέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''εὐφραδής''.<br> '''εὐφραδέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''εὐφραδής''.<br> '''εὐφραδής, -ής, -ές (adjectif)''' : .<br> '''εὔφρων, -ων, -ον (adjectif)''' : .<br> '''εὐφυέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''εὐφυής''.<br> '''εὐφυέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''εὐφυής''.<br> '''εὐφυής, -ής, -ές (adjectif)''' : .<br> '''εὐφυῶς (adverbe)''' : .<br> '''εὐφωνία, -ας (nom commun) (f)''' : bonne sonorité.<br> '''εὐχαριστία, -ας (nom commun) (f)''' : .<br> '''εὐχάριστος, -ος, -ον (adjectif)''' : .<br> '''εὐχαριστῶ (verbe)''' : remercier.<br> '''εὐχή, -ῆς (nom commun) (f)''' : vœu.<br> '''εὔχομαι (verbe)''' : formuler un vœu.<br> '''εὖχος, -ὔχους (nom commun) (n)''' : Prière, vœu.<br> '''εὐχωλή, -ῆς (nom commun) (f)''' : Prière, vœu.<br> '''-εύς, -έως (suffixe) (m)''' : .<br> '''-εύω (suffixe)''' : .<br> '''ἐφαμέριος, -ίου (nom commun) (m)''' : Forme dorienne de ''ἐφημέριος''.<br> '''ἐφαμερεύω (verbe)''' : Forme dorienne de ''ἐφημερεύω''.<br> '''ἐφαρμόζω (verbe)''' : appliquer.<br> '''ἐφεξείης (adverbe)''' : Forme poétique de ''ἐφεξῆς''.<br> '''ἐφεξῆς (adverbe)''' : dorénavant, désormais.<br> '''ἐφήϐαιον, -ίου (nom commun) (m)''' : pubis.<br> '''ἐφηϐεία, -ας (nom commun) (f)''' : Service militaire rassemblant les jeunes Athéniens âgés de 18 à 20 ans.<br> '''ἐφηϐικός, -ή, -όν (adjectif)''' : adolescent.<br> '''ἔφηϐος, -ήϐου (nom commun) (m)''' : Jeune garçon ayant quitté l’autorité des femmes.<br> '''ἐφημέριος, -ίου (nom commun) (m)''' : curé.<br> '''ἐφημερεύω (verbe)''' : .<br> '''ἐφιάλτης, -ου (nom commun) (m)''' : cauchemar.<br> '''ἔχθος, -ους (nom commun) (n)''' : Haine ; hostilité.<br> '''ἐχθρά, -ᾶς (nom commun) (f)''' : ennemie.<br> '''ἐχθρός, -ά, -όν (adjectif)''' : Détesté de ; ennemi de.<br> '''ἐχθρός, -οῦ (nom commun) (m)''' : ennemi.<br> '''ἐχθρότης, -τος (nom commun) (f)''' : inimitié.<br> '''ἔχθω (verbe)''' : Haïr ; être hostile.<br> '''ἔχιδνα, -ης (nom commun) (f)''' : vipère.<br> '''ἐχῖνος, -ίνου (nom commun) (m)''' : hérisson.<br> '''ἔχις, -εως (nom commun) (m)''' : vipère.<br> '''ἔχω (verbe)''' : avoir.<br> '''ἕψημα, -ήματος (nom commun) (f)''' : cuisson.<br> '''ἕψησις, -ήσεως (nom commun) (f)''' : ébulition.<br> '''ἒ ψιλόν (nom commun) (n)''' : epsilon.<br> '''ἕψω (verbe)''' : Bouillir, cuire. Fondre, en parlant des métaux, raffiner, purifier. (Figuré) Être chaud pour ; chérir.<br> '''ἕως (conjonction)''' : jusqu'à ce que ; tant que.<br> '''Ἑϐραία, -ας (nom commun) (f)''' : Israélite.<br> '''Ἑϐραῖος, -ίου (nom commun) (m)''' : Israélite.<br> '''Ἑϐραΐς, -δος (nom commun) (f)''' : Israélite.<br> '''Ἐδέμ (nom propre) (m)''' : Éden.<br> '''Εἰλείθυια, -ίας (nom propre) (f)''' : [[wikt:Ilithyie|Ilithyie]] (déesse de l'enfantement).<br> '''Εἰρηναῖος, -ίου (nom propre) (m)''' : Irénée.<br> '''Εἰρήνη, -ης (nom propre) (f)''' : [[wikt:Eiréné|Eiréné]].<br> '''Ἑκάϐη, -ης (nom propre) (f)''' : Hécube.<br> '''Ἑκάτη, -ης (nom propre) (f)''' : Hécate.<br> '''Ἑκατόγχειρες, -ων (nom propre) (m)''' : Hécatonchires.<br> '''Ἕκτωρ, -ορος (nom propre) (m)''' : Hector.<br> '''Ἐλεάζαρος, -άρου (nom propre) (m)''' : Éléazar.<br> '''Ἐλαμείτης, -ου (nom commun) (m)''' : Élamite.<br> '''Ἐλεύθυια, -ίας (nom propre) (f)''' : Forme ancienne de ''Εἰλείθυια''.<br> '''Ἑλένη, -ης (nom propre) (f)''' : Hélène.<br> '''Ἕλενος, -ένου (nom propre) (m)''' : Hélénos.<br> '''Ἐλισάϐετ (nom propre) (f)''' : Élisabeth.<br> '''Ἑλλάς, -δος (nom propre) (f)''' : Grèce.<br> '''Ἕλλη, -ης (nom propre) (f)''' : Hellé.<br> '''Ἕλλην, -ος (nom propre) (m)''' : Hellen.<br> '''Ἕλλην, -ος (nom commun) (m)''' : Grec.<br> '''Ἑλληνίς, -δος (nom commun) (f)''' : Grecque.<br> '''Ἑλλήσποντος, -όντου (nom commun) (m)''' : Helléspont.<br> '''Ἐμπεδοκλῆς, -έους (nom propre) (m)''' : Empédocle.<br> '''Ἐνάρετη, -ης (nom propre) (f)''' : Énarété.<br> '''Ἐνδυμίων, -ωνος (nom propre) (m)''' : Endymion.<br> '''Ἐνετός, -οῦ (nom commun) (m)''' : Vénète.<br> '''Ἐνυώ, -οῦς (nom propre) (f)''' : [[wikt:Ényo|Ényo]].<br> '''Ἐπαμεινώνδας, -ου (nom commun) (m)''' : Épaminondas.<br> '''Ἐπίκτητος, -ήτου (nom propre) (m)''' : Épictète.<br> '''Ἐπιμηθεύς, -έως (nom propre) (m)''' : Épiméthée.<br> '''Ἐπιφί (nom propre) (m)''' : Epiphi.<br> '''Ἐρατοσθένης, -ους (nom propre) (m)''' : Ératosthène. (Savant grec né en -276 et mort en -194.)<br> '''Ἐρατώ, -οῦς (nom propre) (f)''' : Érato.<br> '''Ἔρεϐος, -έϐους (nom propre) (n)''' : [[wikt:Érèbe|Érèbe]].<br> '''Ἐρεχθεύς, -έως (nom propre) (m)''' : Érechtée.<br> '''Ἐρινύς, -ος (nom propre) (f)''' : Érynie.<br> '''Ἔρις, -εως (nom propre) (f)''' : [[wikt:Éris|Éris]].<br> '''Ἐριφύλη, -ης (nom propre) (f)''' : Ériphyle.<br> '''Ἑρμᾶς, -οῦ (nom propre) (m)''' : Forme dorienne de ''Ἑρμῆς''.<br> '''Ἑρμαφρόδιτος, -ίτου (nom propre) (m)''' : Hermaphrodite.<br> '''Ἑρμῆς, -οῦ (nom propre) (m)''' : [[wikt:Hermès|Hermès]].<br> '''Ἑρμιονεύς, -έως (nom propre) (m)''' : Hermionée.<br> '''Ἑρμιόνη, -ης (nom propre) (f)''' : Hermione.<br> '''Ἑρμιονίς, -δος (nom propre) (f)''' : Hermionide.<br> '''Ἑρμιών, -ῶνος (nom propre) (m)''' : Hermion.<br> '''Ἑρμογένης, -ους (nom propre) (m)''' : Hermogénès.<br> '''Ἐρυσίχθων, -ονος (nom propre) (m)''' : Érysichthon.<br> '''Ἔρως, -τος (nom propre) (m)''' : [[wikt:Éros|Éros]].<br> '''Ἑσπερία, -ας (nom propre) (f)''' : Hespérie.<br> '''Ἑσπερίδες, -ων (nom propre) (f)''' : Hespérides.<br> '''Ἑσπερίς, -δος (nom propre) (f)''' : Hespéris.<br> '''Ἕσπερος, -έρου (nom propre) (m)''' : Hespéros.<br> '''Εὔα, -ας (nom propre) (f)''' : Ève.<br> '''Εὐάγριος, -ίου (nom propre) (m)''' : Évagre.<br> '''Εὐγενία, -ας (nom propre) (f)''' : Eugénie.<br> '''Εὐγένιος, -ίου (nom propre) (m)''' : Eugène.<br> '''Εὔδημος, -ήµου (nom propre) (m)''' : Eudème.<br> '''Εὔιος, -ίου (nom propre) (m)''' : Euïos.<br> '''Εὐλαλία, -ας (nom propre) (f)''' : Eulalie.<br> '''Εὐλάλιος, -ίου (nom propre) (m)''' : Eulalios.<br> '''Εὔμαιος, -ίου (nom propre) (m)''' : Eumée. (Porcher de Laërte et d’Ulysse.)<br> '''Εὐήμερος, -έρου (nom propre) (m)''' : Évhémère.<br> '''Εὔμηλος, -ήλου (nom propre) (m)''' : Eumélos.<br> '''Εὔνηος, -ήου (nom propre) (m)''' : Eunée.<br> '''Εὐνομία, -ας (nom propre) (f)''' : Eunomie.<br> '''Εὐήρης, -ου (nom propre) (m)''' : Évérès.<br> '''Εὐριπίδης, -ου (nom propre) (m)''' : Euripide.<br> '''Εὔρος, -ου (nom propre) (m)''' : Euros. (dieu du vent d'est)<br> '''Εὐρυάλη, -ης (nom propre) (f)''' : Euryale.<br> '''Εὐρυδίκη, -ης (nom propre) (f)''' : Eurydice.<br> '''Εὐρύθεμις, -έμιδας (nom propre) (f)''' : Eurythémis.<br> '''Εὐρύκλεια, -ίας (nom propre) (f)''' : Euryclée.<br> '''Εὐρύλοχος, -όχου (nom propre) (m)''' : Euryloque.<br> '''Εὐρυσθεύς, -έως (nom propre) (m)''' : Eurysthée (fils de Sthénélos et Nicipée).<br> '''Εὐρωπαῖος, -ίου (nom commun) (m)''' : Européen.<br> '''Εὐρώπη, -ης (nom propre) (f)''' : Europe.<br> '''Εὐσέϐεια, -ας (nom propre) (f)''' : Eusébie.<br> '''Εὐσέϐιος, -ίου (nom propre) (m)''' : Eusèbe.<br> '''Εὐστάθιος, -ίου (prénom) (m)''' : Eustache.<br> '''Εὔσταχυς, -άχυος (prénom) (m)''' : Eustache.<br> '''Εὐτέρπη, -ης (nom propre) (f)''' : Euterpe.<br> '''Εὐτύχιος, -ίου (nom propre) (m)''' : Eutychius.<br> '''Εὐφημία, -ας (nom propre) (f)''' : Euphémie.<br> '''Εὔφημος, -ήμου (nom propre) (m)''' : Euphémos.<br> '''Εὐφράτης, -ου (nom propre) (m)''' : Euphrate (fleuve de Turquie et d’Irak).<br> '''Εὐφροσύνη, -ης (nom propre) (f)''' : Euphrosyne.<br> '''Εὔφρων, -ονος (nom propre) (m)''' : Euphron.<br> '''Ἔφεσος, -έσου (nom propre) (f)''' : Éphèse.<br> '''Ἐφιάλτης, -ου (nom propre) (m)''' : Éphialtès.<br> '''Ἕως, -ω (nom propre) (f)''' : Forme alternative de ''Ἠώς''.<br> '''Ἑωσφόρος, -ου (nom propre) (m)''' : Lucifer.<br> ==Ζ== '''ζῆλος, -ήλου (nom commun) (m)''' : Jalousie ; zèle.<br> '''ζηλοτυπία, -ας (nom commun) (m)''' : jalousie.<br> '''ζηλότυπος, -ος, -ον (adjectif)''' : jaloux.<br> '''ζηλωτής, -οῦ (nom commun) (m)''' : zélote.<br> '''ζηλῶ (verbe)''' : aimer ardemment.<br> '''ζῆτα (nom commun) (n)''' : zêta.<br> '''ζήτησις, -ήσεως (nom commun) (f)''' : recherche.<br> '''ζητητικός, -ός, -όν (adjectif)''' : aimant chercher ; rechercher.<br> '''ζητῶ (verbe)''' : demander ; chercher.<br> '''ζιγγίϐερις, -έρεως (nom commun) (f)''' : gingembre.<br> '''ζιζάνιον, -ίου (nom commun) (n)''' : ivraie.<br> '''ζιζανοσπορεύς, -έως (nom commun) (m)''' : .<br> '''ζιζανιοσπόρος, -ου (nom commun) (m)''' : .<br> '''ζιζανώδης, -ης, -ες (adjectif)''' : .<br> '''ζίζυφον, -ύϕου (nom commun) (n)''' : jujubier.<br> '''ζόα, -ας (nom commun) (f)''' : Forme dorienne de ''ζωή''.<br> '''ζόη, -ης (nom commun) (f)''' : Forme ionienne de ''ζωή''.<br> '''ζοΐα, -ας (nom commun) (f)''' : Forme éolienne de ''ζωή''.<br> '''ζόρξ, -κος (nom commun) (m)''' : Forme de ''δορκάς''.<br> '''ζυγαριά, -ᾶς (nom commun) (f)''' : balance.<br> '''ζυγόν, -οῦ (nom commun) (n)''' : joug.<br> '''ζῦθος, -ύθου (nom commun) (m)''' : bière.<br> '''ζωά, -ᾶς (nom commun) (f)''' : Autre forme dorienne de ''ζωή''.<br> '''ζωή, -ῆς (nom commun) (f)''' : vie.<br> '''ζῶμα, -ώματος (nom commun) (n)''' : caleçon.<br> '''ζώμευμα, -ύματος (nom commun) (n)''' : soupe.<br> '''ζωμεύω (verbe)''' : bouillir en soupe.<br> '''ζωμήρυσις, -ύσεως (nom commun) (f)''' : louche à soupe.<br> '''ζωμίδιον, -ίου (nom commun) (n)''' : sauce.<br> '''ζωμός, -οῦ (nom commun) (m)''' : bouillon, soupe.<br> '''ζωός, -ή, -όν (adjectif)''' : vivant.<br> '''ζῷον, -ῴου (nom commun) (n)''' : animal.<br> '''ζωοπανήγυρις, -ύρεως (nom commun) (f)''' : .<br> '''ζῶ (verbe)''' : vivre.<br> '''Ζαϐουλών (nom propre) (m)''' : Zabulon.<br> '''Ζαγρεύς, -έως (nom propre) (m)''' : Zagreus.<br> '''Ζακχαῖος, -ίου (nom propre) (m)''' : Zachée.<br> '''Ζάν, -ός (nom propre) (m)''' : Forme dorienne de ''Ζεύς''.<br> '''Ζάς, -νος (nom propre) (m)''' : Autre forme dorienne de ''Ζεύς''.<br> '''Ζαχαρίας, -ου (nom propre) (m)''' : Zacharie.<br> '''Ζεϐεδαῖος, -ίου (nom propre) (m)''' : Zébédée.<br> '''Ζευξίππη, -ης (nom propre) (f)''' : Zeuxippe.<br> '''Ζεῦξις, -ύξεως (nom propre) (m)''' : Zeuxis.<br> '''Ζεῦς, -ύσεως (nom propre) (m)''' : Forme lesbienne de ''Ζεύς''.<br> '''Ζεύς, Διός (nom propre) (m)''' : [[wikt:Zeus|Zeus]].<br> '''Ζέφυρος, -ύρου (nom propre) (m)''' : [[wikt:Zéphyr|Zéphyr]]. (dieu du vent d'ouest)<br> '''Ζῆλος, -ήλου (nom propre) (m)''' : Zélos.<br> '''Ζήν, -ός (nom propre) (m)''' : Forme poétique de ''Ζεύς''.<br> '''Ζηνοϐία, -ας (nom propre) (f)''' : Zénobie.<br> '''Ζηνοϐίος, -ίου (nom propre) (m)''' : Zénobios.<br> '''Ζυγός, -οῦ (nom propre) (m)''' : Balance.<br> '''Ζωροάστρης, -ου (nom propre) (m)''' : Zoroastre.<br> ==Η== '''ἡ (article défini)''' : la.<br> '''ἤ (conjonction)''' : ou.<br> '''ᾗ (adverbe relatif)''' : par là où (je passe).<br> '''ἥϐη, -ης (nom commun) (f)''' : jeunesse.<br> '''ἡϐητέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἡϐητής''.<br> '''ἡϐητέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἡϐητής''.<br> '''ἡϐητής, -ής, -ές (adjectif)''' : juvénile.<br> '''ἡϐητῶς (adverbe)''' : juvénilement.<br> '''ἡϐός, -ή, -όν (adjectif)''' : jeune.<br> '''ἡϐότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἡϐός''.<br> '''ἡϐότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἡϐός''.<br> '''ἡγείσθαι (verbe)''' : conduire.<br> '''ἡγεμονία, -ας (nom commun) (f)''' : Action de conduire, de diriger. Suprématie, puissance. Règne.<br> '''ἡγεμονεύω (verbe)''' : .<br> '''ἡγεμών, -όνος (nom commun) (m)''' : souverain.<br> '''ἡγέομαι (verbe)''' : Marcher devant. (après Homère) Croire, penser.<br> '''ἡγέτης, -ου (nom commun) (m)''' : leader.<br> '''-ηγός, -οῦ (suffixe) (m/f)''' : .<br> '''ἥδομαι (verbe)''' : avoir plaisir à, se réjouir de.<br> '''ἡδονή, -ῆς (nom commun) (f)''' : plaisir.<br> '''ἡδύς, -εῖα, -ύ (adjectif)''' : doux, agréable.<br> '''ἡδύχρουν, - (nom commun) (n)''' : .<br> '''ἠθικός, -ή, -όν (adjectif)''' : moral.<br> '''ἠθικότατα, -, - (adverbe)''' : Superlatif de ''ἠθικῶς''.<br> '''ἠθικότερον, -, - (adverbe)''' : Comparatif de ''ἠθικῶς''.<br> '''ἠθικῶς (adverbe)''' : moralement.<br> '''ἠθικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἠθικός''.<br> '''ἠθικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἠθικός''.<br> '''ἦθος, ἤθους (nom commun) (n)''' : us et coutumes.<br> '''ἠϊθέη, -ης (nom commun) (f)''' : célibataire.<br> '''ἠΐθεος, -έου (nom commun) (m)''' : célibataire.<br> '''ἠι (adverbe)''' : Forme béotienne de ''ἀεί''.<br> '''-ήϊον, -ΐου (suffixe)''' : Forme ionienne de ''-εῖον''.<br> '''ἥκω (verbe)''' : être présent, être là.<br> '''ἠλακάτη, -ης (nom commun) (f)''' : quenouille.<br> '''ἤλεκτρον, -έκτρου (nom commun) (n)''' : ambre jaune.<br> '''ἠλέκτωρ, -, - (adjectif)''' : brillant.<br> '''ἡλιακός, -ή, -όν (adjectif)''' : solaire.<br> '''ἤλιθιος, -η, -ον (adjectif)''' : stupide.<br> '''ἡλικία, -ας (nom commun) (f)''' : âge.<br> '''ἥλιος, -ίου (nom commun) (m)''' : soleil.<br> '''ἠέλιος, -ίου (nom commun) (m)''' : Forme homérique de ''ἥλιος''.<br> '''ἡλιοστάσιον, -ίου (nom commun) (n)''' : solstice.<br> '''ἧλιξ, ἥλικος (nom commun) (m/f)''' : camarade.<br> '''ἧλος, ἥλου (nom commun) (m)''' : Clou, tête de clou. Cal, durillon, galle.<br> '''ἧμαι (verbe)''' : être assis.<br> '''ἡμεῖς (pronom personnel) (m)''' : nous.<br> '''ἡμέρα, -ας (nom commun) (f)''' : jour.<br> '''ἡμέρα Ἡλίου (nom commun) (f)''' : dimanche.<br> '''ἡμέρα Σελήνης (nom commun) (f)''' : lundi.<br> '''ἡμέρα Ἄρεως (nom commun) (f)''' : mardi.<br> '''ἡμέρα Ἕρμου (nom commun) (f)''' : mercredi.<br> '''ἡμέρα Διός (nom commun) (f)''' : jeudi.<br> '''ἡμέρα Ἀφροδίτης (nom commun) (f)''' : vendredi.<br> '''ἡμέρα Κρόνου (nom commun) (f)''' : samedi.<br> '''ἡμέρη, -ης''' (nom commun) (f) Forme homérique et ionienne de ''ἡμέρα''.<br> '''ἡμερήσιος, -ια, -ον (adjectif)''' : journalier ; diurne.<br> '''ἡμερολόγιον, -ίου (nom commun) (n)''' : calendrier.<br> '''ἡμέτερος, -έρα, -έτερον (adjectif possessif)''' : notre.<br> '''ἡμι- (préfixe)''' : à moitié.<br> '''ἡμίκλαστος, -, - (adjectif)''' : .<br> '''ἡμικρανία, -ας (nom commun) (f)''' : migraine.<br> '''ἡμίονος, -όνου (nom commun) (m)''' : hémione.<br> '''ἡνία, -ας (nom commun) (f)''' : .<br> '''ἡνίοχος, -όχου (nom commun) (m)''' : cocher.<br> '''ἧπαρ, ἥπατος (nom commun) (n)''' : foie.<br> '''ἡπατικός, -ή, -όν (adjectif)''' : hépatique.<br> '''ἡπατῖτις, -ίτης (nom commun) (f)''' : hépatite.<br> '''ἤπειρος, -ίρου (nom commun) (f)''' : continent.<br> '''ἠπειρωτικός, -ή, -όν (adjectif)''' : continental.<br> '''ἡράκλειος, -α, -ον (adjectif)''' : herculéen.<br> '''ἡρωίνη, -ης (nom commun) (f)''' : héroïne.<br> '''ἡρωικός, -ή, -όν (adjectif)''' : héroïque.<br> '''ἡρωικότατα, -, - (adverbe)''' : Superlatif de ''ἡρωικῶς''.<br> '''ἡρωικότερον, -, - (adverbe)''' : Comparatif de ''ἡρωικῶς''.<br> '''ἡρωικῶς (adverbe)''' : héroïquement.<br> '''ἡρωικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἡρωικός''.<br> '''ἡρωικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἡρωικός''.<br> '''ἡρωισμός, -οῦ (nom commun) (m)''' : héroïsme.<br> '''ἡρωίς, -δος (nom commun) (f)''' : héroïne.<br> '''ἥρως, -ος (nom commun) (m)''' : héros.<br> '''ἧσσα, ἥσσης (nom commun) (f)''' : défaite.<br> '''ἡσσῶμαι (verbe)''' : être défait.<br> '''ἡσυχάζω (verbe)''' : être en paix, garder le silence.<br> '''ἡσυχασμός, -οῦ (nom commun) (m)''' : hésychasme.<br> '''ἡσυχία, -ας (nom commun) (f)''' : Immobilité. Repos, calme ; silence.<br> '''ἥσυχος, -ος, -ον (adjectif)''' : Calme, tranquille.<br> '''ἡσύχως (adverbe)''' : Calmement, tranquillement.<br> '''ἡσυχώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἥσυχος''.<br> '''ἡσυχώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἥσυχος''.<br> '''σωματικώτατα, -, - (adverbe)''' : Superlatif de ''ἡσύχως''.<br> '''σωματικώτερον, -, - (adverbe)''' : Comparatif de ''ἡσύχως''.<br> '''ἦτα (nom commun) (n)''' : êta.<br> '''ἧτρον, ἥτρου (nom commun) (n)''' : abdomen.<br> '''ἧττα, ἥττης (nom commun) (f)''' : Forme attique de ''ἧσσα''.<br> '''ἡττῶμαι (verbe)''' : Forme attique de ''ἡσσῶμαι''.<br> '''ἡφαιστεῖον, -ίου (nom commun) (m)''' : volcan.<br> '''ἦχος, ἤχου (nom commun) (m)''' : son.<br> '''ἠχώ, -οῦς (nom commun) (f)''' : son répercuté.<br> '''ἠώς, -οῦς (nom commun) (f)''' : aurore.<br> '''Ἥϐη, -ης (nom propre) (f)''' : [[wikt:Hébé|Hébé]].<br> '''Ἡγήσιππος, -ίππου (nom propre) (m)''' : Hégésippe.<br> '''Ἡγησώ, -οῦς (nom propre) (f)''' : Hègèsô.<br> '''Ἠλίας, -α (nom propre) (m)''' : Élie.<br> '''Ἥλιος, -ίου (nom propre) (m)''' : [[wikt:Hélios|Hélios]].<br> '''Ἠλύσιον, -ίου (nom propre) (n)''' : Élysée. (Séjour des hommes vertueux après leur mort.)<br> '''Ἡμέρα, -ας (nom propre) (f)''' : [[wikt:Héméra|Héméra]].<br> '''Ἤπειρος, -ίρου (nom propre) (f)''' : Épire.<br> '''Ἠπιδανός, -οῦ (nom propre) (m)''' : Forme ionienne d<nowiki>'</nowiki>''Ἀπιδανός''.<br> '''Ἥρα, -ας (nom propre) (f)''' : [[wikt:Héra|Héra]].<br> '''Ἡρακλέης, -ους (nom propre) (m)''' : Forme poétique de ''Ἡρακλῆς''.<br> '''Ἡρακλῆς, -έους (nom propre) (m)''' : Héraclès.<br> '''Ἡρόστρατος, -άτου (nom propre) (m)''' : Hérostrate.<br> '''Ἠσαΐας, -ου (nom propre) (m)''' : Isaïe.<br> '''Ἡσαΐας, -ου (nom propre) (m)''' : Forme alternative de ''Ἠσαΐας''.<br> '''Ἡσαῦ (nom propre) (m)''' : Ésaü.<br> '''Ἠσαῦ (nom propre) (m)''' : Forme alternative de ''Ἡσαῦ''.<br> '''Ἡσύχιος, -ίου (nom propre) (m)''' : Hésychios.<br> '''Ἥφαιστος, -ίστου (nom propre) (m)''' : [[wikt:Héphaïstos|Héphaïstos]].<br> '''Ἠχώ, -οῦς (nom propre) (f)''' : [[wikt:Écho|Écho]].<br> '''Ἠώς, -οῦς (nom propre) (f)''' : [[wikt:Éos|Éos]].<br> ==Θ== '''θαλάμη, -ης (nom commun) (f)''' : Gîte ; tanière.<br> '''θάλαμος, -άμου (nom commun) (m)''' : chambre.<br> '''θάλασσα, -ης (nom commun) (f)''' : mer.<br> '''θάλαττα, -ης (nom commun) (f)''' : Forme attique de ''θάλασσα''.<br> '''θάμϐος, -ους (nom commun) (n)''' : stupeur.<br> '''θανατηφόρος, -ος, -ον (adjectif)''' : mortifère.<br> '''θάνατος, -άτου (nom commun) (m)''' : mort.<br> '''θανάτωσις, -ώσεως (nom commun) (f)''' : .<br> '''θανατῶ (verbe)''' : .<br> '''θανών, -ών, -όν (adjectif)''' : mort.<br> '''θάπτω (verbe)''' : enterrer.<br> '''θαυμάζω (verbe)''' : être stupéfait.<br> '''θαῦμα, -ύατος (nom commun) (n)''' : objet d’admiration ou d’étonnement ; merveille.<br> '''θαυμαστός, -ή, -όν (adjectif)''' : merveilleux.<br> '''θαυματουργία, -ας (nom commun) (f)''' : tour de force ; création de merveilles.<br> '''θαυματουργός, -ός, -όν (adjectif)''' : Qui crée des merveilles.<br> '''θαυματουργός, -οῦ (nom commun) (m)''' : créateur de merveilles.<br> '''θαυματουργῶ (verbe)''' : créer des merveilles.<br> '''θεά, -ᾶς (nom commun) (f)''' : déesse.<br> '''θέα, -ας (nom commun) (f)''' : contemplation.<br> '''θέαμα, -άματος (nom commun) (n)''' : spectacle.<br> '''θεατής, -οῦ (nom commun) (m)''' : spectateur.<br> '''θεατρικός, -ή, -όν (adjectif)''' : théâtral.<br> '''θεατρικῶς (adverbe)''' : théâtralement.<br> '''θεατρικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''θεατρικός''.<br> '''θεατρικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''θεατρικός''.<br> '''θεατρικώτατα, -, - (adverbe)''' : Superlatif de ''θεατρικῶς''.<br> '''θεατρικώτερον, -, - (adverbe)''' : Comparatif de ''θεατρικῶς''.<br> '''θέατρον, -ου (nom commun) (n)''' : théâtre.<br> '''θεατρινισμός, -οῦ (nom commun) (m)''' : .<br> '''θεατρινίστικος, -η, -ον (adjectif)''' : .<br> '''θεατρίνος, -ου (nom commun) (m)''' : acteur.<br> '''θέημα, -ήματος (nom commun) (n)''' : Forme ionienne de ''θέαμα''.<br> '''θέητρον, -ου (nom commun) (n)''' : Forme ionienne de ''θέατρον''.<br> '''θεῖα, -ίας (nom commun) (f)''' : tante.<br> '''θεῖον, -ίου (nom commun) (m)''' : soufre ; fumée de soufre.<br> '''θεῖος, -ίου (nom commun) (m)''' : oncle.<br> '''θέειος, -ίου (nom commun) (m)''' : Forme homérique de ''θεῖος''.<br> '''θεήϊος, -ΐου (nom commun) (m)''' : Forme de ''θεῖος''.<br> '''-θέτης, -ου (suffixe) (m)''' : .<br> '''θέλγω (verbe)''' : fasciner.<br> '''θέμα, -τος (nom commun) (n)''' : Dépôt, ce qui est placé, posé ou déposé. Endroit où l’on pose ou place quelque chose. .<br> '''θεματίζω (verbe)''' : déposer.<br> '''θεματίτης, -ου (nom commun) (m)''' : dépositaire.<br> '''θεματικός, -ή, -όν (adjectif)''' : thématique.<br> '''θέμις, -τος (nom commun) (f)''' : loi divine ou morale.<br> '''θέογνις, -δος (nom commun) (m)''' : .<br> '''θεός, -οῦ (nom commun) (m)''' : dieu.<br> '''θεραπεία, -ας (nom commun) (f)''' : soin.<br> '''θεραπευτήριον, -ίου (nom commun) (n)''' : sanatorium.<br> '''θεραπευτής, -οῦ (nom commun) (m)''' : soignant.<br> '''θεραπευτικός, -ή, -όν (adjectif)''' : attentif, serviable ; curatif.<br> '''θεραπεύω (verbe)''' : soigner ; prendre soin de.<br> '''θεράπων, -οντος (nom commun) (m)''' : serviteur.<br> '''θερμόν, -οῦ (nom commun) (n)''' : chaleur.<br> '''θερμός, -ή, -όν (adjectif)''' : chaud.<br> '''θερμότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''θερμός''.<br> '''θερμότερος, -έρη, -ότατον (adjectif)''' : Comparatif de ''θερμός''.<br> '''θερμῶς (adverbe)''' : chaudement.<br> '''θέρος, -ους (nom commun) (n)''' : été.<br> '''θέρω (verbe)''' : chauffer.<br> '''θέσις, -εως (nom commun) (f)''' : .<br> '''θεσμός, -οῦ (nom commun) (m)''' : (Primitivement) Toute loi ou institution établie par les dieux, institution sacrée, rite, coutume antique. Loi divine ou naturelle, par opposition à la loi écrite. (Par extension) Loi faite par les hommes, loi écrite.<br> '''θεσμοθέτης, -ου (nom commun) (m)''' : parlementaire.<br> '''θεσμοθετεῖον, -ίου (nom commun) (n)''' : parlement.<br> '''θεύς, -έως (nom commun) (m)''' : Forme dorienne de ''θεός''.<br> '''θεῶμαι (verbe)''' : Regarder, contempler (le plus souvent avec étonnement ou admiration), admirer. Contempler en esprit. Voir clairement. Être spectateur. Revoir, passer en revue, examiner.<br> '''θεώρημα, -ήματος (nom commun) (n)''' : Spectacle, fête ; règle, principe, objet d'étude ou de méditation ; contemplation, recherche.<br> '''θεωρητικός, -ή, -όν (adjectif)''' : théorique.<br> '''θεωρητικῶς (adverbe)''' : théoriqument.<br> '''θεωρητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''θεωρητικός''.<br> '''θεωρητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''θεωρητικός''.<br> '''θεωρητικώτατα, -, - (adverbe)''' : Superlatif de ''θεωρητικῶς''.<br> '''θεωρητικώτερον, -, - (adverbe)''' : Comparatif de ''θεωρητικῶς''.<br> '''θεωρία, -ας (nom commun) (f)''' : Observation, vue, action de voir. Spectacle, ce qui est vu. Mission diplomatique. État de spectateur, audience.<br> '''θεωρός, -οῦ (nom commun) (m)''' : Spectateur, observateur.<br> '''θεωρῶ (verbe)''' : Observer, examiner, contempler. Inspecter, passer en revue. Contempler. (Figuré) Contempler par l’intelligence.<br> '''θέω (verbe)''' : courir.<br> '''θήϊος, -ΐου (nom commun) (m)''' : Forme éolienne de ''θεῖος''.<br> '''θήκη, -ης (nom commun) (f)''' : Boîte, coffre. Cercueil, tombeau.<br> '''θήλεια, - (nom commun) (f)''' : .<br> '''θηλυκός, -ή, -όν (adjectif)''' : féminin.<br> '''θῆλυ, -ήλεας (nom commun) (f)''' : femelle.<br> '''θῆλυς, -ήλεια, -ῆλυ (adjectif)''' : femelle.<br> '''θηλύτης, -τος (nom commun) (f)''' : féminité.<br> '''θηλῶ (verbe)''' : .<br> '''θῆμα, -ήματος (nom commun) (n)''' : tombe.<br> '''θήρα, -ας (nom commun) (f)''' : chasse.<br> '''θήραμα, -άματος (nom commun) (n)''' : proie.<br> '''θηρευτής, -οῦ (nom commun) (m)''' : chasseur.<br> '''θηρευτικός, -ή, -όν (adjectif)''' : de chasse.<br> '''θηριότης, -τας (nom commun) (f)''' : monstruosité.<br> '''θηριώδης, -ης, -ες (adjectif)''' : monstrueux.<br> '''θηριωδία, -ας (nom commun) (f)''' : monstruosité.<br> '''θηρίον, -ου (nom commun) (n)''' : animal sauvage.<br> '''θήρ, -ός (nom commun) (m)''' : bête sauvage.<br> '''θηρῶ (verbe)''' : chasser.<br> '''θησαυρός, -οῦ (nom commun) (m)''' : trésor.<br> '''θῆσσα, -ήσσα (nom commun) (f)''' : serve.<br> '''θής, -τός (nom commun) (m)''' : serf.<br> '''θῆτα (nom commun) (n)''' : thêta.<br> '''θητεία, -ας (nom commun) (f)''' : service.<br> '''θητεύω (verbe)''' : asservir.<br> '''θῆττα, -ήττα (nom commun (f)''' : Forme attique de ''θῆσσα''.<br> '''θιγγάνω (verbe)''' : toucher.<br> '''θιός, -οῦ (nom commun) (m)''' : Forme béotienne et arcado-chypriote de ''θεός''.<br> '''θλάσις, -εως (nom commun) (f)''' : contusion.<br> '''θλιϐή, -ῆς (nom commun) (f)''' : .<br> '''θλίϐω (verbe)''' : Presser ; compresser, réduire. Oppresser, attrister.<br> '''θλῖψις, -ίψεως (nom commun) (f)''' : Pression, compression ; oppression.<br> '''θλίψις, -εως (nom commun) (f)''' : chagrin, tristesse.<br> '''θλῶ (verbe)''' : étendre.<br> '''θναίσκω (verbe)''' : Forme éolienne de ''θνῄσκω''.<br> '''θνᾴσκω (verbe)''' : Forme dorienne de ''θνῄσκω''.<br> '''θνῄσκω (verbe)''' : mourir.<br> '''θοάζω (verbe)''' : se hâter.<br> '''θολερός, -ά, -όν (adjectif)''' : sale.<br> '''θολερώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''θολερός''.<br> '''θολερώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''θολερός''.<br> '''θολερῶς (adverbe)''' : salement.<br> '''θοός, -ή, -όν (adjectif)''' : rapide.<br> '''θόρυϐος, -ύϐου (nom commun) (m)''' : bruit.<br> '''θορυϐωδέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''θορυϐώδης''.<br> '''θορυϐωδέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''θορυϐώδης''.<br> '''θορυϐώδης, -ης, -ες (adjectif)''' : bruyant.<br> '''θορυϐώδως (adverbe)''' : bruyamment.<br> '''θοῶς (adverbe)''' : rapidement.<br> '''θοώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''θοός''.<br> '''θοώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''θοός''.<br> '''θρᾴκιος, -ος, -ον (adjectif)''' : thrace.<br> '''θρασέως (adverbe)''' : audacieusement.<br> '''θράσος, -ους (nom commun) (n)''' : audace.<br> '''θρασύς, -εῖα, -ύ (adjectif)''' : audacieux.<br> '''θρασύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''θρασύς''.<br> '''θρασύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''θρασύς''.<br> '''θρασύτης, -τητος (nom commun) (f)''' : audace (qualité).<br> '''θρῄκιος, -ος, -ον (adjectif)''' : Forme poétique de ''θρᾴκιος''.<br> '''θρῆνος, -ήνου (nom commun) (m)''' : lamentation.<br> '''θρηνῶ (verbe)''' : se lamenter.<br> '''θρησκεία, -ας (nom commun) (n)''' : religion.<br> '''θρησκεύω (verbe)''' : observer religieusement.<br> '''θρῆσκος, -ήσκα, -ῆσκον (adjectif)''' : pieux.<br> '''θρίαμϐος, -άμϐου (nom commun) (m)''' : triomphe.<br> '''θρίξ, τριχός (nom commun) (f)''' : poil.<br> '''θρίψ, -πός (nom commun) (m)''' : petite vrillette. (Au figuré) avare.<br> '''θροέω (verbe)''' : froisser.<br> '''θρόμϐος, -ου (nom commun) (m)''' : Grumeau, caillot.<br> '''θρόνος, -ου (nom commun) (m)''' : siège élevé.<br> '''θρόος, -ου (nom commun) (m)''' : froissement.<br> '''θροῦς, -οῦ (nom commun) (m)''' : rumeur.<br> '''θροῶ (verbe)''' : froisser.<br> '''θρυλικός, -ή -όν (adjectif)''' : légendaire.<br> '''θρῦλος, -ύλου (nom commun) (f)''' : légende. (Récit populaire, plus ou moins fabuleux.)<br> '''θρύπτω (verbe)''' : casser ; morceler.<br> '''θυγάτηρ, -ρός (nom commun) (f)''' : fille. (descendante)<br> '''θύλακος, -άκου (nom commun) (m)''' : bourse ; sac.<br> '''θῦμα, -ύματος (nom commun) (n)''' : victime.<br> '''θυμίαμα, -άματος (nom commun) (n)''' : encens.<br> '''θυμιάω (verbe)''' : brûler.<br> '''θυμίημα, -ήματος (nom commun) (n)''' : Forme ionienne de ''θυμίαμα''.<br> '''θυμολέων, -ων, -ον (adjectif)''' : Courageux ; cœur-de-lion.<br> '''θυμός, -οῦ (nom commun) (m)''' : Âme, souffle de vie. Esprit, cœur. Courage.<br> '''θύμος, -ου (nom commun) (m)''' : thym.<br> '''θύννος, -ου (nom commun) (m)''' : thon.<br> '''θύρα, -ας (nom commun) (f)''' : Porte, battant ; ouverture, entrée.<br> '''θυραωρός, -οῦ (nom commun) (m)''' : Forme homérique de ''θυρωρός''.<br> '''θυρωρεῖον, -ίου (nom commun) (n)''' : conciergerie.<br> '''θυρωρός, -οῦ (nom commun (m) : concierge.<br> '''θύρσος, -ου (nom commun) (m)''' : thyrse.<br> '''θύρωμα, -ώματος (nom commun) (n)''' : portail.<br> '''θυσία, -ας (nom commun) (f)''' : sacrifice.<br> '''θυσιάζω (verbe)''' : sacrifier.<br> '''θωή, -ῆς (nom commun) (f)''' : .<br> '''θῶμα, -ώματος (nom commun) (n)''' : Forme ionienne de ''θαῦμα''.<br> '''θωμαστός, -ή, -όν (adjectif)''' : Forme ionienne de ''θαυμαστός''.<br> '''θῶμιγξ, -ώμιγγος (nom commun) (f)''' : Corde ; ficelle.<br> '''θωπεία, -ας (nom commun) (f)''' : caresse.<br> '''θώπευμα, -ύματος (nom commun) (n)''' : caresse.<br> '''θωπευτικός, -ή, -όν (adjectif)''' : caressant.<br> '''θωπεύω (verbe)''' : caresser.<br> '''θώς, -ός (nom commun) (m/f)''' : chacal.<br> '''θώϋμα, -τος (nom commun) (n)''' : Autre forme ionienne de ''θαῦμα''.<br> '''θώψ, -πός (nom commun) (m)''' : adulateur.<br> '''Θαδδαῖος, -ίου (nom propre) (m)''' : Thadée.<br> '''Θαΐς, -δος (nom propre) (f)''' : [[wikt:Thaïs|Thaïs]].<br> '''Θάλεια, -ας (nom propre) (f)''' : Thalie. (muse)<br> '''Θαλῆς, -άλεω (nom propre) (m)''' : Thalès.<br> '''Θαλία, -ας (nom propre) (f)''' : Thalie. (Charite)<br> '''Θάνατος, -άτου (nom propre) (m)''' : [[wikt:Thanatos|Thanatos]].<br> '''Θαῦμας, -ύμαντος (nom propre) (m)''' : Thaumas.<br> '''Θάψος, -ου (nom propre) (f)''' : Thapsus. (ville de Tunisie)<br> '''Θέμις, -δος (nom propre) (f)''' : [[wikt:Thémis|Thémis]].<br> '''Θεμιστοκλῆς, -έους (nom propre) (m)''' : Thémistocle.<br> '''Θέτις, -δος (nom propre) (f)''' : [[wikt:Thétis|Thétis]].<br> '''Θέογνις, -δος (nom propre) (m)''' : Théognis.<br> '''Θεοδοσία, -ας (nom propre) (f)''' : Théodosia.<br> '''Θεοδόσιος, -ίου (nom propre) (m)''' : Théodose.<br> '''Θεόδουλος, -ύλος (nom propre) (m)''' : Théodule.<br> '''Θεόδωρος, -ώρου (nom propre) (m)''' : Théodore.<br> '''Θεόπομπος, -όμπου (nom propre) (m)''' : Théopompe.<br> '''Θεός, -οῦ (nom propre) (m)''' : Dieu.<br> '''Θεοφάνης, -ου (nom propre) (m)''' : Théophane.<br> '''Θεοφανία, -ας (nom propre) (f)''' : Théophanie.<br> '''Θεόφιλος, -ίλου (nom propre) (m)''' : Théophile.<br> '''Θεόφραστος, -άστου (nom propre) (m)''' : Théophraste.<br> '''Θερμοπύλαι, -ῶν (nom propre) (f)''' : Thermopyles.<br> '''Θέσπις, -εως (nom propre) (m)''' : Thespsis.<br> '''Θεσσαλία, -ας (nom propre) (f)''' : Thessalie.<br> '''Θεσσαλικός, -ή, -όν (adjectif)''' : thessalien.<br> '''Θεσσαλίς, -δος (nom commun) (f)''' : Thessalienne.<br> '''Θεσσαλονίκη, -ης (nom propre) (f)''' : Thessalonique.<br> '''Θεσσαλός, -οῦ (nom commun) (m)''' : Thessalien.<br> '''Θευδᾶς, -ᾶ (nom propre) (m)''' : Theudas.<br> '''Θευδέριχος, -ίχου (nom propre) (m)''' : Théodoric.<br> '''Θῆϐαι, -ῶν (nom propre) (f)''' : Thèbes.<br> '''Θησεύς, -έως (nom propre) (m)''' : Thésée.<br> '''Θίνη, -ης (nom propre) (f)''' : Synonyme de ''Σίνη''.<br> '''Θιός, -οῦ (nom propre) (m)''' : Forme béotienne de ''Ζεύς''.<br> '''Θίσϐη, -ης (nom propre) (f)''' : Thisbé.<br> '''Θόας, -αντος (nom propre) (m)''' : Thoas.<br> '''Θούθμωσις, -ώσιδος (nom propre) (m)''' : Thoutmôsis.<br> '''Θουκυδίδης, -ου (nom propre) (m)''' : Thucydide.<br> '''Θόωσα, -ης (nom propre) (f)''' : Thoosa.<br> '''Θρᾴκη, -ης (nom propre) (f)''' : Thrace.<br> '''Θρᾷξ, -ᾳκός (nom propre) (m)''' : Thrax.<br> '''Θρᾷξ, -ᾳκός (nom commun) (m)''' : Thrace.<br> '''Θρᾷσσα, -ᾴσσης (nom commun) (f)''' : Thrace.<br> '''Θρᾷττα, -ᾴττης (nom commun) (f)''' : Forme attique de ''Θρᾷσσα''.<br> '''Θρῄκη, -ης (nom propre) (f)''' : Forme poétique de ''Θρᾴκη''.<br> '''Θρῇξ, -ῃκός (nom commun) (m)''' : Forme poétique de ''Θρᾷξ''.<br> '''Θρῇσσα, -ῄσσης (nom commun) (f)''' : Forme poétique de ''Θρᾷσσα''.<br> '''Θωθ (nom propre) (m)''' : Thot.<br> '''Θωμᾶς, -ᾶ (prénom) (m)''' : Thomas.<br> ==Ι== '''ἴαμϐος, -άµϐου (nom commun) (m)''' : ïambe.<br> '''ἰάομαι (verbe)''' : soigner.<br> '''ἱαρός, -ά, -όν (adjectif)''' : Forme dorienne de ''ἱερός''.<br> '''ἴασις, -άσεως (nom commun) (f)''' : cure ; remède.<br> '''ἴασπις, -δος (nom commun) (f)''' : jaspe.<br> '''ἰατήρ, -ῆρος (nom commun) (m)''' : guérisseur.<br> '''ἰατός, -ός, -όν (adjectif)''' : curable ; soignable.<br> '''ἰατρεία, -ας (nom commun) (f)''' : médecine.<br> '''ἰατρικός, -ή, -όν (adjectif)''' : médical.<br> '''ἰατρικῶς (adverbe)''' : médicalement.<br> '''ἰατρικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἰατρικός''.<br> '''ἰατρικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἰατρικός''.<br> '''ἰατρικώτατα, -, - (adverbe)''' : Superlatif de ''ἰατρικῶς''.<br> '''ἰατρικώτερον, -, - (adverbe)''' : Comparatif de ''ἰατρικῶς''.<br> '''ἰατρός, -οῦ (nom commun) (m)''' : médecin.<br> '''ἱϐίσκος, -ου (nom commun) (m)''' : guimauve.<br> '''ἴγνης, -τος (nom commun) (m)''' : indigène.<br> '''ἰγνύα, -ας (nom commun) (f)''' : jarret.<br> '''ἰγνύη, -ης (suffixe) (f)''' : Forme hommérique et ionienne de ''ἰγνύα''.<br> '''ἰγνύς, -ος (nom commun) (f)''' : Forme de ''''.<br> '''ἴκτις, -δος (nom commun) (f)''' : martre.<br> '''ἱρός, -ά, -όν (adjectif)''' : Forme ionienne de ''ἱερός''.<br> '''ἷρος, -α, -ον (adjectif)''' : Forme éolienne de ''ἱερός''.<br> '''-ία, -ας (suffixe) (f)''' : marque nominale.<br> '''-ικός, -ή, -όν (suffixe)''' : marque adjectivale.<br> '''-ικῶς (adverbe)''' : Forme adverbiale de ''-ικός''.<br> '''-ικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''-ικός''.<br> '''-ικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''-ικός''.<br> '''-ικώτατα, -, - (adverbe)''' : Superlatif de ''-ικῶς''.<br> '''-ικώτερον, -, - (adverbe)''' : Comparatif de ''-ικῶς''.<br> '''-ίσκος, -ου (suffixe)''' : diminutif.<br> '''-ιμος, -ος, -ον (suffixe)''' : .<br> '''ἱαρεύς, -έως (nom commun) (m)''' : Forme dorienne de ''ἱερεύς''.<br> '''ἰαῦ (interjection)''' : hé, ho.<br> '''ἰαύω (verbe)''' : Dormir, se reposer.<br> '''ἶϐις, ἴϐιδος (nom commun) (f)''' : ibis.<br> '''ἰδίᾳ (adverbe)''' : en particulier, séparément, à part.<br> '''ἰδιοσυγκρασία, -ας (nom commun) (f)''' : tempérament particulier.<br> '''ἴδιος, -ία, -ιον (adjectif)''' : propre, particulier.<br> '''ἰδιοφυής, -ής, -ές (adjectif)''' : génial.<br> '''ἰδιοφυΐα, -ας (nom commun) (f)''' : génie (talent d’une personne).<br> '''ἰδιώτης, -ου (nom commun) (m)''' : individu, plébéien ; ignorant.<br> '''ἰδίω (verbe)''' : suer.<br> '''ἵδρυμα, -ύματος (nom commun) (n)''' : institution.<br> '''ἵδρυσις, -ύσεως (nom commun) (n)''' : fondation.<br> '''ἱδρύω (verbe)''' : .<br> '''ἱδρώς, -ῶτος (nom commun) (m)''' : sueur ; sudation. Sève ; jus, moisissure.<br> '''ἱέραξ, -κου (nom commun) (m)''' : faucon.<br> '''ἱερατεία, -ας (nom commun) (f)''' : tempérament particulier.<br> '''ἱεράτευμα, -ύματος (nom commun) (n)''' : .<br> '''ἱερατεύω (verbe)''' : .<br> '''ἱερατικός, -ή, -όν (adjectif)''' : sacerdotal.<br> '''ἱερατικῶς (adverbe)''' : sacerdotalement.<br> '''ἱερατικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἱερατικός''.<br> '''ἱερατικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἱερατικός''.<br> '''ἱέρεια, -ίας (nom commun) (f)''' : prêtresse.<br> '''ἱερεύς, -έως (nom commun) (m)''' : prêtre.<br> '''ἱεροκῆρυξ, -ήρυκος (nom commun) (m)''' : prêcheur.<br> '''ἱερόν, -οῦ (nom commun) (n)''' : sanctuaire.<br> '''ἱεροσυλία, -ας (nom commun) (m)''' : sacrilège (action).<br> '''ἱερόσυλος, -ύλου (nom commun) (m)''' : sacrilège (personne).<br> '''ἱερός, -ά, -όν (adjectif)''' : sacré.<br> '''ἱερῶς (adverbe)''' : sacrément.<br> '''ἱερώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἱερός''.<br> '''ἱερώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἱερός''.<br> '''ἱεροσύνη, -ης (nom commun) (f)''' : sacerdoce.<br> '''ἱερῶ (verbe)''' : .<br> '''ἰή (interjection)''' : Youpi, hourra. Aïe.<br> '''ἷημι (verbe)''' : envoyer, lancer.<br> '''ἰητρός, -οῦ (nom commun) (m)''' : Forme homérique et ionienne de ''ἰατρός''.<br> '''ἰθαγενής, -ής, -ές (adjectif)''' : indigène.<br> '''ἰθακήσιος, -ος, -ον (adjectif)''' : ithacien.<br> '''ἰθέως (adverbe)''' : Forme homérique et ionienne de ''εὐθέως''.<br> '''ἰθύς, -εῖα, -ύ (adjectif)''' : Forme homérique et ionienne de ''εὐθύς''.<br> '''ἰθύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''ἰθύς''.<br> '''ἰθύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''ἰθύς''.<br> '''ἰθύφαλλος, -άλλου (nom commun) (m)''' : ithyphalle.<br> '''ἱκεσία, -ας (nom commun) (f)''' : supplique.<br> '''ἱκετεύω (verbe)''' : supplier.<br> '''ἱκέτις, -δος (nom commun) (f)''' : pèlerine.<br> '''ἱκέτης, -ου (nom commun) (m)''' : pèlerin.<br> '''ἴκκος, -ου (nom commun) (m/f)''' : Forme éolienne de ''ἵππος''.<br> '''ἱκνέομαι (verbe)''' : aller à ; atteindre. Venir.<br> '''ἴκρια, -ας (nom commun) (f)''' : .<br> '''ἴκριον, -ου (nom commun) (n)''' : échafaudage.<br> '''ἰκρίωμα, -ώματος (nom commun) (n)''' : échafaudage.<br> '''ἰκριῶ (verbe)''' : .<br> '''ἴκτις, -δος (nom commun) (f)''' : fouine.<br> '''-ικός, -ή, -όν (adjectif)''' : -ique.<br> '''-ικῶς (adverbe)''' : -ment.<br> '''-ικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''-ικός''.<br> '''-ικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''-ικός''.<br> '''-ικώτατα, -, - (adverbe)''' : Superlatif de ''-ικῶς''.<br> '''-ικώτερον, -, - (adverbe)''' : Comparatif de ''-ικῶς''.<br> '''ἵκω (verbe)''' : venir.<br> '''ἵλαος, -ος, -ον (adjectif)''' : propice (en parlant des dieux). Gentil, aimable (en parlant des hommes).<br> '''ἱλαρός, -ά, -όν (adjectif)''' : joyeux, riant.<br> '''ἱλαρότης, -τος (nom commun) (f)''' : hilarité.<br> '''ἱλάσκομαι (verbe)''' : apaiser, calmer.<br> '''ἴλεξ, -κος (nom commun) (f)''' : houx.<br> '''ἰλιγγιωδέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἰλιγγιώδης''.<br> '''ἰλιγγιωδέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''ἰλιγγιώδης''.<br> '''ἰλιγγιώδης, -ης, -ες (adjectif)''' : vertigineux.<br> '''ἰλιγγιωδῶς (adverbe)''' : vertigineusement.<br> '''ἰλιγγιωδώτατα, -, - (adverbe)''' : Superlatif de ''ἰλιγγιωδῶς''.<br> '''ἰλιγγιωδώτερον, -, - (adverbe)''' : Comparatif de ''ἰλιγγιωδῶς''.<br> '''ἴλιγγος, -ίγγου (nom commun) (m)''' : vertige.<br> '''ἰλλυρικός, -ή, -όν (adjectif)''' : illyrien.<br> '''ἰλλυρικῶς (adverbe)''' : illyriennement.<br> '''ἰλλυρικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἰλλυρικός''.<br> '''ἰλλυρικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἰλλυρικός''.<br> '''ἰλλυρικώτατα, -, - (adverbe)''' : Superlatif de ''ἰλλυρικῶς''.<br> '''ἰλλυρικώτερον, -, - (adverbe)''' : Comparatif de ''ἰλλυρικῶς''.<br> '''ἴλλω (verbe)''' : avoir le vertige.<br> '''ἰλύς, -ος (nom commun) (f)''' : Boue, sédiment. Impureté.<br> '''ἱμάς, -άντος (nom commun) (m)''' : courroie.<br> '''ἱμάσσω (verbe)''' : fouetter, flageller ; frapper.<br> '''ἱμάτιον, -ίου (nom commun) (n)''' : himation.<br> '''ἵμερος, -έρου (nom commun) (n)''' : désir amoureux.<br> '''ἱμῶ (verbe)''' : .<br> '''ἰξευτής, -οῦ (nom commun) (m)''' : oiseleur.<br> '''ἰξεύω (verbe)''' : oiseler.<br> '''ἰξός, -οῦ (nom commun) (m)''' : Glu ; gui.<br> '''ἰός, -οῦ (nom commun) (m)''' : Venin ; flèche.<br> '''ἰουδαῖος, -ία, -ῖον (adjectif)''' : juif.<br> '''ἴου (interjection)''' : beurk.<br> '''ἰπνός, -οῦ (nom commun) (m)''' : four.<br> '''ἱππάζομαι (verbe)''' : chevaucher.<br> '''ἱππαλεκτρυών, -όνος (nom commun) (m/f)''' : hippalectryon.<br> '''ἱππασία, -ας (nom commun) (f)''' : chevauchée.<br> '''ἱππαστί (adverbe)''' : à cheval.<br> '''ἱππεύς, -έως (nom commun) (m)''' : cavalier.<br> '''ἱππευτής, -οῦ (nom commun) (m)''' : cavalier.<br> '''ἱππεύω (verbe)''' : monter à cheval.<br> '''ἱππικός, -ή, -όν (adjectif)''' : équin.<br> '''ἱππικῶς (adverbe)''' : équinement.<br> '''ἱππικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἱππικός''.<br> '''ἱππικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἱππικός''.<br> '''ἱππικώτατα, -, - (adverbe)''' : Superlatif de ''ἱππικῶς''.<br> '''ἱππικώτερον, -, - (adverbe)''' : Comparatif de ''ἱππικῶς''.<br> '''ἵππος, -ου (nom commun) (m/f)''' : cheval, jument.<br> '''ἱππόκαμπος, -άμπου (nom commun) (m)''' : hippocampe.<br> '''ἱπποσύνη, -ης (nom commun) (f)''' : Équitation. (Militaire) Cavalerie.<br> '''ἱπποπόταμος, -άμου (nom commun) (m)''' : hippopotame.<br> '''ἱππο- (préfixe)''' : relatif au cheval.<br> '''ἱππότης, -ου (nom commun) (m)''' : cavalier.<br> '''ἴορκος, -όρκος (nom commun) (m)''' : Forme de ''δορκάς''.<br> '''ἰός, -οῦ (nom commun) (m)''' : Flèche ; venin.<br> '''ἰοῦ (interjection)''' : hourra.<br> '''ἱρεύς, -έως (nom commun) (m)''' : Forme ionienne de ''ἱερεύς''.<br> '''ἵρηξ, -κος (nom commun) (m)''' : Forme ionienne de ''ἱέραξ''.<br> '''ἶρις, ἴριδος (nom commun) (f)''' : (anatomie) iris (météorologie) arc-en-ciel.<br> '''ἰσαίτατα, -, - (adverbe)''' : Superlatif de ''ἴσως''.<br> '''ἰσαίτερον, -, - (adverbe)''' : Comparatif de ''ἴσως''.<br> '''ἴσατις, -δος (nom commun) (f)''' : guède.<br> '''ἰσημερία, -ας (nom commun) (f)''' : équinoxe.<br> '''ἰσορροπία, -ας (nom commun) (f)''' : équilibre.<br> '''ϝίσϝος, -η, -ον (adjectif)''' : Forme arcado-chypriote et crétoise de ''ἴσος''.<br> '''ἰσθμός, -οῦ (nom commun) (m)''' : isthme.<br> '''ἴσοξ, -κου (nom commun) (m)''' : brochet.<br> '''ἶσος, -η, -ον (adjectif)''' : Forme homérique de ''ἴσος''.<br> '''ἴσος, -η, -ον (adjectif)''' : égal.<br> '''ἴς, -νός (nom commun) (f)''' : force, puissance ; muscle.<br> '''ἵστημι (verbe)''' : Placer ; mettre debout.<br> '''ἱστίον, -ου (nom commun) (n)''' : os de la hanche.<br> '''ἱστόρημα, -ήματος (nom commun) (n)''' : narration.<br> '''ἱστορία, -ας (nom commun) (f)''' : Enquête, examination ; observation, étude.<br> '''ἱστορικός, -ή, -όν (adjectif)''' : D’enquête, bien informé.<br> '''ἱστορῶ (verbe)''' : enquêter.<br> '''ἱστός, -οῦ (nom commun) (m)''' : mât.<br> '''ἵστωρ, -ορος (nom commun) (m/f)''' : Individu sachant. Personne connaissant la loi. Juge.<br> '''ἰσχίον, -ου (nom commun) (n)''' : os de la hanche.<br> '''ἰσχνός, -ή, -όν (adjectif)''' : Desséché, sec. Maigre, grêle ; frêle.<br> '''ἰσχνότατα, -, - (adverbe)''' : Superlatif de ''ἰσχνῶς''.<br> '''ἰσχνότερον, -, - (adverbe)''' : Comparatif de ''ἰσχνῶς''.<br> '''ἰσχνότατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ἰσχνός''.<br> '''ἰσχνότερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ἰσχνός''.<br> '''ἰσχνῶς (adverbe)''' : maigrement.<br> '''ἴσχω (verbe)''' : tenir.<br> '''ἴσως (adverbe)''' : également.<br> '''ἰσαίτατος, -άτη, -ίτατον (adjectif)''' : Superlatif de ''ἴσος''.<br> '''ἰσαίτερος, -έρα, -ίτερον (adjectif)''' : Comparatif de ''ἴσος''.<br> '''ἰταλός, -οῦ (nom commun) (m)''' : Bouvillon, taurillon.<br> '''ἰταμός, -ή, -όν (adjectif)''' : effronté.<br> '''ἰταμότατα, -, - (adverbe)''' : Superlatif de ''ἰταμῶς''.<br> '''ἰταμότερον, -, - (adverbe)''' : Comparatif de ''ἰταμῶς''.<br> '''ἰταμότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ἰταμός''.<br> '''ἰταμότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ἰταμός''.<br> '''ἰταμότης, -ητος (nom commun) (f)''' : effronterie.<br> '''ἰταμῶς (adverbe)''' : effrontément.<br> '''-ίτης, -ου (suffixe) (m)''' : Suffixe nominal masculin.<br> '''-ῖτις, -ίτιδος (suffixe) (f)''' : Suffixe nominal féminin.<br> '''ἴυγξ, -γγος (nom commun) (f)''' : torcol.<br> '''ἰύζω (verbe)''' : crier de peine ou de joie.<br> '''ἴφυον, -ου (nom commun) (n)''' : .<br> '''ἰχθυοέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ἰχθυόεις''.<br> '''ἰχθυοέστερος, -έρα, -ερον (adjectif)''' : Comparatif de ''ἰχθυόεις''.<br> '''ἰχθυόεις, -εσσα, -εν (adjectif)''' : poissonneux.<br> '''ἰχθύς, -ος (nom commun) (m)''' : poisson.<br> '''ἴχνος, -ους (nom commun) (n)''' : trace de pas.<br> '''ἰώϐηλος, -ήλου (nom commun) (m)''' : jubilé.<br> '''ἰῶτα (nom commun) (n)''' : iota.<br> '''ἰωτακισμός, -οῦ (nom commun) (m)''' : iotacisme.<br> '''Ἰάκωϐος, -ώϐου (nom propre) (m)''' : Jacob, Jacques.<br> '''Ἰαπετός, -οῦ (nom propre) (m)''' : Japet.<br> '''Ἴασος, -άσου (nom propre) (f)''' : Iasos (ville).<br> '''Ἰάσων, -ονος (nom propre) (m)''' : Jason. (chef des Argonautes)<br> '''Ἴδας, -α (nom propre) (m)''' : Idas.<br> '''Ἰδομενεύς, -έως (nom propre) (m)''' : Idoménée.<br> '''Ἰάμϐλιχος, -ίχου (nom propre) (m)''' : Jamblique.<br> '''Ἰαω (nom propre) (m)''' : Yahweh.<br> '''Ἰϐηρία, -ας (nom propre) (m)''' : Ibérie.<br> '''Ἴϐηρ, -ος (nom commun) (m)''' : Ibère.<br> '''Ἰγνάτιος, -ίου (nom propre) (m)''' : Ignace.<br> '''Ἰεριχώ (nom propre) (f)''' : Jéricho.<br> '''Ἰερειχώ (nom propre) (f)''' : Forme alternative de ''Ἰεριχώ''.<br> '''Ἱερειχώ (nom propre) (f)''' : Forme alternative de ''Ἰεριχώ''.<br> '''Ἱεριχοῦς (nom propre) (f)''' : Forme alternative de ''Ἰεριχώ''.<br> '''Ἱεριχώ, -οῦς (nom propre) (f)''' : Forme alternative de ''Ἰεριχώ''.<br> '''Ἰέρνη, -ης (nom propre) (f)''' : Irlande.<br> '''Ἱεροκλῆς, -έους (nom propre) (m)''' : Hiéroclès.<br> '''Ἱεροσάλημα (nom propre) (f)''' : Forme alternative de ''Ἱερουσαλήμ''.<br> '''Ἱεροσόλυμα (nom propre) (f/n)''' : Forme alternative de ''Ἱερουσαλήμ''.<br> '''Ἱερουσαλήμ (nom propre) (f)''' : Jérusalem (ville).<br> '''Ἰερουσαλήμ (nom propre) (f)''' : Forme alternative de ''Ἱερουσαλήμ''.<br> '''Ἱερώνυμος, -ύμου (prénom) (m)''' : Jérôme.<br> '''Ἰεσσαί (nom propre) (m)''' : Jessé.<br> '''Ἰεσσαῖος, -ίου (nom propre) (m)''' : Forme alternative de ''Ἰεσσαί''.<br> '''Ἰησαΐας, -ου (nom propre) (m)''' : Forme alternative de ''Ἠσαΐας''.<br> '''Ἰησοῦς, -οῦ (nom propre) (m)''' : Jésus, Josué.<br> '''Ἰησαΐας, -ου (nom propre) (m)''' : Forme alternative de ''Ἠσαΐας''.<br> '''Ἰησοῦς, -οῦ (nom propre) (m)''' : Jésus, Josué.<br> '''Ἰθάκα, -ης (nom propre) (f)''' : Forme dorienne de ''Ἰθάκη''.<br> '''Ἰθάκη, -ης (nom propre) (f)''' : Ithaque.<br> '''Ἴθακος, -άκου (nom commun) (m)''' : Ithacien.<br> '''Ἰκάριος, -ίου (nom propre) (m)''' : Icarios.<br> '''Ἴκαρος, -άρου (nom propre) (m)''' : Icare.<br> '''Ἴκελος, -έλου (nom propre) (m)''' : Icélos.<br> '''Ἰλιάς, -δος (nom propre) (f)''' : Iliade.<br> '''Ἴλιον, -ίου (nom propre) (n)''' : Ilion.<br> '''Ἰλιάς, -δος (nom propre) (f)''' : Iliade.<br> '''Ἴλιον, -ίου (nom propre) (n)''' : Ilion, Troie.<br> '''Ἰλλυρία, -ας (nom propre) (f)''' : Illyrie.<br> '''‎Ἰλλυρίς, -δος (nom commun) (f)''' : Illyrienne.<br> ‎'''Ἰλλυριός, -οῦ (nom commun) (m)''' : Illyrien.<br> '''Ἶλος, Ἴλου (nom propre) (m)''' : Ilos (fils de Tros et de Callirrhoé).<br> '''Ἵμερος, -έρου (nom propre) (m)''' : Himéros.<br> '''Ἰμούθης, -ου (nom propre) (m)''' : Imhotep.<br> '''Ἰξίων, -ονος (nom propre) (m)''' : Ixion.<br> '''Ἰόλαος, -άου (nom propre) (m)''' : Iolaos.<br> '''Ἰόλεως, -ώ (nom propre) (m)''' : Forme de ''Ἰόλαος''.<br> '''Ἰουδαῖα, -ίας (nom propre) (f)''' : Judée.<br> '''Ἰουδαῖα, -ίας (nom commun) (f)''' : Juive.<br> '''Ἰουδαῖος, -ίου (nom commun) (m)''' : Juif.<br> '''Ἰούδας, -α (nom propre) (m)''' : Judas.<br> '''Ἰουδίθ (nom propre) (f)''' : Judith.<br> '''Ἵππαρχος, -άρχου (nom commun) (m)''' : Hipparque (Fils cadet de Pisistrate, il fut assassiné par Harmodios et Aristogiton en −514 av. J.-C.).<br> '''Ἶρις, Ἴριδος (nom propre) (f)''' : [[wikt:Iris|Iris]].<br> '''Ἰσαάκ (nom propre) (m)''' : Issac.<br> '''Ἴσακος, - (nom propre) (m)''' : Forme alternative de ''Ἰσαάκ''.<br> '''Ἴσαυρα, -ας (nom propre) (f)''' : Isaura.<br> '''Ἰσαυρία, -ας (nom propre) (f)''' : Isaurie.<br> '''Ἴσαχος, - (nom propre) (m)''' : Forme alternative de ''Ἰσαάκ''.<br> '''Ἰσίδωρος, -ώρου (nom propre) (m)''' : Isidore.<br> '''Ἶσις, Ἴσιδος (nom propre) (f)''' : [[wikt:Isis|Isis]].<br> '''Ἰσθμός, -οῦ (nom propre) (m)''' : Isthmos.<br> '''Ἱσπανία, -ας (nom propre) (f)''' : Espagne.<br> '''Ἱσπανίς, -δος (nom commun) (f)''' : Espagnole.<br> '''Ἱσπανός, -οῦ (nom commun) (m)''' : Espagnol.<br> '''Ἰσμαήλ (nom propre) (m)''' : Ismaël.<br> '''Ἰσραήλ (nom propre) (m)''' : Israël.<br> '''Ἴστρος, -ου (nom propre) (f)''' : Danube inférieur.<br> '''Ἰταλία -ας (nom propre) (f)''' : Italie.<br> '''Ἰταλίς, -δος (nom commun) (f)''' : Italienne.<br> '''Ἰταλιώτης, -ου (nom commun) (m)''' : Italiote.<br> '''Ἱταλιῶτις, -ώτιδος (nom commun) (f)''' : Italiote.<br> '''Ἰταλός, -οῦ (nom commun) (m)''' : Italien.<br> '''Ἴτυς, -ος (nom propre) (m)''' : Itys.<br> '''Ἴϋγξ, -γγος (nom propre) (f)''' : [[wikt:Jynx|Jynx]].<br> '''Ἰφθίμη, -ης (nom propre) (f)''' : Iphtimé (sœur de Pénélope).<br> '''Ἰφιάνασσα, -ας (nom propre) (f)''' : Forme homérique de ''Ἰφιγένεια''.<br> '''Ἰφιγένεια, -ίας (nom propre) (f)''' : Iphigénie.<br> '''Ἰφικλῆς, -έους (nom propre) (m)''' : Iphiclès (demi-frère jumeau d'Héraclès).<br> '''Ἰχθύες, -ων (nom propre) (m)''' : Poissons.<br> '''Ἰωάννα, -ας (prénom) (f)''' : Jeanne.<br> '''Ἰωάννης ὁ Χρυσόστομος (nom propre) (m)''' : Jean Chrysostome.<br> '''Ἰωήλ (nom propre) (m)''' : Joël.<br> '''Ἰωνάθαν (nom propre) (m)''' : Jonathan.<br> '''Ἰωνᾶς, -ᾶ (nom propre) (m)''' : Jonas.<br> '''Ἰωνία, -ας (nom propre) (f)''' : Ionie.<br> '''Ἴων, -ος (nom propre) (m)''' : Ion (fils de Xouthos).<br> '''Ἴων, -ος (nom commun) (m)''' : Ionien.<br> '''Ἰωσήφ (nom propre) (m)''' : Joseph.<br> '''Ἰωσίας, -ου (nom propre) (m)''' : Josias.<br> '''Ἰώ, -οῦς (nom propre) (f)''' : [[wikt:Io|Io]].<br> ==Κ== '''ϗ (symbole)''' : Et. (Abréviation graphique valant ''καί'' en grec comme ''&'' valant ''et'' en français.)<br> '''καδεμών, -όνος (nom commun) (m)''' : Forme dorienne de ''κηδεμών''.<br> '''καδιμών, -όνος (nom commun) (m)''' : Forme éolienne de ''κηδεμών''.<br> '''κάδος, -ου (nom commun) (m)''' : seau.<br> '''καθαίρω (verbe)''' : Purger, nettoyer ; laver. Étriller.<br> '''καθαρεύω (verbe)''' : purifier.<br> '''καθαρίζω (verbe)''' : Nettoyer, purifier. (Médecine) Guérir d’une infection.<br> '''καθαρός, -ά, -όν (adjectif)''' : pur.<br> '''καθαρῶς (adverbe)''' : purement.<br> '''καθαρώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''καθαρός''.<br> '''καθαρώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''καθαρός''.<br> '''καθέδρα, ας (nom commun) (f)''' : Ce qui sert à s'asseoir. Action d'être ou de demeurer assis.<br> '''καθετήρ, -ῆρος (nom commun) (m)''' : Ligne pour pêcher. Collier, pendant ; ornement de femme.<br> '''καθεύδω (verbe)''' : dormir.<br> '''καθηγέομαι (verbe)''' : professer.<br> '''καθηγήτειρα, -ίρας (nom commun) (f)''' : professeure.<br> '''καθηγητής, -οῦ (nom commun) (m)''' : professeur.<br> '''καθηγητικός, -ή , -όν (adjectif)''' : professoral.<br> '''καθηγητικῶς (adverbe)''' : professoralement.<br> '''καθηγητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''καθηγητικός''.<br> '''καθηγητικώτερος, -έρη, -ώτερον (adjectif)''' : Comparatif de ''καθηγητικός''.<br> '''καθηγητικώτατα, -, - (adverbe)''' : Superlatif de ''καθηγητικῶς''.<br> '''καθηγητικώτερον, -, - (adverbe)''' : Comparatif de ''καθηγητικῶς''.<br> '''καθήλωσις, -ώσεως (nom commun) (f)''' : détention.<br> '''καθηλῶ (verbe)''' : détenir.<br> '''καθίημι (verbe)''' : descendre.<br> '''κάθημαι (verbe)''' : siéger.<br> '''καθολικός, -ή, -όν (adjectif)''' : Général ; universel.<br> '''καθολικῶς (adverbe)''' : Généralement ; universellement.<br> '''καθολικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''καθολικός''.<br> '''καθολικώτερος, -έρη, -ώτερον (adjectif)''' : Comparatif de ''καθολικός''.<br> '''καθολικώτατα, -, - (adverbe)''' : Superlatif de ''καθολικῶς''.<br> '''καθολικώτερον, -, - (adverbe)''' : Comparatif de ''καθολικῶς''.<br> '''καθοράω (verbe)''' : regarder.<br> '''καί (conjonction)''' : Et ; Et même, même. Et en outre. Et ensuite, puis. Ou.<br> '''καινός, -ή, -όν (adjectif)''' : nouveau.<br> '''καινότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''καινός''.<br> '''καινότερος, -έρη, -ότερον (adjectif)''' : Comparatif de ''καινός''.<br> '''καινότατα, -, - (adverbe)''' : Superlatif de ''καινῶς''.<br> '''καινότερον, -, - (adverbe)''' : Comparatif de ''καινῶς''.<br> '''καίνωσις, -ώσεως (nom commun) (f)''' : renouvellement.<br> '''καινῶς (adverbe)''' : nouvellement.<br> '''καῖρος, -ίρου (nom commun) (m)''' : embrouille.<br> '''καιρός, -οῦ (nom commun) (m)''' : temps (durée, époque).<br> '''καιρόω (verbe)''' : embrouiller.<br> '''καίρωσις, -ώσεως (nom commun) (f)''' : embrouillage.<br> '''καίω (verbe)''' : brûler.<br> '''κάκιον, -, - (adverbe)''' : Comparatif de ''κακῶς''.<br> '''κάκιστα, -, - (adverbe)''' Superlatif de ''κακῶς''.<br> '''κακοδαίμων, -ων, -ον (adjectif)''' : malheureux.<br> '''κακοδαιμόνως (adverbe)''' : malheureusement.<br> '''κακοδαιμονέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''κακοδαίμων''.<br> '''κακοδαιμονέστερος, -έρα, -έρερον (adjectif)''' : Comparatif de ''κακοδαίμων''.<br> '''κακοήθης, -ης, -ες (adjectif)''' : malin.<br> '''κακοῦργος, -ύργα, -ῦργον (adjectif)''' : Dérangé ; malfaisant.<br> '''κακός, -ή, όν (adjectif)''' : Mauvais ; laid.<br> '''κακο- (préfixe)''' : mauvais.<br> '''κακοφωνία, -ας (nom commun) (f)''' : mauvaise sonorité.<br> '''κακκῶ (verbe)''' : déféquer ; chier.<br> '''κακῶς (adverbe)''' : mal.<br> '''κάλαθος, -άθου (nom commun) (m)''' : corbeille, panier.<br> '''κάλαϊς, -, - (adjectif)''' : bleu ciel.<br> '''κάλιον, -, - (adverbe)''' : Comparatif de ''καλῶς''.<br> '''κάλιστα, -, - (adverbe)''' Superlatif de ''καλῶς''.<br> '''καλλι- (préfixe)''' : beau.<br> '''καλλίπυγοσις, -όσεως (nom commun) (f)''' : .<br> '''καλλίπυγος, -ος, -ον (adjectif)''' : Qui a de belles fesses.<br> '''κάλλιστος, -, - (adjectif)''' : Superlatif de ''καλός''.<br> '''καλλίων, -, - (adjectif)''' : Comparatif de ''καλός''.<br> '''κάλλος, -ους (nom commun) (n)''' : beauté.<br> '''καλοήθης, -ης, -ες (adjectif)''' : bénin.<br> '''καλός, -ή, -όν (adjectif)''' : Beau ; bon.<br> '''κάλος, -η, -ον (adjectif)''' : Forme éolienne de ''καλός''.<br> '''καλϝός, -ή, -όν (adjectif)''' : Forme béotienne de ''καλός''.<br> '''κάλυμμα, -ύμματος (nom commun) (n)''' : couverture.<br> '''κάλυξ, -κος (nom commun) (m/f)''' : (Botanique) Calice des fleurs ; écale ou peau des fruits.<br> '''καλύπτω (verbe)''' : Couvrir ; envelopper, cacher.<br> '''καλῶς (adverbe)''' : Bien ; d’une belle manière.<br> '''καλῶ (verbe)''' : appeler.<br> '''καμάρα, -ας (nom commun) (f)''' : Voûte ; chambre voûtée.<br> '''καμάρη, -ης (nom commun) (f)''' : Forme ionienne de ''καμάρα''.<br> '''κάμαξ, -κος (nom commun) (m/f)''' : Perche. Hampe de la lance. (Marine) Gouvernail, manche de la rame.<br> '''κάμηλος, -ήλου (nom commun) (m/f)''' : chameau.<br> '''καμηλοπάρδαλις, -άλεως (nom commun) (f)''' : girafe.<br> '''κάμινος, -ίνου (nom commun) (m)''' : cheminée.<br> '''κάμπη, -ης (nom commun) (f)''' : chenille.<br> '''καμπή, -ῆς (nom commun) (f)''' : articulation.<br> '''κάμπος, -ους (nom commun) (n)''' : poisson marin.<br> '''κάπρος, -ου (nom commun) (n)''' : sanglier.<br> '''κάμπτω (verbe)''' : courber.<br> '''καμπύλη, -ης (nom commun) (f)''' : courbure.<br> '''καμπύλος, -η, -ον (adjectif)''' : Courbé, tordu. Voilé (en parlant d’une roue.)<br> '''καμπυλότης, -τος (nom commun) (f)''' : courbure.<br> '''κανδάκη, -ης (nom commun) (f)''' : candace.<br> '''κανάσσω (verbe)''' : cliquer.<br> '''καναχή, -ῆς (nom commun) (f)''' : clic.<br> '''καναχίζω (verbe)''' : claquer.<br> '''καναχηδά (adverbe)''' : .<br> '''καναχής, -ής, -ές (adjectif)''' : .<br> '''καναχῶ (verbe)''' : cliquer.<br> '''κἄν (conjonction)''' : .<br> '''κάνθαρος, -άρου (nom commun) (m)''' : cafard.<br> '''κανονικός, -ή, -όν (adjectif)''' : régulier.<br> '''κανονικῶς (adverbe)''' : régulièrement.<br> '''κανονικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κανονικός''.<br> '''κανονικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κανονικός''.<br> '''κανονικώτατα, -, - (adverbe)''' : Superlatif de ''κανονικῶς''.<br> '''κανονικώτερον, -, - (adverbe)''' : Comparatif de ''κανονικῶς''.<br> '''κανών, -όνος (nom commun) (m)''' : Tige de roseau, règle de maçon ou de charpentier. (Figuré) Règle, modèle ; principe.<br> '''κάνωπον, -ώπου (nom commun) (n)''' : chou-fleur.<br> '''καπηλεῖον, -ίου (nom commun) (n)''' : taverne.<br> '''καπηλεύω (verbe)''' : tenir une taverne.<br> '''καπηλικός, -ή, -όν (adjectif)''' : tavernier.<br> '''καπηλίς, -δος (nom commun) (f)''' : tavernière.<br> '''κάπηλος, -ήλου (nom commun) (m)''' : tavernier.<br> '''κάππα (nom commun) (n)''' : kappa.<br> '''κάπτω (verbe)''' : Avaler, prendre (une bouffée d’air).<br> '''κάρα, -τος (nom commun) (n)''' : Tête ; visage.<br> '''κάραϐος, -άϐου (nom commun) (m)''' : Crabe ; langouste. Scarabée ; escarbot.<br> '''κάρδαμον, -ου (nom commun) (n)''' : cresson.<br> '''καρδία, -ας (nom commun) (f)''' : cœur.<br> '''καρδιακός, -ή, -ός (adjectif)''' : cardiaque.<br> '''καρδιακῶς (adverbe)''' : cardiaquement.<br> '''καρδιακώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''καρδιακός''.<br> '''καρδιακώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''καρδιακός''.<br> '''καρδούχιος, -ος, -ον (adjectif)''' : kurde.<br> '''καρηϐάρεια, -ίας (nom commun) (f)''' : mal de tête.<br> '''κάρη, -τος (nom commun) (n)''' : Forme homérique et ionienne de ''κάρα''.<br> '''καρίς, -δος (nom commun) (f)''' : crevette.<br> '''καρκίνος, -ίνου (nom commun) (m)''' : (Zoologie) Crabe. (Astronomie) Constellation du Cancer. (Médecine) Chancre, tumeur, cancer. Pince pour saisir ou tenir les objets dans le feu. Compas. Sorte de bandage. (Habillement) Sorte de chaussure.<br> '''καρπάλιμος, -ος, -ον (adjectif)''' : rapide.<br> '''καρπός, -οῦ (nom commun) (m)''' : (Sens propre) Fruit, graine ; produit, récolte. (Sens figuré) Produit de quelque chose : enfant (produit du corps), poésie (produit de l'esprit), profit. (Anatomie) Poignet.<br> '''καρύκιον, -ίου (nom commun) (m)''' : Forme dorienne de ''κηρύκειον''.<br> '''κᾶρυξ, -άρυκος (nom commun) (m)''' : Forme dorienne de ''κῆρυξ''.<br> '''καρυόφυλλον, -ύλλου (nom commun) (n)''' : œillet.<br> '''καρύσσω (verbe)''' : Forme dorienne de ''κηρύσσω''.<br> '''κάρφος, -ους (nom commun) (n)''' : brindille.<br> '''κάρχαρος, -α, -ον (adjectif)''' : aiguisé.<br> '''καρχηδονιακός, -ή, -όν (adjectif)''' : carthaginois.<br> '''καρῶτον, -ώτου (nom commun) (n)''' : carotte.<br> '''κατά (adverbe ; préposition)''' (Devient ''κατ᾽'' devant un mot commençant par une voyelle à esprit doux, et ''καθ᾽'' devant un mot commençant par une voyelle à esprit rude.) : De haut en bas. En bas. En dessous, au fond. (Par extension) À fond, complètement. (Avec le génitif) marque l’origine, le point de départ ou le point d’arrivée. Contre, idée d’hostilité. (Avec l’accusatif) suivant, selon. Par, avec l'idée de succession (un par un). Pendant, avec l’idée de temps. Après, avec l’idée de succession temporelle (jour après jour). À travers, idée de transpercement, de part en part, d’un bout à l’autre.<br> '''καταϐιϐρώσκω (verbe)''' : .<br> '''καταγέλαστος, -ος, -ον (adjectif)''' : ridicule.<br> '''καταγλώττισμα, -ίσματος (nom commun) (n)''' : baiser intrabuccal.<br> '''καταγράφω (verbe)''' : condamner.<br> '''καταδικάζω (verbe)''' : condamner.<br> '''καταδίκη, -ης (nom commun) (f)''' : condamnation.<br> '''καταδικαστικός, -ή, -όν (adjectif)''' : condamnable.<br> '''κατάδικος, -ίκου (nom commun) (m/f)''' : condamné.<br> '''κατάδυσις, -ύσεως (nom commun) (f)''' : émergence.<br> '''καταδύομαι (verbe)''' : plonger.<br> '''κατακλύζω (verbe)''' : inonder.<br> '''κατάκλυσις, -ύσεως (nom commun) (f)''' : inondation.<br> '''κατακλυσμιαίος, -α, -ον (adjectif)''' : diluvien.<br> '''κατακλυσμικός, -ή, -όν (adjectif)''' : diluvien.<br> '''κατακλυσμικότατα, -, - (adverbe)''' : Superlatif de ''κατακλυσμικῶς''.<br> '''κατακλυσμικότερον, -, - (adverbe)''' : Comparatif de ''κατακλυσμικῶς''.<br> '''κατακλυσμικῶς (adverbe)''' : désastreusement.<br> '''κατακλυσμικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κατακλυσμικός''.<br> '''κατακλυσμικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κατακλυσμικός''.<br> '''κατακλυσμός, -οῦ (nom commun) (m)''' : déluge.<br> '''κατακτητής, -οῦ (nom commun) (m)''' : conquérant.<br> '''κατακτῶμαι (verbe)''' : conquérir.<br> '''καταλαμϐάνω (verbe)''' : saisir.<br> '''κατάλαψις, -άψεως (nom commun) (f)''' : Forme dorienne de ''κατάληψις''.<br> '''κατάληψις, -ήψεως (nom commun) (f)''' : Saisissement. Prise de possession, occupation.<br> '''κατάλογος, -όγου (nom commun) (m)''' : liste.<br> '''καταλογογράφησις, -ήσεως (nom commun) (f)''' : listage.<br> '''καταλογογραφῶ (verbe)''' : lister.<br> '''κατάπλασμα, -άσματος (nom commun) (n)''' : cataplasme.<br> '''κατάπτωσις, -ώσεως (nom commun) (f)''' : décadence.<br> '''κατάπυγον, -ύγου (nom commun) (n)''' : doigt d'honneur.<br> '''κατάρα, -ας (nom commun) (f)''' : malédiction.<br> '''καταριέμαι (verbe)''' : maudire.<br> '''καταστροφικός, -ή, -όν (adjectif)''' : désastreux.<br> '''καταστροφικότατα, -, - (adverbe)''' : Superlatif de ''καταστροφικῶς''.<br> '''καταστροφικότερον, -, - (adverbe)''' : Comparatif de ''καταστροφικῶς''.<br> '''καταστροφικῶς (adverbe)''' : désastreusement.<br> '''καταστροφικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''καταστροφικός''.<br> '''καταστροφικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''καταστροφικός''.<br> '''καταστροφή, -ῆς (nom commun) (f)''' : Désastre, destruction ; renversement.<br> '''κατάσχεσις, -έσεως (nom commun) (f)''' : confiscation.<br> '''κατάταξις, -άξεως (nom commun) (f)''' : mise en ordre.<br> '''κατατάσσω (verbe)''' : mettre en ordre.<br> '''καταφυγή, -ῆς (nom commun) (f)''' : .<br> '''καταφύγιον, -ίου (nom commun) (n)''' : abri.<br> '''κάτεργον, -έργου (nom commun) (n)''' : bagne.<br> '''κατηγορῶ (verbe)''' : accuser.<br> '''κατηγορία, -ας (nom commun) (f)''' : Charge ; accusation.<br> '''κατηγορίη, -ης (nom commun) (f)''' : Forme ionienne de ''κατηγορία''.<br> '''κατήχησις, -ήσεως (nom commun) (f)''' : .<br> '''κατηχίζω (verbe)''' : .<br> '''κατηχισμός, -οῦ (nom commun) (m)''' : .<br> '''κατηχιστής, -οῦ (nom commun) (m)''' : .<br> '''κατηχούμενος, -ένου (nom commun) (m)''' : .<br> '''κατηχῶ (verbe)''' : .<br> '''κάτοπτρον, -όπτρου (nom commun) (m)''' : miroir.<br> '''κατώτατος, -άτη, -ώτατον (adjectif)''' : .<br> '''κατώτερος, -έρα, -ώτερον (adjectif)''' : inférieur.<br> '''κατωτερότης, -τος (nom commun) (f)''' : infériorité.<br> '''κάτω (adverbe)''' : sous.<br> '''καῦκος, -ύκου (nom commun) (m)''' : .<br> '''καῦµα, -ύματος (nom commun) (n)''' : chaleur de l’été.<br> '''καύσις, -εως (nom commun) (f)''' : combustion.<br> '''καυστός, -ή, -όν (adjectif)''' : torride.<br> '''καυστῶς (adverbe)''' : torridement.<br> '''καυστώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''καυστός''.<br> '''καυστώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''καυστός''.<br> '''καυστώτατα, -, - (adverbe)''' : Superlatif de ''καυστῶς''.<br> '''καυστώτερον, -, - (adverbe)''' : Comparatif de ''καυστῶς''.<br> '''καύχημα, -ήματος (nom commun) (n)''' : vantardise.<br> '''καυχός, -οῦ (nom commun) (m)''' : Forme crétoise de ''χαλκός''.<br> '''καυχῶμαι (verbe)''' : .<br> '''κεγχριαῖος, -ία, -ῖον (adjectif)''' : granuleux.<br> '''κέγχρος, -ου (nom commun) (m)''' : (Botanique) Millet. Grain.<br> '''κεῖμαι (verbe)''' : être couché, se reposer ; être situé.<br> '''κείμενον, -ένου (nom commun) (n)''' : texte.<br> '''κεινός, -ή, -όν (adjectif)''' : Forme ionienne de ''κενός''.<br> '''κείρω (verbe)''' : .<br> '''κελαινός, -ή, -όν (adjectif)''' : obscur.<br> '''κελτικός, -ή, -όν (adjectif)''' : celte.<br> '''κελτικῶς (adverbe)''' : .<br> '''κελτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κελτικός''.<br> '''κελτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κελτικός''.<br> '''κελτιστί (adverbe)''' : en grec.<br> '''κενός, -ή, -όν (adjectif)''' : Vide. Vain, frivole.<br> '''κενϝός, -ή, -όν (adjectif)''' : Forme ancienne de ''κενός''.<br> '''κενεός, -ή, -όν (adjectif)''' : Forme poétique de ''κενός''.<br> '''κεντρικός, -ή, -όν (adjectif)''' : central.<br> '''κέντρον, -ου (nom commun) (n)''' : Aiguillon, dard. Pointe du compas, d’où centre du cercle.<br> '''κεντῶ (verbe)''' : piquer.<br> '''κενῶς (adverbe)''' : Habilement, sagement. Ingénieusement, finement.<br> '''κενώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κενός''.<br> '''κενώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κενός''.<br> '''κεραμεύς, -έως (nom commun) (m)''' : potier.<br> '''κεραμικός, -ή, -όν (adjectif)''' : d’argile.<br> '''κέραμος, -άμου (nom commun) (m)''' : argile.<br> '''κεράννυμι (verbe)''' : mélanger.<br> '''κέρας, -τος (nom commun) (n)''' : Corne. (Par analogie) Bras d’un fleuve ; aile d’une armée ou d’une flotte ; antenne ou vergue d’un navire ; pic d’une montagne. (Sophisme) argument cornu.<br> '''κεραός, -ά, -όν (adjectif)''' : Cornu ; fait de corne.<br> '''κεραϝός, -ά, -όν (adjectif)''' : Forme ancienne de ''κεραός''.<br> '''κερασός, -οῦ (nom commun) (m)''' : cerise.<br> '''κεραυνός, -οῦ (nom commun) (m)''' : foudre.<br> '''κέρκηρις, -ήρεως (nom commun) (m)''' : sarcelle.<br> '''κερκοπίθακος, -άκου (nom commun) (m)''' : Forme dorienne de ''κερκοπίθηκος''.<br> '''κερκοπίθηκος, -ήκου (nom commun) (m)''' : cercopithèque.<br> '''κέρκος, -ου (nom commun) (f)''' : queue.<br> '''κέρκωψ, -πος (nom commun) (m)''' : singe à longue queue.<br> '''κεστός, -ή, -όν (adjectif)''' : brodé.<br> '''κεστότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''κεστός''.<br> '''κεστότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''κεστός''.<br> '''κεστῶς (adverbe)''' : .<br> '''κεφαλαία, -ας (nom commun) (f)''' : mal de tête.<br> '''κεφαλή, -ῆς (nom commun) (f)''' : tête.<br> '''κεφάλιον, -ίου (nom commun) (n)''' : petite tête.<br> '''κεφαλίς, -δος (nom commun) (f)''' : bonnet, chapeau.<br> '''κηδεμών, -όνος (nom commun) (m)''' : .<br> '''κηκίς, -ῖδος (nom commun) (f)''' : Jet. Teinture tiré de la galle.<br> '''κηλίς, -ῖδος (nom commun) (f)''' : .<br> '''κνημίς, -ῖδος (nom commun) (f)''' : .<br> '''κρηπίς, -ῖδος (nom commun) (f)''' : .<br> '''κῆπος, -ήπου (nom commun) (m)''' : jardin ; sorte de singe.<br> '''κηρός, -οῦ (nom commun) (m)''' : cire.<br> '''κῆρ, -ος (nom commun) (n)''' : cœur.<br> '''κῆρυγμα, -ύγματος (nom commun) (n)''' : proclamation à voix haute.<br> '''κηρύκειον, -ίου (nom commun) (m)''' : caducée.<br> '''κῆρυξ, -ήρυκος (nom commun) (m)''' : héraut.<br> '''κηρύσσω (verbe)''' : annoncer.<br> '''κηρύττω (verbe)''' : Forme attique de ''κηρύσσω''.<br> '''κηφήν, -ῆνος (nom commun) (m)''' : bourdon.<br> '''κηφηνώδης, -ης, -ες (adjectif)''' : .<br> '''κιϐδηλεύω (verbe)''' : falsifier.<br> '''κιϐδηλία, -ας (nom commun) (f)''' : falsification.<br> '''κίϐδηλος, -ος, -ου (adjectif)''' : falsifié ; frauduleux.<br> '''κιϐδηλότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''κίϐδηλος''.<br> '''κιϐδηλότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''κίϐδηλος''.<br> '''κιϐδήλως (adverbe)''' : frauduleusement.<br> '''κιϐωτός, -οῦ (nom commun) (f)''' : arche.<br> '''κιγκλίς, -δος (nom commun) (f)''' : bergeronnette.<br> '''κιδαφεύω (verbe)''' : ruser.<br> ''' κίδαφος, -άφη, -ίδαφον (adjectif)''' : rusé.<br> '''κίδαφότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''κίδαφος''.<br> '''κίδαφότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''κίδαφος''.<br> '''κιδάφως (adverbe)''' : frauduleusement.<br> '''κικκάϐη, -ης (nom commun) (f)''' : .<br> '''κῖκυς, -ίκυος (nom commun) (f)''' : force ; vigueur.<br> '''κιθάρα, -ας (nom commun) (f)''' : cithare.<br> '''κιθάρη, -ης (nom commun) (f)''' : Forme ionienne de ''κιθάρα''.<br> '''κιθών, -ῶνος (nom commun) (m)''' : Forme ionienne de ''χιτών''.<br> '''κίνδυνος, -ύνου (nom commun) (m)''' : Danger, risque ; entreprise hasardeuse.<br> '''κινηθμός, -οῦ (nom commun) (m)''' : .<br> '''κίνημα, -ήματος (nom commun) (n)''' : mouvement.<br> '''κίνησις, -ήσεως (nom commun) (f)''' : mouvement.<br> '''κινητέον, -ου (nom commun) (n)''' : .<br> '''κινητήρ, -ῆρος (nom commun) (m)''' : .<br> '''κινητής, -οῦ (nom commun) (m)''' : .<br> '''κινητήριος, -α, -ον (adjectif)''' : .<br> '''κινητικός, -ή, -όν (adjectif)''' : .<br> '''κινητός, -ή, -όν (adjectif)''' : .<br> '''κίνητρον, -ήτρου (nom commun) (n)''' : .<br> '''κίνναμον, -άμου (nom commun) (n)''' : cannelle.<br> '''κινῶ (verbe)''' : bouger.<br> '''κιξάλλης, -ου (nom commun) (m)''' : voleur de grand chemin.<br> '''κίρκος, -ου (nom commun) (m)''' : (ornithologie) Faucon. Anneau.<br> '''κιρρός, -ά, -όν (adjectif)''' : brun-roux.<br> '''κισσαϐίζω (verbe)''' : .<br> '''κῖσσα, -ης (nom commun) (f)''' : geai des chênes.<br> '''κίσσα, -ης (nom commun) (f)''' : pie.<br> '''κισσός, -οῦ (nom commun) (m)''' : lierre.<br> '''κισσοστεφής, -ής, -ές (adjectif)''' : couronné de lierre.<br> '''κισσῶ (verbe)''' : .<br> '''κίττα, -ης (nom commun) (f)''' : Forme attique de ''κίσσα''.<br> '''κιτών, -ῶνος (nom commun) (m)''' : Forme dorienne de ''χιτών''.<br> '''κιχόρη, -ης (nom commun) (f)''' : chicorée.<br> '''κλάδος, -ου (nom commun) (m)''' : Branche (d'arbre), rameau.<br> '''κλαΐς, -δός (nom commun) (f)''' : Forme dorienne de ''κλείς''.<br> '''κλᾶϊς, -άϊδος (nom commun) (f)''' : Forme éolienne de ''κλείς''.<br> '''κλαίω (verbe)''' : Pleurer sur, déplorer. Appeler en criant. Se mettre en pleurs.<br> '''κλᾶμμα, -άμματος (nom commun) (f)''' : Forme éolienne de ''κλῆμα''.<br> '''κλαστός, -ή, -όν (adjectif)''' : brisé, cassé.<br> '''κλαυθμυρίζω (verbe)''' : faire pleurer.<br> '''κλαῦμα, -ύματος (nom commun) (n)''' : pleur.<br> '''κλαυσίγελως, -τος (nom commun) (m)''' : .<br> '''κλαυστός, -ή, -όν (adjectif)''' : Pleuré. Funèbre, triste.<br> '''κλάω (verbe)''' : Briser, casser.<br> '''κλεῖθρον, -ίθρου (nom commun) (n)''' : serrure.<br> '''κλειθροποιός, -οῦ (nom commun) (m)''' : serrurier.<br> '''κλείς, -δός (nom commun) (f)''' : clé.<br> '''κλειτορίς, -δος (nom commun) (f)''' : clitoris.<br> '''κλείω (verbe)''' : fermer.<br> '''κλέπτης, -ου (nom commun) (m)''' : voleur.<br> '''κλέπτω (verbe)''' : voler. (dérober)<br> '''κληΐς, -δός (nom commun) (f)''' : Forme ionienne de ''κλείς''.<br> '''κλῄς, -δός (nom commun) (f)''' : Forme attique de ''κλείς''.<br> '''κλέος, -ους (nom commun) (n)''' : gloire.<br> '''κλεψύδρα, -ας (nom commun) (m)''' : clepsydre.<br> '''κλέω (verbe)''' : être célèbre.<br> '''κλῆμα, -ήματος (nom commun) (n)''' : pampre.<br> '''κληματίζω (verbe)''' : .<br> '''κληματικός, -ή, -όν (adjectif)''' : .<br> '''κλημάτινος, -η, ον (adjectif)''' : .<br> '''κληματίς, -δος (nom commun) (f)''' : Diminutif de ''κλῆμα''.<br> '''κληματῖτις, -ίτιδος (nom commun) (f)''' : .<br> '''κληματόδεσις, -εως (nom commun) (f)''' : .<br> '''κληματοειδής, -ής, -ές (adjectif)''' : .<br> '''κληματόεις, -εσσα, εν (adjectif)''' : .<br> '''κληματόομαι (verbe)''' : .<br> '''κληματώδης, -ης, -ες (adjectif)''' : .<br> '''κλήρωσις, -ώσεως (nom commun) (f)''' : .<br> '''κληρονομία, -ας (nom commun) (f)''' : héritage.<br> '''κληρονομικότης, -τος (nom commun) (f)''' : hérédité.<br> '''κληρονομικός, -ή, -όν (adjectif)''' : héréditaire.<br> '''κληρονόμος, -ου (nom commun) (m)''' : héritier.<br> '''κληρονομῶ (verbe)''' : hériter.<br> '''κλῆρος, -ήρου (nom commun) (m)''' : .<br> '''κληρόω (verbe)''' : .<br> '''κλητήρ, -ῆρος (nom commun) (m)''' : Témoin ; héraut.<br> '''κλίμα, -τος (nom commun) (n)''' : Inclinaison, pente. Inclinaison de la Terre, latitude, climat.<br> '''κλῖμαξ, -ίμακος (nom commun) (f)''' : Escalier ; échelle.<br> '''κλίνη, -ης (nom commun) (f)''' : lit.<br> '''κλίνω (verbe)''' : Pencher. Pencher sur, s’appuyer sur. Coucher, allonger, étendre.<br> '''κλίννω (verbe)''' : Forme éolienne de ''κλίνω''.<br> '''κλίσις, -εως (nom commun) (f)''' : déclinaison.<br> '''κλίτος, -ους (nom commun) (n)''' : allée.<br> '''κλῖτος, -ίτους (nom commun) (n)''' : .<br> '''κλιτύς, -ος (nom commun) (n)''' : Forme béotienne de ''κλῖτος''.<br> '''κλόνις, -ος (nom commun) (f)''' : sacrum.<br> '''κλόνος, -ου (nom commun) (m)''' : Confusion ; excitation.<br> '''κλύδων, -ος (nom commun) (m)''' : Vague. Trouble, agitation, mouvement tumultueux.<br> '''κλύζω ‎(verbe)''' : Laver, nettoyer. Battre de ses flots, baigner de ses flots.<br> '''κλυστήρ, -έρος (nom commun) (m)''' : seringue.<br> '''κλύω (verbe)''' : entendre.<br> '''κλωβός, -ϐοῦ (nom commun) (m)''' : cage à oiseau.<br> '''κλών, -ός (nom commun) (m)''' : .<br> '''κλώψ, -πός (nom commun) (m)''' : voleur.<br> '''κλῶ (verbe)''' : S’entendre nommer ; entendre parler de soi.<br> '''κνέφας, -ους (nom commun) (n)''' : Aube ; crépuscule, obscurité.<br> '''κνῆκος, -ήκου (nom commun) (f)''' : carthame des teinturiers.<br> '''κνήμη, -ης (nom commun) (f)''' : jambe.<br> '''κνίδη, -ης (nom commun) (f)''' : ortie.<br> '''κνίδωσις, -ώσεως (nom commun) (f)''' : urticaire.<br> '''κνίζω (verbe)''' : Gratter. ; taillader.<br> '''κοϐαλεία, -ας (nom commun) (f)''' : .<br> '''κοϐαλεύω (verbe)''' : .<br> '''κοϐαλίκευμα, -ύματος (nom commun) (n)''' : .<br> '''κοϐαλισμός, -οῦ (nom commun) (m)''' : .<br> '''κόϐαλος, -άλου (nom commun) (m)''' : Chenapan ; garnement. Gobelin.<br> '''κοθαρός, -ά, -όν (adjectif)''' : Forme dorienne de ''καθαρός''.<br> '''κόθαρος, -ά, -όν (adjectif)''' : Forme éolienne de ''καθαρός''.<br> '''κοιλάς, -δος (nom commun) (f)''' : vallée.<br> '''κοῖλος, -ίλη, -ῖλον (adjectif)''' : creux.<br> '''κοῖλος, -ίλου (nom commun) (m)''' : creux.<br> '''κοιμάω (verbe)''' : (Actif) Mettre sur une couche, mettre au lit. (Passif) Faire reposer, faire dormir. (Passif, par euphémisme) Faire mourir. (Figuré) Assoupir, apaiser, calmer.<br> '''κοιμέω (verbe)''' : Forme ionienne de ''κοιμάω''.<br> '''κοιμητήριον, -ου (nom commun) (n)''' : Dortoir ; cimetière.<br> '''κοιμίζω (verbe)''' : endormir.<br> '''κοινοϐουλευτικός, -ή, -όν (adjectif)''' : parlementaire.<br> '''κοινοϐούλιον, -ίου (nom commun) (n)''' : parlement.<br> '''κοινός, -ή, -όν (adjectif)''' : commun.<br> '''κοινότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''κοινός''.<br> '''κοινότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''κοινός''.<br> '''κοινωνία, -ας (nom commun) (f)''' : société.<br> '''κοίνωσις, -ώσεως (nom commun) (f)''' : .<br> '''κοινῶς (adverbe)''' : communément.<br> '''κοινῶ (verbe)''' : Communiquer. Rendre commun à, faire savoir. Mettre en communication, unir. Rendre commun à tous, prostituer, profaner, souiller. Unir, assembler, ajuster (une pièce d'une construction). (Moyen) Communiquer, mettre en commun. <br> '''κοῖος, -ίη, -ῖον (adjectif)''' : Forme ionienne de ''ποῖος''.<br> '''κοῖτος, -ίτου (nom commun) (m)''' : Lit, couche.<br> '''κόκκος, -ου (nom commun) (m)''' : Graine, grain, pépin. (Entomologie) Cochenille, kermès, galle du chêne kermès. (par analogie) Pilule. (par analogie) Testicules.<br> '''κόλλαθον, -άθου (nom commun) (n)''' : .<br> '''κολοιός, -οῦ (nom commun) (m)''' : choucas.<br> '''κόκκυξ, -υγος (nom commun) (m)''' : coucou, coccyx.<br> '''κόκκυ (onomatopée)''' : cri du coucou.<br> '''κωκύω (verbe)''' : crier, se lamenter.<br> '''κολακεία, -ας (nom commun) (f)''' : flatterie.<br> '''κολακευτικός, -ή, -όν (adjectif)''' : flatteur.<br> '''κολακευτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κολακευτικός''.<br> '''κολακευτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κολακευτικός''.<br> '''κολακευτικῶς (adverbe)''' : flatteusement.<br> '''κολακεύω (verbe)''' : flatter.<br> '''κόλαξ, -κος (nom commun) (m)''' : flatteur.<br> '''κολάπτω (verbe)''' : frapper.<br> '''κόλασις, -άσεως (nom commun) (f)''' : punition.<br> '''κολαφίζω (verbe)''' : gifler.<br> '''κόλαφος, -άφου (nom commun) (m)''' : gifle.<br> '''κολεός, -οῦ (nom commun) (m)''' : Fourreau ; vagin.<br> '''κόλλα, -ης (nom commun) (f)''' : colle.<br> '''κόλλαϐος, -άϐου (nom commun) (m)''' : Gâteau, petit pain. Cheville qui attache les cordes de la lyre.<br> '''κολλάω (verbe)''' : coller.<br> '''κόλλιξ, -κος (nom commun) (m)''' : petit pain.<br> '''κολλύρα, -ας (nom commun) (f)''' : petit pain.<br> '''κολλῶ (verbe)''' : .<br> '''κολοϐός, -ή, -όν (adjectif)''' : écorné, tronqué ; mutilé.<br> '''κολοιός, -οῦ (nom commun) (m)''' : geai.<br> '''κόλον, -ου (nom commun) (n)''' : membre, extrémité ; côlon.<br> '''κολοκύνθη, - (nom commun) (f)''' : .<br> '''κολοκυνθίς, - (nom commun) (f)''' : .<br> '''κολοσσός, -οῦ (nom commun) (m)''' : colosse.<br> '''κολοττός, -οῦ (nom commun) (m)''' : Forme attique de ''κολοσσός''.<br> '''κολοφών, -ῶνος (nom commun) (m)''' : Sommet. (Figuré) Achèvement, couronnement. Balle de jeu.<br> '''κόλπος, -ου (nom commun) (m)''' : (Anatomie) Sein (de la mère ou de la nourrice). Utérus. Pli, creux d’un vêtement. Repli, renfoncement de la mer entre deux vagues. Sein de la terre, d’où Enfers. Golfe. Gouffre, cavité ; vallée profonde.<br> '''κολχικός, -ή, -όν (adjectif)''' : colchien.<br> '''κολώνη, -ης (nom commun) (f)''' : monticule, tertre ; tumulus.<br> '''κόμϐος, ου (nom commun) (m)''' : bande.<br> '''κοµικός, -ή, -όν (adjectif)''' : comique.<br> '''κοµικότατα, -, - (adverbe)''' : Superlatif de ''κοµικῶς''.<br> '''κοµικότερον, -, - (adverbe)''' : Comparatif de ''κοµικῶς''.<br> '''κοµικῶς (adverbe)''' : comiquement.<br> '''κοµικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κοµικός''.<br> '''κοµικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κοµικός''.<br> '''κομπάζω (verbe)''' : hâbler.<br> '''κομπαστής, -οῦ (nom commun) (m)''' : hâbleur.<br> '''κομψός, -ή, -όν (adjectif)''' : élégant.<br> '''κομψότατα, -, - (adverbe)''' : Superlatif de ''κομψῶς''.<br> '''κομψότερον, -, - (adverbe)''' : Comparatif de ''κομψῶς''.<br> '''κομψότης, -τος (nom commun) (f)''' : élégance.<br> '''κομψῶς (adverbe)''' : élégamment.<br> '''κομψώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κομψός''.<br> '''κομψώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κομψός''.<br> '''κονδυλισμίς, -δος (nom commun) (f)''' : chiquenaude ; pichenette.<br> '''κόνδυ, -ος (nom commun) (n)''' : somm e.<br> '''κονία, -ας (nom commun) (f)''' : poussière.<br> '''κονίη, -ης (nom commun) (f)''' : Forme homérique et ionienne de ''κονία''.<br> '''κόνικλος, -ίκλου (nom commun) (m)''' : lapin.<br> '''κόνις, -εως (nom commun) (f)''' : cendre ; poussière.<br> '''κονίς, -δος (nom commun) (f)''' : lente.<br> '''κοντά (adverbe)''' : près ; à proximité.<br> '''κοντινός, -ή, -όν (adjectif)''' : proche.<br> '''κοντινῶς (adverbe)''' : .<br> '''κοντινώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κοντινός''.<br> '''κοντινώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κοντινός''.<br> '''κογχύλιον, -ίου (nom commun) (n)''' : coquillage.<br> '''κοπριά, -ᾶς (nom commun) (f)''' : fumier.<br> '''κόπρος, -ου (nom commun) (m)''' : excrément.<br> '''κόρα, -ας (nom commun) (f)''' : Forme éolienne de ''κόρη''.<br> '''κόραξ, -κος (nom commun) (m)''' : corbeau.<br> '''κορέννυμι (verbe)''' : rassasier ; (Au passif et au moyen) Être rassasié. Avoir le dégoût de.<br> '''κόρευμα, -ύματος (nom commun) (n)''' : virginité.<br> '''κορεύομαι (verbe)''' : être vierge.<br> '''κόρη, -ης (nom commun) (f)''' : jeune fille.<br> '''κορίαννον, -άννου (nom commun) (n)''' : coriandre.<br> '''κορίζομαι (verbe)''' : caresser.<br> '''κορμός, -οῦ (nom commun) (m)''' : .<br> '''κόρος, -ου (nom commun) (m)''' : Jeune garçon ; satiété, dédain.<br> '''κόρυζα, -ης (nom commun) (f)''' : coryza.<br> '''κόρυς, -θος (nom commun) (f)''' : Tête ; casque.<br> '''κορώνη, -ης (nom commun) (f)''' : corneille.<br> '''κορωνός, -ή, -όν (adjectif)''' : courbe ; recourbé.<br> '''κόσμημα, -ήματος (nom commun) (n)''' : bijou.<br> '''κοσμητικός, -ή, -όν (adjectif)''' : Décoratif ; ordonné.<br> '''κοσμητής, -οῦ (nom commun) (m)''' : Ordonnateur ; arrangeur.<br> '''κόσμος, -ου (nom commun) (m)''' : Ordre. Monde ; univers.<br> '''κόσσυκος, -ύκου (nom commun) (m)''' : Forme de ''κόσσυϕος''.<br> '''κόσσυϕος, -ύϕου (nom commun) (m)''' : merle.<br> '''κόσος, -η, -ον (adjectif)''' : Forme ionienne de ''πόσος''.<br> '''κόττος, -ου (m)''' : coq.<br> '''κόττυϕος, -ύϕου (nom commun) (m)''' : Forme attique de ''κόσσυϕος''.<br> '''κοτύλη, -ης (nom commun) (f)''' : écuelle.<br> '''κουρεύς, -έως (nom commun) (m)''' : barbier.<br> '''κουρεῖον, -ίου (nom commun) (n)''' : boutique du barbier.<br> '''κούρη, -ης (nom commun) (f)''' : Forme ionienne de ''κόρη''.<br> '''κοῦρος, -ύρου (nom commun) (m)''' : Forme ionienne de ''κόρος''.<br> '''κοῦ (adverbe interrogatif)''' : Forme ionienne de ''ποῦ''.<br> '''κοῦφος, -ύφη, -ῦφον (adjectif)''' : léger.<br> '''κουφότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''κοῦφος''.<br> '''κουφότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''κοῦφος''.<br> '''κούφως (adverbe)''' : légèrement.<br> '''κόφινος, -ίνου (nom commun) (m)''' : corbeille.<br> '''κοχλιάριον, -ίου (nom commun) (n)''' : cuillère.<br> '''κοχλίας, -ου (nom commun) (m)''' : escargot.<br> '''κρα (onomatopée)''' : croa.<br> '''κράϐατος, -άτου (nom commun) (m)''' : Forme macédonienne de ''κράϐϐατος''.<br> '''κράϐϐατος, -άτου (nom commun) (m)''' : grabat.<br> '''κραιπάλη, -ης (nom commun) (f)''' : ivresse.<br> '''κραίνω (verbe)''' : Commander, gouverner.<br> '''κράμϐη, -ης (nom commun) (f)''' : chou.<br> '''κράμϐος, -η, -ον (f)''' : fort (en parlant de la voix ou du son).<br> '''κρανίον, -ου (nom commun) (n)''' : crâne.<br> '''κρανοκοπέω (verbe)''' : décapiter.<br> '''κράνος, -ους (nom commun) (n)''' : casque.<br> '''κρᾶσις, -άσεως (nom commun) (n)''' : mélange de deux ou plusieurs choses.<br> '''κράτειρα, -ίρας (nom commun) (f)''' : dirigeante.<br> '''κράτος, -ους (nom commun) (n)''' : Force du corps, vigueur, solidité. Domination, puissance.<br> '''κράτωρ, -ορος (nom commun) (m)''' : dirigeant.<br> '''κραυγάζω (verbe)''' : crier.<br> '''κραυγή, -ῆς (nom commun) (f)''' : cri.<br> '''κρέας, -ατος (nom commun) (n)''' : viande.<br> '''κρεῖας, -ίατος (nom commun) (n)''' : Forme homérique de ''κρέας''.<br> '''κρείουσα, -ας (nom commun) (f)''' : cri.<br> '''κρείσσων, -ων, -ον (adjectif)''' : maîtresse ; souveraine.<br> '''κρείων, -οντος (nom commun) (m)''' : seigneur, maître ; souverain.<br> '''κρέξ, -κου (nom commun) (m)''' : râle (oiseau).<br> '''κρέων, -οντος (nom commun) (m)''' : Forme homérique de ''κρείων''.<br> '''κρημνός, -οῦ (nom commun) (m)''' : falaise, précipice.<br> '''κρηναῖος, -ία, -ῖον (adjectif)''' : .<br> '''κρήνη, -ης (nom commun) (m)''' : Source, puits ; fontaine. (Poétique) (Au pluriel) Eau.<br> '''κρηπίς, -ῖδος (nom commun) (f)''' : pantoufle.<br> '''κρῆσις, -ήσεως (nom commun) (n)''' : Forme ionienne de ''κρᾶσις''.<br> '''κρῆς, -ήτος (nom commun) (n)''' : Forme dorienne de ''κρέας''.<br> '''κρίϐανος, -άνου (nom commun) (m)''' : braséro ; four à pain.<br> '''κρίκος, -ου (nom commun) (m)''' : anneau.<br> '''κρῖμα, -ίματος (nom commun) (n)''' : Objet de contestation, contestation, querelle. (Par suite) Jugement, décision judiciaire. Condamnation, peine. (Par extension) Jugement, Décision. Action de juger.<br> '''κριός, -οῦ (nom commun) (m)''' : bélier.<br> '''κρίνω (verbe)''' : décider.<br> '''κρίσις, -ίσεως (nom commun) (f)''' : décision.<br> '''κριτήριον, -ίου (nom commun) (n)''' : test.<br> '''κριτήρ, -ῆρος (nom commun) (m)''' : interprète.<br> '''κριτής, -οῦ (nom commun) (m)''' : juge.<br> '''κριτικός, -ή, -όν (adjectif)''' : décisif.<br> '''κριτικῶς (adverbe)''' : décisivement.<br> '''κριτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κριτικός''.<br> '''κριτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κριτικός''.<br> '''κροκόδειλος, -ίλου (nom commun) (m)''' : crocodile.<br> '''κρόμμυον, -ύου (nom commun) (n)''' : ognon.<br> '''κρόμυον, -ύου (nom commun) (n)''' : Variante de ''κρόμμυον''.<br> '''κρόταφος, -άφου (nom commun) (m)''' : tempe.<br> '''κροῦσις, -ύσεως (nom commun) (f)''' : Choc, collision ; impact, percussion.<br> '''κρούω (verbe)''' : heurter, choquer. Frapper l’un contre l’autre. Frapper les cordes d’un instrument. Heurter ou pousser pour mettre en mouvement. Heurter avec le doigt pour l’éprouver et le faire résonner. (Figuré) Piquer, chatouiller en parlant de sensations physiques.<br> '''κρυμός, -οῦ (nom commun) (m)''' : gel.<br> '''κρύος, -ους (nom commun) (n)''' : froid glacial. Frisson (de crainte).<br> '''κρύσταλλος, -άλλου (nom commun) (m)''' : Eau congelée ; verre transparent.<br> '''κροκόδειλος, -ίλου (nom commun) (m)''' : crocodile.<br> '''κρόκος, -ου (nom commun) (m)''' : safran.<br> '''κρυπτός, -ός, -όν (adjectif)''' : caché, secret.<br> '''κρύπτω (verbe)''' : cacher.<br> '''κρυφᾷ (adverbe)''' : Forme dorienne de ''κρυφῇ''.<br> '''κρυφῇ (adverbe)''' : secrètement.<br> '''κρύφος, -ου (nom commun) (f)''' : Action de cacher ; cachette.<br> '''κρωγμός, -οῦ (nom commun) (m)''' : croassement.<br> '''κρώζω (verbe)''' : croasser.<br> '''κρωσσίον, -ου (nom commun) (n)''' : cruche.<br> '''κρωσσός, -οῦ (nom commun) (m)''' : jarre ; urne.<br> '''κτείνω (verbe)''' : tuer.<br> '''κτείς, -ενός (nom commun) (m)''' : Peigne. Râteau. (Au pluriel) Doigts.<br> '''κτένιον, -ίου (nom commun) (m)''' : Diminutif de ''κτείς''.<br> '''κτῆνος, -ήνους (nom commun) (n)''' : (Au pluriel) Bétail. (Au singulier) Bête domestique.<br> '''κτίριον, -ίου (nom commun) (n)''' : bâtiment.<br> '''κτυπέω (verbe)''' : claquer.<br> '''κτύπημα, -ήματος (nom commun) (n)''' : claquement.<br> '''κτῶμαι (verbe)''' : acquérir.<br> '''κυανός, -ή, -όν (adjectif)''' : bleu.<br> '''κυϐέρνησις, -ήσεως (nom commun) (f)''' : pilotage ; gouvernement.<br> '''κυϐερνήτης, -ου (nom commun) (m)''' : pilote ; gouverneur.<br> '''κυϐερνητικός, -ή, -όν (adjectif)''' : pilotable ; gouvernemental.<br> '''κυϐερνισμός, -οῦ (nom commun) (m)''' : pilotage ; gouvernement.<br> '''κυϐερνῶ (verbe)''' : piloter ; gouverner.<br> '''κῦδος, -ύδους (nom commun) (n)''' : gloire ; renommée.<br> '''κυῶ (verbe)''' : .<br> '''κύημα, -ήματος (nom commun) (n)''' : vague.<br> '''κύησις, -ήσεως (nom commun) (f)''' : grossesse.<br> '''κύκλος, -ου (nom commun) (m)''' : cercle ; rond.<br> '''κυκλῶ (verbe)''' : Tourner, rouler. Envelopper, cerner.<br> '''κύκλωμα, -ώματος (nom commun) (n)''' : circuit.<br> '''κυκλών, -ῶνος (nom commun) (m)''' : cyclone.<br> '''κύκνος, -ου (nom commun) (m)''' : cygne.<br> '''κυλινδρικός, -ή, -όν (adjectif)''' : cylindrique.<br> '''κύλινδρος, -ίνδρου (nom commun) (m)''' : cylindre.<br> '''κυλίνδω (verbe)''' : rouler.<br> '''κύλιξ, -κος (nom commun) (f)''' : coupe (récipient).<br> '''κυλλός, -ή, -όν (adjectif)''' : Forme chypriote de ''χωλός''.<br> '''κῦμα, -ύματος (nom commun) (n)''' : onde ; vague.<br> '''κυναλώπηξ, -εκος (nom commun) (f)''' : .<br> '''κυνηγός, -οῦ (nom commun) (m)''' : chasseur.<br> '''κυνηγῶ (verbe)''' : chasser.<br> '''κύνικλος, -ίκλου (nom commun) (m)''' : Forme de ''κόνικλος''.<br> '''κυνικός, -ή, -όν (adjectif)''' : canin ; (Philosophie) cynique.<br> '''κυπάρισσος, -ίσσου (nom commun) (f)''' : cyprès.<br> '''κυπάριττος, -ίττου (nom commun) (f)''' : Forme attique de ''κυπάρισσος''.<br> '''κυπρῖνος, -ίνου (nom commun) (m)''' : carpe.<br> '''κύπτω (verbe)''' : se baisser en avant. Baisser la tête (ou les yeux) de honte.<br> '''κυρία, -ας (nom commun) (f)''' : maîtresse ; souveraine.<br> '''κυριακός, -ή, -όν (adjectif)''' : seigneurial.<br> '''κύριος, -ίου (nom commun) (m)''' : maître ; souverain.<br> '''κύρος, -ους (nom commun) (n)''' : prestige.<br> '''κῦρος, -ύρου (nom commun) (m)''' : décret.<br> '''κῦρρος, -ύρρου (nom commun) (m)''' : Forme thessalienne de ''κύριος''.<br> '''κύρωσις, -ώσεως (nom commun) (f)''' : sanction.<br> '''κυρῶ (verbe)''' : confirmer, ratifier ; sanctionner.<br> '''κυσός, -οῦ (nom commun) (m)''' : sexe de la femme.<br> '''κύστιγξ, -γος (nom commun) (f)''' : vésicule.<br> '''κύστις, -εως (nom commun) (f)''' : sac ; (Au pluriel) Poches sous les yeux.<br> '''κύσσω (verbe)''' : Forme poétique de ''κύσω''.<br> '''κύσω (verbe)''' : donner un baiser.<br> '''κύτος, -ους (nom commun) (n)''' : Creux d'un navire, d'un bouclier, d'une cuirasse. Objet creux. Qui recouvre ou enveloppe.<br> '''κυφός, -ή, -όν (adjectif)''' : Arqué, bossu. Courbé.<br> '''κυφότατος, -έρα, -ότερον (adjectif)''' : Comparatif de ''κυφός''.<br> '''κυφότερος, -άτη, -ότατον (adjectif)''' : Superlatif de ''κυφός''.<br> '''κύφων, -ονος (nom commun) (m)''' : pilori.<br> '''κύφωσις, -ώσεως (nom commun) (f)''' : .<br> '''κυφῶς (adverbe)''' : .<br> '''κύψελος, -έλου (nom commun) (m)''' : martinet (oiseau).<br> '''κύων, -ός (nom commun) (m/f)''' : chien(ne).<br> '''κωδωνίζω (verbe)''' : sonner les cloches.<br> '''κωδώνιον, -ίου (nom commun) (n)''' : clochette.<br> '''κωδωνόκροτος, - ()''' : .<br> '''κωδωνοφαλαρόπωλος, - ()''' : .<br> '''κωδωνοφορέω (verb)''' : .<br> '''κώδων, -ος (nom commun) (m)''' : cloche.<br> '''κωκύω (verbe)''' : .<br> '''κώληψ, -πος (nom commun) (f)''' : jarret.<br> '''κωλοϐαθριστής, -οῦ (nom commun) (m)''' : Acrobate marchant sur des échasses.<br> '''κωλόϐαθρον, -άθρου (nom commun) (n)''' : échasse.<br> '''κῶλον, -ώλου (nom commun) (n)''' : .<br> '''κώμη, -ης (nom commun) (f)''' : village ; quartier.<br> '''κωμικός, -ή -όν (adjectif)''' : comique.<br> '''κωµικότατα, -, - (adverbe)''' : Superlatif de ''κωµικῶς''.<br> '''κωµικότερον, -, - (adverbe)''' : Comparatif de ''κωµικῶς''.<br> '''κωµικῶς (adverbe)''' : comiquement.<br> '''κωµικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''κωµικός''.<br> '''κωµικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''κωµικός''.<br> '''κῶμος, -ώμου (nom commun) (m)''' : Festin, banquet. (Par extension) Troupe impétueuse (en parlant des Érinyes), bande.<br> '''κωμόπολις, -όλεως (nom commun) (n)''' : bourgade.<br> '''κωμῳδία, -ας (nom commun) (f)''' : poésie satirique.<br> '''κωνωπεῖον, -ίου (nom commun) (n)''' : moustiquaire.<br> '''κώνωψ, -ωπος (nom commun) (m)''' : cousin (genre de moustique) ; moucheron.<br> '''κώπα, -ας (nom commun) (f)''' : Forme dorienne de ''κώπη''.<br> '''κωπέω (f)''' : ramer.<br> '''κώπη, -ης (nom commun) (f)''' : Anse, poignée (d’une rame), manche. Rame.<br> '''κωπίον, -ίου (nom commun) (n)''' : Diminutif de ''κώπη''.<br> '''κώρα, -ας (nom commun) (f)''' : Forme dorienne de ''κόρη''.<br> '''κῶρος, -ώρου (nom commun) (m)''' : Forme dorienne de ''κόρος''.<br> '''κῶς (adverbe)''' : Forme ionienne de ''πῶς''.<br> '''κώταλις, - (nom commun) (f)''' : cuillère.<br> '''κωφός, -ή -όν (adjectif)''' : sourd.<br> '''Καικιλία, -ας (nom propre) (f)''' : Cécile.<br> '''Καικίλιος, -ίου (nom propre) (m)''' : Cécilius.<br> '''Κάϊν (nom propre) (m)''' : Caïn.<br> '''Καινὴ Διαθήκη (locution nominale) (f)''' : Nouveau Testament.<br> '''Καῖσαρ, -ίσαρος (nom propre) (m)''' : César.<br> '''Καλλίας, -ου (nom propre) (m)''' : Callias.<br> '''Καλλικρατίδας, -ου (nom propre) (m)''' : Callicratidas.<br> '''Καλλίμαχος, -άχου (nom propre) (m)''' : Callimaque.<br> '''Καλλιόπη, -ης (nom propre) (f)''' : Calliope.<br> '''Καλλιρόη, -ης (nom propre) (f)''' : Callirhoé.<br> '''Καλλιστώ, -οῦς (nom propre) (f)''' : Callisto.<br> '''Καλυψώ, -οῦς (nom propre) (f)''' : Calypso.<br> '''Καμϐύσης, -ου (nom propre) (m)''' : Cambyse.<br> '''Κανδάκη, -ης (nom propre) (f)''' : Candace.<br> '''Καρδοῦχος, -ύχου (nom commun) (m)''' : Kurde.<br> '''Καρκίνος, -ου (nom propre) (m)''' : Cancer.<br> '''Κᾶρ, -άρος (nom propre) (f)''' : Forme éolienne de ''Κήρ''.<br> '''Καρχηδόνιος, -ίου (nom commun) (m)''' : Carthaginois.<br> '''Καρχηδών, -όνος (nom propre) (f)''' : Carthage.<br> '''Κασσάνδρα, -ας (nom propre) (f)''' : Cassandre.<br> '''Κάσσανδρος, -άνδρου (nom commun) (m)''' : Cassandre.<br> '''Κελτίς, -δος (nom commun) (f)''' : Celte.<br> '''Κελτός, -οῦ (nom commun) (m)''' : Celte.<br> '''Κερασούντιος, -α, -ον (adjectif)''' : cérasien.<br> '''Κερασοῦς, -ῦντος (nom commun) (m)''' : Cérasus.<br> '''Κέρϐερος, -έρου (nom propre) (m)''' : Cerbère.<br> '''Κέρκωψ, -πος (nom propre) (m)''' : Cercops.<br> '''Κήρ, -ός (nom propre) (f)''' : Une des Kères.<br> '''Κηφισιά, -ᾶς (nom propre) (f)''' : Céphisia.<br> '''Κικέρων, -ος (nom propre) (m)''' : Cicéron.<br> '''Κιλικία, -ας (nom propre) (f)''' : Cilicie.<br> '''Κίρκη, -ης (nom propre) (f)''' : Circé.<br> '''Κλεάνθης, -ου (nom propre) (m)''' : Cléante.<br> '''Κλεισθένης, -ους (nom propre) (m)''' : Clisthène.<br> '''Κλείτανδρος, -άνδρου (nom propre) (m)''' : Clitandre.<br> '''Κλειτόμαχος, -άχου (nom propre) (m)''' : Clitomaque.<br> '''Κλεῖτος, -ίτου (nom propre) (m)''' : Cleithos.<br> '''Κλειτοφῶν, -τος (nom propre) (m)''' : Clitophon.<br> '''Κλειώ, -οῦς (nom propre) (f)''' : Clio.<br> '''Κλεoμήδης, -ους (nom propre) (m)''' : Cléomède.<br> '''Κλεοπᾶς, -ᾶ (nom propre) (m)''' : Cléopas.<br> '''Κλεοπάτρα, -ας (nom propre) (f)''' : Cléopâtre.<br> '''Κλεόπατρος, -άτρου (nom propre) (m)''' : Cléopatros.<br> '''Κλεώνυμος, -ύμου (nom propre) (m)''' : Cléonyme.<br> '''Κλωθώ, -οῦς (nom propre) (f)''' : Clotho (première Moire).<br> '''Κόϊντος, -ΐντου (nom propre) (m)''' : Quentin.<br> '''Κοῖος, -ίου (nom propre) (m)''' : Céos.<br> '''Κολοφών, -ῶνος (nom commun) (m)''' : Colophon (ville).<br> '''Κολχίς, -δος (nom propre) (f)''' : Colchide.<br> '''Κολχός, -οῦ (nom commun) (m)''' : Colchien.<br> '''Κόνων, -ος (nom commun) (m)''' : Conon.<br> '''Κόραμα, -ας (nom propre) (f)''' : Göreme.<br> '''Κορίνθιος, -ίου (nom commun) (f)''' : Corinthien.<br> '''Κόρινθος, -ίνθου (nom propre) (f)''' : Corinthe.<br> '''Κορσίς, -δος (nom propre) (f)''' : Corse.<br> '''Κόρκυρα, -ύρας (nom propre) (f)''' : Corcyre.<br> '''Κορυφώ, -οῦς (nom propre) (m)''' : Corfou (île).<br> '''Κότταλος, -άλου (nom propre) (m)''' : Cottalos.<br> '''Κράτος, -ους (nom propre) (m)''' : Cratos.<br> '''Κρατύλος, -ου (nom propre) (m)''' : Cratyle.<br> '''Κρεῖος, -ίου (nom propre) (m)''' : Crios.<br> '''Κρέουσα, -ας (nom propre) (f)''' : Créuse.<br> '''Κρέων, -οντος (nom propre) (m)''' : Créon.<br> '''Κριός, -οῦ (nom propre) (m)''' : Bélier.<br> '''Κρίτοϐουλος, -ύλου (nom propre) (m)''' : Critobule.<br> '''Κροῖσος, -ίσου (nom propre) (m)''' : Crésus.<br> '''Κρίτοϐουλος, -ύλου (nom propre) (m)''' : Critobule.<br> '''Κροκοδειλόπολις, -όλεως (nom propre) (f)''' : Fayoum.<br> '''Κτησιφῶν, -τος (nom propre) (m)''' : Ctésiphon.<br> '''Κτιμένη, -ης (nom propre) (f)''' : Ctimène (sœur d'Ulysse).<br> '''Κυαξάρης, -ου (nom propre) (m)''' : Cyaxare.<br> '''Κύθηρα, -ήρων (nom propre) (n)''' : Cythère.<br> '''Κυθήριος, -ίου (nom commun)''' : Cythérien.<br> '''Κύκλωψ, -ωπος (nom propre) (m)''' : Cyclope.<br> '''Κυνόσαργες, -ων (nom propre) (m)''' : Cynosarges.<br> '''Κύπριος, -ίου (nom commun) (m)''' : Chypriote.<br> '''Κύπρος, -ου (nom propre) (f)''' : Chypre.<br> '''Κύριλλος, -ίλλου (nom propre) (m)''' : Cyrille.<br> '''Κύριος, -ίου (nom propre) (m)''' : Seigneur.<br> '''Κύρνιος, -ίου (nom commun) (m)''' : Corse.<br> '''Κύρνος, -ου (nom propre) (f)''' : Corse.<br> '''Κῦρος, -ύρου (nom propre) (m)''' : Cyrus.<br> '''Κύψελος, -έλου (nom propre) (m)''' : Cypsélos.<br> '''Κωκυτός, -τοῦ (nom propre) (m)''' : Cocyte.<br> '''Κωνσταντῖνος, -ίνου (nom propre) (m)''' : Constantin.<br> '''Κωνσταντινούπολις, -όλεως (nom propre) (f)''' : Constantinople.<br> ==Λ== '''λαϐή, -ῆς (nom commun) (f)''' : anse.<br> '''λάϐρυς, -εως (nom commun) (f)''' : labrys.<br> '''λαϐύρινθος, -ίνθου (nom commun) (m)''' : labyrinthe.<br> '''λάγανον, -άνου (nom commun) (n)''' : crêpe.<br> '''λαγαρός, -ά, -όν (adjectif)''' : Creux, enfoncé ; lâche, ample.<br> '''λαγνεία, -ας (nom commun) (f)''' : libertinage.<br> '''λάγνευμα, -ύματος (nom commun) (n)''' : coït (acte).<br> '''λαγνεύω (verbe)''' : coïter.<br> '''λάγνης, -ης, -ες (adjectif)''' : Forme attique de ''λάγνος''.<br> '''λάγνος, -α, -ον (adjectif)''' : libertin, débauché.<br> '''λαγός, -οῦ (nom commun) (m)''' : lièvre.<br> '''λάγυνος, -ύνου (nom commun) (m/f)''' : flacon, pichet.<br> '''λαγών, -όνος (nom commun) (m)''' : flanc.<br> '''λαγώς, -ώ (nom commun) (m)''' : Forme attique de ''λαγός''.<br> '''λᾴα -ας (nom commun) (f)''' : Forme dorienne de ''λεία''.<br> '''λάθος, -ους (nom commun) (n)''' : erreur.<br> '''λαϊκός, -ή, -όν (adjectif)''' : populaire.<br> '''λαϊκῶς (adverbe)''' : populairement.<br> '''λαϊκώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''λαϊκός''.<br> '''λαϊκώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''λαϊκός''.<br> '''λαϊκώτατα, -, - (adverbe)''' : Superlatif de ''λαϊκῶς''.<br> '''λαϊκώτερον, -, - (adverbe)''' : Comparatif de ''λαϊκῶς''.<br> '''λαιµός, -οῦ (nom commun) (m)''' : cou, gorge.<br> '''λαῖον, -ίου (nom commun) (n)''' : faux.<br> '''λαιός, -ά, -όν (adjectif)''' : qui est à gauche.<br> '''λαιψηρός, -ά, -όν (adjectif)''' : agile, véhément.<br> '''λαιψηρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''λαιψηρός''.<br> '''λαιψηρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''λαιψηρός''.<br> '''λαιψηρῶς (adverbe)''' : agilement, véhémentement.<br> '''λάκτισμα, -ίσματος (nom commun) (n)''' : coup de pied.<br> '''λάκυθος, -ύθου (nom commun) (f)''' : Forme dorienne de ''λήκυθος''.<br> '''λακωνικός, -ή, -όν (adjectif)''' : concis.<br> '''λακωνικότης, -τος (nom commun) (f)''' : concision.<br> '''λακωνικῶς (adverbe)''' : concisément.<br> '''λακωνικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''λακωνικός''.<br> '''λακωνικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''λακωνικός''.<br> '''λᾳστής, -οῦ (nom commun) (m)''' : Forme dorienne de ''λῃστής''.<br> '''λαλέω (verbe)''' : Babiller, bavarder.<br> '''λαλιά, -ᾶς (nom commun) (f)''' : Babil, bavardage.<br> '''λάλος, -ος, -ον (adjectif)''' : Babillard, bavard.<br> '''λαμϐάνω (verbe)''' : prendre.<br> '''λάμϐδα (nom commun) (n)''' : lambda.<br> '''λαμπάς, -δος (nom commun) (f)''' : torche.<br> '''λαμπέτης, -ου (nom commun) (m)''' : .<br> '''λαμπέτις, -δος (nom commun) (f)''' : .<br> '''λάμπη, -ης (nom commun) (f)''' : Forme homérique et ionienne de ''λαμπάς''.<br> '''λαμπηδών, -όνος (nom commun) (f)''' : brillance des yeux.<br> '''λαμπρός, -ά, -όν (adjectif)''' : brillant.<br> '''λαμπρῶς (verbe)''' : brillamment.<br> '''λαμπρώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''λαμπρός''.<br> '''λαμπρώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''λαμπρός''.<br> '''λαμπτήρ, -ῆρος (nom commun) (m)''' : briquet, lanterne ; torche.<br> '''λαμπυρίς, -δος (nom commun) (f)''' : ver luisant.<br> '''λάμπω (verbe)''' : briller.<br> '''λάμψις, -εως (nom commun) (f)''' : brillance des étoiles, des éclairs, du Soleil.<br> '''λανθάνω (verbe)''' : être caché, faire oublier.<br> '''λαός, -οῦ (nom commun) (m)''' : peuple.<br> '''λάριξ, -κος (nom commun) (m)''' : mélèze.<br> '''λάρυγξ, -γος (nom commun) (m)''' : larynx. (Par suite) Gorge, gosier.<br> '''λάσανον, -άνου (nom commun) (n)''' : Casserole, marmite ; pot.<br> '''λατρεία, -ας (nom commun) (f)''' : service à gages. Service d’un dieu ; culte, adoration. Soins à donner au corps ou à l'âme.<br> '''λατρεύς, -έως (nom commun) (m)''' : serviteur engagé.<br> '''λατρεύω (verbe)''' : Être serviteur à gages. (Généralement) Servir que ce soit en parlant d’homme libre ou d’esclaves. (En particulier) Être serviteur de Dieu.<br> '''λάτρης, -ου (nom commun) (n)''' : adorateur.<br> '''λάτρον, -ου (nom commun) (n)''' : Gage, salaire ; rémunération.<br> '''λάφυρον, -ύρου (nom commun) (n)''' : butin.<br> '''λέαινα, -ίνης (nom propre) (f)''' : lionne.<br> '''λέϐης, -τος (nom commun) (m)''' : chaudière.<br> '''λέγω (verbe)''' : choisir.<br> '''λεία, -ας (nom commun) (f)''' : pillage.<br> '''λείϐω (verbe)''' : verser.<br> '''λειμών, -ῶνος (nom commun) (m)''' : pré.<br> '''λειμωνήρης, -ης, -ες (adjectif)''' : .<br> '''λειμωνιάς, -δος (nom commun) (f)''' : lémoniade.<br> '''λειμώνιον, -ίου (nom commun) (n)''' : .<br> '''λειμώνιος, -α, -ον (adjectif)''' : .<br> '''λειμωνίς, -δος (nom commun) (f)''' : lémoniade.<br> '''λειμωνοειδής, -ής, -ές (adjectif)''' : .<br> '''λειμωνόθεν (adverbe)''' : .<br> '''λεῖος, -ία, -ῖον (adjectif)''' : lisse, uni.<br> '''λείριον, -ίου (nom commun) (n)''' : lis (fleur).<br> '''λειτούργημα, -ήματος (nom commun) (n)''' : .<br> '''λειτουργία, -ας (nom commun) (f)''' : Cérémonie publique, service public.<br> '''λειτουργός, -οῦ (nom commun) (m)''' : Ministre, fonctionnaire. (Religion) Ministre du culte.<br> '''λειχήν, -ῆνος (nom commun) (m)''' : Lèpre, dartre sur le corps de l’homme. Cal sur la jambe du cheval. Lichen.<br> '''λείχω (verbe)''' : lécher.<br> '''λεξικός, -ή, -όν (adjectif)''' : lexical.<br> '''λεξικόν, -οῦ (nom commun) (n)''' : dictionnaire.<br> '''λεξικῶς (adverbe)''' : lexicalement.<br> '''λεξικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''λεξικός''.<br> '''λεξικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''λεξικός''.<br> '''λέξις, -εως (nom commun) (f)''' : Parole, action de parler. Élocution, style, manière de parler.<br> '''λεόντειος, -ος, -ον (adjectif)''' : léonin.<br> '''λεπίς, -δος (nom commun) (f)''' : Coque d’œuf. Lamelle de métal.<br> '''λεπτότης, -τος (nom commun) (f)''' : Minceur. Délicatesse.<br> '''λεπτός, -ή, -όν (adjectif)''' : Dépouillé de sa peau, de sa pellicule. Mince. Délicat.<br> '''λεπτότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''λεπτός''.<br> '''λεπτότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''λεπτός''.<br> '''λεπτῶς (adverbe)''' : Mincement. Délicatement<br> '''λέπω (verbe)''' : Peler, écosser ; écorcher.<br> '''λευγαλέος, -α, -ον (adjectif)''' : Triste, malheureux. Irrité, funeste. Désolé.<br> '''λευκός, -ή, -όν (adjectif)''' : blanc.<br> '''λεύκη, -ης (nom commun) (f)''' : peuplier.<br> '''λεύσσω (verbe)''' : voir.<br> '''λεώϐατος (nom commun)''' : .<br> '''λεωλογέω (verbe)''' : .<br> '''λέων, -οντος (nom commun) (m)''' : lion.<br> '''λεώς, -ώ (nom commun) (m)''' : Forme attique de ''λαός''.<br> '''λεωσφέτερος''' : .<br> '''λεωφόρος, -ου (nom commun) (f)''' : Avenue, boulevard.<br> '''λήθαιος, -α, -ον (adjectif)''' : .<br> '''ληθάνω (verbe)''' : faire oublier.<br> '''ληθαργέω (verbe)''' : oublier.<br> '''ληθαργία, -ας (nom commun) (f)''' : léthargie.<br> '''ληθαργικός, -ή, -όν (adjectif)''' : léthargique.<br> '''ληθαργικῶς (adverbe)''' : léthargiquement.<br> '''ληθαργικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ληθαργικός''.<br> '''ληθαργικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ληθαργικός''.<br> '''ληθαργικώτατα, -, - (adverbe)''' : Superlatif de ''ληθαργικῶς''.<br> '''ληθαργικώτερον, -, - (adverbe)''' : Comparatif de ''ληθαργικῶς''.<br> '''λήθαργος, -άργου (nom commun) (m)''' : torpeur.<br> '''λήθη, -ης (nom commun) (f)''' : oubli.<br> '''ληΐη, -ης (nom commun) (f)''' : Forme ionienne de ''λεία''.<br> '''ληΐς, - (nom commun) (f)''' : Forme homérique de ''λεία''.<br> '''ληϊστής, -οῦ (nom commun) (m)''' : Forme ionienne de ''λῃστής''.<br> '''λήιτον, -ίτου (nom commun) (n)''' : (En Achaïe) mairie.<br> '''λήκυθος, -ύθου (nom commun) (f)''' : petit vase.<br> '''λῃστής, -οῦ (nom commun) (m)''' : voleur, brigand. (en particulier) Pirate.<br> '''λῆξις, -ήξεως (nom commun) (f)''' : tirage au sort.<br> '''λῆμμα, -ήμματος (nom commun) (n)''' : Bénéfice, salaire, recette. Gain, profit. Bénéfice.<br> '''λημματιστής, -οῦ (nom commun) (m)''' : receveur.<br> '''λῆνος, -ήνους (nom commun) (n)''' : laine.<br> '''ληός, -οῦ (nom commun) (m)''' : Forme ionienne de ''λαός''.<br> '''λησμοσύνη, -ης (nom commun) (f)''' : oubli.<br> '''λῆψις, -ήψεως (nom commun) (f)''' : prise.<br> '''λίϐανος, -άνου (nom commun) (m)''' : oliban.<br> '''λιϐάς, -δος (nom commun) (f)''' : prairie.<br> '''λίθος, -ου (nom commun) (m)''' : pierre.<br> '''λιμήν, -ένος (nom commun) (m)''' : port.<br> '''λίμνη, -ης (nom commun) (f)''' : lac.<br> '''λιµός, -οῦ (nom commun) (m)''' : faim.<br> '''λιποθυμῶ (verbe)''' : s’évanouir.<br> '''λίπος, -ους (nom commun) (n)''' : graisse ; gras.<br> '''λιπόψυχος, -ος, -ον (adjectif)''' : pusillanime.<br> '''λιτότης, -τος (nom commun) (f)''' : simplicité.<br> '''λιτός, -ή, -όν (adjectif)''' : Uni. Simple, sans apprêts. (Par extension) Pauvre, chétif, faible, petit.<br> '''λίψ, -ϐος (nom commun) (m)''' : sud-ouest.<br> '''λογίζομαι (verbe)''' : .<br> '''λογικός, -ή, -όν (adjectif)''' : intellectuel ; rationnel.<br> '''λογικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''λογικός''.<br> '''λογικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''λογικός''.<br> '''λογικότατα, -, - (adverbe)''' : Superlatif de ''λογικῶς''.<br> '''λογικότερον, -, - (adverbe)''' : Comparatif de ''λογικῶς''.<br> '''λογικῶς (adverbe)''' : intellectuellement ; rationnellement.<br> '''λόγιον, -ίου (nom commun) (n)''' : oracle.<br> '''λόγος, -ου (nom commun) (m)''' : discours, sujet ; parole.<br> '''λοιμός, -οῦ (nom commun) (m)''' : peste.<br> '''λοίμωξις, -ώξεως (nom commun) (f)''' : infestation.<br> '''λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιοκαραϐομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτεκεφαλλιοκιγκλοπελειολαγῳ-οσιραιοϐαφητραγανοπτερυγών (nom commun) (m)''' : bigornocabillofricandortolangoustabricobouillabopoulaupococovin (Plat formé de dix-sept ingrédients différents, décrit par Aristophane dans ''L’Assemblée des femmes''. (v. 1169-1174)<br> '''λόγχη, -ης (nom commun) (f)''' : lance.<br> '''λοπάς, -δος (nom commun) (f)''' : écuelle.<br> '''λορδός, -ή, -όν (adjectif)''' : courbé.<br> '''λορδότατος, -έρα, -ότερον (adjectif)''' : Comparatif de ''λορδός''.<br> '''λορδότερος, -άτη, -ότατον (adjectif)''' : Superlatif de ''λορδός''.<br> '''λορδῶς (adverbe)''' : .<br> '''λουτήρ, -ῆρος (nom commun) (m)''' : baignoire.<br> '''λούω (verbe)''' : baigner.<br> '''λόφος, -ου (nom commun) (m)''' : colline.<br> '''λοχαγός, -οῦ (nom commun) (m)''' : capitaine.<br> '''λόχος, -ου (nom commun) (m)''' : compagnie.<br> '''λύγη, -ης (nom commun) (f)''' : crépuscule, pénombre.<br> '''λύγξ, -γός (nom commun) (f)''' : hoquet.<br> '''λύγξ, -κός (nom commun) (m/f)''' : lynx.<br> '''λυγρός, -ά, -όν (adjectif)''' : Fâcheux, triste. Malfaisant.<br> '''λύκαινα, -ίνης (nom commun) (f)''' : louve.<br> '''λυκάνθρωπος, -ώπου (nom commun) (m)''' : loup-garou.<br> '''λυκίσκος, -ου (nom commun) (m)''' : chien-loup.<br> '''λύκος, -ου (nom commun) (m)''' : loup.<br> '''λύμα, -ας (nom commun) (f)''' : Forme dorienne de ''λύμη''.<br> '''λῦμα, -ύματος (nom commun) (n)''' : .<br> '''λῦμαξ, -ύμακος (nom commun) (m)''' : .<br> '''λυμαίνομαι (verbe)''' : .<br> '''λυμαντήρ, -ῆρος (nom commun) (m)''' : destructeur.<br> '''λυμαντήριος, -α, -ον (adjectif)''' : injurieux, destructeur.<br> '''λυμαντής, -οῦ (nom commun) (m)''' : coureur.<br> '''λυμαντικός, -ή, -όν (adjectif)''' : .<br> '''λυμάντωρ, - (nom commun) (m)''' : .<br> '''λῦμαρ, -ύμαρος (nom commun) (m)''' : .<br> '''λύμασις, -εως (nom commun) (f)''' : .<br> '''λυμάχη, -ης (nom commun) (f)''' : .<br> '''λύμη, -ης (nom commun) (f)''' : .<br> '''λύπη, -ης (nom commun) (f)''' : regret.<br> '''λυποῦμαι (verbe)''' : être affligé.<br> '''λυπῶ (verbe)''' : regretter.<br> '''λύρα, -ας (nom commun) (f)''' : lyre. (Par extension) Constellation de la lyre. (Par extension) Poisson du même nom.<br> '''λύσσα, -ης (nom commun) (f)''' : Rage. (maladie canine) Fureur belliqueuse, frénésie.<br> '''λύτρωσις, -ώσεως (nom commun) (f)''' : rédemption.<br> '''λύττα, -ης (nom commun) (f)''' : Forme attique de ''λύσσα''.<br> '''λύχνος, -ου (nom commun) (m)''' : lampe.<br> '''λωρίς, -δος (nom commun) (f)''' : bande.<br> '''λῶρος, -ώρου (nom commun) (m)''' : bande.<br> '''Λάζαρος, -άρου (nom propre) (m)''' : Lazare.<br> '''Λαέρτης, -ου (nom propre) (m)''' : Laërte (père d’Ulysse).<br> '''Λαῖλαψ, -ίλαπου (nom propre) (m)''' : Lélaps.<br> '''Λάκαινα, -ίνης (nom commun) (m)''' : Laconienne.<br> '''Λακεδαιμόνιος, -ίου (nom commun) (m)''' : Lacédémonien.<br> '''Λακεδαίμων, -ονος (nom propre) (f)''' : Lacédémone.<br> '''Λακωνία, -ας (nom propre) (m)''' : Laconie.<br> '''Λάκων, -ος (nom commun) (m)''' : Laconien.<br> '''Λάμια, -ας (nom propre) (m)''' : Lamia.<br> '''Λαμπάς, -δος (nom propre) (f)''' : Lampade.<br> '''Λαμπετίη, -ης (nom propre) (f)''' : Lampétie.<br> '''Λάμπος, -ου (nom propre) (m)''' : Lampos.<br> '''Λαοδίκη, -ης (nom propre) (f)''' : Laodicé.<br> '''Λαοκόων, -οντος (nom propre) (m)''' : Laocoon.<br> '''Λαομέδων, -οντος (nom propre) (m)''' : Laomédon (fils d’Ilos et d’Eurydice).<br> '''Λατῖνος, -ίνου (nom propre) (m)''' : Latinos.<br> '''Λάτιον, -ίου (nom propre) (n)''' : Latium.<br> '''Λατώ, -οῦς (nom propre) (f)''' : Forme dorienne de ''Λητώ''.<br> '''Λαύρειον, -ίου (nom propre) (m)''' : Laurion.<br> '''Λάχεσις, -εως (nom propre) (f)''' : Lachésis (deuxième Moire).<br> '''Λέανδρος, -άνδρου (nom propre) (m)''' : Léandre.<br> '''Λεία, -ας (nom propre) (f)''' : Léa.<br> '''Λεύκιππος, -ίππου (nom propre) (m)''' : Leucippe.<br> '''Λευκοτεκία, -ας (nom propre) (f)''' : Variante de ''Λoυκoτοκία''.<br> '''Λεωνίδας, -ου (nom propre) (m)''' : Léonidas.<br> '''Λέων, -οντος (nom propre) (m)''' : Lion.<br> '''Λεωχάρης, -ου (nom propre) (m)''' : Léocharès.<br> '''Λήθη, -ης (nom propre) (f)''' : Léthé.<br> '''Λητώ, -οῦς (nom propre) (f)''' : Léto.<br> '''Λιϐύη, -ης (nom propre) (f)''' : Lybie.<br> '''Λίϐυς, -ος (nom commun) (m)''' : Libyen.<br> '''Λουκᾶνος, -άνου (nom commun) (m)''' : Lucanien.<br> '''Λουκᾶς, -ᾶ (nom propre) (m)''' : Luke ; Lucas.<br> '''Λουκιανός, -οῦ (nom propre) (m)''' : Lucien.<br> '''Λoυκoτοκία, -ας (nom propre) (f)''' : Lutèce.<br> '''Λουκρητία, -ας (nom propre) (f)''' : Lucrèce.<br> '''Λουκρήτιος, -ίου (nom propre) (m)''' : Lucrèce.<br> '''Λυγκεύς, -έως (nom propre) (m)''' : Lyncée.<br> '''Λυκάμϐης, -ου (nom propre) (m)''' : Lycambès.<br> '''Λυκάων, -ονος (nom propre) (m)''' : Lycaon.<br> '''Λύκειον, -ίου (nom propre) (m)''' : Lycée. (Gymnase au nord-est d’Athènes où enseigna Aristote.)<br> '''Λυκομήδης, -ου (nom propre) (m)''' : Lycomède.<br> '''Λυκόπολις, -όλεως (nom propre) (f)''' : Assiout.<br> '''Λυκοῦργος, -ύργου (nom propre) (m)''' : Lycurgue.<br> '''Λύσανδρος, -άνδρου (nom propre) (m)''' : Lysandre.<br> '''Λυσιδίκη, -ης (nom propre) (f)''' : Lysidice.<br> '''Λύσις, -δος (nom propre) (m)''' : Lysis. (œuvre de Platon)<br> '''Λῦσις, -ύσεως (nom propre) (m)''' Lysis. (philosophe grec)<br> '''Λωΐς, -δος (nom propre) (f)''' Loïs. (Personnage du Nouveau Testament : ''Timothée'', 1-5)<br> ==Μ== '''-μα, -τος (suffixe)''' : suffixe marquant des noms neutres abstraits.<br> '''μά (particule)''' : par. (Particule interjective.) (+ nom de divinité a l’accusatif)<br> '''μαγειρεῖον, -ίρου (nom commun) (n)''' : cuisine (pièce).<br> '''μαγειρεύω (verbe)''' : cuisiner.<br> '''μαγείρισσα, -ας (nom commun) (f)''' : cuisinière.<br> '''μάγειρος, -ίρου (nom commun) (m)''' : cuisinier.<br> '''μαγικός, -ή, -όν (adjectif)''' : magique.<br> '''μαγικῶς (adverbe)''' : magiquement.<br> '''μαγικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''μαγικός''.<br> '''μαγικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''μαγικός''.<br> '''μάγος, -ου (nom commun) (m)''' : Enchanteur, magicien ; sorcier.<br> '''μαδαρός, -ά, -όν (adjectif)''' : moite ; mouillé.<br> '''μαδάω (verbe)''' : être moite/mouillé.<br> '''μᾶζα, -άζης (nom commun) (f)''' : masse (tas).<br> '''μαζός, -οῦ (nom commun) (m)''' : sein.<br> '''μάθημα, -ήματος (nom commun) (n)''' : leçon.<br> '''μαθητής, -οῦ (nom commun) (m)''' : disciple.<br> '''μάθησις, -ήσεως (nom commun) (f)''' : apprentissage.<br> '''µαῖα, -ίας (nom propre) (f)''' : mère ; sage-femme.<br> '''μαίευμα, -ύµατος (nom commun) (n)''' : accouchement.<br> '''μαίευσις, -ύσεως (nom propre) (f)''' : accouchement.<br> '''μαιευτικός, -ή, -όν (adjectif)''' : maïeutique.<br> '''μαιεύομαι (verbe)''' : faire accoucher.<br> '''μαίνομαι (verbe)''' : être fou, délirer ; être enragé.<br> '''μαίομαι (verbe)''' : .<br> '''μαιμάω (verbe)''' : .<br> '''μακάριος, -ία, -άριον (adjectif)''' : béni, bienheureux ; heureux, fortuné.<br> '''μακρός, -ά, -όν (adjectif)''' : (idée d’espace) long. (idée de durée) long. (idée de quantité) Grand, fort.<br> '''μακρύς, -ιά, -ύ (adjectif)''' : long.<br> '''μαλακτήρ, -ῆρος (nom commun) (m)''' : .<br> '''μαλάκτης, -ου (nom commun) (m)''' : masseur.<br> '''μάλαξις, -άξεως (nom commun) (f)''' : massage.<br> '''μαλάσσω (verbe)''' : masser.<br> '''μᾶλον, -άλου (nom commun) (n)''' : Forme dorienne et éolienne de ''μῆλον''. (Au sens de « pomme ».)<br> '''μαλλός, -οῦ (nom commun) (m)''' : touffe de laine.<br> '''μάμμη, -ης (nom commun) (f)''' : maman.<br> '''μανδύα, -ας (nom commun) (f)''' : cape.<br> '''μανδύη, -ης (nom commun) (f)''' : Forme ionienne de ''μανδύα''.<br> '''μανθάνω (verbe)''' : Apprendre ; s’apercevoir de. (Par suite) Comprendre.<br> '''μανία, -ας (nom commun) (f)''' : Folie, démence ; enthousiasme, transport.<br> '''μανίη, -ης (nom commun) (f)''' : Forme ionienne de ''μανία''.<br> '''μᾶνις, -άνιος (nom commun) (f)''' : Forme dorienne de ''μῆνις''.<br> '''μαντεία, -ας (nom commun) (f)''' : Prédiction, oracle ; divination.<br> '''μαντείη, -ης (nom commun) (f)''' : Forme homérique de ''μαντεία''.<br> '''μαντηΐη, -ης (nom commun) (f)''' : Forme ionienne de ''μαντεία''.<br> '''μάντις, -εως (nom commun) (m) ''' : devin.<br> '''μάραθον, -άθου (nom commun) (n)''' : fenouil.<br> '''μαργαρίδης, -ου (nom commun) (m) ''' : Forme ionienne de ''μαργαρίτης''.<br> '''μαργαρίτα, -ας (nom commun) (f) ''' : marguerite.<br> '''μαργαρίτης, -ου (nom commun) (m) ''' : perle.<br> '''μαρμαίρω (verbe)''' : briller.<br> '''μαρμάρεος, -έα, -άρεον (adjectif) ''' : brillant ; fait de marbre.<br> '''μαρμάρινος, -η, -ον (adjectif) ''' : marmoréen.<br> '''μάρμαρος, -άρου (nom commun) (m)''' : marbre.<br> '''μαρμαρώδης, -ης, -ες (adjectif)''' : marbré.<br> '''μάρσιπος, -ίπου (nom commun) (m)''' : sac.<br> '''μαρσίππιον, -ίου (nom commun) (n)''' : petit sac.<br> '''μαρτυρέω (verbe)''' : .<br> '''μαρτύρημα, -ήματος (nom commun) (n)''' : témoignage.<br> '''μαρτυρία, -ας (nom commun) (f)''' : témoignage.<br> '''μαρτύριον, -ίου (nom commun) (n)''' : Témoignage, preuve. Sanctuaire dédié à un martyr.<br> '''μάρτυρ, -ος (nom commun) (m/f)''' : Forme éolienne de ''μάρτυς''.<br> '''μάρτυς, -ρος (nom commun) (m/f)''' : témoin ; témoin de Dieu.<br> '''μασδός, -οῦ (nom commun) (m)''' : Forme dorienne de ''μαζός''.<br> '''μασθός, -οῦ (nom commun) (m)''' : Forme tardive de ''μαζός''.<br> '''μάσσω (verbe)''' : pétrir, masser.<br> '''μάσταξ, -κος (nom commun) (f)''' : mâchoire.<br> '''μαστιάω (verbe)''' : Forme homérique de ''μαστίζω''.<br> '''μαστίγωσις, -ώσεως (nom commun) (f)''' : flagellation.<br> '''μαστιγῶ (verbe)''' : fouetter.<br> '''μαστίζω (verbe)''' : flageller.<br> '''μαστίσδω (verbe)''' : Forme dorienne de ''μαστίζω''.<br> '''μάστιξ, -ίγος (nom commun) (f)''' : fouet.<br> '''μαστός, -οῦ (nom commun) (m)''' : mamelle ; sein.<br> '''μασχάλη, -ης (nom commun) (f)''' : aisselle (cavité placée sous le bras).<br> '''μάταιος, -ία, -αιον (adjectif)''' : futile, vain ; frivole.<br> '''ματαιότης, -τος (nom commun) (f)''' : futilité, vanité ; frivolité.<br> '''μάτημι (verbe)''' : Forme éolienne de ''πατέω''.<br> '''μάτηρ, -ρός (nom commun) (f)''' : Forme dorienne de ''μήτηρ''.<br> '''μάττω (verbe)''' : Forme attique de ''μάσσω''.<br> '''μαυρός, -ός, -όν (adjectif)''' : Forme alternative de ''ἀμαυρός''.<br> '''μάχαιρα, -ίρας (nom commun) (f)''' : sabre.<br> '''μαχαιτάς, -δος (nom commun) (m)''' : Forme éolienne de ''μαχητής''.<br> '''μαχανά, -ᾶς (nom commun) (f)''' : Forme dorienne de ''μηχανή''.<br> '''μαχατάρ, -ος (nom commun) (m)''' : Forme laconienne de ''μαχητής''.<br> '''μαχάτας, -ου (nom commun) (m)''' : Forme dorienne de ''μαχητής''.<br> '''μαχέομαι (verbe)''' : Forme ionienne de ''μάχομαι''.<br> '''μάχη, -ῆς (nom commun) (f)''' : Combat ; bataille.<br> '''μαχητής, -οῦ (nom commun) (m)''' : combattant.<br> '''μάχλος, -ος, -ον (adjectif)''' : libertin, débauché.<br> '''μάχομαι (verbe)''' : combattre.<br> '''μᾶχος, -άχου (nom commun) (n)''' : Forme dorienne de ''μῆχος''.<br> '''μέγαθος, -άθεος (nom commun) (n)''' : Forme ionienne de ''μέγεθος''.<br> '''μεγαλομανής, -ής, -ές (adjectif)''' : mégalomane.<br> '''μέγας, -άλη, -α (adjectif)''' : grand.<br> '''μέγεθος, -έθους (nom commun) (n)''' : Grandeur, hauteur.<br> '''μεγιστάν, -ᾶνος (nom commun) (m)''' : magnat.<br> '''μέγιστος, -η, -ον (adjectif)''' : Superlatif de ''μέγας''.<br> '''μέδος, -ου (nom commun) (m)''' : hydromel.<br> '''μέδων, -οντος (nom commun) (m)''' : seigneur.<br> '''μέδω (verbe)''' : Commander, régner.<br> '''μεθίημι (verbe)''' : .<br> '''μέθυστος, -ος, -ον (adjectif)''' : ivre.<br> '''μέθυ, -ος (nom commun) (n)''' : vin.<br> '''μεθύω (verbe)''' : être ivre.<br> '''μεῖγμα, -ίγματος (nom commun) (n)''' : mixture.<br> '''μείζων, -ων, -ον (adjectif)''' : Comparatif de ''μέγας''.<br> '''μεῖξις, -ίξεως (nom commun) (f)''' : .<br> '''μεῖλον, -ίλου (nom commun) (n)''' : Forme béotienne de ''μῆλον''. (Au sens de « petit bétail ».)<br> '''μεῖραξ, -ίρακος (nom commun) (m/f)''' : jeune fille ; jeune garçon.<br> '''μείρομαι (verbe)''' : attribuer ; prendre.<br> '''μείωσις, -ώσεως (nom commun) (f)''' : réduction.<br> '''μειῶ (verbe)''' : réduire.<br> '''μελάμπυγος, -ος, -ον (adjectif)''' : Qui a les fesses noires.<br> '''μελάντατος, -άτη, -άντατον (adjectif)''' : Superlatif de ''μέλας''.<br> '''μελάντερος, -έρα, -άντερον (adjectif)''' : Comparatif de ''μέλας''.<br> '''μελάνως (adverbe)''' : en noir.<br> '''μέλας, -αινα, -αν (adjectif)''' : noir ; sombre.<br> '''μελεαγρίς, -δος (nom commun) (f)''' : pintade.<br> '''μελετηρός, -ή, -όν (adjectif)''' : studieux.<br> '''μελετῶ (verbe)''' : étudier.<br> '''μελία, -ας (nom commun) (f)''' : frêne.<br> '''μελίζω (verbe)''' : moduler, chanter.<br> '''μελίη, -ης (nom commun) (f)''' : Forme ionienne de ''μελία''.<br> '''μέλι, -τος (nom commun) (f)''' : miel.<br> '''μέλισσα, -ης (nom commun) (f)''' : abeille.<br> '''μέλος, -ους (nom commun) (n)''' : Membre, articulation. Chant. <br> '''μελῳδία, -ας (nom commun) (f)''' : mélodie.<br> '''μελῳδικός, -ή, -όν (adjectif)''' : mélodieux.<br> '''μελῳδός, -ή, -όν (adjectif)''' : musical.<br> '''μέλω (verbe)''' : être un objet de soin ; prendre soin de ; (impersonnel) être un sujet de souci.<br> '''μέλλων, -οντος (nom commun) (m)''' : futur.<br> '''μέμψις, -εως (nom commun) (f)''' : blâme ; censure.<br> '''μέμφομαι (verbe)''' : reprocher.<br> '''μέν (particule)''' : .<br> '''μένος, -ους (nom commun) (n)''' : Esprit. Courage, cœur, ardeur, volonté. Désir. Force, violence.<br> '''μέντοι (particule)''' : cependant.<br> '''μένω (verbe)''' : rester, demeurer. Attendre<br> '''μερίς, -δος (nom commun) (f)''' : part.<br> '''μέρος, -ους (nom commun) (n)''' : partie.<br> '''μεσαιπόλιος -ος, -ον (adjectif)''' : .<br> '''µεσοστιχίς, -δος (nom commun) (f)''' : mésostiche.<br> '''μέσος, -η, -ον (adjectif)''' : médian.<br> '''μέσος, -ου (nom commun) (m)''' : majeur.<br> '''μεστός, -ή, -όν (adjectif)''' : plein.<br> '''μεστῶς (adverbe)''' : pleinement.<br> '''μεστώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''μεστός''.<br> '''μεστώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''μεστός''.<br> '''μεστῶ (verbe)''' : être plein.<br> '''μέσως (adverbe)''' : au milieu de.<br> '''μεσώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''μέσος''.<br> '''μεσώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''μέσος''.<br> '''μεσηγύ (adverbe)''' : au milieu.<br> '''μετά (adverbe)''' (Devient ''μετ’'' devant un mot commençant par une voyelle à esprit doux, et ''μεθ’'' devant un mot commençant par une voyelle à esprit rude.) : Au milieu, parmi.<br> '''μετα- (préfixe)''' : .<br> '''μεταϐαίνω (verbe)''' : changer ; dépasser.<br> '''μετάϐασις, -άσεως (nom commun) (f)''' : changement ; dépassement.<br> '''μεταϐίϐασις, -άσεως (nom commun) (f)''' : transfert ; transmission.<br> '''μεταϐιϐάζω (verbe)''' : transférer ; transmettre.<br> '''μεταγιγνώσκω (verbe)''' : regretter.<br> '''μετακινῶ (verbe)''' : .<br> '''μεταμέλεια, -ας (nom commun) (f)''' : repentir.<br> '''μεταμέλω (verbe)''' : se repentir.<br> '''μεταμόρφωσις, -ώσεως (nom commun) (f)''' : transformation.<br> '''μετάνοια, -ίας (nom commun) (f)''' : repentance ; pénitence.<br> '''μετανοῶ (verbe)''' : faire pénitence.<br> '''μέταξα, -άξης (nom commun) (f)''' : soie.<br> '''µεταξύ (préposition)''' : entre.<br> '''μεταφέρω (verbe)''' : transporter.<br> '''μεταφορά, -άς (nom commun) (f)''' : transport.<br> '''μεταφράζω (verbe)''' : traduire.<br> '''μετάφρασις, -άσεως (nom commun) (f)''' : traduction.<br> '''μετέωρος, -ος, -ον (adjectif)''' : élevé.<br> '''μέτοικος, -ίκου (nom commun) (m/f)''' : Individu étranger à une cité.<br> '''μετεωρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''μετέωρος''.<br> '''μετεωρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''μετέωρος''.<br> '''μετεωρότατα (adverbe)''' : Superlatif de ''μετεώρως''.<br> '''μετεωρότερον (adverbe)''' : Comparatif de ''μετεώρως''.<br> '''μετεώρως (adverbe)''' : de façon élevée.<br> '''μέτρον, -ου (nom commun) (n)''' : mesure.<br> '''μέτωπον, -ώπου (nom commun) (n)''' : front.<br> '''μέχρι (conjonction)''' : jusqu'à ce que.<br> '''μηδέν (adjectif numéral)''' : zéro.<br> '''μηδέποτε (adverbe)''' : jamais.<br> '''μηδικός, -ή, -όν (adjectif)''' : mède.<br> '''μῆδος, -ήδους (nom commun) (n)''' : mesure.<br> '''μή (particule)''' : non (subjectif).<br> '''μηλίτης, -ου (nom commun) (m)''' : cidre.<br> '''μῆλον, -ήλου (nom commun) (n)''' : Petit bétail ; pomme.<br> '''μηνιαῖος, -ία -ῖον (suffixe)''' : mensuel.<br> '''μηναιότατος, -άτη, -ότατον (suffixe)''' : Forme superlative de ''μηνιαῖος''.<br> '''μηναιότερος, -έρα, -ότερον (suffixe)''' : Forme comapartive de ''μηνιαῖος''.<br> '''μηναίως (suffixe)''' : mensuellement.<br> '''μήνη, -ης (nom commun) (f)''' : mère.<br> '''μῆνιγξ, -ήνιγγος (nom commun) (f)''' : membrane.<br> '''μῆνις, -ήνιος (nom commun) (f)''' : colère.<br> '''μήν, -ός (nom commun) (m)''' : mois.<br> '''μηριαῖος, -ία, -ῖον (adjectif)''' : fémural.<br> '''μηρóς, -οῦ (nom commun) (m)''' : côté, flanc ; cuisse, fémur.<br> '''μήτηρ, -ρός (nom commun) (f)''' : mère.<br> '''μητιάω (verbe)''' : ruse.<br> '''μητιόεις, -εσσα, -εν (adjectif)''' : .<br> '''μῆτις, -ήτεως (nom commun) (f)''' : ruse.<br> '''μήτις, -ις, -ι (pronom)''' : personne.<br> '''μήτρα, -ας (nom commun) (f)''' : matrice ; ventre ou sein de la mère.<br> '''μήτρη, -ης (nom commun) (f)''' : Forme ionienne de ''μήτρα''.<br> '''μητροκτονία, -ας (nom commun) (m)''' : matricide.<br> '''μητροκτόνος, -ου (nom commun) (m)''' : matricide.<br> '''μητρυιά, -ᾶς (nom commun) (f)''' : belle-mère.<br> '''μητρυιός, -οῦ (nom commun) (m)''' : beau-père.<br> '''μηχανή, -ῆς (nom commun) (f)''' : machine ; engin. Invention.<br> '''μηχανικός, -ή, -όν (f)''' : mécanique ; ingénieux.<br> '''μηχανικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''μηχανικός''.<br> '''μηχανικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''μηχανικός''.<br> '''μηχανικῶς (adverbe)''' : mécaniquement ; ingénieusement.<br> '''μῆχος, -ήχους (nom commun) (n)''' : .<br> '''μιαίνω (verbe)''' : Salir, souiller, polluer, profaner, teindre, colorer.<br> '''μιαρός, -ά, -όν (adjectif)''' : impur.<br> '''μίασμα, -άσματος (nom commun) (n)''' : Souillure provenant d’un meurtre. Personne souillée d’un meurtre.<br> '''μιασμός, -οῦ (nom commun) (m)''' : Action de salir, souiller, tacher ; deuil, vêtements salis en signe de deuil, teinture.<br> '''μίγδην (adverbe)''' : confusément.<br> '''μῖγμα, -ίγματος (nom commun) (n)''' : .<br> '''μικρός, -ά, -όν (adjectif)''' : petit.<br> '''μικρός, -οῦ (nom commun) (m)''' : auriculaire.<br> '''μικρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''μικρός''.<br> '''μικρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''μικρός''.<br> '''μικρῶς (adverbe)''' : .<br> '''μιμάς, -δος (nom commun) (f)''' : actrice.<br> '''μιμεῖσθαι (verbe)''' : imiter.<br> '''μίμημα, -ήματος (nom commun) (n)''' : Imitation, copie ; contrefaçon.<br> '''μίμησις, -ήσεως (nom commun) (f)''' : Imitation, représentation.<br> '''μιμητικός, -ή, -όν (adjectif)''' : représentatif.<br> '''μιμητικῶς (adverbe)''' : représentativement.<br> '''μιμητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''μιμητικός''.<br> '''μιμητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''μιμητικός''.<br> '''μιμητικώτατα, -, - (adverbe)''' : Superlatif de ''μιμητικῶς''.<br> '''μιμητικώτερον, -, - (adverbe)''' : Comparatif de ''μιμητικῶς''.<br> '''μιμναίσκω (verbe)''' : Forme éolienne de ''μιμνήσκω''.<br> '''μιμνήσκω (verbe)''' : Rappeler à la mémoire. Rappeler une chose, mentionner.<br> '''μῖμος, -ίμου (nom commun) (m)''' : acteur.<br> '''μιμοῦμαι (verbe)''' : mimer.<br> '''μίνθη, -ης (nom commun) (f)''' : menthe.<br> '''µινώταυρος, -ύρου (nom commun) (m)''' : minotaure.<br> '''μισανδρία, -ας (nom commun) (f)''' : misandrie.<br> '''μισάνδρος, -ος, -ον (adjectif)''' : misandre.<br> '''μισανθρωπία, -ας (nom commun) (f)''' : misanthropie.<br> '''μισάνθρωπος, -ος, -ον (adjectif)''' : misanthropie.<br> '''μισθός, -οῦ (nom commun) (m)''' : salaire.<br> '''μισθοφόρος, -ου (nom commun) (m)''' : mercenaire.<br> '''μισογύνης, -ου (nom commun) (m)''' : matcho.<br> '''μισογυνία, -ας (nom commun) (f)''' : misogynie.<br> '''μῖσος, -ίσους (nom commun) (n)''' : Haine, aversion ; objet de haine.<br> '''μισῶ (verbe)''' : détester, haïr.<br> '''μίτος, -ου (nom commun) (m)''' : fil.<br> '''μίτωσις, -ώσεως (nom commun) (f)''' : mitose.<br> '''μνᾶ, -ᾶς (nom commun) (f)''' : mine (monnaie).<br> '''μνᾶμα, -άματος (nom commun) (n)''' : Forme dorienne de ''μνῆμα''.<br> '''μνάμων, -ων, -ον (adjectif)''' : Forme dorienne de ''μνήμων''.<br> '''μνάομαι (verbe)''' : .<br> '''μναστήρ, -ῆρος (nom commun) (m)''' : Forme dorienne de ''μνηστήρ''.<br> '''μνᾶστις, -άστεως (nom commun) (f)''' : Forme dorienne de ''μνῆστις''.<br> '''μνῆμα, -ήματος (nom commun) (n)''' : tombe.<br> '''μνημεῖον, -ίου (nom commun) (n)''' : monument.<br> '''μνημήιον, -ίου (nom commun) (n)''' : Forme dorienne de ''μνημεῖον''.<br> '''μνήμων, -ων, -ον (adjectif)''' : .<br> '''μνηστήρ, -ῆρος (nom commun) (m)''' : prétendant.<br> '''μνῆστις, -ήστεως (nom commun) (f)''' : .<br> '''µvοῦς, -οῦ (nom commun) (m)''' : chatte (sexe féminin).<br> '''μόγις (adverbe)'''' : à peine.<br> '''μόγος, -ου (nom commun) (m)''' : peine ; labeur.<br> '''μόλις (adverbe)''' : Variante de ''μόγις''.<br> '''µοῖρα, -ίρας (nom commun) (f)''' : part ; portion. Parti politique.<br> '''μοιχαλίς, -δος (nom commun) (f)''' : adultère (celle qui la commet).<br> '''μοιχεία, -ας (nom commun) (f)''' : adultère.<br> '''μοιχεύω (verbe)''' : commettre l’adultère.<br> '''μοιχός, -οῦ (nom commun) (m)''' : adultère (celui qui la commet).<br> '''μόλυϐδος, -ύϐδου (nom commun) (m)''' : plomb.<br> '''μόλυνσις, -ύνσεως (nom commun) (f)''' : infection.<br> '''μομφή, -ῆς (nom commun) (f)''' : reproche.<br> '''μονάς, -δος (nom commun) (f)''' : unité.<br> '''μοναχεῖον, -ίου (nom commun) (n)''' : monastère.<br> '''μοναχός, -οῦ (nom commun) (m)''' : moine.<br> '''μονή, -ῆς (nom commun) (f)''' : action de s’arrêter ; lieu où l’on séjourne.<br> '''μονόκερως, -έρωτος (nom commun) (f)''' : licorne.<br> '''μονομαχεῖον, -ίου (nom commun) (n)''' : lieu de duel.<br> '''μονομαχέω (verbe)''' : se battre en duel.<br> '''μονομαχία, -ας (nom commun) (f)''' : duel.<br> '''μονομάχος, -ου (nom commun) (m)''' : duelliste.<br> '''μονόφθογγος, -όγγου (nom commun) (f)''' : monophtongue.<br> '''μόνος, -η, -ον (adjectif)''' : Seul, unique ; solitaire.<br> '''μόνϝος, -η, -ον (adjectif)''' : Forme ancienne de ''μόνος''.<br> '''μονῳδία, -ας (nom commun) (f)''' : .<br> '''μόνως (adverbe)''' : uniquement.<br> '''μονώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''μόνος''.<br> '''μονώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''μόνος''.<br> '''μορμολύκα, -ας (nom commun) (f)''' : Forme dorienne de ''μορμολύκη''.<br> '''μορμολυκεῖον, -ίου (nom commun) (n)''' : croque-mitaine.<br> '''μορμολύκη, -ης (nom commun) (f)''' : .<br> '''μορμωτός, -ή, -όν (adjectif)''' : effroyable.<br> '''μορμῶ -οῦς (nom commun) (m)''' : monstre marin.<br> '''μορφή, -ῆς (nom commun) (f)''' : forme.<br> '''μόρφωσις, -ώσεως (nom commun) (f)''' : formation.<br> '''μορφῶ (verbe)''' : former.<br> '''μόσχευμα, -ύματος (nom commun) (n)''' : plant.<br> '''μοσχεύω (verbe)''' : planter.<br> '''μοσχοκαρύδιον, -ίου (nom commun) (n)''' : Diminutif de ''μοσχοκάρυον''.<br> '''μοσχοκάρυον, -ύου (nom commun) (n)''' : noix de muscade.<br> '''μόσχος, -ου (nom commun) (m)''' : Musc ; pousse.<br> '''μοχθηρός, -ά, -όν (adjectif)''' : malveillant ; souffrant.<br> '''μοχθηρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''μοχθηρός''.<br> '''μοχθηρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''μοχθηρός''.<br> '''μοχθηρῶς, -ά, -όν (adverbe)''' : .<br> '''μόχθος, -ου (nom commun) (m)''' : peine ; labeur.<br> '''μοχθῶ (verbe)''' : être malveillant.<br> '''μουνάς, -δος (nom commun) (f)''' : Forme ionienne de ''μονάς''.<br> '''μοῦνος, -ύνη, -ῦνον (adjectif)''' : Forme homérique et ionienne de ''μόνος''.<br> '''μῶλυ, -ώλυος (nom commun) (n)''' : moly.<br> '''μῶνος, -η, -ον (adjectif)''' : Forme dorienne de ''μόνος''.<br> '''μορμολύκειον, -ίου (nom commun) (n)''' : masque.<br> '''μορφή, -ῆς (nom commun) (f)''' : forme.<br> '''μόρφωσις, -ώσεως (nom commun) (f)''' : formation.<br> '''μουσεῖον, -ίου (nom commun) (n)''' : musée.<br> '''μούσμων, -ονος (nom commun) (m)''' : mouflon.<br> '''μυδάω (verbe)''' : être moite.<br> '''μυγαλῆ, -ς (nom commun) (f)''' : musaraigne.<br> '''μύγις (adverbe)''' : Forme éolienne de ''μόγις''.<br> '''μυελός, -οῦ (nom commun) (m)''' : moelle.<br> '''μυζῶ (verbe)''' : sucer.<br> '''μυθικός, -ή, -όν (adjectif)''' : mythique.<br> '''μυθιστορία, -ας (nom commun) (f)''' : légende.<br> '''μυθιστορικός, -ή, -όν (adjectif)''' : légendaire.<br> '''μῦθος, -ύθου (nom commun) (m)''' : mythe.<br> '''μυῖα, -ίας (nom commun) (f)''' : mouche.<br> '''μύκης, -τος (nom commun) (m)''' : Champignon. (Par analogie) Toute excroissance fougueuse. Champignon que se forme à la mèche d’une lampe. Virole d’une gaine. Membre viril.<br> '''μυκτήρ, -ῆρος (nom commun) (m)''' : museau.<br> '''μύλη, -ης (nom commun) (f)''' : moulin.<br> '''μυλεργάτης, -ου (nom commun) (m)''' : meunier.<br> '''μυλών, -ῶνος (nom commun) (m)''' : meunier.<br> '''μύξα, -ας (nom commun) (f)''' : morve.<br> '''μυρίαπους, -δος (nom commun) (m)''' : mille-pattes.<br> '''μυριάς, -δος (nom commun) (f)''' : .<br> '''μυρίος, -α, -ον (adjectif)''' : Innombrable, immense ; infini.<br> '''μύρμηξ, -κος (nom commun) (m)''' : fourmi.<br> '''μυροϐάλανος, -άνου (nom commun) (f)''' : myrobolan.<br> '''μύρος, -ου (nom commun) (m)''' : parfum.<br> '''μυρσίνα, - (nom commun) (f)''' : myrtille.<br> '''μύρτος, -ου (nom commun) (f)''' : myrtille.<br> '''μῦς, -ός (nom commun) (m)''' : Rat ; souris. Muscle.<br> '''μύσταξ, -κος (nom commun) (f)''' : Forme dorienne de ''μάσταξ'' ; moustache.<br> '''μυστήριον, -ίου (nom commun) (n)''' : sacrement.<br> '''μυστηριώδης, -ης, -ες (adjectif)''' : relatif aux sacrements.<br> '''μυστικός, -ή, -όν (adjectif)''' : secret.<br> '''μυστικῶς (adverbe)''' : secrètement.<br> '''μυστικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''μυστικός''.<br> '''μυστικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''μυστικός''.<br> '''µῦ (nom commun) (n)''' : mu.<br> '''μύχιος, -α, -ον (adjectif)''' : intime.<br> '''μυχός, -οῦ (nom commun)''' : cœur.<br> '''μῶλυ, -ώλυος (nom commun) (n)''' : moly.<br> '''μῶμαι (verbe)''' : méditer.<br> '''μῶμος, -ώμου (nom commun) (m)''' : blâme.<br> '''μῶνυξ, -ώνυχος (nom commun) (m)''' : .<br> '''μωρός, -ά, -όν (adjectif)''' : Émoussé, hébété. Fade, Insipide. Sot, fou, insensé.<br> '''μῶρος, -ώρα, -ῶρον (adjectif)''' : Forme attique de ''μωρός''.<br> '''Μάατ (nom propre) (f)''' : Maât.<br> '''Μαθθαῖος, -ίου (nom propre) (m)''' : Forme alternative de ''Ματθαῖος''.<br> '''Μαθουσάλα, -ας (nom propre) (m)''' : Mathusalem.<br> '''Μαῖα, -ίας (nom propre) (f)''' : Maïa.<br> '''Μαῖρα, -ίρας (nom propre) (f)''' : Maera.<br> '''Μακάριος, -ίου (nom propre) (m)''' : Macaire.<br> '''Μακαρία, -ας (nom propre) (f)''' : Macaria.<br> '''Μάνης, -ου (nom propre) (m)''' : Mani (prophète).<br> '''Μαντώ, -οῦς (nom propre) (f)''' : Manto.<br> '''Μάξυος, -ου (nom commun) (m)''' : Berbère.<br> '''Μαραθών, -ῶνος (nom propre) (m)''' : Marathon.<br> '''Μαργαρίτα, -ας (nom commun) (f) ''' : Marguerite.<br> '''Μαρδοχαῖος, -ίου (nom propre) (m)''' : Mardochée.<br> '''Μάρθα, -ας (nom propre) (f)''' : Martha.<br> '''Μαρία, -ας (nom propre) (f)''' : Marie.<br> '''Μασσαλία, -ας (nom propre) (f)''' : Marseille.<br> '''Μασσαλιώτης, -ου (nom commun) (m)''' : Marseillais.<br> '''Μασσαλιῶτις, -ώτιδα (nom commun) (f)''' : Marseillaise.<br> '''Μαῦρος, -ύρου (nom commun) (m)''' : Maure.<br> '''Μαυσωλεῖον, -ίου (nom propre) (m)''' : Mausolée.<br> '''Μαύσωλος, -ώλου (nom propre) (m)''' : Mausole.<br> '''Ματθαῖος, -ίου (nom propre) (m)''' : Matthieu.<br> '''Μέγαιρα, -ίρας (nom propre) (f)''' : Mégère (une des Érynies).<br> '''Μέδουσα, -ας (nom propre) (f)''' : Méduse.<br> '''Μελέαγρος, -άγρου (nom propre) (m)''' : Méléagre.<br> '''Μελησιγενής, -οῦ (nom propre) (m)''' : Mélésigène.<br> '''Μέλης (nom propre) (m)''' : Mélès (rivière).<br> '''Μελέτη, -ης (nom propre) (f)''' : Mélété.<br> '''Μέλισσα, -ίσσης (nom propre) (f)''' : Mélissa.<br> '''Μελίτη, -ης (nom propre) (f)''' : Mélite.<br> '''Μελπομένη, -ης (nom propre) (f)''' : Melpomène.<br> '''Μελχισέδεκ (nom propre) (m)''' : Melchisédech.<br> '''Μέμφις, -δος (nom propre) (f)''' : Memphis.<br> '''Μενίππη, -ης (nom propre) (f)''' : Ménippe.<br> '''Μένιππος, -ίππου (nom propre) (m)''' : Ménippe.<br> '''Μεχείρ (nom commun) (m)''' : Méchir.<br> '''Μήδεια, -ίας (nom propre) (f)''' : Médée.<br> '''Μηδία, -ας (nom propre) (f)''' : Médie.<br> '''Μῆδος, -ήδου (nom commun) (m)''' : Mède.<br> '''Μηλινόη, -ης (nom propre) (f)''' : Mélinoé.<br> '''Μῆτις, -ήτιδος (nom propre) (f)''' : [[wikt:Métis|Métis]].<br> '''Μίδας, -ου (nom propre) (m)''' : Midas.<br> '''Μίθρας, -ου (nom propre) (m)''' : Mithra.<br> '''Μίθρης, -ου (nom propre) (m)''' : Forme ionienne de ''Μίθρας''.<br> '''Μιθριδάτης, -ου (nom propre) (m)''' : Mithridate.<br> '''Μιχαίας, -ου (nom propre) (m)''' : Michée.<br> '''Μίνως, -ωος (nom propre) (m)''' : Minos.<br> '''Μίσφρης, -ου (nom propre) (m)''' : Menkhéperrê.<br> '''Μνεῦις, -ύιδος (nom propre) (m)''' : Mnévis.<br> '''Μοῖρα, -ίρας (nom propre) (f)''' : Moire.<br> '''Μοῖσα, -ίσης (nom propre) (f)''' : Forme éolienne de ''Μοῦσα''.<br> '''Μόνοικος, -ίκου (nom propre) (f)''' : Monaco.<br> '''Μορμώ, -οῦς (nom propre) (f)''' : Mormo.<br> '''Μορφεύς, -έως (nom propre) (m)''' : [[wikt:Morphée|Morphée]].<br> '''Μοῦσα, -ύσης (nom propre) (f)''' : Muse.<br> '''Μοϋσῆς, -έως (nom propre) (m)''' : Forme alternative de ''Μωϋσῆς''.<br> '''Μυκερίνος, -ου (nom propre) (m)''' : Mykérinos.<br> '''Μύρμηξ, -ηκος (nom propre) (f)''' : Myrmex.<br> '''Μῶμος, -ώμου (nom propre) (m)''' : Momos.<br> '''Μωσῆς, -έως (nom propre) (m)''' : Forme alternative de ''Μωϋσῆς''.<br> '''Μωϋση, -ης (nom propre) (m)''' : Forme alternative de ''Μωϋσῆς''.<br> '''Μωϋσῆς, -έως (nom propre) (m)''' : Moïse.<br> '''Μῶσα, -ώσης (nom propre) (f)''' : Forme dorienne de ''Μοῦσα''.<br> '''Μῶἁ, -ἁς (nom propre) (f)''' : Forme laconienne de ''Μοῦσα''.<br> ==Ν== '''ναϝός, -οῦ (nom commun) (m)''' : Forme laconienne de ''ναός''.<br> '''ναί (particule)''' : oui.<br> '''ναίχι (adverbe)''' : certes.<br> '''ναίω (verbe)''' : Habiter. Héberger. Construire ; s’installer quelque part.<br> '''νᾶνος, -άνου (nom commun) (m)''' : nain.<br> '''ναός, -οῦ (nom commun) (m)''' : temple.<br> '''νᾶπυ, -άπυος (nom commun) (f)''' : moutarde (plante).<br> '''νάρθηξ, -κος (nom commun) (f)''' : férule.<br> '''ναρθηκοφόρος, -ου (nom commun) (m)''' : licteur.<br> '''νάρκη, -ης (nom commun) (f)''' : torpeur.<br> '''νάρκωσις, -όσεως (nom commun) (f)''' : engourdissement.<br> '''ναρκωτικός, -ή, -όν (adjectif)''' : engourdissant.<br> '''ναρκῶ (verbe)''' : engourdir.<br> '''νάσσω (verbe)''' : Presser, fouler. Bourrer, emplir ; encombrer.<br> '''ναύκληρος, -ήρου (nom commun) (m)''' : .<br> '''ναῦος, -ύου (nom commun) (m)''' : Forme éolienne de ''ναός''.<br> '''ναῦς, -εώς (nom commun) (f)''' : navire.<br> '''ναυτικός, -ή, -όν (adjectif)''' : marin.<br> '''ναύτης, -ου (nom commun) (m)''' : marin.<br> '''νάφθα, -ης (nom commun) (f)''' : naphte.<br> '''νεανιεία, -ας (nom commun) (f)''' : jouvence.<br> '''νεανίας, -ου (nom commun) (m)''' : jouvenceau.<br> '''νεᾶνις, -άνιδος (nom commun) (f)''' : jouvencelle.<br> '''νεανιεύομαι (verbe)''' : .<br> '''νεανίζω (verbe)''' : .<br> '''νεηνίης, -ου (nom commun) (m)''' : Forme homérique et ionienne de ''νεανίας''.<br> '''νεῆνις, -ήνιδος (nom commun) (f)''' : Forme homérique et ionienne de ''νεᾶνις''.<br> '''νεῖκος, -ίκους (nom commun) (n)''' : Bataille ; combat.<br> '''νεῖλος, -ίλου (nom commun) (m)''' : rivière de vallée.<br> '''νεῖος, -ία, -ῖον (adjectif)''' : Forme ionienne de ''νέος''.<br> '''νεκραγωγός, -οῦ (nom commun) (m)''' : nécragogue.<br> '''νεκρός, -οῦ (nom commun) (m)''' : mort, cadavre.<br> '''νεκροψία, -ας (nom commun) (f)''' : nécropsie.<br> '''νεκυαγωγός, -οῦ (nom commun) (m)''' : nékyagogue.<br> '''νεκυάμϐατος, -άτου (nom commun) (m)''' : .<br> '''νεκυδαίμων, -ονος (nom commun) (m)''' : .<br> '''νεκυηπόλος, - (nom commun) (m)''' : .<br> '''νέκυια, -ίας (nom commun) (f)''' : descente aux Enfers.<br> '''νεκυοδαίμων, -ονος (nom commun) (m)''' : .<br> '''νεκυομαντεῖον, -ίου (nom commun) (n)''' : nékyomantien.<br> '''νεκυοπομπός, -οῦ (nom commun) (m)''' : nékyopompe.<br> '''νέκυς, -ος (nom commun) (m)''' : mort.<br> '''νάννα, -ας (nom commun) (f)''' : tante.<br> '''νέμος, -ους (nom commun) (n)''' : clairière.<br> '''νέμω (verbe)''' : Distribuer, partager, attribuer une part, diviser, découper. Attribuer à un troupeau la partie du pâturage où on le mène paître. Habiter. Occuper, détenir. Conduire, gouverner, administrer. Tenir pour, regarder comme (avec double accusatif). (Par suite) Choisir pour, admettre comme.<br> '''νέννος, -ου (nom commun) (m)''' : oncle.<br> '''νέομαι (verbe)''' : arriver.<br> '''νεοσσιά, -ᾶς (nom commun) (f)''' : nid.<br> '''νεοσσός, -οῦ (nom commun) (m)''' : oisillon, poussin.<br> '''νέος, -α, -ον (adjectif)''' : Nouveau ; jeune. Neuf.<br> '''νευρόσπαστον, -ου (nom commun) (n)''' : marionnette.<br> '''νεῦρον, -ύρου (nom commun) (n)''' : Fibre ; nerf.<br> '''νευρώδης, -ης, -ες (adjectif)''' : nerveux.<br> '''νεῦσις, -ύσεως (nom commun) (f)''' : nœud.<br> '''νεύω (verbe)''' : hocher la tête.<br> '''νέφος, -ους (nom commun) (n)''' : nuage.<br> '''νεφρῖτις, -ίτης (nom commun) (f)''' : néphrite (maladie).<br> '''νεφρός, -οῦ (nom commun) (m)''' : rein.<br> '''νεώς, -ώ (nom commun) (m)''' : Forme attique de ''ναός''.<br> '''νέω (verbe)''' : Flotter ; filer la laine.<br> '''νή (particule)''' : par. (Particule interjective.) (+ nom de divinité a l’accusatif)<br> '''νῆμα, -ήματος (nom commun) (n)''' : fil.<br> '''νηματικός, -ή, -όν (adjectif)''' : .<br> '''νηματώδης, -ης, -ες (adjectif)''' : fibreux.<br> '''νηός, -οῦ (nom commun) (m)''' : Forme ionienne de ''ναός''.<br> '''νήπιον, -ίου (nom commun) (n)''' : bébé.<br> '''νήπιος, -ίου (nom commun) (m)''' : bébé.<br> '''νήριον, -ίου (nom commun) (n)''' : laurier-rose.<br> '''νῆσσα, -ήσσης (nom commun) (f)''' : canard.<br> '''νηστεία, -ας (nom commun) (f)''' : jeûne.<br> '''νηστεύω (verbe)''' : jeûner.<br> '''νῆττα, -ήττης (nom commun) (f)''' : Forme attique de ''νῆσσα''.<br> '''νίζω (verbe)''' : nettoyer.<br> '''νικέω (verbe)''' : Forme ionienne de ''νικῶ''.<br> '''νίννη, -ης (nom commun) (f)''' : grand-mère ; belle-mère.<br> '''νίκη, -ης (nom commun) (f)''' : victoire.<br> '''νικῶ (verbe)''' : vaincre.<br> '''νιπτήρ, -ῆρος (nom commun) (m)''' : lavabo.<br> '''νίπτω (verbe)''' : Variante de ''νίζω''.<br> '''νίφω (verbe)''' : neiger.<br> '''νίψ, -φος (nom commun) (f)''' : neige.<br> '''νόημα, -ήµατος (nom commun) (n)''' : Source de la pensée ; intelligence. Pensée (chose).<br> '''νόησις, -ήσεως (nom commun) (f)''' : pensée (processus).<br> '''νοητικός, -ή, -όν (adjectif)''' : Mental ; intellectuel.<br> '''νοητικῶς (adverbe)''' : Mentalement ; intellectuellement.<br> '''νοητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''νοητικός''.<br> '''νοητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''νοητικός''.<br> '''νοητικώτατα, -, - (adverbe)''' : Superlatif de ''νοητικῶς''.<br> '''νοητικώτερον, -, - (adverbe)''' : Comparatif de ''νοητικῶς''.<br> '''νοητός, -ή, -όν (adjectif)''' : pensable.<br> '''νοητῶς (adverbe)''' : .<br> '''νοητώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''νοητός''.<br> '''νοητώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''νοητός''.<br> '''νομάς, -δος (nom commun) (m/f)''' : nomade.<br> '''νομοθέτης, -ου (nom commun) (m)''' : législateur.<br> '''νόμος, -ου (nom commun) (m)''' : Ce qui est attribué en partage. (Par suite) Opinion générale. Maxime. Règle de conduite.<br> '''νομός, -οῦ (nom commun) (m)''' : Part, portion. (Par extension) Division de territoire. Pâturage, pacage. Herbe, fourrage.<br> '''νόννος, -ου (nom commun) (m)''' : grand-père ; beau-père.<br> '''νόος, -ου (nom commun) (m)''' : Faculté de penser.<br> '''νόσημα, -ήματος (nom commun) (n)''' : infirmité ; fléau.<br> '''νοσοκομεῖον, -ίου (nom commun) (n)''' : hôpital.<br> '''νοσοκόμος, -ος, -ν (adjectif)''' : soignant<br> '''νόσος, -ου (nom commun) (f)''' : maladie.<br> '''νότιος, -ία, -ιον (adjectif)''' : méridional.<br> '''νοτιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''νότιως''.<br> '''νοτιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''νότιως''.<br> '''νοτιώτατα, -, - (adverbe)''' : Superlatif de ''νότιως''.<br> '''νοτιώτερον, -, - (adverbe)''' : Comparatif de ''νότιως''.<br> '''νότιως (adverbe)''' : méridionalement.<br> '''νότος, -ου (nom commun) (m)''' : sud.<br> '''νουθετέω (verbe)''' : Admonester ; avertir. Conseiller.<br> '''vοῦς, -οῦ (nom commun) (m)''' : Variante de ''νόος''.<br> '''νοῶ (verbe)''' : Penser. Percevoir, noter, observer. Ourdir. Avoir l’intention de. (Linguistique) Signifier, en parlant des mots.<br> '''νυκτάλωψ, -πία (nom commun) (f)''' : nyctalopie.<br> '''νυκτερίς, -δος (nom commun) (f)''' : chauve-souris.<br> '''νύκτερος, -ος, -ον (adjectif)''' : nocturne.<br> '''νύμφα, -ῦμφας''' : Forme dorienne de ''νύμφη''.<br> '''νύμφη, -ης (nom commun) (f)''' : nymphe.<br> '''νυμφόληπτος, -ος, -ον (adjectif)''' : .<br> '''νυμφιάω (verbe)''' : Être possédé des nymphes ; être en délire.<br> '''νυμφομανία, -ας (nom commun) (n)''' : nymphomanie.<br> '''νῦν (adverbe)''' : maintenant.<br> '''νύξ, -κτός (nom commun) (f)''' : nuit.<br> '''νυός, -οῦ (nom commun) (f)''' : belle-fille.<br> '''νῦ (nom commun) (n)''' : nu.<br> '''νῶμα, -ώματος (nom commun) (n)''' : Forme ionienne de ''νόημα''.<br> '''νωπός, -ή, -όν (adjectif)''' : frais.<br> '''νῶσις, -ώσεως (nom commun) (f)''' : Forme ionienne de ''νόησις''.<br> '''νωτίζω (verbe)''' : tourner le dos.<br> '''νῶτον, -ώτου (nom commun) (n)''' : (Anatomie) Derrière, dos. (Figuré) Large surface courbe (mer, ciel).<br> '''νωτοστροφέω (verbe)''' : tourner le dos.<br> '''νώ (pronom personnel)''' : nous (nous deux).<br> '''Ναϐαταῖος, -ίου (nom commun) (m)''' : Nabatéen.<br> '''Ναϐατηνή, -ῆς (nom propre) (f)''' : Nabatea.<br> '''Ναϊάς, -δος (nom propre) (f)''' : Naïade.<br> '''Νάρκισσος, -ίσσου (nom propre) (m)''' : Narcisse.<br> '''Ναυσίθοος, - (nom propre) (m)''' : Nausithoos.<br> '''Ναυσικάα, -ας (nom propre) (f)''' : Nausicaa.<br> '''Ναυσίνοoς, - (nom propre) (m)''' : Nausinoos.<br> '''Νέαιρα, -ίρας (nom propre) (f)''' : Nérée.<br> '''Νεάπολις, -όλεως (nom propre) (f)''' : Naples.<br> '''Νεῖλος, -ίλου (nom propre) (m)''' : Nil.<br> '''Νειλῶτις, -ώτεως (nom propre) (f)''' : Nilotis.<br> '''Νέμεσις, -έσεως (nom propre) (f)''' : [[wikt:Némésis|Némésis]].<br> '''Νέσσος, -ου (nom propre) (m)''' : Nessos.<br> '''Νέστωρ, -ορος (nom propre) (m)''' : Nestor.<br> '''Νεφέλη, -ης (nom propre) (f)''' : Néphélé.<br> '''Νεφελοκοκκυγία, -ας (nom propre) (f)''' : Coucouville-les-Nuées. (Ville décrite par Aristophane dans ''Les Oiseaux''.)<br> '''Νηρεύς, -έως (nom propre) (m)''' : Nérée.<br> '''Νηρῇς, -δος (nom propre) (f)''' : Néréide.<br> '''Νίκαια, -ίας (nom propre) (f)''' : Nice.<br> '''Νίκανδρος, -άνδρου (nom propre) (m)''' : Nicandre.<br> '''Νίκη, -ης (nom propre) (f)''' : [[wikt:Niké|Niké]].<br> '''Νικόλαος, -άου (nom propre) (m)''' : Nicolas.<br> '''Νιόϐη, -ης (nom propre) (f)''' : Niobé.<br> '''Νότος, -ου (nom propre) (m)''' : [[wikt:Notos|Notos]]. (dieu du vent du sud)<br> '''Νουμιδία, -ας (nom propre) (f)''' : Numidie.<br> '''Νύξ, -κτός (nom propre) (f)''' : [[wikt:Nyx|Nyx]].<br> '''Νῶε (nom propre) (m)''' : Noé.<br> ==Ξ== '''ξανθóς, -ή, -όν (adjectif)''' : Jaune ; jaunâtre. Blond.<br> '''ξενοδοχεῖον, -ίου (nom commun) (n)''' : hôtel.<br> '''ξένος, -η, -ον (adjectif)''' : étranger, insolite.<br> '''ξένος, -ου (nom commun) (m)''' : étranger ; hôte.<br> '''ξενών, -ῶνος (nom commun) (f)''' : .<br> '''ξέσις, -εως (nom commun) (f)''' : .<br> '''ξεχνῶ (verbe)''' : oublier.<br> '''ξέω (verbe)''' : gratter ; raser. Polir.<br> '''ξηρός, -ά, -όν (adjectif)''' : sec.<br> '''ξῖ (nom commun) (n)''' : xi.<br> '''ξιφίας, -ου (nom commun) (m)''' : espadon.<br> '''ξιφίδιον, -ίου (nom commun) (n)''' : dague.<br> '''ξίφος, -ους (nom commun) (n)''' : glaive.<br> '''ξύλον, -ου (nom commun) (n)''' : bois (matériau). Tout objet en bois.<br> '''ξυλόσπογγος, -όγγου (nom commun) (m)''' : tersorium.<br> '''ξύλωσις, -ώσεως (nom commun) (f)''' : charpente.<br> '''ξυνός, -ή, -όν (adjectif)''' : Forme ionienne de ''κοινός''.<br> '''ξύω (verbe)''' : Variante de ''ξέω''.<br> '''Ξενοφῶν, -τος (nom propre) (m)''' : Xénophon.<br> '''Ξέρξης, -ου (nom propre) (m)''' : Xerxès.<br> '''Ξοῦθος, -ύθου (nom propre) (m)''' : Xouthos.<br> ==Ο== '''ὁ (article défini)''' : le.<br> '''ὄασις, -άσεως (nom commun) (f)''' : Voie, route ; chemin.<br> '''ὀγδοήκοντα (adjectif numéral)''' : quatre-vingts.<br> '''ὀγκάομαι (verbe)''' : .<br> '''ὄγκος, -ου (nom commun) (m)''' : tumeur.<br> '''ὄγχνη, -ης (nom commun) (f)''' : poirier.<br> '''ὅδερος, -έρου (nom commun) (m)''' : ventre.<br> '''ὁδηγός, -οῦ (nom commun) (m)''' : conducteur.<br> '''ὁδηγῶ (verbe)''' : conduire.<br> '''ὁδός, -οῦ (nom commun) (f)''' : Voie, route ; chemin.<br> '''ὀδούς, -όντος (nom commun) (m)''' : dent.<br> '''ὀδμή, -ῆς (nom commun) (f)''' : Forme plus ancienne de ''ὀσμή''.<br> '''ὀδύνη, -ης (nom commun) (f)''' : douleur ; chagrin.<br> '''ὀδυσάω (verbe)''' : Haïr ; être fâché.<br> '''ὀδυσσειακός, -ή, -όν (adjectif)''' : odysséen.<br> '''ὀδύσσομαι (verbe)''' : Être irrité contre quelqu’un.<br> '''ὄζω (verbe)''' : Exhaler une odeur.<br> '''ὅθεν (adverbe relatif)''' : d’où (je viens).<br> '''οἷ (adverbe relatif)''' : là où (je vais).<br> '''ὀθόνη, -ης (nom commun) (f)''' : toile.<br> '''οἴ (interjection)''' : hélas ; ouille.<br> '''οἴκημα, -ήματος (nom commun) (n)''' : résidence.<br> '''οἰκηματικός, -ή, -όν (adjectif)''' : résidentiel.<br> '''οἰκημάτιον, -ίου (nom commun) (n)''' : .<br> '''οἰκητήριον, -ίου (nom commun) (n)''' : domicile.<br> '''οἰκοπεδικός, -ή, -όν (adjectif)''' : .<br> '''οἰκόπεδον, -έδου (nom commun) (n)''' : .<br> '''οἰκοπεδοποίησις, -ήσεως (nom commun) (f)''' : .<br> '''οἶκος, -ου (nom commun) (m)''' : maison.<br> '''οἰκοῦμαι (verbe)''' : .<br> '''οἰκουμένη, -ης (nom commun) (f)''' : .<br> '''οἰκουμενικός, -ή, -όν (adjectif)''' : .<br> '''ϝοῖκος, -ίκου (nom commun) (m)''' : Forme ancienne de ''οἶκος''.<br> '''οἰκεῖος, -ία, -ῖον (adjectif)''' : de la maison.<br> '''οἰκός, -τος (nom commun) (n)''' : Forme ionienne de ''εἰκός''.<br> '''οἰκοτροφεῖον, -ίου (nom commun) (n)''' : pensionnat.<br> '''οικότροφος, -όφου (nom commun) (m/f)''' : pensionnaire.<br> '''οἶκτος, -ἴκτου (nom commun) (m)''' : pitié.<br> '''οἰκτρός, -ά, -όν (adjectif)''' : .<br> '''οἰκτρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''οἰκτρός''.<br> '''οἰκτρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''οἰκτρός''.<br> '''οἰκτρότατα, -, - (adverbe)''' : Superlatif de ''οἰκτρῶς''.<br> '''οἰκτρότερον, -, - (adverbe)''' : Comparatif de ''οἰκτρῶς''.<br> '''οἰκτρῶς (adverbe)''' : .<br> '''οἰκῶ (verbe)''' : Habiter ; occuper.<br> '''οἴμοι (interjection)''' : pauvre de moi.<br> '''οἶνος, -ἴνου (nom commun) (m)''' : vin.<br> '''ϝοῖνος, -ίνου (nom commun) (m)''' : Forme dorienne de ''οἶνος''.<br> '''οἰνοχόη, -ης (nom commun) (f)''' : œnochoé ; échansonne.<br> '''οἰνοχόος, -ου (nom commun) (m)''' : échanson.<br> '''ὄϊς, -ΐος (nom commun) (m/f)''' : bélier ; brebis.<br> '''οἶς, -ός (nom commun) (m/f)''' : Forme attique de ''ὄϊς''.<br> '''οἷος, -ἵα, -ἷον (adjectif)''' : tel.<br> '''οἰσοφάγος, -ου (nom commun) (m)''' : œsophage.<br> '''οἶσος, -ἴσου (nom commun) (m)''' : gattilier.<br> '''οἶστρος, -ίστρου (nom commun) (m)''' : (au propre) taon. (au figuré) fureur, désir ; passion.<br> '''οἶτος, -ἴτου (nom commun) (m)''' : destin.<br> '''οἰφόλης, -ης, ες (adjectif)''' : obscène.<br> '''οἴφω (verbe)''' copuler.<br> '''οἰωνοσκοπία, -ας (nom commun) (f)''' : augure.<br> '''οἰωνοσκόπος, -ου (nom commun) (m)''' : augure.<br> '''οἰωνός, -οῦ (nom commun) (m)''' : présage, augure.<br> '''ὀκνείω (verbe)''' : Forme homérique de ''ὀκνέω''.<br> '''ὀκνέω (verbe)''' : hésiter.<br> '''ὄκνος, -ου (nom commun) (m)''' : hésitation.<br> '''ὀκτώ (adjectif numéral)''' : huit.<br> '''ὄκχος, -ου (nom commun) (m)''' : Forme poétique de ''ὄχος''.<br> '''ὀλιγάρχης, -ου (nom commun) (m)''' : oligarque.<br> '''ὀλιγαρχία, -ας (nom commun) (f)''' : oligarchie.<br> '''ὀλίγος, -η, -ον (adjectif)''' : .<br> '''ὁλικός, -ή , -όν (adjectif)''' : total.<br> '''ὁλικῶς (adverbe)''' : totalement.<br> '''ὁλικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ὁλικός''.<br> '''ὁλικώτερος, -έρη, -ώτερον (adjectif)''' : Comparatif de ''ὁλικός''.<br> '''ὁλικώτατα, -, - (adverbe)''' : Superlatif de ''ὁλικῶς''.<br> '''ὁλικώτερον, -, - (adverbe)''' : Comparatif de ''ὁλικῶς''.<br> '''ὄλισϐος, -ίσϐου (nom commun) (m)''' : godemichet.<br> '''ὁλκή, -ῆς (nom commun) (f)''' : attraction.<br> '''ὄλλυμι (verbe)''' : (Sens actif) Perdre, causer la perte, détruire, annihiler. Mourir. (Sens passif) Périr.<br> '''ὅλος, -η, -ον (adjectif)''' : entier, complet.<br> '''ὁλοφύρομαι (verbe)''' : .<br> '''ὄλπη, -ης (nom commun) (f)''' : .<br> '''ὀλυμπιακός, -ή, -όν (adjectif)''' : olympien.<br> '''ὀλυμπικός, -ή, -όν (adjectif)''' : olympique.<br> '''ὀλύμπιος, -ία, -ύμπιον (adjectif)''' : olympien.<br> '''ὁμαδικός, -ήν, -όν (adjectif)''' : .<br> '''ὁμαλός, -ή, -όν (adjectif)''' : lisse.<br> '''ὁμάς, -δος (nom commun) (f)''' : équipe.<br> '''ὄμϐρος, -ου (nom commun) (m)''' : tempête de pluie, orage, envoyé par Zeus. Eau. Inondation.<br> '''ὁμηρικός, -ή, -όν (adjectif)''' : homérique.<br> '''ὅμηρος, -ήρου (nom commun) (m/f)''' : otage.<br> '''ὂ μικρόν (nom commun) (n)''' : omicron.<br> '''ὁμιλία, -ας (nom commun) (f)''' : discours.<br> '''ὁμιλῶ (verbe)''' : discourir.<br> '''ὁμίχλη, -ης (nom commun) (f)''' : brouillard.<br> '''ὄμμα, -τος (nom commun) (n)''' : œil.<br> '''ὅμοιος, ία, -ον (adjectif)''' : semblable.<br> '''ὁμοῖος, -, -ῖον (adjectif)''' : Forme homérique, ionienne, et ancienne attique de ''ὅμοιος''.<br> '''ὁμοίιος, -, - (adjectif)''' : Forme homérique de ''ὅμοιος''.<br> '''ὁμοιοκαταληξία, -ας (nom commun) (f)''' : rime.<br> '''ὁμοιοκατάληκτος, -η, -ο (adjectif)''' : rimique.<br> '''ὁμοιοκαταληκτῶ (verbe)''' : rimer.<br> '''ὁμοούσιος, -ος, -ον (adjectif)''' : de même substance.<br> '''ὁμοιούσιος, -ος, -ον (adjectif)''' : de nature semblable.<br> '''ὁμοιοτέλευτος, -ύτου (nom commun) (m)''' : homéotéleute.<br> '''ὀμοίωμα, -ώματος (nom commun) (n)''' : effigie.<br> '''ὁμόνοια, -ας (nom commun) (f)''' : concorde.<br> '''ὁμός, -ή, -όν (adjectif)''' : Pareil ; semblable.<br> '''ὁμοῦ (adverbe)''' : En un même lieu, ensemble. (Par suite) Ensemble, à la fois. (Par extension) Auprès, proche.<br> '''ὀμφαλός, -οῦ (nom commun) (m)''' : nombril.<br> '''ὀμφή, -ῆς (nom commun) (f)''' : oracle, prophétie.<br> '''ὀμφής, -ής, -ές : (adjectif)''' : prophétique.<br> '''ὀμφητήρ, -τρός (nom commun) (m)''' : prophète.<br> '''ὄνειδος, -ίδους (nom commun) (n)''' : Reproche ; disgrâce.<br> '''ὀνειρευτής, -οῦ (nom commun) (m)''' : rêveur.<br> '''ὄνειρος, -ίρου (nom commun) (m)''' : rêve.<br> '''ὀνειροπόλος, -ου (nom commun) (m)''' : rêvasseur.<br> '''ὀνειροπωλῶ (verbe)''' : rêvasser.<br> '''ὀνοκρόταλος, -άλου (nom commun) (m)''' : pélican.<br> '''ὄνομα, -όματος (nom commun) (n)''' : nom.<br> '''ὀνοματοποιία, -ας (nom commun) (f)''' : mot imitant un son.<br> '''ὄνος, -ου (nom commun) (m/f)''' : Âne ; ânesse.<br> '''ὄνυξ, -χος (nom commun) (m)''' : ongle.<br> '''ὄνυμα, -ύματος (nom commun) (n)''' : Forme dorienne et éolienne de ''ὄνομα''.<br> '''ὀνύχιον, -ίου (nom commun) (m)''' : griffe.<br> '''ὄνω (adverbe)''' : Forme éolienne de ''ἄνω''.<br> '''ὀξίνης, -ης, -ες (adjectif)''' : aigre.<br> '''ὀξύα, -ας (nom commun) (f)''' : Hêtre. Arme en bois de hêtre comme un épieu ou un javelot.<br> '''ὀξύγαλα, -άλακτος (nom commun) (n)''' : petit-lait.<br> '''ὀξύμωρος, -ος, -ον (adjectif)''' : .<br> '''ὀξύς, -εῖα, -ύ (adjectif)''' : Aigu. Pointu. Tranchant en parlant d’une arme. Piquant en parlant de la sensation (chaleur, froid, douleur), du goût (acidité). Vif. Fin, pénétrant. Prompt à l’action.<br> '''ὀξύτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ὀξύς''.<br> '''ὀξύτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ὀξύς''.<br> '''ὀπαδός, -οῦ (nom commun) (m)''' : fan.<br> '''ὀπάζω (verbe)''' : .<br> '''ὀπή, -ῆς (nom commun) (f)''' : Trou ; orifice.<br> '''ὄπιον, -ίου (nom commun) (n)''' : opium.<br> '''ὄπισθεν (adverbe)''' : arrière, derrière.<br> '''ὄπις, -δος (nom commun) (f)''' : (Sens négatif) Revanche, vengeance. (Sens positif) Regard bienveillant, égard. (Religion) Égards dûs aux dieux par les hommes.<br> '''ὄπις (adverbe)''' : en arrière (sans mouvement).<br> '''ὀπίσω (adverbe)''' : en arrière (avec mouvement), vers l’arrière.<br> '''ὁπλή, -ῆς (nom commun) (f)''' : sabot (corne pédestre de certains animaux).<br> '''ὅπλη, -ης (nom commun) (f)''' : Forme homérique de ''ὁπλή''.<br> '''ὁπλήεις, -εις, -ης (f)''' : .<br> '''ὁπλίτης, -ου (nom commun) (m)''' : Soldat pesamment armé.<br> '''ὅπλον, -ου (nom commun) (n)''' : Outil. (Au pluriel) Armes.<br> '''ὀποπάναξ, -κος (nom commun) (m)''' : jus de légume.<br> '''ὀπός, -οῦ (nom commun) (m)''' : jus ; suc.<br> '''ὀπτασία, -ας (nom commun) (f)''' : fantasme.<br> '''ὀπτικός, -ή, -όν (adjectif)''' : visuel.<br> '''ὀπτός, -ή, -όν (adjectif)''' : Rôti, grillé. (Par extension) Cuit. Visible, vu.<br> '''ὀπτῶ (verbe)''' : Rôtir, griller.<br> '''ὅραμα, -άματος (nom commun) (n)''' : vision, spectacle.<br> '''ὄρασις, -άσεως (nom commun) (f)''' : vue.<br> '''ὁρατός, -ή, -όν, (adjectif)''' : visible.<br> '''ὁράω (verbe)''' : voir, regarder.<br> '''ὀρεάς, -δος (nom commun) (f)''' : oréade.<br> '''ὁρέω (verbe)''' : Forme ionienne de ''ὁράω''.<br> '''ὄρημι (verbe)''' : Forme éolienne de ''ὁράω''.<br> '''ὄργανον, -άνου (nom commun) (n)''' : organe, instrument de musique.<br> '''ὀργασμός, -οῦ (nom commun) (m)''' : point culminant du plaisir sexuel.<br> '''ὀργάς, -δος (nom commun) (f)''' : .<br> '''ὀργή, -ῆς (nom commun) (f)''' : colère.<br> '''ὀργῶ (verbe)''' : enfler, être empli de désir amoureux.<br> '''ὄρεξις, -έξεως (nom commun) (f)''' : appétit.<br> '''ὀρθογραφία, -ας (nom commun) (f)''' : écriture correcte.<br> '''ὀρθόδοξος, -ος, -ον (adjectif)''' : orthodoxe.<br> '''ὀρθός, -ή, -όν (adjectif)''' : droit.<br> '''ὀρθότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ὀρθός''.<br> '''ὀρθότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ὀρθός''.<br> '''ὀρθῶς (adverbe)''' : droitement.<br> '''ὁρίζων, -οντος (m)''' : horizon.<br> '''ὁρίζω (verbe)''' : limiter, borner.<br> '''ὁρμά, -ᾶς (nom commun) (f)''' : Saut, essor.<br> '''ὁρμέω (verbe)''' : (Marine) Mouiller, être à l'ancrage.<br> '''ὁρμή, -ῆς (nom commun) (f)''' : élan (rapidité).<br> '''ὅρμημα, -ήματος (nom commun) (f)''' : impulsion, désir.<br> '''ὅρμησις, -ήσεως (nom commun) (f)''' : élan.<br> '''ὁρμητικός, -ή, -όν (adjectif)''' : impétueux.<br> '''ὁρμητικῶς (adverbe)''' : impétueusement.<br> '''ὁρμητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ὁρμητικός''.<br> '''ὁρμητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ὁρμητικός''.<br> '''ὁρμητικώτατα, -, - (adverbe)''' : Superlatif de ''ὁρμητικῶς''.<br> '''ὁρμητικώτερον, -, - (adverbe)''' : Comparatif de ''ὁρμητικῶς''.<br> '''ὁρμητικότης, -τος (nom commun) (f)''' : impétuosité.<br> '''ὁρμῶ (verbe)''' : Pousser, démarrer, mettre en mouvement ; presser, se presser ; aller vite.<br> '''ὄρνεον, -έου (nom commun) (n)''' : oiseau.<br> '''ὄρνις, -θος (nom commun) (m/f)''' : oiseau.<br> '''ὄρνυμι (verbe)''' : animer, inciter.<br> '''ὄρος, -ους (nom commun) (m)''' : Montagne ; colline, hauteur.<br> '''ὅρος, -ου (nom commun) (m)''' : borne.<br> '''ὀρός, -οῦ (nom commun) (m)''' : sérum.<br> '''ὄρρος, -ου (nom commun) (m)''' : (Familier) cul.<br> '''ὀροφή, -ῆς (nom commun) (f)''' : plafond.<br> '''ὁρόω (verbe)''' : Forme homérique de ''ὁράω''.<br> '''ὄρτυξ, -ύκου (nom commun) (m/f)''' : caille.<br> '''ὀρυκτήρ, -ῆρος (nom commun) (m)''' : mineur.<br> '''ὄρυξ, -γος (nom commun) (m)''' : oryx.<br> '''ὀρύσσω (verbe)''' : creuser.<br> '''ὀρφανία, -ας (nom commun) (f)''' : .<br> '''ὀρφανίζω (verbe)''' : .<br> '''ὀρφανιστής, -οῦ (nom commun) (m)''' : .<br> '''ὀρφανός, -ή, -όν (adjectif)''' : orphelin.<br> '''ὀρφανός, -οῦ (nom commun) (m)''' : orphelin.<br> '''ὀρφανοτροφεῖον, -ίου (nom commun) (n)''' : orphelinat.<br> '''ὄρανος, -άνου (nom commun) (m)''' : Forme éolienne de ''οὐρανός''.<br> '''ὀρείχαλκος, -άλκου (nom commun) (m)''' : orichalque.<br> '''ὄρφνα, -ας (nom commun) (f)''' : Forme dorienne de ''ὄρφνη''.<br> '''ὄρφνη, -ης (nom commun) (f)''' : obscurité.<br> '''ὀρφνός, -ή, -όν (adjectif)''' : obscur.<br> '''ὀρφνότατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ὀρφνός''.<br> '''ὀρφνότερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ὀρφνός''.<br> '''ὀρφνῶς (adverbe)''' : obscurément.<br> '''ὀρχήστρα, -ας (nom commun) (f)''' : place du chœur.<br> '''ὀρχηστρίς, -δος (nom commun) (f)''' : danseuse.<br> '''ὄρχις, -εως (nom commun) (m/f)''' : (Au masculin) Testicule, ovaire, orchidée. (Au féminin) Sorte d’olive.<br> '''ὀρχοῦμαι (verbe)''' : danser.<br> '''ὄσδω (verbe)''' : Forme dorienne de ''ὄζω''.<br> '''ὀσμή, -ῆς (nom commun) (f)''' : odeur.<br> '''ὀστέον, -ου (nom commun) (n)''' : os ; noyau.<br> '''ὀστοῦν, -οῦ (nom commun) (n)''' : Forme attique de ''ὀστέον''.<br> '''ὀστεῦν, -εῦ (nom commun) (n)''' : Forme poétique de ''ὀστέον''.<br> '''ὄστιον, -ίου (nom commun) (n)''' : Forme éolienne de ''ὀστέον''.<br> '''ὅς, ἥ, ὅ''' : (adjectif démonstratif) Celui-ci, celle-ci, ceci. (pronom relatif) Qui, lequel, laquelle.<br> '''ὄστρειον, -ίου (nom commun) (n)''' : Forme de ''ὄστρεον''.<br> '''ὄστρεον, -έου (nom commun) (n)''' : huître.<br> '''ὀσφραίνομαι (verbe)''' : sentir.<br> '''ὄσφρησις, -ήσεως (nom commun) (f)''' : odorat.<br> '''ὀσφυαλγία, -ας (nom commun) (f)''' : lumbago.<br> '''ὀσφῦς, -ύος (nom commun) (f)''' : flanc.<br> '''οὐ- (préfixe)''' : préfixe privatif.<br> '''οὐαί (interjection)''' : ah.<br> '''οὖας, -τός (nom commun) (n)''' : Forme homérique de ''οὖς''.<br> '''οὐδείς, -μία, -έν (adjectif indéfini ; pronom indéfini)''' : Aucun, personne.<br> '''οὐδέποτε (adverbe)''' : jamais.<br> '''οὐδέτερος, -έρα, -έτερον (adjectif)''' : ni l’un ni l’autre.<br> '''οὕδωρ, -ατος (nom commun) (n)''' : Forme béotienne de ''ὕδωρ''.<br> '''οὐκί (adverbe)''' : Forme attique et ionienne de ''οὐ''<br> '''οὐλή, -ῆς (nom commun) (f)''' : cicatrice.<br> '''οὔνομα, -όματος (nom commun) (n)''' : Forme homérique et ionienne de ''ὄνομα''.<br> '''οὖθαρ, -ὔθατος (nom commun) (n)''' : Mamelle. (Anatomie) Pis.<br> '''οὔποτε (adverbe)''' : jamais.<br> '''οὐροδοχεῖον, -ίου (nom commun) (n)''' : pot de chambre.<br> '''οὖρον, -ὔρου (nom commun) (n)''' : urine.<br> '''οὖρος, -ὔρου (nom commun) (m)''' : gardien.<br> '''οὗ (adverbe relatif)''' : où (je suis).<br> '''οὐ (particule)''' (Devient ''οὐκ'' devant un mot commençant par une voyelle à esprit doux, et ''οὐχ'' devant un mot commençant par une voyelle à esprit rude.) : non.<br> '''οὖν (adverbe)''' : Sans doute, réellement, en effet. Donc, eh bien.<br> '''οὐρά, -ᾶς (nom commun) (f)''' : queue.<br> '''οὐράνη, -ης (nom commun) (f)''' : pot de chambre.<br> '''οὐράνιος, -α, -ον (adjectif)''' : céleste.<br> '''οὐρανός, -οῦ (nom commun) (m)''' : ciel.<br> '''οὔρησις, -ήσεως (nom commun) (f)''' : miction.<br> '''οὐρητρίς, -δος (nom commun) (f)''' : pot de chambre.<br> '''οὖρον, -ὔρου (nom commun) (n)''' : urine.<br> '''οὐρῶ (verbe)''' : uriner.<br> '''οὐσία, -ας (nom commun) (f)''' : (Philosophie) Essence, substance, être. Élément, substance première. Biens, fortune, richesse.<br> '''οὐσιαστικόν, -οῦ (nom commun) (n)''' : substantif.<br> '''οὐσίη, -ης (nom commun) (f)''' : Forme ionienne de ''οὐσία''.<br> '''οὐσιώδης, -ης, -ες (adjectif)''' : essentiel.<br> '''οὖς, ὠτός (nom commun) (n)''' : oreille.<br> '''οὔτις, -ις, -ι (pronom)''' : personne.<br> '''οὐχί (adverbe)''' : Forme attique et homérique de ''οὐ''<br> '''ὀφείλημα, -ήματος (nom commun) (n)''' : dette.<br> '''ὀφείλω (verbe)''' : devoir de l'argent.<br> '''ὀφέλλω (verbe)''' : Forme homérique et de ''ὀφείλω''.<br> '''ὄφελος, -έλους (nom commun) (n)''' : .<br> '''ὀφθαλμός, -οῦ (nom commun) (m)''' : œil.<br> '''ὄφις, -εως (nom commun) (m)''' : serpent.<br> '''ὀφρῦς, -ύος (nom commun) (f)''' : sourcil.<br> '''ὀχεύω (verbe)''' copuler.<br> '''ὄχημα, -ήματος (nom commun) (n)''' : véhicule.<br> '''ϝόχος, -ου (nom commun) (m)''' : Forme ancienne de ''ὄχος''.<br> '''ὄχθη, -ης (nom commun) (f)''' : Rive ; berge.<br> '''ὀχλοκρατία, -ας (nom commun) (f)''' : ochlocratie.<br> '''ὄχλος, -ου (nom commun) (m)''' : Foule ; multitude. Tumulte d'une foule.<br> '''ὄχνη, -ης (nom commun) (f)''' : poire.<br> '''ὄχος, -ου (nom commun) (m)''' : Réceptacle, abri. Tout ce qui sert à transporter, véhicule.<br> '''-οχος, -όχου (suffixe) (m)''' : .<br> '''ὀχυρός, -ά, -όν (adjectif)''' : ferme.<br> '''ὀχυρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ὀχυρός''.<br> '''ὀχυρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ὀχυρός''.<br> '''ὀχυρῶς (adverbe)''' : fermement.<br> '''ὀχύρωμα, -ώματος (nom commun) (n)''' : forteresse.<br> '''ὀχυρῶ (verbe)''' : fortifier.<br> '''ὀχῶ (verbe)''' : .<br> '''ὄψις, -εως (nom commun) (f)''' : vue. (perception visuelle)<br> '''ὄψον, -ου (nom commun) (n)''' : (Cuisine) Plat cuisiné, mets. Assaisonnement, sauce. Délicatesse. (Attique) Poisson.<br> '''ὀψοποιός, -οῦ (nom commun) (m)''' : cuisinier.<br> '''ὀψώνης, -ου (nom commun) (m)''' : .<br> '''ὀψώνιον, -ίου (nom commun) (n)''' : Provisions, vivres. Salaire.<br> '''ὀψωνῶ (verbe)''' : .<br> '''ὄψ, -πός (nom propre) (f)''' : Voix. Parole, discours. Œil. (Par métonymie) Visage.<br> '''Ὀδρύσης, -ου (nom commun) (m)''' : Odryse.<br> '''Ὀδύσσεια, -ίας (nom propre) (f)''' : Odyssée.<br> '''Ὀδυσσεία, -ας (nom propre) (f)''' : Forme alternative de ''Ὀδύσσεια''.<br> '''Ὀδυσσεύς, -έως (nom propre) (m)''' : Ulysse.<br> '''Ὀζυμάνδιος, -ίου (nom propre) (m)''' : Ozymandias.<br> '''Ὄθων, -ου (nom propre) (m)''' : Othon.<br> '''Οἰδίπους, -οδος (nom propre) (m)''' : Œdipe.<br> '''Οἰκλῆς, -έους (nom propre) (m)''' : Oïclès.<br> '''Οἰνεύς, -έως (nom propre) (m)''' : Œnée.<br> '''Οἰνόμαος, -άου (nom propre) (m)''' : Œnomaos.<br> '''Οἰταῖος, -ίη, -ῖον (adjectif)''' : œtéen.<br> '''Οἴτη, -ης (nom propre) (f)''' : Œta.<br> '''Ὄλθφες, - (nom propre) (m)''' : Olivier.<br> '''Ὀλυμπιάς, -δος (nom propre) (f)''' : olympiade.<br> '''Ὀλύμπια, -ίων (nom propre) (n)''' : Jeux olympiques.<br> '''Ὄλυμπος, -ύμπου (nom propre) (m)''' : Olympe.<br> '''Ὀλυσσεύς, -έως (nom propre) (m)''' : Forme de ''Ὀδυσσεύς''.<br> '''Ὀλυττεύς, -έως (nom propre) (m)''' : Forme de ''Ὀδυσσεύς''.<br> '''Ὅμηρος, -ήρου (nom propre) (m)''' : Homère. (poète grec)<br> '''Ὄνειρος, -ίρου (nom propre) (m)''' : Oniros.<br> '''Ὀννῶφρις, -ίδος (nom propre) (m)''' : Onnophris.<br> '''Ὀνούφριος, -ίου (nom propre) (m)''' : Onuphre.<br> '''Ὄρανος, -άνου (nom propre) (m)''' : Forme éolienne de ''Οὐρανός''.<br> '''Ὀρσηίς, -δος (nom propre) (f)''' : Orséis (épouse d'Hellen).<br> '''Ὄρθρος, -ου (nom propre) (m)''' : Orthros.<br> '''Ὀρφεύς, -έως (nom propre) (m)''' : Orphée.<br> '''Ὄσιρις, -ίριδος (nom propre) (m)''' : [[wikt:Osiris|Osiris]].<br> '''Οὐδαῖος, -ίου (nom propre) (m)''' : Udée.<br> '''Οὑδυσσεύς, -έως (nom propre) (m)''' : Forme de ''Ὀδυσσεύς''.<br> '''Οὐλιξεύς, -έως (nom propre) (m)''' : Forme de ''Ὀδυσσεύς''.<br> '''Οὐλίξης, -ους (nom propre) (m)''' : Forme de ''Ὀδυσσεύς''.<br> '''Οὐόλκος, -ου (nom commun) (m)''' : Volque.<br> '''Οὐρανία, -ας (nom propre) (f)''' : Uranie.<br> '''Οὐρανός, -οῦ (nom propre) (m)''' : [[wikt:Ouranos|Ouranos]].<br> '''Ὀφηλία, -ας (nom propre) (f)''' : Ophélie.<br> '''Ὀφιοῦχος, -ύχου (nom propre) (f)''' : Serpentaire.<br> '''Ὄφις, -εως (nom propre) (m)''' : Serpent.<br> ==Π== '''παγά, -ᾶς (nom commun) (f)''' : Forme dorienne de ''πηγή''.<br> '''παγίδευσις, -ύσεως (nom commun) (f)''' : .<br> '''παγιδεύω (verbe)''' : piéger.<br> '''παγίς, -δος (nom commun) (f)''' : piège.<br> '''παγκόσμιος, -α, -ον (adjectif)''' : universel.<br> '''πάγκοσμος, -όσμου (nom commun) (m)''' : univers.<br> '''πάγος, -ου (nom commun) (m)''' : glace (eau à l'état solide).<br> '''πάγουρος, -ύρου (nom commun) (m)''' : crabe.<br> '''πάγχυ (adverbe)''' : totalement.<br> '''παθοποιός, -ός, -όν (adjectif)''' : Qui afflige le corps ou l’âme.<br> '''πάθος, -ους (nom commun) (n)''' : Ce que l’on éprouve. Évènement, conjoncture. État de l’âme agitée par diverses circonstances.<br> '''παιάν, -ᾶνος (nom commun) (m)''' : péan.<br> '''παίγνιον, -ίου (nom commun) (n)''' : jeu.<br> '''παιδαγωγός, -οῦ (nom commun) (m)''' : éducateur.<br> '''παιδάριον, -ίου (nom commun) (n)''' : gamin.<br> '''παιδεραστής, -οῦ (nom commun) (m)''' : amant de garçon.<br> '''παιδιά, -ᾶς (nom commun) (f)''' : jeu.<br> '''παιδίον, -ου (nom commun) (n)''' : petit enfant.<br> '''παιδοτρίϐης, -ου (nom commun) (m)''' : maître de gymnastique.<br> '''παίδων παῖδες (nom commun) (m/f)''' : Petits-fils/Petites-filles.<br> '''παίζω (verbe)''' : jouer.<br> '''παίκτης, -ου (nom commun) (m)''' : joueur.<br> '''παῖς, -δός (nom commun) (m/f)''' : enfant ; jeune serviteur.<br> '''παιωνία, -ας (nom commun) (f)''' : pivoine.<br> '''παιών, -ος (nom commun) (m)''' : physicien.<br> '''παλαιός, -ά, -όν (adjectif)''' : ancien.<br> '''παλιγγενεσία, -ας (nom commun) (f)''' : Renaissance, résurrection. Régénération.<br> '''παλιγγενεσιακός, -ά, -όν (adjectif)''' : palingénésiaque.<br> '''πάλιν (adverbe)''' : encore.<br> '''παλλακή, -ῆς (nom commun) (f)''' : concubine.<br> '''παλλακίς, -δος (nom commun) (f)''' : concubine.<br> '''πάλλαξ, -κος (nom commun) (m/f)''' : jeune enfant.<br> '''πάλληξ, -κος (nom commun) (m/f)''' : Forme ionienne de ''πάλλαξ''.<br> '''πάλλω (verbe)''' : vibrer.<br> '''παλμός, -οῦ (nom commun) (m)''' : vibration.<br> '''παλός, -οῦ (nom commun) (m/f)''' : forme dorienne de ''πηλός''.<br> '''παμμεγεθέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''παμμεγέθης''.<br> '''παμμεγεθέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''παμμεγέθης''.<br> '''παμμεγέθης, -ης, -ες (adjectif)''' : immense.<br> '''παμμεγέθως (adverbe)''' : immensément.<br> '''πάμπαν (adverbe)''' : totalement.<br> '''πάμφλεκτος, -ος, -ον (adjectif)''' : .<br> '''πανάκεια, -ας (nom commun) (f)''' : remède universel.<br> '''πάναξ, -κος (nom commun) (m)''' : plante médicinale.<br> '''πανδοκεῖον, -ίου (nom commun) (n)''' : auberge.<br> '''πανδοκεύς, -έως (nom commun) (m)''' : aubergiste.<br> '''παράδοσις, -όσεως (nom commun) (f)''' : transmission ; tradition.<br> '''πανήγυρις, -ύρεως (nom commun) (f)''' : réunion.<br> '''πάνθηρ, -ος (nom commun) (m)''' : panthère.<br> '''πανέλοψ, -πος (nom commun) (m)''' : Forme éolienne et dorienne de ''πηνέλοψ''.<br> '''πανοῦργος, -ύργα, -ῦργον (adjectif)''' : .<br> '''παντοπωλεῖον, -ίου (nom commun) (n)''' : épicerie.<br> '''παντοπώλης, -ου (nom commun) (m)''' : épicier.<br> '''πάνυ (adverbe)''' : totalement.<br> '''πάππας, -ου (nom commun) (m)''' : papa.<br> '''πάππος, -ου (nom commun) (m)''' : papi.<br> '''πάπυρος, -ύρου (nom commun) (m)''' : papyrus.<br> '''παρά (adverbe ; préposition)''' : (avec le génitif) D’auprès de, du côté de. (avec le datif) Auprès avec l’idée de toute absence de mouvement. Chez, dans, en. (Avec l’accusatif) Auprès de, vers avec l’idée de mouvement.<br> '''παρά- (préfixe)''' : Auprès. Vers. Le long de. Contre. En détournant.<br> '''παραϐάλλω (verbe)''' : s’emparer de.<br> '''παράδειγμα, -ίγματος (nom commun) (n)''' : modèle.<br> '''παραδειγματικός, -ή, -όν (adjectif)''' : modèle.<br> '''παράδεισος, -ίσου (nom commun) (m)''' : parc ; paradis.<br> '''παραδέχομαι (verbe)''' : admettre.<br> '''παραδίδωμι (verbe)''' : transmettre ; remettre.<br> '''παράθυρος, -ου (nom commun) (f)''' : Porte de côté ; porte dérobée.<br> '''παρακινῶ (verbe)''' : .<br> '''παρακλαυσίθυρον, -ύρου (nom commun) (n)''' : paraclausithuron.<br> '''παραλείπω (verbe)''' : omettre.<br> '''παράλειψις, -ίψεως (nom commun) (f)''' : omission.<br> '''πάρδαλις, -άλεως (nom commun) (f)''' : léopard.<br> '''παράλληλος, -η, -ον (adjectif)''' : Porte de côté ; porte dérobée.<br> '''παραλήρησις, -ήσεως (nom commun) (f)''' : délire.<br> '''παράμεσος, -ου (nom commun) (m)''' : annulaire.<br> '''παραμυθέομαι (verbe)''' : exhorter.<br> '''παραμύθιον, -ίου (nom commun) (m)''' : exhortation.<br> '''παραποίησις, -ήσεως (nom commun) (f)''' : contrefaçon.<br> '''παραποιῶ (verbe)''' : contrefaire.<br> '''παράρτημα, -ήματος (nom commun) (n)''' : annexe.<br> '''παρασάγγης, -ου (nom commun) (m)''' : parasange. (env. 6 km)<br> '''παράσιτος, -ος, -ον (adjectif)''' : Qui sert de mets en surplus ; Parasite.<br> '''παραίσθησις, -ήσεως (nom commun) (f)''' : illusion.<br> '''παράστασις, -άσεως (nom commun) (f)''' : représentation.<br> '''παραστράτημα, -ήματος (nom commun) (n)''' : incartade.<br> '''παρειά, -ᾶς (nom commun) (f)''' : joue.<br> '''παρελθών, -όντος (nom commun) (m)''' : passé.<br> '''παρεξήγησις, -ήσεως (nom commun) (f)''' : malentendu.<br> '''παρεξηγῶ (verbe)''' : méprendre.<br> '''παρεργάτης, -ου (nom commun) (m)''' : assistant.<br> '''παρεύνασθαι (verbe)''' : représenter.<br> '''πάρευνος, -ος, -ον (adjectif)''' : .<br> '''παρθενεία, -ας (nom commun) (f)''' : virginité .<br> '''παρθένειος, -α, -ον (adjectif)''' : virginal.<br> '''παρθενικός, -ή, -όν (adjectif)''' : de vierge.<br> '''παρθενικῶς (adverbe)''' : virginalement.<br> '''παρθενικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''παρθενικός''.<br> '''παρθενικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''παρθενικός''.<br> '''παρθενικώτατα, -, - (adverbe)''' : Superlatif de ''παρθενικῶς''.<br> '''παρθενικώτερον, -, - (adverbe)''' : Comparatif de ''παρθενικῶς''.<br> '''παρθένος, -ος, -ον (adjectif)''' : vierge.<br> '''παρθενεύω (verbe)''' : devenir jeune fille.<br> '''παρθενών, -ῶνος (nom commun) (m)''' : parthénon.<br> '''παρθικός, -ή, -όν (adjectif)''' : parthe.<br> '''παρθιστί (adverbe)''' : en parthe.<br> '''παρίσθμιον, -ίου (nom commun) (n)''' : (anatomie) amygdale.<br> '''παρόρμησις, -ήσεως (nom commun) (f)''' : impulsion.<br> '''παρορμητικός, -ή, -όν (adjectif)''' : impulsif.<br> '''παρορμητικῶς (adverbe)''' : impulsivement.<br> '''παρορμητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''παρορμητικός''.<br> '''παρορμητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''παρορμητικός''.<br> '''παρορμητικώτατα, -, - (adverbe)''' : Superlatif de ''παρορμητικῶς''.<br> '''παρορμητικώτερον, -, - (adverbe)''' : Comparatif de ''παρορμητικῶς''.<br> '''παρορμῶ (verbe)''' : impulser.<br> '''παρσένος, -ος, -ον (adjectif)''' : Forme laconienne de ''παρθένος''.<br> '''παρών, -όντος (nom commun) (m)''' : présent.<br> '''παρωνυχία, -ας (nom commun) (f)''' : panaris.<br> '''πᾶς, -σα, -ᾶν (adjectif)''' : (Au singulier) Chaque, chacun. Tout entier, tout. (Au pluriel) Tous.<br> '''πάσσω (verbe)''' : .<br> '''παστά, -ᾶς (nom commun) (f)''' : pâte.<br> '''παστός, -ή, -όν (adjectif)''' : .<br> '''πάσχω (verbe)''' : Être affecté de telle ou telle façon, telle ou telle affection, sensation ou sentiment.<br> '''πατήρ, -ρός (nom commun) (m)''' : père.<br> '''πάτος, -ου (nom commun) (m)''' : sentier.<br> '''πατριά, -ᾶς (nom commun) (f)''' : tribu, famille.<br> '''πατριάρχης, -ου (nom commun) (m)''' : patriarche.<br> '''πατρίς, -δος (nom commun) (f)''' : patrie.<br> '''πατροφονεύς, -έως (nom commun) (m)''' : patricide.<br> '''πατροφόνος, -ου (nom commun) (m)''' : patricide.<br> '''πατῶ (verbe)''' : Manger, absorber. Fouler aux pieds. Fouler le sol.<br> '''παῦρος -ύρα, -ῦρον (adjectif)''' : En petit nombre. (Par extension) Petit, court.<br> '''παῦσις, -ύσεως (nom commun) (f)''' : cessation.<br> '''παύω (verbe)''' : cesser.<br> '''πάφλασμα, -άσματος (nom commun) (n)''' : .<br> '''πάχνη, -ης (nom commun) (f)''' : givre.<br> '''παχύς, -εῖα, -ύ (adjectif)''' : Épais, gras.<br> '''πεδά (préposition)''' : Forme arcado-chypriote, dorienne et éolienne de ''μετά''.<br> '''πεδιάς, -δος (nom commun) (f)''' : plaine.<br> '''πεδίον, -ου (nom commun) (n)''' : champ.<br> '''πέζα, -ης (nom commun) (f)''' : cheville du pied.<br> '''πεζός, -ή, -όν (adjectif)''' : piéton.<br> '''πεζῶς (adverbe)''' : .<br> '''πεζώτατα, -, - (adverbe)''' : Superlatif de ''πεζῶς''.<br> '''πεζώτερον, -, - (adverbe)''' : Comparatif de ''πεζῶς''.<br> '''πεζώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''πεζός''.<br> '''πεζώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''πεζός''.<br> '''πείθομαι (verbe)''' : persuader ; suivre.<br> '''πείθω (verbe)''' : convaincre ; persuader.<br> '''πεῖνα, -ίνας (nom commun) (f)''' : faim.<br> '''πεινῶ (verbe)''' : avoir faim.<br> '''πεῖρα, -ίρας (nom commun) (f)''' : Essai, tentative ; épreuve.<br> '''πειράζω (verbe)''' : Essayer ; tenter.<br> '''πειράομαι (verbe)''' : essayer.<br> '''πειρασμός, -οῦ (nom commun) (m)''' : Épreuve, essai ; expérience. Tentation.<br> '''πειρατής, -οῦ (nom commun) (m)''' : pirate.<br> '''πειρῶ (verbe)''' : .<br> '''πελεκάν, -ᾶνος (nom commun) (m)''' : pélican.<br> '''πελεκῖνος, -ίνου (nom commun) (m)''' : pélican.<br> '''πέλεκυς, -έκεως (nom commun) (m)''' : hache.<br> '''πέλμα, -τος (nom commun) (n)''' : Plante du pied ; tige des pommes et des poires.<br> '''πελώριος, -α, -ον (adjectif)''' : prodigieux.<br> '''πελωρίς, -δος (nom commun) (f)''' : moule.<br> '''πέλωρ, -ος (nom commun) (n)''' : prodige.<br> '''πέμμα, -τος (nom commun) (n)''' : gâteau.<br> '''πεμπτουσία, -ας (nom commun) (f)''' : quintessence.<br> '''πεντάφυλλον, -ύλλου (nom commun) (n)''' : potentille.<br> '''πέντε (adjectif numéral)''' : cinq.<br> '''πεντήκοντα (adjectif numéral)''' : cinquante.<br> '''πενθερά, -ᾶς (nom commun) (f)''' : belle-mère.<br> '''πενθερός, -οῦ (nom commun) (m)''' : beau-père.<br> '''πένθος, -ους (nom commun) (n)''' : deuil.<br> '''πέος, -ους (nom commun) (n)''' : pénis.<br> '''πέπερι, -τος (nom commun) (n)''' : poivre.<br> '''πέπλος, -ου (nom commun) (m)''' : péplos.<br> '''πέπλωμα, -ώματος (nom commun) (n)''' : robe.<br> '''πεπτός, -ή, -όν (adjectif)''' : cuit.<br> '''πέπων, -ονος (nom commun) (m)''' : melon.<br> '''περαίνω (verbe)''' : Finir, conclure.<br> '''πέρασμα, -άσματος (nom commun) (n)''' : passage.<br> '''πέρας, -τος (nom commun) (n)''' : Fin, limite.<br> '''πέρδιξ, -ικος (nom commun) (m/f)''' : perdrix.<br> '''πέρδομαι (verbe)''' : péter (faire un pet).<br> '''περιϐόλιον, -ίου (nom commun) (n)''' : .<br> '''περιδέραιον, -ου (nom commun) (n)''' : collier (bijou).<br> '''περιδέραιος, -ος, -ου (adjectif)''' : .<br> '''περίζωμα, -ώματος (nom commun) (n)''' : caleçon.<br> '''περιήγησις, -ήσεως (nom commun) (f)''' : Voyage ; parcours.<br> '''περιηγοῦμαι (verbe)''' : Voyager ; parcourir.<br> '''περιηγητής, -οῦ (nom commun) (m)''' : voyageur.<br> '''περιλαμϐάνω (verbe)''' : .<br> '''περίληψις, -ήψεως (nom commun) (f)''' : résumé.<br> '''περίναιον, -ίου (nom commun) (n)''' : périnée.<br> '''περιπατητικός, -ή, -όν (adjectif)''' : péripatéticien.<br> '''περιπατῶ (verbe)''' : Circuler, aller et venir ; se promener (Par extension) (Figuré) Se comporter, se conduire, vivre de telle ou de telle manière.<br> '''περιπέτεια, -ας (nom commun) (f)''' : aventure.<br> '''περιπίπτω (verbe)''' : tomber autour, sur.<br> '''περιποιοῦμαι (verbe)''' : s'occuper de.<br> '''περιποιῶ (verbe)''' : .<br> '''περιστερά, -ᾶς (nom commun) (f)''' : pigeon, colombe.<br> '''περιστερός, -οῦ (nom commun) (m)''' : pigeon, colombe. (Pour un mâle de ces espèces.)<br> '''περιστερεών, -ῶνος (nom commun) (m)''' : pigeonnier, colombier.<br> '''περιφρονῶ (verbe)''' : mépriser.<br> '''περιφρούρησις, -ήσεως (nom commun) (f)''' : protection.<br> '''περιφρουρῶ (verbe)''' : protéger.<br> '''περκνός, -ή, -όν (adjectif)''' : noirâtre.<br> '''περκνότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''περκνός''.<br> '''περκνότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''περκνός''.<br> '''περκνότατα, -, - (adverbe)''' : Superlatif de ''περκνῶς''. '''περκνότερον, -, - (adverbe)''' : Comparatif de ''περκνῶς''. '''περκνῶς (adverbe)''' : noirâtrement.<br> '''πέρνημι (verbe)''' : Exploiter, vendre. (Au passif) Être vendu.<br> '''περόνη, -ης (nom commun) (f)''' : agrafe, clavette.<br> '''περῶ (verbe)''' : passer.<br> '''πέσσω (verbe)''' : Digérer ; cuire. Mûrir.<br> '''πετάννυμι (verbe)''' : .<br> '''πέτασος, -άσου (nom commun) (m)''' : pétase.<br> '''πετεεινός, -ή, -όν (adjectif)''' : Forme homérique de ''πετεινός''.<br> '''πετεινός, -ή, -όν (adjectif)''' : capable de voler.<br> '''πετεσοũχος, -ύχου (nom commun) (m)''' : petsuchos.<br> '''πετηνός, -ή, -όν (adjectif)''' : Forme ionienne de ''πετεινός''.<br> '''πετῶ (verbe)''' : voler (planer dans le ciel).<br> '''πεύκη, -ης (nom commun) (f)''' : pin.<br> '''πεύθομαι (verbe)''' : Forme poétique de ''πυνθάνομαι''.<br> '''πέψις, -εως (nom commun) (f)''' : digestion.<br> '''πηγή, -ῆς (nom commun) (f)''' : source.<br> '''πήγνυμι (verbe)''' : .<br> '''πηδάλιον, -ίου (nom commun) (n)''' : talaria.<br> '''πήδημα, -ήματος (nom commun) (n)''' : saut.<br> '''πηδόν, -οῦ (nom commun) (n)''' : .<br> '''πηδός, -οῦ (nom commun) (f)''' : .<br> '''πηδῶ (verbe)''' : sauter.<br> '''πῇ (adverbe interrogatif)''' : par où.<br> '''πήληξ, -κος (nom commun) (m)''' : .<br> '''πηλός, -οῦ (nom commun) (m/f)''' : boue.<br> '''πήμων, -ων, -ον (adjectif)''' : nuisible.<br> '''πηνέλοψ, -πος (nom commun) (m)''' : canard sauvage.<br> '''πήνη, -ης (nom commun) (f)''' : bobine.<br> '''πηνήκη, -ης (nom commun) (f)''' : perruque.<br> '''πηνηκίζω (verbe)''' : .<br> '''πηνήκισμα, -ίσματος (nom commun) (n)''' : .<br> '''πῆνος, -ήνου (nom commun) (m)''' : .<br> '''πῆξις, -ήξεως (nom commun) (f)''' : .<br> '''πήρα, -ας (nom commun) (f)''' : besace.<br> '''πήριξ, -ικος (nom commun) (m/f)''' : Forme crétoise de ''πέρδιξ''.<br> '''πῆχυς, -ήχεως (nom commun) (m)''' : avant-bras.<br> '''πιέζω (verbe)''' : Presser ; appuyer.<br> '''πίεσις, -έσεως (nom commun) (f)''' : pression.<br> '''πῖ (nom commun) (n)''' : pi.<br> '''πίθακος, -άκου (nom commun) (m)''' : Forme dorienne de ''πίθηκος''.<br> '''πιθανός, -ή, -όν (adjectif)''' : probable.<br> '''πιθανῶς (adverbe)''' : probablement.<br> '''πιθανώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''πιθανός''.<br> '''πιθανώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''πιθανός''.<br> '''πιθηκοειδής, -ής, -ές (adjectif)''' : .<br> '''πίθηκος, -ήκου (nom commun) (m)''' : singe.<br> '''πίθων, -ονος (nom commun) (m)''' : Singe, petit singe.<br> '''πῖλος, -ίλου (nom commun) (m)''' : pileus.<br> '''πίμπλημι (verbe)''' : remplir.<br> '''πίναξ, -κος (nom commun) (m)''' : tableau.<br> '''πίπτω (verbe)''' : tomber.<br> '''πίσσα, -εως (nom commun) (f)''' : poix.<br> '''πιστάκη, -ης (nom commun) (f)''' : pistachier.<br> '''πιστάκιον, -ίου (nom commun) (n)''' : pistache.<br> '''πίστις, -εως (nom commun) (f)''' : Foi. Confiance en autrui. Ce qui fait foi. Résultat de la confiance. Moyen d’inspirer confiance, de persuader ; preuve.<br> '''πιστότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πιστός''.<br> '''πιστότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πιστός''.<br> '''πιστός, -ή, -όν (adjectif)''' : fidèle ; loyal.<br> '''πιστότατα, -, - (adverbe)''' : Superlatif de ''πιστῶς''.<br> '''πιστότερον, -, - (adverbe)''' : Comparatif de ''πιστῶς''.<br> '''πιστῶς (adverbe)''' : fidèlement ; loyalement.<br> '''πίστωσις, -ώσεως (nom commun) (f)''' : crédit.<br> '''πισύγγιον, ίου (nom commun) (n)''' : Diminutif de ''πίσυγγος''.<br> '''πίσυγγος, -ύγγου (nom commun) (m)''' : cordonnier.<br> '''πίττα, -ας (nom commun) (f)''' : Forme attique de ''πίσσα''.<br> '''πίτα, -ας (nom commun) (f)''' : pita.<br> '''πλαγκτός, -ή, -όν (adjectif)''' : errant.<br> '''πλαδαρός, -ά, -όν (adjectif)''' : Forme dorienne de ''βλαδαρός''.<br> '''πλάζω (verbe)''' : errer.<br> '''πλᾶθος, -άθους (nom commun) (n)''' : Forme dorienne de ''πλῆθος''.<br> '''πλακοῦς, -ύντος (nom commun) (m)''' : Gâteau ; galette.<br> '''πλανάτας, -ου (nom commun) (m)''' : Forme dorienne de ''πλανήτης''.<br> '''πλάνης, -τος (nom commun) (m)''' : vagabond.<br> '''πλανήτης, -ου (nom commun) (m)''' : planète.<br> '''πλάν (préposition)''' : Forme dorienne de ''πλήν''.<br> '''πλανῶ (verbe)''' : vagabonder.<br> '''πλάξ, -κός (nom commun) (f)''' : plaque.<br> '''πλάσμα, -τος (nom commun) (n)''' : Ouvrage façonné, modelé ; figure. Modulation de la voix. Contrefaçon, imitation. Travail de composition.<br> '''πλάσσω (verbe)''' : former, mouler.<br> '''πλατέως (adverbe)''' : largement.<br> '''πλατύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''πλατύς''.<br> '''πλατύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''πλατύς''.<br> '''πλατύς, -εῖα, -ύ (adjectif)''' : large.<br> '''πλάττω (verbe)''' : Forme attique de ''πλάσσω''.<br> '''πλέθρον, -ου (nom commun) (n)''' : plèthre. (env. 30 m)<br> '''πλεῖστος, -ίστη, -ῖστον (adjectif)''' : Superlatif de ''πολύς''.<br> '''πλείων, -ων, -ῖον (adjectif)''' : Comparatif de ''πολύς''.<br> '''πλεῖθος, -ίθους (nom commun) (n)''' : Forme béotienne de ''πλῆθος''.<br> '''πλῆθος, -ήθους (nom commun) (n)''' : .<br> '''πληθύς, -ος (nom commun) (n)''' : Forme ionienne de ''πλῆθος''.<br> '''πληθώρα, -ας (nom commun) (f)''' : plénitude.<br> '''πλήθω (verbe)''' : remplir.<br> '''πληκτικός, -ή, -όν (adjectif)''' : ennuyeux.<br> '''πληκτικότης, -ητος (nom commun) (f)''' : ennui.<br> '''πλῆκτρον, -ήκτρου (nom commun) (n)''' : plectre.<br> '''πλῆξις, -ήξεως (nom commun) (f)''' : ennui.<br> '''πλήν (préposition)''' : plus que.<br> '''πληρέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''πλήρης''.<br> '''πληρέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''πλήρης''.<br> '''πλήρης, -ης, -ῆρες (adjectif)''' : complet ; plein.<br> '''πλήρως (adverbe)''' : complètement ; pleinement.<br> '''πληρῶ (verbe)''' : compléter ; emplir.<br> '''πλήσσω (verbe)''' : Frapper, battre. (Au passif) Être battu, subir une défaite.<br> '''πλήττω (verbe)''' : Forme attique de ''πλήσσω''.<br> '''πλοῖον, -ίου (nom commun) (n)''' : navire, bateau ; vaisseau.<br> '''πλούσιος, -α, -ον (adjectif)''' : riche, opulent.<br> '''πλουσιότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πλούσιος''.<br> '''πλουσιότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πλούσιος''.<br> '''πλουσίως (adverbe)''' : richement.<br> '''πλουτηρός, -ά, -όν (adjectif)''' : dispensateur de richesse.<br> '''πλουτίζω (verbe)''' : (voix active) enrichir ; (voix passive) s’enrichir, être enrichi.<br> '''πλουτίνδην (adverbe)''' : en choisissant parmi les plus riches.<br> '''πλουτοτήριος, -α, -ον (adjectif)''' : Capable d’enrichir.<br> '''πλουτοκρατία, -ας (nom commun) (f)''' : ploutocratie.<br> '''πλοῦτος, -ύτου (nom commun) (m)''' : richesse, opulence.<br> '''πλουτῶ (verbe)''' : être riche.<br> '''πλύνω (verbe)''' : laver des vêtements.<br> '''πνεῦμα, -ύματος (nom commun) (n)''' : Souffle. Exhalaison ; odeur. Esprit.<br> '''πνευματικός, -ή, -όν (adjectif)''' : spirituel.<br> '''πνευματικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πνευματικός''.<br> '''πνευματικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πνευματικός''.<br> '''πνευματικότατα, -, - (adverbe)''' : Superlatif de ''πνευματικῶς''.<br> '''πνευματικότερον, -, - (adverbe)''' : Comparatif de ''πνευματικῶς''.<br> '''πνευματικῶς (adverbe)''' : spirituellement.<br> '''πνεύμων, -ονος (nom commun) (m)''' : poumon.<br> '''πνέω (verbe)''' : souffler.<br> '''πνιγηρός, -ά, -όν (adjectif)''' : étouffant, où l’on étouffe (Par extension) Étroit, resserré.<br> '''πνίγω (verbe)''' : étrangler, étouffer ; suffoquer.<br> '''πνίξ, -γός (nom commun) (f)''' : crampe.<br> '''ποδάριον -ίου (nom commun) (n)''' : Diminutif de ''πούς''.<br> '''πόδιον, -ίου (nom commun) (n)''' : podium.<br> '''πόθεν (adverbe interrogatif)''' : d’où.<br> '''πόθος, -ου (nom commun) (m)''' : Désir ; regret.<br> '''ποῖ (adverbe interrogatif)''' : où (avec mouvement).<br> '''ποίησις, -ήσεως (nom commun) (f)''' : création.<br> '''ποιμήν, -ένος (nom commun) (m)''' : berger.<br> '''ποινή, -ῆς (nom commun) (f)''' : Expiation d’un crime. Argent par lequel on paye les parents de la victime, le prix du sang. Rançon, expiation, châtiment, vengeance. Délivrance. Compensation, récompense.<br> '''ποῖος, -ία, -ῖον (adjectif interrogatif)''' : quel.<br> '''ποιότης, -τος (nom commun) (f)''' : qualité.<br> '''ποιῶ (verbe)''' : faire.<br> '''πολεμικός, -ή, -όν (adjectif)''' : guerrier.<br> '''πολεμικῶς (adverbe)''' : belliqueusement.<br> '''πολεμικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''πολεμικός''.<br> '''πολεμικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''πολεμικός''.<br> '''πολεμιστής, -οῦ (nom commun) (m)''' : guerrier.<br> '''πολεμίστρα, -ας (nom commun) (f)''' : guerrière.<br> '''πόλεμος, -έμου (nom commun) (m)''' : guerre.<br> '''πολεμῶ (verbe)''' : guerroyer.<br> '''πολιός, -ός, -όν (adjectif)''' : gris.<br> '''πόλις, -εως (nom commun) (f)''' : ville.<br> '''πολιτεία, -ας (nom commun) (f)''' : citoyenneté.<br> '''πολίτευμα, -τος (nom commun) (n)''' : gouvernement.<br> '''πολιτεύω (verbe)''' : Être citoyen. Participer au gouvernement, faire de la politique. (Au passif) Être gouverné, en parlant de l’État.<br> '''πολίτης, -ου (nom commun) (m)''' : citoyen.<br> '''πολιτικός, -ή, -όν (adjectif)''' : civique.<br> '''πολῖτις, -ίτιδος (nom commun) (f)''' : citoyenne.<br> '''πολλάκις (adverbe)''' : souvent.<br> '''πολλῶς (adverbe)''' : .<br> '''πολυμάθεια, -ας (nom commun) (f)''' : érudition.<br> '''πολυμαθής, -ής, -ές (adjectif)''' : érudit.<br> '''πολυμήτις, -, - (adjectif)''' : .<br> '''πολυμήχανος, -η, -ον (adjectif)''' : ingénieux.<br> '''πολύτροπος, -ος, -ον (adjectif)''' : astucieux.<br> '''πολύς, -λλή, -ύ (adjectif)''' : nombreux.<br> '''πολύχρωμος, -η, -ον (adjectif)''' : multicolore.<br> '''πομφολυγοπάφλασμα, -άσματος (nom commun) (n)''' : .<br> '''πομφόλυξ, -γος (nom commun) (m)''' : bulle ; ornement en forme de bulle, de rond. (Chimie) Oxyde de zinc.<br> '''πομφός, -οῦ (nom commun) (m)''' : verrue.<br> '''πονηρία, -ας (nom commun) (f)''' : ruse.<br> '''πονηρός, -ά, -όν (adjectif)''' : mauvais, méchant ; pervers.<br> '''πονηρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πονηρός''.<br> '''πονηρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πονηρός''.<br> '''πονηρῶς (adjectif)''' : mauvaisement, méchamment ; perversement.<br> '''πόποι (interjection)''' : hélas.<br> '''πορδή, -ῆς (nom commun) (f)''' : pet. (gaz intestinal)<br> '''πορθμεῖον, -ίου (nom commun) (n)''' .<br> '''πορθμεύς, -έως (nom commun) (m)''' nocher.<br> '''πορθμεύω (verbe)''' .<br> '''πορθμός, -οῦ (nom commun) (m)''' : détroit.<br> '''πορνεία, -ας (nom commun)''' : Fornication, prostitution.<br> '''πορνεῖον, -ίου (nom commun) (n)''' lupanar.<br> '''πόρνευμα, -ύµατος (nom commun (n)''' : .<br> '''πόρνευσις, -ύσεως (nom commun) (f)''' : .<br> '''πορνεύτρια, -ας (nom commun) (f)''' : .<br> '''πορνεύω (verbe)''' : prostituer.<br> '''πόρνη, -ης (nom commun) (f)''' : Prostituée, putain.<br> '''πορνικός, -ή, -όν (adjectif)''' : de lupanar.<br> '''πορνοϐοσκεῖον, -ίου (nom commun) (n)''' : lupanar.<br> '''πορνοϐοσκία, -ας (nom commun) (f)''' : prostitution.<br> '''πορνοϐοσκός, -οῦ (nom commun) (m)''' : tenancier.<br> '''πορνοϐοσκῶ (verbe)''' : gérer un lupanar.<br> '''πορνοδιάκονος, -όνου (nom commun) (m/f)''' : .<br> '''πορνοδιδάσκαλος, -άλου (nom commun) (m) ''' : .<br> '''πορνοδύτης, -ου (nom commun) (m)''' .<br> '''πορνοφίλης, -ου (nom commun) (m)''' : amateur de prostituées.<br> '''πορνογενής, -ής, -ές (adjectif)''' : .<br> '''πορνογέννητος, -ος, -ον (adjectif)''' : né dans un lupanar.<br> '''πορνογράφος, -ου (nom commun) (m)''' : pornographe.<br> '''πορνοκοπέω (verbe)''' : .<br> '''πορνοκοπία, -ας (nom commun) (f)''' .<br> '''πορνοκόπος, -ου (nom commun) (m)''' : client de lupanar.<br> '''πορνομανής, -ής, -ές''' : furieux contre la prostitution.<br> '''πόρνος, -ου (nom commun) (m)''' : Prostitué ; gigolo.<br> '''πόρπη, -ης (nom commun) (f)''' : broche (bijou).<br> '''πόρ, -δός (nom commun) (m)''' : Forme laconienne de ''πούς''.<br> '''πόρρω (adverbe)''' : Forme attique de ''πρόσω''.<br> '''πορφύρεος, -α, -ον (adjectif)''' : (chez Homère) Sombre. (grec post-homérique) Pourpre.<br> '''πορφύρω (verbe)''' : Bouillir, fulminer ; rougir.<br> '''πόσις, -εως (nom commun) (f)''' : action de boire.<br> '''πόσις, -ιος (nom commun) (m)''' : époux ; mari.<br> '''πόσσις, -ιος (nom commun) (m)''' : Forme poétique de ''πόσις''. (au sens d’« époux », « mari »)<br> '''πόσος, -η, -ον (adjectif interrogatif)''' : combien.<br> '''ποσότης, -τος (nom commun) (f)''' : quantité.<br> '''πός, -δός (nom commun) (m)''' : Forme dorienne de ''πούς''.<br> '''ποταμός, -οῦ (nom commun) (m)''' : fleuve.<br> '''πότε (adverbe interrogatif)''' : quand.<br> '''ποτέ (adverbe)''' (Devient ''ποτ᾽'' devant un mot commençant par une voyelle à esprit doux, et ''ποθ᾽'' devant un mot commençant par une voyelle à esprit rude.) : jamais.<br> '''ποτήριον, -ίου (nom commun) (n)''' : coupe. (récipient)<br> '''ποτήρ, -ῆρος (nom commun) (m)''' : verre. (récipient)<br> '''πότμος, -ου (nom commun) (m)''' : destin ; sort.<br> '''πότνια, -ίης (nom commun) (f)''' : épouse ; maîtresse.<br> '''πούς, -δός (nom commun) (m)''' : pied.<br> '''ποῦ (adverbe interrogatif)''' : où (sans mouvement) ; comment.<br> '''πρᾶγμα, -άγματος (nom commun) (n)''' : Chose, évènement ; affaire. Fait.<br> '''πραγματικός, -ή, -όν (adjectif)''' : évènementiel ; factuel.<br> '''πραγματικῶς (adverbe)''' : évènementiellement ; factuellement.<br> '''πραγματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''πραγματικός''.<br> '''πραγματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''πραγματικός''.<br> '''πραικόκιον, -ίου (nom commun) (n)''' : abricot.<br> '''πράκτωρ, -ορος (nom commun) (m)''' : agent.<br> '''πρᾶξις, -άξεως (nom commun) (f)''' : action.<br> '''πραπίς, -δος (nom commun) (f)''' : intelligence.<br> '''πράσινος, -ίνη, -άσινον (adjectif)''' : vert poireau.<br> '''πράσσω (verbe)''' : faire, pratiquer.<br> '''πρατήρ, -ῆρος (nom commun) (m)''' : vendeur.<br> '''πρᾶτος, -άτη, -ᾶτον (adjectif)''' : Forme dorienne de ''πρῶτος''.<br> '''πράττω (verbe)''' : Forme attique de ''πράσσω''.<br> '''πρέπω (verbe)''' : .<br> '''πρέσϐυς, -έως (nom commun) (m)''' : Envoyé ; député ; ambassadeur.<br> '''πρεσϐυτέριον, -ίου (nom commun) (n)''' : assemblée des anciens.<br> '''πρῆγμα, -ήγματος (nom commun) (f)''' : Forme ionienne de ''πρᾶγμα''.<br> '''πρηκτήρ, -ός (nom commun) (m)''' : Forme homérique et ionienne de ''πράκτωρ''.<br> '''πρῆξις, -ήξεως (nom commun) (f)''' : Forme homérique et ionienne de ''πρᾶξις''.<br> '''πρήσσω (verbe)''' : Forme homérique et ionienne de ''πράσσω''.<br> '''πρῆχμα, -ήχματος (nom commun) (f)''' : Autre forme ionienne de ''πρᾶγμα''.<br> '''πρῖγκιψ, -ίγκιπος (nom commun) (m)''' : prince. (chef d’une principauté)<br> '''πριγκιπίσσα, -ας (nom commun) (f)''' : princesse. (cheffe d’une principauté)<br> '''πρίν (conjonction)''' : avant que.<br> '''πριόνιον, -ίου (nom commun) (n)''' : diminutif de ''πρίων''.<br> '''πρίων, -ονος (nom commun) (m)''' : scie.<br> '''προάστειος, -, - (adjectif)''' : suburbain.<br> '''προάστειον, -ίου (nom commun) (n)''' : banlieue.<br> '''προϐαίνω (verbe)''' : marcher en avant.<br> '''προϐατίνα, -ας (nom commun) (f)''' : brebis.<br> '''πρόϐατον, -άτου (nom commun) (n)''' : mouton.<br> '''πρόϐλημα, -ήματος (nom commun) (n)''' : problème.<br> '''πρόγνωσις, -ώσεως (nom commun) (f)''' : .<br> '''πρόγονος, -όνου (nom commun) (m)''' : ancêtre.<br> '''προπάτωρ, -ορος (nom commun) (m)''' : ancêtre.<br> '''πρόγραμμα, -άμματος (nom commun) (n)''' : notice écrite publique.<br> '''προγράφω (verbe)''' : écrire une notice publique.<br> '''προδίδωμι (verbe)''' : trahir.<br> '''προδότης, -ου (nom commun) (m)''' : traître.<br> '''προδοτικός, -ή, -όν (adjectif)''' : traître.<br> '''προδοσία, -ας (nom commun) (f)''' : trahison.<br> '''προοίμιον, -ίου (nom commun) (n)''' : prélude.<br> '''προκινῶ (verbe)''' : .<br> '''πρόκοιτος, -ίτου (nom commun) (m)''' : chambellan.<br> '''προλαμϐάνω (verbe)''' : prévoir.<br> '''πρόληψις, -ήψεως (nom commun) (f)''' : prévention.<br> '''πρόλογος, -όγου (nom commun) (m)''' : préface.<br> '''προσϐάλλω (verbe)''' : .<br> '''προσϐολή, -ῆς (nom commun) (f)''' : .<br> '''προσευχή, -ῆς (nom commun) (f)''' : prière.<br> '''προσεύχομαι (verbe)''' : Adresser une prière. (Absolu) Adorer, prier, supplier.<br> '''προσήλωσις, -ώσεως (nom commun) (f)''' : attachemeent.<br> '''πρόσθεν (adverbe)''' Devant ; en avant.<br> '''προσιτός, -ή, -όν (adjectif)''' : abordable.<br> '''πρόσειμι (verbe)''' : aborder.<br> '''προσθιγγάνω (verbe)''' : .<br> '''προσκέφαλον, -άλου (nom commun) (m)''' : oreiller.<br> '''πρόσκοπος, -όπου (nom commun) (m)''' : éclaireur.<br> '''πρόσκοπευω (verbe)''' : .<br> '''προσποιῶ (verbe)''' : .<br> '''προσωποποιία, -ας (nom commun) (f)''' : personnification.<br> '''πρόσω (adverbe)''' : .<br> '''πρός (adverbe ; préposition)''' : Auprès, à côté ; en outre.<br> '''πρότατος, -άτα, -άτετον (adjectif)''' : Superlatif de ''πρῶτος''.<br> '''πρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πρῶτος''.<br> '''προτί (adverbe ; préposition)''' : Forme homérique de ''πρός''.<br> '''ποτί (adverbe ; préposition)''' : Forme homérique et dorienne de ''πρός''.<br> '''ποί (adverbe ; préposition)''' : Forme dorienne de ''πρός''.<br> '''πορτί (adverbe ; préposition)''' : Forme crétoise de ''πρός''.<br> '''πός (adverbe ; préposition)''' : Forme arcado-chypriote de ''πρός''.<br> '''πρές (adverbe ; préposition)''' : Forme éolienne de ''πρός''.<br> '''πέρτι (adverbe ; préposition)''' : Forme pamphylienne de ''πρός''.<br> '''πρᾶος, -ος, -ᾷον (adjectif)''' : doux ; calmant.<br> '''πραότης, -τος (nom commun) (f)''' : Douceur, bonté ; facilité de caractère.<br> '''πραύς, -εῖα, -ύ (adjectif)''' : Variante de ''πρᾶος''.<br> '''πραΰς, -εΐα, -ΰ (adjectif)''' : Forme poétique de ''πρᾶος''.<br> '''πρήξιμον, -ίματος (nom commun) (n)''' : Enflure, gonflement ; ballonnement, boursouflure, fluxion.<br> '''πρῖγκιψ, -ίγκιπος (nom commun) (m)''' : prince (chef d’une principauté).<br> '''πριγκίπισσα, -ας (nom commun) (f)''' : princesse (cheffe d’une principauté).<br> '''πρό (adverbe ; préposition)''' devant.<br> '''προ- (préfixe)''' pré-.<br> '''παράρτημα, -ήματος (nom commun) (n)''' : annexe.<br> '''προζύμιον, -ίου (nom commun) (n)''' : .<br> '''προζυμίτης, -ου (nom commun) (m)''' : .<br> '''πρόσθεσις, -έσεως (nom commun) (f)''' : addition.<br> '''προσφορά, -ᾶς (nom commun) (f)''' : offre.<br> '''προσωπεῖον, -ίου (nom commun) (n)''' : masque.<br> '''προσωπίς, -δος (nom commun) (f)''' : masque.<br> '''προσ- (préfixe)''' : Vers, à ; Auprès. En outre, encore. Excessivement ; tout à fait.<br> '''προσαρτῶ (verbe)''' : annexer.<br> '''προστίθημι (verbe)''' : additionner ; ajouter.<br> '''προσομοίωσις, -ώσεως (nom commun) (f)''' : simulation.<br> '''προσποιῶ (verbe)''' : simuler.<br> '''πρότανις, -άνεως (nom commun) (m)''' : Forme éolienne de ''πρύτανις''.<br> '''προῦμνον, -ύμνου (nom commun) (n)''' : prune.<br> '''προφατεία, -ας (nom commun) (f)''' : Forme dorienne de ''προφητεία''.<br> '''προφάτης, -ου (nom commun) (m)''' : Forme dorienne de ''προφήτης''.<br> '''προφητεία, -ας (nom commun) (f)''' : prophétie.<br> '''προφήτης, -ου (nom commun) (m)''' : prophète.<br> '''προφυλακτικός, -ή, -όν (adjectif)''' : .<br> '''προφυλάξις, -εως (nom commun) (f)''' : .<br> '''προφυλάσσω (verbe)''' : .<br> '''πρύμνα, -ας (nom commun) (f)''' : poupe.<br> '''πρύμνη, -ης (nom commun) (f)''' : Forme ionienne de ''πρύμνα''.<br> '''πρυτανεῖον, -ίου (nom commun) (n)''' : (À Athènes) mairie.<br> '''πρύτανις, -άνεως (nom commun) (m)''' : prytane.<br> '''πρωΐ (adverbe)''' : tôt.<br> '''πρῴ (adverbe)''' : Forme attique de ''πρωΐ''.<br> '''πρωκτός, -οῦ (nom commun) (m)''' : anus.<br> '''πρωκτόσοφος, -όφου (nom commun) (m/f)''' : Expert en débauche contre nature.<br> '''πρῷρα, -ῴρας (nom commun) (f)''' : proue.<br> '''πρωταγωνιστής, -οῦ (nom commun) (m)''' : protagoniste.<br> '''πρῶτος, -ώτη, -ῶτον (adjectif)''' : premier.<br> '''πρωτόκολλον, -όλλου (nom commun) (n)''' : frontispice.<br> '''πτελέα, -ας (nom commun) (f)''' : orme.<br> '''πτέρινος, -ίνη, -ινον (adjectif)''' : .<br> '''πτέρις, -δος (nom commun) (f)''' : fougère.<br> '''πτερόεις, -εσσα, -εν (adjectif)''' : ailé.<br> '''πτερόν, -οῦ (nom commun) (n)''' : aile.<br> '''πτέρνα, -ης (nom commun) (f)''' : talon. (partie postérieure du pied)<br> '''πτέρυξ, -υγος (nom commun) (f)''' : Aile ; nageoire.<br> '''πτηνόν, -οῦ (nom commun) (n)''' : oiseau.<br> '''πτηνοπέδιλος, -ίλου (nom commun) (m)''' : talaria.<br> '''πτισάνη, -ης (nom commun) (f)''' : tisane.<br> '''πτίσσω (verbe)''' : .<br> '''πτίττω (verbe)''' : Forme attique de ''πτίσσω''.<br> '''πτόλεμος, -έμου (nom commun) (m)''' : Forme homérique de ''πόλεμος''.<br> '''πτολίεθρον, -έθρου (nom commun) (n)''' : citadelle.<br> '''πτόλις, -εως (nom commun) (f)''' : Forme homérique de ''πόλις''.<br> '''πτύον, -ου (nom commun) (n)''' : pelle.<br> '''πτύω (verbe)''' : cracher.<br> '''πτῶσις, -ώσεως (nom commun) (f)''' : chute.<br> '''πτώσσω (verbe)''' : chuter.<br> '''πτωχεία, -ας (nom commun) (f)''' : pauvre.<br> '''πτωχεῖον, -ίου (nom commun) (n)''' : hospice.<br> '''πτώχευσις, -ύσεως (nom commun) (f)''' : banqueroute.<br> '''πτωχεύω (verbe)''' : faire banqueroute.<br> '''πτωχός, -ή, -όν (adjectif)''' : pauvre.<br> '''πτωχοτροφεῖον, -ίου (nom commun) (n)''' : hospice.<br> '''πτωχοτρόφος, -ου (nom commun) (m)''' : ptôchotrophe.<br> '''πτωχότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πτωχός''.<br> '''πτωχότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πτωχός''.<br> '''πτωχῶς (adverbe)''' : pauvrement.<br> '''πυγή, -ῆς (nom commun) (f)''' : fesse.<br> '''πυγηφαvοῦς, -οῦ (nom commun) (m)''' : mooning. (Action de montrer ses fesses nues en baissant son pantalon et en se penchant en avant.)<br> '''πυγίδιον, -ίου (nom commun) (n)''' : croupion.<br> '''πυγίζω (verbe)''' : sodomiser.<br> '''πυγμαῖος, -ία -ῖον (adjectif)''' : pygmée.<br> '''πυγμή, -ῆς (nom commun) (f)''' : poing.<br> '''πύελος, -έλου (nom commun) (f)''' : bassin (os).<br> '''πυθμήν, -ένος (nom commun) (m)''' : fond.<br> '''πυκνός, -ή, -όν (adjectif)''' : dense, sagace.<br> '''πυκνότατα, -, - (adverbe)''' : Superlatif de ''πυκνῶς''.<br> '''πυκνότερον, -, - (adverbe)''' : Comparatif de ''πυκνῶς''.<br> '''πυκνότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πυκνός''.<br> '''πυκνότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πυκνός''.<br> '''πυκνότης, -τος (nom commun) (f)''' : densité ; sagacité.<br> '''πυκνῶς (adverbe)''' : densément ; sagacement.<br> '''πύλη, -ης (nom commun) (f)''' : (Au singulier) battant de porte. (Au pluriel) porte.<br> '''πυλωρός, -οῦ (nom commun) (m)''' : Portier. (Anatomie) pylore.<br> '''πύνδαξ, -κος (nom commun) (m)''' : fond.<br> '''πυνθάνομαι (verbe)''' : chercher à savoir ; s’enquérir ; s’informer de ; apprendre en s’informant ; apprendre<br> '''πυξίς, -δος (nom commun) (f)''' : pyxide.<br> '''πύον, -ου (nom commun) (n)''' : ‎pus.<br> '''πυραμίς, -δος (nom commun) (f)''' : pyramide.<br> '''πυργίτης, -ου (nom commun) (m)''' : moineau.<br> '''πύργος, -ου (nom commun) (m)''' : Tour. (Par extension) Enceinte garnie de tours. (Par extension) Citadelle, remparts. (Par analogie) Sorte de bataillon carré.<br> '''πύρινος, -η, -ον (adjectif)''' : enflammé.<br> '''πυρινότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πύρινος''.<br> '''πυρινότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πύρινος''.<br> '''πύρινως (adverbe)''' : .<br> '''πῦρ, -ός (nom commun) (n)''' : feu.<br> '''πυρρός, -ά, -όν (adjectif)''' : .<br> '''πυρρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''πυρρός''.<br> '''πυρρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''πυρρός''.<br> '''πυρρῶς (adverbe)''' : .<br> '''πύσμα, -τος (nom commun) (n)''' : question ouverte.<br> '''πύστις, -εως (nom commun) (f)''' : Enquête, question. Apprentissage, chose apprise.<br> '''πυστός, -ή, -όν (adjectif)''' : .<br> '''πωγώνιον, -ίου (nom commun) (m)''' : menton.<br> '''πώγων, -ονος (nom commun) (m)''' : Barbe ; barbe d’animal, de plante. Barbelure. Langue de feu.<br> '''πωλέω (verbe)''' : vendre.<br> '''πώλης, -ου (nom commun) (m)''' : vendeur.<br> '''πωλητής, -οῦ (nom commun) (m)''' : vendeur.<br> '''πῶμα, -ώματος (nom commun) (n)''' : bouchon.<br> '''πῶυ, -ώεος (nom commun) (n)''' : Troupeau d’ovins ou de chèvres.<br> '''πῶς (adverbe)''' : comment.<br> '''Παιάν, -ᾶνος (nom commun) (m)''' : péan. (nom propre) : Péan.<br> '''Πακτωλός, -οῦ (nom propre) (m)''' : Pactole.<br> '''Παλαιὰ Διαθήκη (locution nominale) (f)''' : Ancien Testament.<br> '''Παλλάδιον, -ίου (nom propre) (n)''' : Palladium.<br> '''Πάλλας, -αντος (nom propre) (m)''' : Pallas (nom masculin).<br> '''Παλλάς, -δος (nom propre) (f)''' : Pallas (nom féminin).<br> '''Πάλμυρα, -ύρας (nom propre) (f)''' : Palmyre.<br> '''Πάμφιλος, -ίλου (nom propre) (m)''' : Pamphile.<br> '''Πανάκεια, -ας (nom propre) (f)''' : [[wikt:Panacée|Panacée]].<br> '''Πανδώρα, -ας (nom propre) (f)''' : [[wikt:Pandore|Pandore]].<br> '''Πάν, -ός (nom propre) (m)''' : [[wikt:Pan|Pan]].<br> '''Πανοῦργος, -ύργου (nom propre) (m)''' : Panurge.<br> '''Πάνθειον, -ίου (nom propre) (m)''' : Panthéon.<br> '''Παρθένος, -ου (nom propre) (f)''' : Vierge.<br> '''Παρθενών, -ῶνος (nom commun) (m)''' : Parthénon.<br> '''Παρθία, -ας (nom propre) (f)''' : Parthie.<br> '''Πάρθος, -ου (nom commun) (m)''' : Parthe.<br> '''Πάρις, -δος (nom propre) (m)''' : Pâris.<br> '''Παρμενίδης, -ου (nom propre) (m)''' : Parménide.<br> '''Πασιφάη, -ης (nom propre) (f)''' : Pasiphaé.<br> '''Παῦλος, -ύλου (nom propre) (m)''' : Paul.<br> '''Παῦνι (nom propre) (m)''' : Payni.<br> '''Παυσανίας, -ου (nom propre) (m)''' : Pausanias.<br> '''Παχώμιος, -ίου (nom propre) (m)''' : Pacôme.<br> '''Παχών (nom propre) (m)''' : Pachon.<br> '''Πελοπόννησος, -ήσου (nom propre) (f)''' : Péloponnèse.<br> '''Πέλοψ, -πος (nom propre) (m)''' : Pélops.<br> '''Πεμφρηδώ, -οῦς (nom propre) (f)''' : Pemphrédo (une des Grées).<br> '''Πεντάτευχος, -ύχου (nom propre) (f)''' : Pentateuque.<br> '''Πέργαμον, -άμου (nom propre) (n)''' : Pergame.<br> '''Περίϐοια, -ίας (nom propre) (f)''' : Périboée.<br> '''Περικλῆς, -έους (nom propre) (m)''' : Périclès.<br> '''Περίλεως, -εω (nom propre) (m)''' : Périléos.<br> '''Περσέπολις, -όλεως (nom propre) (f)''' : Persépolis.<br> '''Περσεπολίτης, -ου (nom commun) (m)''' : Persépolitain.<br> '''Πέρσης, -ου (nom commun) (m)''' : Perse.<br> '''Περσίς, -δος (nom propre) (f)''' : Perse.<br> '''Περσίς, -δος (nom commun) (f)''' : Perse.<br> '''Πετεφρής, -οῦ (nom propre) (m)''' : Potiphar.<br> '''Πήγασος, -άσου (nom propre) (m)''' : Pégase.<br> '''Πηλεύς, -έως (nom propre) (m)''' : Pélée.<br> '''Πηνειός, -οῦ (nom propre) (m)''' : Pénée.<br> '''Πηνελόπη, -ης (nom propre) (f)''' : Pénélope.<br> '''Πίστις, -εως (nom propre) (f)''' : Pistis.<br> '''Πιτθεύς, -έως (nom propre) (m)''' : Pitthée. (Grand-père de Thésée.)<br> '''Πλάτων, -ωνος (nom propre) (m)''' : Platon.<br> '''Πλευρών, -ῶνος (nom propre) (m/f)''' : Pleuron.<br> '''Πλούταρχος, -άρχου (nom propre) (m)''' : Plutarque.<br> '''Πλουτεύς, -έως (nom propre) (m)''' : Autre nom de Pluton.<br> '''Πλουτίς, -δος (nom propre) (f)''' : Ploutis.<br> '''Πλοῦτος, -ύτου (nom propre) (m)''' : [[wikt:Ploutos|Ploutos]].<br> '''Πλούτων, -ωνος (nom propre) (m)''' : [[wikt:Pluton|Pluton]].<br> '''Πόθος, - (nom propre) (m)''' : [[wikt:Pothos|Pothos]].<br> '''Ποικίλη, -ης (nom propre) (f)''' : Pœcile. (portique au nord de l’Agora d’Athènes.)<br> '''Πολύϐιος, -ίου (nom propre) (m)''' : Polybe.<br> '''Πολυμνία, -ας (nom propre) (f)''' : Polymnie.<br> '''Πολύαινος, -ίνου (nom propre) (m)''' : Polyen.<br> '''Πολυνείκης, -ους (nom propre) (m)''' : Polynice.<br> '''Πολυπήμων, -ονος (nom propre) (m)''' : Polypémon (véritable nom de Procuste).<br> '''Πολύφημος, -ήμου (nom propre) (m)''' : Polyphème.<br> '''Πομπηία, -ας (nom propre) (f)''' : Pompéi.<br> '''Πομπήϊος, -ΐου (nom propre) (m)''' : Pompée.<br> '''Ποσειδώνιος, - (nom propre) (m)''' : Posidonios (Philosophe grec stoïcien né à Apamée en 135 av. J.-C. et mort à Rome en 51 av. J.-C. .).<br> '''Ποσειδάν, - (nom propre) (m)''' : Forme dorienne de ''Ποσειδῶν''.<br> '''Ποσειδάων, - (nom propre) (m)''' : Forme homérique de ''Ποσειδῶν''.<br> '''Ποσειδέων, - (nom propre) (m)''' : Forme ionienne de ''Ποσειδῶν''.<br> '''Ποσειδῶν, -ῶνος (nom propre) (m)''' : [[wikt:Poséidon|Poséidon]].<br> '''Ποτειδάν, - (nom propre) (m)''' : Autre forme dorienne de ''Ποσειδῶν''.<br> '''Ποτείδαν, - (nom propre) (m)''' : Forme éolienne de ''Ποσειδῶν''.<br> '''Ποτειδᾶς, - (nom propre) (m)''' : Forme de ''Ποσειδῶν''.<br> '''Ποτειδάων, - (nom propre) (m)''' : Forme crétoise et béotienne de ''Ποσειδῶν''.<br> '''Πραξιτέλης, -ους (nom propre) (m)''' : Praxitèle.<br> '''Πρίαμος, -άμου (nom propre) (m)''' : Priam.<br> '''Πρόκνη, -ης (nom propre) (f)''' : Procné.<br> '''Προκρούστης, -ου (nom propre) (m)''' : Procuste (surnom de Polypémon.).<br> '''Προκύων, -ός (nom propre) (m)''' : Procyon.<br> '''Προμηθεύς, -έως (nom propre) (m)''' : Prométhée.<br> '''Προξένος, -ρου (nom propre) (m)''' : Proxenos.<br> '''Προυσίας, -ου (nom propre) (m)''' : Prusias.<br> '''Πρωταγόρας, -ου (nom propre) (m)''' : Protagoras.<br> '''Πυγμαλίων, -ωνος (nom propre) (m)''' : Pygamlion.<br> '''Πυθαγόρας, -ου (nom propre) (m)''' : Pythagore.<br> '''Πυθόπολις, -όλεως (nom propre) (f)''' : Antioche du Méandre.<br> '''Πύθων, -ωνος (nom propre) (m)''' : Python.<br> '''Πυθώ, -οῦς (nom propre) (f)''' : Ancien nom de Delphes.<br> '''Πυλάδας, -ου (nom propre) (m)''' : Forme dorienne de ''Πυλάδης''.<br> '''Πυλάδης, -ου (nom propre) (m)''' : Pylade.<br> '''Πύραμος, -άμου (nom propre) (m)''' : Pyrame.<br> '''Πυρετός, -οῦ (nom propre) (m)''' : (fleuve d’Europe de l’Est).<br> '''Πυργοπολυνείκης, -ους (nom propre) (m)''' : Pyrgopolinice.<br> '''Πύργος, -ου (nom propre) (m)''' : Pyrgos.<br> '''Πύρρα, -ας (nom propre) (f)''' : Pyrrha.<br> '''Πύρρος, -ου (nom propre) (m)''' : Pyrrhus.<br> '''Πύρρων, -ωνος (nom propre) (m)''' : Pyrrhon.<br> '''Πῶλος, -ώλου (nom propre) (m)''' : Polos.<br> ==Ρ== '''ῥᾶ (nom commun) (n)''' : rhubarbe.<br> '''ῥαϐϐί (nom commun) (m)''' : rabbin.<br> '''ῥαϐδομαντεία, -ας (nom commun) (f)''' : Divination pratiquée grâce à une baguette.<br> '''ῥαϐδονόμος, -ου (nom commun) (m)''' : licteur.<br> '''ῥαϐδοῦχος, -ύχου (nom commun) (m)''' : licteur.<br> '''ῥάϐδος, -ου (nom commun) (f)''' : baguette.<br> '''ῥαγάς, -δος (nom commun) (f)''' : .<br> '''ῥαιϐηδόν, -οῦ (nom commun) (n)''' .<br> '''ῥαιϐοειδής, -ής, -ές (adjectif) ''' .<br> '''ῥαιϐόκρανος, -άνου (nom commun) (m)''' .<br> '''ῥαιϐοσκελής, -ής, -ές (adjectif) ''' .<br> '''ῥαιϐός, -ή, -όν (adjectif)''' : tendu.<br> '''ῥαιϐότης, -τος (nom commun) (f)''' .<br> '''ῥαιϐῶς (adverbe)''' : de façon tendue.<br> '''ῥαιϐῶ (verbe)''' tendre.<br> '''ῥαδινός, -ή -όν (adjectif)''' : souple.<br> '''ῥᾴδιος, -α, -ον (adjectif)''' : facile.<br> '''ῥᾳδίως (adverbe)''' : facilement.<br> '''ῥᾷστος, -, - (adjectif)''' : Superlatif de ''ῥᾴδιος''.<br> '''ῥᾴων, -, - (adjectif)''' : Comparatif de ''ῥᾴδιος''.<br> '''ῥάμνος, -ου (nom commun) (f)''' nerprun épineux.<br> '''ῥάμφος, -ους (nom commun) (n)''' : bec (d’un oiseau).<br> '''ῥάξ, -γός (nom commun) (m)''' : téton.<br> '''ῥάπισμα, -ίσματος (nom commun) (n)''' : gifle.<br> '''ῥαπίς, -δος (nom commun) (f)''' : verge ; bâton.<br> '''ῥάπτης, -ου (nom commun) (n)''' : tailleur (de vêtements).<br> '''ῥαπτός, -ή, -όν (adjectif)''' : cousu.<br> '''ῥάπτω (verbe)''' : coudre.<br> '''ῥάπυς, -ος (f)''' : navet.<br> '''ῥάσσω (verbe)''' : .<br> '''ῥάττω (verbe)''' : Forme attique de ''ῥάσσω''.<br> '''ῥαφανιδῶ (verbe)''' : .<br> '''ῥαφανίδωσις, -ώσεως (nom commun) (f)''' : .<br> '''ῥαφανός, -οῦ (nom commun) (m)''' : radis.<br> '''ῥαφεύς, -έως (nom commun) (m)''' : couturier.<br> '''ῥαφή, -ῆς (nom commun) (f)''' : couture.<br> '''ῥαφίς, -δος (nom commun) (f)''' : Aiguille, poinçon. Aiguille (poisson de mer).<br> '''ῥάφυς, -ος (nom commun) (f)''' : Variante de ''ῥάπυς''.<br> '''ῥαχίζω (verbe)''' : .<br> '''ῥάχις, -εως (nom commun) (f)''' : épine dorsale.<br> '''ῥαχιστής, -οῦ (nom commun) (m)''' : .<br> '''ῥαχιστός, -ός, -όν (adjectif)''' : .<br> '''ῥαχίτης, -ης, -ες, (adjectif)''' : .<br> '''ῥαχός, -ή, -όν, (adjectif)''' : superficiel.<br> '''ῥαχός, -οῦ (nom commun) (m)''' : .<br> '''ῥάψις, -εως (nom commun) (f)''' : .<br> '''ῥαψῳδία, -ας (nom commun) (f)''' : récitation d’un poème épique.<br> '''ῥαψῳδός, -οῦ (nom commun) (m)''' : barde.<br> '''ῥέδδω (verbe)''' : Forme béotienne et dorienne de ''ῥέζω''.<br> '''ῥέζω (verbe)''' : Travailler, faire, exécuter.<br> '''ῥέπω (verbe)''' : incliner.<br> '''ῥεῦμα, -ύματος (nom commun) (n)''' : rhume.<br> '''ῥευματίζομαι (verbe)''' : souffrir de rhumatismes.<br> '''ῥευματισμός, -οῦ (nom commun) (m)''' : rhumatisme.<br> '''ῥευστός, -ή -όν (adjectif)''' : liquide.<br> '''ῥέω (verbe)''' : couler.<br> '''ῥῆγμα, -ήγματος (nom commun) (n)''' : .<br> '''ῥήγνυμι (verbe)''' : .<br> '''ῥῆμα, -ήματος (nom commun) (n)''' : verbe.<br> '''ῥῆξις, -ήξεως (nom commun) (f)''' : déchirure.<br> '''ῥῆον, -ήου (nom commun) (n)''' : rhubarbe.<br> '''ῥῆσις, -ήσεως (nom commun) (f)''' : citation.<br> '''ῥήσσω (verbe)''' : Forme ionienne de ''ῥάσσω''.<br> '''ῥητορικός, -ή, -όν (adjectif)''' : oratoire.<br> '''ῥητορικῶς (adverbe)''' : oratoirement.<br> '''ῥητορικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ῥητορικός''.<br> '''ῥητορικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ῥητορικός''.<br> '''ῥητορικώτατα, -, - (adverbe)''' : Superlatif de ''-ικῶς''.<br> '''ῥητορικώτερον, -, - (adverbe)''' : Comparatif de ''-ικῶς''.<br> '''ῥητός, -ή, -όν (adjectif)''' : Dit ; dicible, (Mathématiques) rationnel.<br> '''ῥήτρα, -ας (nom commun) (f)''' : clause.<br> '''ῥήτωρ, -ορος (nom commun) (m/f)''' : orateur.<br> '''ῥηχός, -ή -όν (adjectif)''' : Forme ionienne de ''ῥαχός''.<br> '''ῥῖγος, -ίγους (nom commun) (n)''' : frisson.<br> '''ῥιγῶ (verbe)''' : frissonner.<br> '''ῥίζα, -ης (nom commun) (f)''' : racine.<br> '''ῥινόκερως, -έρωτος (nom commun) (m)''' : rhinocéros.<br> '''ῥίον, -ου (nom commun) (n)''' : sommet.<br> '''ῥιπή, -ῆς (nom commun) (f)''' : .<br> '''ῥίπτω (verbe)''' : lancer, jeter ; projet.<br> '''ῥίς, -νός (nom commun) (f)''' : nez.<br> '''ῥίψασπις, -δος (nom commun) (f)''' : .<br> '''ῥίψις, -πός (nom commun) (f)''' : entrelac.<br> '''ῥιπίζω (verbe)''' : éventer.<br> '''ῥιπίς, -δος (nom commun) (f)''' : éventail.<br> '''ῥοά, -ᾶς (nom commun) (f)''' : Forme dorienne de ''ῥοή''.<br> '''ῥοή, -ῆς (nom commun) (f)''' : écoulement.<br> '''ῥοδόεις, -εσσα, -εν (adjectif)''' : rosé.<br> '''ῥοδοέντως (adverbe)''' : .<br> '''ῥοδοέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''ῥοδόεις''.<br> '''ῥοδοέστερος, -έρα, -ερον (adjectif)''' : Comparatif de ''ῥοδόεις''.<br> '''ῥόδον, -ου (nom commun) (n)''' : rose (fleur).<br> '''ϝρόδον, -ου (nom commun) (n)''' : Forme éolienne de ''ῥόδον''.<br> '''ῥοιά, -ᾶς (nom commun) (f)''' : grenade (fruit).<br> '''ῥόκα, -ας (nom commun) (f)''' : roquette (plante).<br> '''ῥόμος, -ου (nom commun) (m)''' : ver.<br> '''ῥομφαία, -ας (nom commun) (f)''' : estramaçon.<br> '''ῥόπαλον, -άλου (nom commun) (n)''' : gourdin.<br> '''ῥοφῶ (verbe)''' : sucer.<br> '''ῥύαξ, -κος (nom commun) (n)''' : ruisseau.<br> '''ῥύγχος, -ους (nom commun) (n)''' : Trompe, museau. Bec d’un oiseau.<br> '''ῥυθμός, -οῦ (nom commun) (m)''' : mouvement régulier.<br> '''ῥύμη, -ης (nom commun) (f)''' : rue.<br> '''ῥυπαίνω (verbe)''' : polluer.<br> '''ῥύπανσις, -άνσεως (nom commun) (f)''' : pollution.<br> '''ῥυπαρός, -ά, -όν (adjectif)''' : crasseux.<br> '''ῥυπαρῶς (adverbe)''' : crasseusement.<br> '''ῥυπαρώτατα, -, - (adverbe)''' : Superlatif de ''ῥυπαρῶς''.<br> '''ῥυπαρώτερον, -, - (adverbe)''' : Comparatif de ''ῥυπαρῶς''.<br> '''ῥυπαρώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ῥυπαρός''.<br> '''ῥυπαρώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ῥυπαρός''.<br> '''ῥύπος, -ου (nom commun) (m)''' : polluant.<br> '''ῥυσμός, -οῦ (nom commun) (m)''' : Forme ionienne de ''ῥυθμός''.<br> '''ῥυτίς, -δος (nom commun) (f)''' : ride.<br> '''ῥωγμή, -ῆς (nom commun) (f)''' : fissure.<br> '''ῥώθων, -ος (nom commun) (m)''' : narine.<br> '''ῥωμαϊκός, -ή, -όν (adjectif)''' : romain.<br> '''ῥωμαϊκῶς (adverbe)''' : romainement.<br> '''ῥωμαϊκώτατα, -, - (adverbe)''' : Superlatif de ''ῥωμαϊκῶς''.<br> '''ῥωμαϊκώτερον, -, - (adverbe)''' : Comparatif de ''ῥωμαϊκῶς''.<br> '''ῥωμαϊκώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ῥωμαϊκός''.<br> '''ῥωμαϊκώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ῥωμαϊκός''.<br> '''ῥωμαλέος, -α, -ον (adjectif)''' : fort, robuste (en parlant des personnes) ; solide (en parlant des choses).<br> '''ῥωμαλεότης, -τος (nom commun) (f)''' : force, robustesse (en parlant des personnes) ; solidité (en parlant des choses).<br> '''ῥώμη, -ης (nom propre) (f)''' : force.<br> '''ῥώομαι (verbe)''' : se précipiter, fondre sur.<br> '''ῥωσικός, -ή, -όν (adjectif)''' : russe.<br> '''ῥώξ, -γός (nom commun) (m)''' : Forme ionienne de ''ῥάξ''.<br> '''ῥῶ (nom commun) (n)''' : rhô.<br> '''Ῥαάβ (nom propre) (f)''' : Rahab.<br> '''Ῥα (nom propre) (m)''' : Rê.<br> '''Ῥᾶ (nom propre) (n)''' : Volga.<br> '''Ῥαδάμανθυς, -άνθυος (nom propre) (m)''' : Rhadamanthe.<br> '''Ῥαθούρης, -ου (nom propre) (m)''' : Niouserrê.<br> '''Ῥαθωτις, -ίδος (nom propre) (m)''' : Toutânkhamon.<br> '''Ῥαμέσσης, -ου (nom propre) (m)''' : Ramsès.<br> '''Ῥαμνοῦς, -ντος (nom propre) (m)''' : Rhamnonte.<br> '''Ῥαφαήλ (nom propre) (m)''' : Raphaël.<br> '''Ῥεϐέκκα, -ας (nom propre) (f)''' : Rebecca.<br> '''Ῥῆνος, -ήνου (nom propre) (m)''' : Rhin.<br> '''Ῥίον, -ου (nom propre) (m)''' : Río (ville de Grèce).<br> '''Ῥοδανός, -οῦ (nom propre) (m)''' : Rhône.<br> '''Ῥόδη, -ης (nom propre) (f)''' : Rhodé.<br> '''Ῥόδιος, - (nom propre) (m)''' : Rhodien.<br> '''Ῥοδόπη, -ης (nom propre) (f)''' : Rhodope.<br> '''Ῥόδος, -ου (nom propre) (f)''' : Rhodes.<br> '''Ῥούθ (nom propre) (f)''' : Ruth.<br> '''Ῥοῦφος, -ύφου (nom propre) (m)''' : Rufus.<br> '''Ῥωμαῖος, -ίου (nom commun) (m)''' : Romain.<br> '''Ῥώμη, -ης (nom propre) (f)''' : Rome.<br> '''Ῥῶμος, -ώμου (nom propre) (m)''' : Rémus.<br> '''Ῥώμυλος, -ύλου (nom propre) (m)''' : Romulus.<br> '''Ῥωξάνη, -ης (nom propre) (f)''' : Roxane (Épouse d'Alexandre le Grand.)<br> '''Ῥωσία, -ας (nom propre) (f)''' : Russie.<br> '''Ῥωσίς, -δος (nom propre) (f)''' : Russe.<br> '''Ῥῶς, -ώσος (nom commun) (m)''' : Russe.<br> ==Σ== '''σάϐϐατον, -άτου (nom commun) (n)''' : shabbat.<br> '''σαϐϐατισμός, -οῦ (nom commun) (n)''' : sabbatisme.<br> '''σαδδουκαῖος, -ίου (nom commun) (m)''' : sadducéen.<br> '''σάγμα, -τος (nom commun) (n)''' : bât.<br> '''σάκκος, -ου (nom commun) (m)''' : sac.<br> '''σάκος, -ους (nom commun) (n)''' : bouclier.<br> '''σάκχαρις, -άρεως (nom commun) (f)''' : sucre.<br> '''σάλπιγξ, -γoς (nom commun) (f)''' : trompette.<br> '''σᾶμα, -άματος (nom commun) (n)''' : Forme dorienne de ''σῆμα''.<br> '''σάμερον (adverbe)''' : Forme dorienne de ''σήμερον''.<br> '''σάμιος, -ος, -ον (adjectif)''' : samosien.<br> '''σαμψήρα, -ας (nom commun) (f)''' : cimeterre.<br> '''σάνδαλον, -άλου (nom commun) (n)''' : sandale.<br> '''σανίς, -δος (nom commun) (f)''' : planche.<br> '''σαρδονικός, -ή, -όν (adjectif)''' : sarde.<br> '''σαρδονικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''σαρδονικός''.<br> '''σαρδονικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''σαρδονικός''.<br> '''σαρδονικότατα, -, - (adverbe)''' : Superlatif de ''σαρδονικῶς''.<br> '''σαρδονικότερον, -, - (adverbe)''' : Comparatif de ''σαρδονικῶς''.<br> '''σαρδονικῶς (adverbe)''' : sardoniquement.<br> '''σαρκικός, -ή, -όν (adjectif)''' : charnel.<br> '''σαρκικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''σαρκικός''.<br> '''σαρκικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''σαρκικός''.<br> '''σαρκικότατα, -, - (adverbe)''' : Superlatif de ''σαρκικῶς''.<br> '''σαρκικότερον, -, - (adverbe)''' : Comparatif de ''σαρκικῶς''.<br> '''σαρκικῶς (adverbe)''' : charnellement.<br> '''σάρκινος, -ίνη, -άρκινον (adjectif)''' : charnu.<br> '''σάρξ, -κός (nom commun) (f)''' : chair.<br> '''σατυρίασις, -άσεως (nom commun) (f)''' : satyriasis.<br> '''σατυρικός, -ή, -όν (adjectif)''' : satyrique.<br> '''σατύριον, -ίου (nom commun) (n)''' : satyrion.<br> '''σατυρίσκος, -ου (nom commun) (m)''' : satyreau.<br> '''σάτυρος, -ύρου (nom commun) (m)''' : satyre.<br> '''σατυρώδης, -ης, -ες (adjectif)''' : satyrode.<br> '''σαύρα, -ας (nom commun) (f)''' : lézard ; quéquette.<br> '''σαύρη, -ης (nom commun) (f)''' : Forme ionienne de ''σαύρα''.<br> '''σαυροματικός, -ή, -όν (adjectif)''' : sarmate.<br> '''σαυροματικῶς (adverbe)''' : .<br> '''σαυροματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σαυροματικός''.<br> '''σαυροματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σαυροματικός''.<br> '''σαῦρος, -ύρου (nom commun) (m)''' : lézard.<br> '''σάπφειρος, -ίρου (nom commun) (f)''' : saphir.<br> '''σαφέστερος, -άτη, -έστατον (adjectif)''' : Superlatif de ''σαφής''.<br> '''σαφέστατος, -έρα, -έσερον (adjectif)''' : Comparatif de ''σαφής''.<br> '''σαφής, -ής, -ές (adjectif)''' : Clair, évident ; manifeste.<br> '''σαφῶς (adverbe)''' : Clairement, évidemment ; manifestement.<br> '''σεϐάζω (verbe)''' : respecter.<br> '''σεϐασμός, -οῦ (nom commun) (m)''' : respect.<br> '''σεϐαστός, -ός, -όν (adjectif)''' : respectable ; respecté.<br> '''σέϐομαι (verbe)''' : Craindre les dieux. Vénérer.<br> '''σείριος, -ίου (nom commun) (m)''' : destructeur.<br> '''σελάνα, -ας (nom commun) (f)''' : Forme dorienne de ''σελήνη''.<br> '''σελάννα, -ας (nom commun) (f)''' : Forme éolienne de ''σελήνη''.<br> '''σέλας, -τος (nom commun) (n)''' : Éclat, lumière ; lueur brillante.<br> '''σελάχιον, -ίου (nom commun) (n)''' : raie (poisson).<br> '''σέλαχος, -άχους (nom commun) (n)''' : requin.<br> '''σελήνη, -ης (nom commun) (f)''' : lune.<br> '''σεληνιακός, -ή, -όν (adjectif)''' : lunaire.<br> '''σέλινον, -ίνου (nom commun) (n)''' : céleri.<br> '''σελίς, -δος (nom commun) (f)''' : page. (Face d'une feuille de papier, de parchemin, de vélin, servant à l'écriture.)<br> '''σεμίδαλις, -άλεως (nom commun) (f)''' : semoule.<br> '''σεμνός, -ή, -όν (adjectif)''' : modeste.<br> '''σεμνότατα, -, - (adverbe)''' : Superlatif de ''σεμνῶς''.<br> '''σεμνότερον, -, - (adverbe)''' : Comparatif de ''σεμνῶς''.<br> '''σεμνότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''σεμνός''.<br> '''σεμνότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''σεμνός''.<br> '''σεμνότης, -τος (nom commun) (f)''' : modestie.<br> '''σεμνῶς (adverbe)''' : modestement.<br> '''σῆμα, -ήματος (nom commun) (n)''' : signe.<br> '''σημαντικός -ή -όν (adjectif)''' : significatif.<br> '''σημαντικῶς (adverbe)''' : significativement.<br> '''σημαντικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σημαντικός''.<br> '''σημαντικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σημαντικός''.<br> '''σημαντικώτατα, -, - (adverbe)''' : Superlatif de ''σημαντικῶς''.<br> '''σημαντικώτερον, -, - (adverbe)''' : Comparatif de ''σημαντικῶς''.<br> '''σημεῖον, -ίου (nom commun) (n)''' : signal.<br> '''σήμερον (adverbe)''' : aujourd’hui.<br> '''σημύδα, -ης (nom commun) (f)''' : bouleau.<br> '''σῆραγξ, -ήραγγος (nom commun) (f)''' : tunnel.<br> '''σήσαμον, άμου (nom commun) (n)''' : sésame.<br> '''σής, -τός (nom commun) (m)''' : mite.<br> '''σητόδοκις, -εως (nom commun) (f)''' : papillon.<br> '''σῆψις, -ήψεως (nom commun) (f)''' : putréfaction.<br> '''σιαγών, -όνος (nom commun) (f)''' : mâchoire.<br> '''σιηγών, -όνος (nom commun) (f)''' : Forme ionienne de ''σιαγών''.<br> '''σῖγμα (nom commun) (n)''' : sigma.<br> '''σικάριος, -ίου (nom commun) (m)''' : assassin.<br> '''σικελικός, -ή, -όν (adjectif)''' : sicilien.<br> '''σικυός, -οῦ (nom commun) (m)''' : concombre.<br> '''σικυώνιος, -ος, -ον (adjectif)''' : .<br> '''σίλφιον, -ίου (nom commun) (n)''' : silphium.<br> '''σιμός, -ή, -όν (adjectif)''' : Camus ; montant.<br> '''σιμῶ (verbe)''' : lever le nez.<br> '''σίναπι, -άπεως (nom commun) (n)''' : moutarde (plante).<br> '''σιός, -οῦ (nom commun) (m)''' : Forme laconienne de ''θεός''.<br> '''σίσυς, -ος (nom commun) (m)''' : fourrure.<br> '''-σις, -εως (suffixe) (f)''' : Suffixe formant des noms d'action.<br> '''σῖτος, -ίτου (nom commun) (m)''' : Grain, à la fois le blé et l'orge. (Par extension) Toute nourriture végétale (par opposition à la viande ou la boisson). Pension alimentaire. (Droit athénien) Distribution de blé aux indigents.<br> '''σιωπή, -ῆς (nom commun) (f)''' : calme, silence.<br> '''σιωπηρός, -ός, -όν (adjectif)''' : silencieux, tacite.<br> '''σιωπηρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''σαρκικός''.<br> '''σιωπηρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''σαρκικός''.<br> '''σιωπηρότατα, -, - (adverbe)''' : Superlatif de ''σαρκικῶς''.<br> '''σιωπηρότερον, -, - (adverbe)''' : Comparatif de ''σαρκικῶς''.<br> '''σιωπηρῶς (adverbe)''' : tacitement.<br> '''σιωπηρότης, -τος (nom commun) (f)''' : tacité.<br> '''σιωπῶ (verbe)''' : se taire.<br> '''σκαιός, -ά, -όν (adjectif)''' : qui est à gauche.<br> '''σκάνδαλον, -άλου (nom commun) (n)''' : Piège placé sur le chemin.<br> '''σκανδάληθρον, -ήθρου (nom commun) (n)''' : .<br> '''σκανδαλίζω (verbe)''' : Placer un piège sur le chemin.<br> '''σκαπανεύς, -έως (nom commun) (m)''' : .<br> '''σκαπάνη, -ης (nom commun) (f)''' : .<br> '''σκᾶπτρον, -άπτρου (nom commun) (n)''' : Forme dorienne de ''σκῆπτρον''.<br> '''σκάπτω (verbe)''' : creuser.<br> '''σκεδάννυμι (verbe)''' : disperser, répandre.<br> '''σκέλος, -ους (nom commun) (n)''' : (Anatomie) Jambe de l’homme et des animaux. (Au pluriel) Les murs (entre Athènes et le Pirée, entre Mégare et Nisæa).<br> '''σκεπτικός, -ή, -όν (adjectif)''' : observateur.<br> '''σκεπτικῶς (adverbe)''' : sceptiquement.<br> '''σκεπτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σκεπτικός''.<br> '''σκεπτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σκεπτικός''.<br> '''σκέπτομαι (verbe)''' : Considérer ; examiner avec soin.<br> '''σκευαρίδιον, -ίου (nom commun) (n)''' : .<br> '''σκευάριον, -ίου (nom commun) (n)''' : .<br> '''σκευωρία, -ας (nom commun) (f)''' : machination.<br> '''σκεῦος, -ύους (nom commun) (n)''' : ustensile.<br> '''σκέψις, -εως (nom commun) (f)''' : pensée. (opération de l’intelligence.)<br> '''σκηπτός, -οῦ (nom commun) (m)''' : ouragan.<br> '''σκῆπτρον, -ήπτρου (nom commun) (n)''' : Étai, sceptre.<br> '''σκήπτω (verbe)''' : Étayer, soutenir. Brandir.<br> '''σκίουρος, -ύρου (nom commun) (m)''' : écureuil.<br> '''σκολιός, -ά, -όν (adjectif)''' : tordu.<br> '''σκολόπαξ, -άκος (nom commun) (m)''' : bécasse.<br> '''σκολόπενδρα, -ένδρας (nom commun) (f)''' : scolopendre.<br> '''σκολοπένδριον, -ίου (nom commun) (n)''' : Diminutif de ''σκολόπενδρα''.<br> '''σκόλοψ, -πος (nom commun) (m)''' : écharde.<br> '''σκόπελος, -έλου (nom commun) (m)''' : écueil.<br> '''σκοπῶ (verbe)''' : observer.<br> '''σκόροδον, -όδου (nom commun) (n)''' : ail.<br> '''σκορπιός, -οῦ (nom commun) (m)''' : scorpion.<br> '''σκοτεινός, -ή, -όν (adjectif)''' : obscur.<br> '''σκοτεινῶς (adverbe)''' : obscurément.<br> '''σκοτεινώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σκοτεινός''.<br> '''σκοτεινώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σκοτεινός''.<br> '''σκότιος, -ία, -ότιον (adjectif)''' : bâtard.<br> '''σκότος, -ου (nom commun) (m)''' : obscurité.<br> '''σκυθικός, -ή, -όν (adjectif)''' : scythe.<br> '''σκυθικῶς (adverbe)''' : .<br> '''σκυθικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σκυθικός''.<br> '''σκυθικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σκυθικός''.<br> '''σκύλαξ, -κος (nom commun) (m)''' : chiot.<br> '''σκυλεύω (verbe)''' : dépouiller.<br> '''σκύλλω (verbe)''' : Déchirer, troubler.<br> '''σκῦλον, -ύλου (nom commun) (n)''' : butin.<br> '''σκῦτος, -ύτου (nom commun) (m)''' : .<br> '''σκώληξ, -κος (nom commun) (m)''' : ver.<br> '''σκῶμμα, -ώμματος (nom commun) (n)''' : .<br> '''σκωραμίς, -δος (nom commun) (f)''' : pot de chambre.<br> '''σκωρία, -ας (nom commun) (f)''' : scorie.<br> '''σκῶρ, -ατός (nom commun) (n)''' : excrément.<br> '''σκώψ, -πός (nom commun) (m)''' : hibou.<br> '''σμάραγδος, -άγδου (nom commun) (f)''' : émeraude.<br> '''σμάω (verbe)''' : frotter, nettoyer.<br> '''σμῆγμα, -ήγματος (nom commun) (n)''' : savon, détergent ; onguent.<br> '''σμήχω (verbe)''' : essuyer.<br> '''σμῖλαξ, -ίλακος (nom commun) (f)''' : if.<br> '''σμίλη, -ης (nom commun) (f)''' : Ciseau. Bistouri, lancette.<br> '''σμύραινα, -ίνης (nom commun) (f)''' : murène.<br> '''σμῶδιξ, -ώδιγγος (nom commun) (f)''' : contusion.<br> '''σμώχω (verbe)''' : frotter.<br> '''σοϐαρός, -ή, -όν (adjectif)''' : Effrayant. Fuyant, rapide. Hautain, dédaigneux ; pompeux.<br> '''σοϐαρῶς (adverbe)''' : Effrayamment, rapidement. Hautainement, dédaigneusement ; pompeusement.<br> '''σοϐαρώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σοϐαρός''.<br> '''σοϐαρώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σοϐαρός''.<br> '''σοϐῶ (verbe)''' : Chasser, effrayer les oiseaux. Bouger rapidement.<br> '''σαπρός, -ή, -όν (adjectif)''' : Pourri, putride<br> '''σαπρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''σαπρός''.<br> '''σαπρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''σαπρός''.<br> '''σαπρῶς (adverbe)''' : putridement.<br> '''σός, -ή, -όν (adjectif possessif)''' : ton.<br> '''σοφία, -ας (nom commun) (f)''' : sagesse.<br> '''σοφίη, -ης (nom commun) (f)''' : Forme ionienne de ''σοφία''.<br> '''σοφός, -ή, -όν (adjectif)''' : Habile. (En parlant de l’intelligence ou du caractère) Prudent, sage. (En particulier) Initié à la sagesse. Ingénieux, fin, rusé.<br> '''σοφῶς (adverbe)''' : Habilement, sagement. Ingénieusement, finement.<br> '''σοφώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σοφός''.<br> '''σοφώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σοφός''.<br> '''σπαδωνισμός, -οῦ (nom commun) (m)''' : castration.<br> '''σπάδων, -ος (nom commun) (m)''' : castrat ; eunuque.<br> '''σπάθη, -ης (nom commun) (f)''' : épée.<br> '''σπαθίον, -ου (nom commun) (m)''' : Diminutif de ''σπάθη''.<br> '''σπανακόν, -οῦ (nom commun) (n)''' : épinard.<br> '''σπάναξ, -κος (nom commun) (m)''' : épinard.<br> '''σπάνιος, -ία, -ιον (adjectif)''' : rare.<br> '''σπανίως (adverbe)''' : rarement.<br> '''σπανιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σπάνιος''.<br> '''σπανιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σπάνιος''.<br> '''σπαργάνιον, -ίου (nom commun) (n)''' : rubanier.<br> '''σπάργανον, -άνου (nom commun) (n)''' : lange.<br> '''σπάργω (verbe)''' : langer.<br> '''σπαρτιατικός, -ή, -όν (adjectif)''' : spartiate.<br> '''σπασμός, -οῦ (nom commun) (m)''' : spasme.<br> '''σπαστικός, -ή, -όν (adjectif)''' : .<br> '''σπάω (verbe)''' : briser.<br> '''σπεῖρα, -ίρας (nom commun) (f)''' : spire.<br> '''σπεῖρον, -ίρου (nom commun) (n)''' : .<br> '''σπέος, -ους (nom commun) (n)''' : grotte.<br> '''σπεύδω (verbe)''' : se hâter.<br> '''σπήλαιον, -ίου (nom commun) (n)''' : caverne, grotte ; cavité.<br> '''σπῆλυγξ, -ήλυγγος (nom commun) (m)''' : caverne, antre ; grotte.<br> '''σπογγιά, -ᾶς (nom commun) (f)''' : éponge.<br> '''σπόγγος, -ου (nom commun) (m)''' : éponge ; (anatomie) amygdale.<br> '''σποδός, -οῦ (nom commun) (m)''' : cendre.<br> '''σπολεύς, -έως (nom commun) (m)''' : sorte de pain.<br> '''σπονδεῖος, -ίου (nom commun) (m)''' : spondée.<br> '''σπόνδυλος, -ύλου (nom commun) (m)''' : Forme attique de ''σφόνδυλος''.<br> '''σπουδαῖος, -ία, -ῖον (adjectif)''' : important.<br> '''σπουδή, -ῆς (nom commun) (f)''' : hâte.<br> '''στάδιον, -ου (nom commun) (n)''' : stade. (env. 180 m)<br> '''σταγών, -όνος (nom commun) (f)''' : goutte.<br> '''στάζω (verbe)''' : couler goutte à goutte.<br> '''σταθερός, -ή, -όν (adjectif)''' : fixe, constant, ferme.<br> '''στακτός, -οῦ (nom commun) (m)''' : cendre.<br> '''στάλα, -ας (nom commun) (f)''' : Forme dorienne de ''στήλη''.<br> '''στάλαγμα, -άγματος (nom commun) (n)''' : goutte.<br> '''σταλαγμός, -οῦ (nom commun) (m)''' : écoulement, égouttage.<br> '''σταλάσσω (verbe)''' : tomber, couler.<br> '''στάλλα, -ας (nom commun) (f)''' : Forme éolienne de ''στήλη''.<br> '''στάσις, -εως (nom commun) (f)''' : .<br> '''σταυρός, -οῦ (nom commun) (m)''' : croix.<br> '''σταυρόω (verbe)''' : crucifier.<br> '''σταύρωσις, -ώσεως (nom commun) (f)''' : crucifixion.<br> '''σταφυλή, -ῆς (nom commun) (f)''' : grappe de raisin mûr.<br> '''σταφυλίς, -δος (nom commun) (f)''' : luette.<br> '''στέαρ, -ατος (nom commun) (n)''' : Graisse compacte ; lard ; suif. Graisse.<br> '''στεατοπυγός, -ός, -όν (adjectif)''' : Qui a de grosses fesses.<br> '''στέγασις, -άσεως (nom commun) (f)''' : accommodation.<br> '''στέγος, -ους (nom commun) (n)''' : Abri. Toit. Maison. Tombeau. Urne funéraire.<br> '''στέγω (verbe)''' : Couvrir. Supporter, résister.<br> '''στεῖρος, -ίρα, -ῖρον (adjectif)''' : stérile.<br> '''στειρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''στεῖρος''.<br> '''στειρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''στεῖρος''.<br> '''στείρως (adverbe)''' : stérilement.<br> '''στελεά, -ᾶς (nom commun) (f)''' : axe, pôle.<br> '''στελεόν, -οῦ (nom commun) (n)''' : manche.<br> '''στέλεχος, -έχους (nom commun) (n)''' : .<br> '''στέλλω (verbe)''' : .<br> '''στέμμα, -τος (nom commun) (n)''' : guirlande.<br> '''στεμματηφορῶ (verbe)''' : .<br> '''στεμματιαῖον, -ίου (nom commun) (n)''' : .<br> '''στεμματία, -ας (nom commun) (f)''' : .<br> '''στεμματοφορία, -ας (nom commun) (n)''' : .<br> '''στεμματοφόρος, -ό, -όν (adjectif)''' : étroit, resserré.<br> '''στεμματῶ (verbe)''' : .<br> '''στενός, -ή, -όν (adjectif)''' : étroit, resserré.<br> '''στενῶς (adverbe)''' : étroitement.<br> '''στενώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''στενός''.<br> '''στενώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''στενός''.<br> '''στερεός, -ά, -όν (adjectif)''' : ferme, dur.<br> '''στερέωμα, -ώματος (nom commun) (n)''' : firmament.<br> '''στερεῶς (adverbe)''' : fermement, durement.<br> '''στερεώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''στερεός''.<br> '''στερεώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''στερεός''.<br> '''στερεῶ (verbe)''' : .<br> '''στέφανος, -άνου (nom commun) (m)''' : cercle d'une armée sur un champ de bataille. Couronne.<br> '''στέφω (verbe)''' : couronner.<br> '''στηθόδεσμος -ου (nom commun) (m)''' : .<br> '''στῆθος, -ήθους (nom commun)''' : poitrine.<br> '''στήλη, -ης (nom commun) (f)''' : stèle.<br> '''στήνιον, -ίου (nom commun) (n)''' : sein.<br> '''στιϐάς, -δος (nom commun) (f)''' : .<br> '''στίϐι, -τος (nom commun) (n)''' : antimoine.<br> '''στιγμή, -ῆς (nom commun) (f)''' : moment.<br> '''στοργή, -ῆς (nom commun) (f)''' : amour familial.<br> '''στοιχεῖον, -ίου (nom commun) (n)''' : élément.<br> '''στοιχειωδέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''στοιχειώδης''.<br> '''στοιχειωδέστερος, -έρη, -έστερον (adjectif)''' : Comparatif de ''στοιχειώδης''.<br> '''στοιχειώδης, -ης, -ῶδες (m)''' : élémentaire.<br> '''στοιχειωδῶς (adverbe)''' : élémentairement.<br> '''στολίζω (verbe)''' : .<br> '''στόμα, -τος (nom commun) (n)''' : bouche.<br> '''στομάχιον, -ίου (nom commun) (n)''' : estomac.<br> '''στώμυλμα, -τος (nom commun) (n)''' : bavard.<br> '''στοχάζομαι (verbe)''' : Conjecturer. Viser.<br> '''στοχαστής, -οῦ (nom commun) (m)''' : Conjectureur, penseur.<br> '''στοχαστικός, -ή, -όν (adjectif)''' : Qui vise bien, qui tend directement vers. Habile à conjecturer, conjectural.<br> '''στοχαστικῶς (adverbe)''' : conjecturalement.<br> '''στοχαστικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''στοχαστικός''.<br> '''στοχαστικώτερος, -έρη, -ώτερον (adjectif)''' : Comparatif de ''στοχαστικός''.<br> '''στόχος, Cible, but, point visé. Conjecture.<br> '''στορέννυμι (verbe)''' : étendre, recouvrir.<br> '''στραγγαλίζω (verbe)''' : étrangler.<br> '''στραγγαλίς, -δος (nom commun) (f)''' : nœud.<br> '''στραγγαλοῦμαι (verbe)''' : tordre.<br> '''στραγγίζω (verbe)''' : essorer.<br> '''στραγγουρία, -ας (nom commun) (f)''' : strangurie.<br> '''στράγξ, -γός (nom commun) (f)''' : goutte.<br> '''στρατός, -οῦ (nom commun) (m)''' : armée.<br> '''στρατηγός, -οῦ (nom commun) (m)''' : général.<br> '''στραταγός, -οῦ (nom commun) (m)''' : Forme arcadienne et dorienne de ''στρατηγός''.<br> '''στρατήγημα, -ήματος (nom commun) (n)''' : stratagème.<br> '''στρατηγία, -ας (nom commun) (f)''' : stratégie.<br> '''στρέμμα, -τος (nom commun) (n)''' : Tournure ; rouleau. Conspiration.<br> '''στρεπτικός, -ή, -όν (adjectif)''' : .<br> '''στρεπτικῶς (adverbe)''' : .<br> '''στρεπτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''στρεπτικός''.<br> '''στρεπτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''στρεπτικός''.<br> '''στρεπτικώτατα, -, - (adverbe)''' : Superlatif de ''στρεπτικῶς''.<br> '''στρεπτικώτερον, -, - (adverbe)''' : Comparatif de ''στρεπτικῶς''.<br> '''στρεπτός, -ή, -όν (adjectif)''' : Tourné ; docile.<br> '''στρεπτῶς (adverbe)''' : docilement.<br> '''στρεπτώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''στρεπτός''.<br> '''στρεπτώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''στρεπτός''.<br> '''στρέφω (verbe)''' : Tourner, retourner.<br> '''στρέψις, -εως (nom commun) (f)''' : .<br> '''στρίζω (verbe)''' : strider.<br> '''στρίξ, -γός (nom commun) (f)''' : chouette.<br> '''στρόταγος, -άγου (nom commun) (m)''' : Forme éolienne de ''στρατηγός''.<br> '''στρατιώτης, -ου (nom commun) (m)''' : soldat.<br> '''στρόϐιλος, -ίλου (nom commun) (m)''' : Ce qui tourne ou tournoie. Toupie. Tourbillon, ouragan. Objet divers en spirale ou de forme conique. Pomme de pin ou fruit des arbres résineux. Coquillage en spirale. Enroulement du hérisson sur lui-même. Qui tournoie en spirale.<br> '''στροϐιλόω (verbe)''' : tourner.<br> '''στραγγός, -ή, -όν (adjectif)''' tordu.<br> '''στρογγύλλω (verbe)''' : arrondir.<br> '''στρογγύλος, -η, -ον (adjectif)''' : arrondi.<br> '''στρογγυλότης, -τος (nom commun) (f)''' : rondeur.<br> '''στρουθιοκάμηλος, -ήλου (nom commun) (m)''' : autruche.<br> '''στρουθίον, -ου (nom commun) (n)''' : moineau.<br> '''στροφή, -ῆς (nom commun) (f)''' : tour.<br> '''στρόφιγξ, -γος (nom commun) (m)''' : charnière.<br> '''στρόφιον, -ίου (nom commun) (n)''' : strophium.<br> '''στρόφος, -ου (nom commun) (m)''' : corde.<br> '''στύφω (verbe)''' : contracter.<br> '''στῦψις, -ύψεως (nom commun) (f)''' : contraction.<br> '''στρῶμα, -ώματος (nom commun) (n)''' : matelas.<br> '''στρώννυμι (verbe)''' : .<br> '''στυγερός, -ά, -όν (adjectif)''' : horrible.<br> '''στυγερώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''στυγερός''.<br> '''στυγερώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''στυγερός''.<br> '''στυγερῶς (adverbe)''' : horriblement.<br> '''στῦλος, -ύλου (nom commun) (m)''' : Pilier, colonne.<br> '''στῦσις, -ύσεως (nom commun) (f)''' : érection (action physiologique).<br> '''στύω (verbe)''' : avoir une érection.<br> '''συγάτηρ, -τρός (nom commun) (f)''' : Forme dorienne de ''θυγάτηρ''.<br> '''συγγνώμη, -ης (nom commun) (f)''' : .<br> '''συγγιγνώσκω (verbe)''' : .<br> '''συγκέντρωσις, -ώσεως (nom commun) (f)''' : concentration.<br> '''συγκεντρῶ (verbe)''' : concentrer.<br> '''συγκεράννυμι (verbe)''' : .<br> '''συγκρητισμός, -οῦ (nom commun) (m)''' : .<br> '''συγκινῶ (verbe)''' : émouvoir.<br> '''συγκίνησις, -ήσεως (nom commun) (f)''' : émotion.<br> '''συγκινητικός, -ή, -όν (adjectif)''' : émouvant.<br> '''συγκρίνω (verbe)''' : comparer.<br> '''σύγκρισις, -ίσεως (nom commun) (f)''' : comparaison.<br> '''συγκριτικός, -ή, -όν (adjectif)''' : comparatif.<br> '''σύγκρουσις, -ύσεως (nom commun) (f)''' : collision.<br> '''συγχώρησις, -εως (nom commun) (f)''' : .<br> '''συγχωρητέος, -α, -ον (adjectif)''' : .<br> '''συζήτησις, -ήσεως (nom commun) (f)''' : discussion, conversation ; débat.<br> '''συζητῶ (verbe)''' : discuter, converser ; débattre.<br> '''σῦκον, -ύκου (nom commun) (n)''' : Figue ; vulve.<br> '''συκοφάντης, -ου (nom commun) (m)''' : Délateur, calomniateur. Chicaneur de mauvaise foi.<br> '''σύκχος, -ους (nom commun) (n)''' : pantoufle.<br> '''συλάω (verbe)''' : Saisir, prendre ; emporter. Dépouiller, prendre les armes de son ennemi mort. Piller.<br> '''σύλη, -ης (nom commun) (f)''' : Prise ; saisie.<br> '''σύλησις, -ήσεως (nom commun) (f)''' : profanation.<br> '''σύλον, -ου (nom commun) (n)''' : Forme attique de ''ξύλον''.<br> '''συλλαμϐάνω (verbe)''' : .<br> '''σύλληψις, -ήψεως (nom commun) (f)''' : Action de prendre ensemble. Compréhension. Réunion par prononciation de deux voyelles. Action de s’emparer, de saisir. Conception dans le sein de la mère. Assistance, secours.<br> '''συμϐάλλω (verbe)''' : .<br> '''σύμϐασις, -άσεως (nom commun) (f)''' : convention.<br> '''συμϐίωσις, -ώσεως (nom commun) (f)''' : vie commune.<br> '''συμϐιῶ (verbe)''' : vivre ensemble.<br> '''συμϐόλαιον, -ίου (nom commun) (n)''' : contrat.<br> '''συμϐολικός, -ή, -όν (adjectif)''' : relatif aux signes de reconnaissance.<br> '''σύμϐολον, -όλου (nom commun) (n)''' : signe de reconnaissance.<br> '''συμμετρία, -ας (nom commun) (f)''' : bonne proportion.<br> '''συμπάθεια, -ίας (nom commun) (f)''' : Communauté de sentiments ou d’impressions. (Philosophie), (Terme stoïcien) Rapport de certaines choses entre elles.<br> '''συμπεραίνω (verbe)''' : accomplir, finir, trancher, décider.<br> '''συμπέρασμα, -άσματος (nom commun) (n)''' : conclusion.<br> '''συμπερασματικός, -ή, -όν (adjectif)''' : conclusif.<br> '''συμπερασματικῶς (adverbe)''' : conclusivement.<br> '''συμπεριφέρομαι (verbe)''' : se comporter.<br> '''συμπεριφορά, -ᾶς (nom commun) (f)''' : comportement.<br> '''συμπεριφορικός, -ή, -όν (adjectif)''' : comportemental.<br> '''συμπεριφορισμός, -οῦ (nom commun) (m)''' : comportementalisme.<br> '''συμπεριφοριστής, -οῦ (nom commun) (m)''' : comportementaliste.<br> '''συμπίνω (verbe)''' : festoyer.<br> '''συμπονῶ (verbe)''' : compatir.<br> '''συμπόσιον, -ίου (nom commun) (n)''' : Banquet, festin. (Collectif) Les convives. Salle de festin.<br> '''σύμπτωμα, -ώματος (nom commun) (n)''' : Accident, malchance ; symptôme.<br> '''σύμπτωσις, -ώσεως (nom commun) (f)''' : coïncidence.<br> '''συμπίπτω (verbe)''' : coïncider.<br> '''συμφορά, -ᾶς (nom commun) (f)''' : désastre.<br> '''συμφοράζω (verbe)''' : .<br> '''συμφοραίνω (verbe)''' : .<br> '''συμφορηδόν, -οῦ (nom commun) (n)''' : .<br> '''συμφόρημα, -ήματος (nom commun) (n)''' : .<br> '''συμφόρησις, -ήσεως (nom commun) (f)''' : congestion.<br> '''συμφορή, -ῆς (nom commun) (f)''' : Forme ionienne de ''συμφορά''.<br> '''συμφέρω (verbe)''' : accumuler.<br> '''συμφύρομαι (verbe)''' : .<br> '''σύμφυσις, -εως (nom commun) (f)''' : symphyse.<br> '''σύμφωνον, -ώνου (nom commun) (n)''' : consonne.<br> '''συναγωγή, -ῆς (nom commun) (f)''' : Rassemblement, assemblée de gens. Rassemblement, regroupement, mis en tas, etc., de choses.<br> '''συνάγω (verbe)''' : rassembler.<br> '''συναίσθημα, -ήματος (nom commun) (n)''' : émotion.<br> '''συναισθάνομαι (verbe)''' : .<br> '''σύν (préposition)''' : Avec, à côté de.<br> '''σύν- (préfixe)''' (Devient ''σύγ-'' devant ''γ'', ''κ'', ''ξ'', ''χ'' ; ''σύλ-'' devant ''λ'' ; ''σύμ-'' devant ''β'', ''π'', ''φ'', ''μ'', ''ψ''.) : syn-.<br> '''σύναψις, -άψεως (nom commun) (f)''' : connexion.<br> '''συνάπτω (verbe)''' : connecter.<br> '''συνέδριον, -ίου (nom commun) (n)''' : conseil, congrégation.<br> '''σύνεδρος, -έδρου (nom commun) (n)''' : conseiller, congrégationniste.<br> '''συνείδησις, -ήσεως (nom commun) (f)''' : conscience.<br> '''συνεργάτης, -ου (nom commun) (m)''' : collaborateur.<br> '''σύνεσις, -έσεως (nom commun) (f)''' : connexion.<br> '''συνέχεια, -ίας (nom commun) (f)''' : continuité.<br> '''συνεχής, -ής, -ές (adjectif)''' : continu.<br> '''συνεχέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''συνεχής''.<br> '''συνεχέστερος, -έρα, -έστερον (adjectif)''' : Comparatif de ''συνεχής''.<br> '''συνεχότατα, -, - (adverbe)''' : Superlatif de ''συνεχῶς''.<br> '''συνεχότερον, -, - (adverbe)''' : Comparatif de ''συνεχῶς''.<br> '''συνεχῶς (adverbe)''' : continuellement.<br> '''συνίημι (verbe)''' : rejoindre.<br> '''συνίστημι (verbe)''' : .<br> '''συνουσία, -ας (nom commun) (f)''' : copulation.<br> '''συνουσιάζω (verbe)''' : copuler.<br> '''σύνοψις, -όψεως (nom commun) (f)''' : Vue d'ensemble. Coup d'œil général. Table des matières. (Figuré) Examen.<br> '''σύνταγμα, -άγματος (nom commun) (n)''' : constitution.<br> '''συνταγματικός, -ή, -όν (adjectif)''' : constitutionnel.<br> '''συνταγματικότατα, -, - (adverbe)''' : Superlatif de ''συνταγματικῶς''.<br> '''συνταγματικότερον, -, - (adverbe)''' : Comparatif de ''συνταγματικῶς''.<br> '''συνταγματικότης, -τος (nom commun) (f)''' : constitutionnalité.<br> '''συνταγματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''συνταγματικός''.<br> '''συνταγματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''συνταγματικός''.<br> '''συνταγματικῶς (adverbe)''' : constitutionnellement.<br> '''σύνταξις, -άξεως (nom commun) (f)''' : mise en ordre.<br> '''συντάσσω (verbe)''' : mettre en ordre.<br> '''συνύπαρξις, -άρξεως (nom commun) (f)''' : coexistence.<br> '''συνυπάρχω (verbe)''' : coexister.<br> '''συνωμοσία, -ας (nom commun) (f)''' : conspiration.<br> '''συνωμότης, -ου (nom commun) (m)''' : conspirateur.<br> '''συνωμότρια, -ας (nom commun) (f)''' : conspiratrice.<br> '''συνωμοτῶ (verbe)''' : conspirer.<br> '''σῦριγξ, -ύριγγος (nom commun) (f)''' : Roseau. (Musique) Flûte de Pan.<br> '''συριστί (adverbe)''' : .<br> '''σύρξ, -κός (nom commun) (f)''' : Forme éolienne de ''σάρξ''.<br> '''σύρραξις, -άξεως (nom commun) (f)''' : .<br> '''συρτός, -οῦ (nom commun) (m)''' : tiroir.<br> '''συσκευή, -ῆς (nom commun) (f)''' : appareil.<br> '''συσσώρευσις, -ύσεως (nom commun) (f)''' : accumulation.<br> '''σύσταμα, -άματος (nom commun) (n)''' : Forme dorienne de ''σύστημα''.<br> '''συστέλλω (verbe)''' : Resserrer, contracter. Réprimer.<br> '''σύστημα, -ήματος (nom commun) (n)''' : Réunion en un unique corps.<br> '''συστολή, -ῆς (nom commun) (f)''' : Resserrement, contraction. Répression.<br> '''σύ (pronom personnel)''' : tu.<br> '''σφαγεύς, -έως (nom commun) (m)''' : tueur.<br> '''σφαγή, -ῆς (nom commun) (f)''' : abattage.<br> '''σφάζω (verbe)''' : tuer, sacrifier.<br> '''σφαῖρα, -ίρας (nom commun) (f)''' : Balle, ballon ; globe.<br> '''σφάκελος, -έλου (nom commun) (m)''' : nécrose.<br> '''σφάλλω (verbe)''' : Faire tomber. faire chuter ; renverser. Défaire, avoir le dessus. Avoir lieu (bien ou mal tomber). Tromper, abuser. (Au passif) Se tromper, fauter. Emballer, rouler.<br> '''σφάλμα, -τος (nom commun) (n)''' : Chute, faux pas. Erreur. Perte.<br> '''σφεδανός, -ή, -όν (adjectif)''' : .<br> '''σφένδαμνος, -άμνου (nom commun) (f)''' : érable.<br> '''σφενδόνη, -ης (nom commun) (f)''' : fronde.<br> '''σφενδονήτης, -ου (nom commun) (m)''' : frondeur.<br> '''σφενδονητικός, -ή, -όν (adjectif)''' : frondeur.<br> '''σφενδονητικῶς (adverbe)''' : -ment.<br> '''σφενδονητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σφενδονητικός''.<br> '''σφενδονητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σφενδονητικός''.<br> '''σφενδονητικώτατα, -, - (adverbe)''' : Superlatif de ''σφενδονητικῶς''.<br> '''σφενδονητικώτερον, -, - (adverbe)''' : Comparatif de ''σφενδονητικῶς''.<br> '''σφήν, -ός (nom commun) (m)''' : coin (instrument).<br> '''σφηνάριον, -ίου (nom commun) (n)''' : .<br> '''σφηνεύς, -έως (nom commun) (m)''' : coin.<br> '''σφηνίσκος, -ου (nom commun) (m)''' : .<br> '''σφηνοειδής, -ής, -ές (adjectif)''' : cunéiforme.<br> '''σφηνοκέφαλος, -ος, -ον (adjectif)''' : .<br> '''σφηνόπους, -δός (nom commun) (m)''' : .<br> '''σφηνοπώγων, -ονος (nom commun) (m)''' : coin.<br> '''σφηνῶ (verbe)''' : .<br> '''σφήνωσις, -ώσεως (nom commun) (f)''' : .<br> '''σφήξ, -ῆκος (nom commun) (f)''' : guêpe.<br> '''σφίγγω (verbe)''' : attacher fortement.<br> '''σφιγκτήρ, -ῆρος (nom commun) (m)''' : sphincter.<br> '''σφιγμός, -οῦ (nom commun) (m)''' : .<br> '''σφόγγος, -ου (nom commun) (m)''' : Forme attique de ''σπόγγος''.<br> '''σφοδρός, -ά, -όν (adjectif)''' : véhément.<br> '''σφοδρότατα, -, - (adverbe)''' : Superlatif de ''σφοδρῶς''.<br> '''σφοδρότερον, -, - (adverbe)''' : Comparatif de ''σφοδρῶς''.<br> '''σφοδρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''σφοδρός''.<br> '''σφοδρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''σφοδρός''.<br> '''σφοδρότης, -τος (nom commun) (f)''' : véhémence.<br> '''σφοδρῶς (adverbe)''' : véhémentement.<br> '''σφόνδυλος, -ύλου (nom commun) (m)''' : vertèbre.<br> '''σφραγίς, -δος (nom commun) (f)''' : sceau.<br> '''σφράγισμα, -ατος (nom commun) (n)''' : .<br> '''σφραγισμός, -οῦ (nom commun) (m)''' : .<br> '''σφραγιστήρ, -ῆρος (nom commun) (m)''' : .<br> '''σφραγιστήριον, -ίου (nom commun) (n)''' : .<br> '''σφραγιστής, -οῦ (nom commun) (m)''' : .<br> '''σφραγιστός, -ή, -όν (adjectif)''' : .<br> '''σφυγμός, -οῦ (nom commun) (m)''' : pouls.<br> '''σφύζω (verbe)''' : .<br> '''σφύξις, -εως (nom commun) (f)''' : palpitation.<br> '''σφῦρα, -ύρας (nom commun) (f)''' : marteau.<br> '''σφώ (pronom personnel)''' : vous (vous deux).<br> '''σχεδίασμα, -τος (nom commun) (n)''' : caprice.<br> '''σχῆμα, -ήματος (nom commun) (n)''' : Manière d'être. Forme, figure, extérieur. Apparence, faux-semblant.<br> '''σχίζω (verbe)''' : Fendre, séparer en fendant. Séparer en douze parts, avec l’idée de violence. Déchirer la peau avec ses griffes. Fendre, séparer, partager en deux.<br> '''σχίσμα, -ατος (nom commun) (n)''' : division.<br> '''σχοῖνος, -ίνου (nom commun) (m)''' : corde.<br> '''σχολαστικός, -ή, -όν (adjectif)''' : Désœuvré. Inoccupé ; studieux.<br> '''σχολαστικός, -οῦ (nom commun) (m)''' : Homme d'étude. (Péjoratif) Homme d'étude détaché des réalités de la vie ; pédant, nigaud, etc.<br> '''σχολεῖον, -ίου (nom commun) (n)''' : école.<br> '''σχολή, -ῆς (nom commun) (f)''' : Repos. Temps libre. Philosophie, méditation. École.<br> '''σχολιάζω (verbe)''' : commenter.<br> '''σχολιαστής, -οῦ (nom commun) (m)''' : commentateur.<br> '''σχολιάστρια, -ας (nom commun) (f)''' : commentatrice.<br> '''σχολιογράφος, -ου (nom commun) (m/f)''' : chroniqueur.<br> '''σχόλιον, -ίου (nom commun) (n)''' : commentaire.<br> '''σῴζω (verbe)''' : sauver.<br> '''σωλήν, -ῆνος (nom commun) (m)''' : Tube ; tuyau.<br> '''σωληνοειδής -ής -ές (adjectif)''' : .<br> '''σῶμα, -ώματος (nom commun) (n)''' : corps.<br> '''σωματικός, -ή, -όν (adjectif)''' : corporel.<br> '''σωματικῶς (adverbe)''' : corporellement.<br> '''σωματικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''σωματικός''.<br> '''σωματικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''σωματικός''.<br> '''σωματικώτατα, -, - (adverbe)''' : Superlatif de ''σωματικῶς''.<br> '''σωματικώτερον, -, - (adverbe)''' : Comparatif de ''σωματικῶς''.<br> '''σωμάτιον, -ίου (nom commun) (n)''' : codex.<br> '''σώος, -α, -ον (adjectif)''' : sain.<br> '''σωτήρ, -ῆρος (nom commun) (m)''' : Sauveur ; libérateur.<br> '''σωφρονιστήριον, -ίου (nom commun) (n)''' : .<br> '''σωφρονιστήρ, -ῆρος (nom commun) (m)''' : .<br> '''σωφρονίζω (verbe)''' : modérer, tempérer.<br> '''σωφροσύνη, -ης (nom commun) (f)''' : modération, tempérence.<br> '''σώφρων, -ων, -ῶφρον (adjectif)''' : prudent.<br> '''σϝάδυς, -εια, -υ (adjectif)''' : Forme ancienne de ''ἡδύς''.<br> '''Σάϊς, -εως (nom commun) (f)''' : Saïs.<br> '''Σαλμακίς, - (nom commun) (f)''' : Salmacis.<br> '''Σαλομών, -ος (nom propre) (m)''' : Salomon.<br> '''Σαλμωνεύς, -έως (nom propre) (m)''' : Salmonée.<br> '''Σαμάρεια, -ίας (nom propre) (f)''' : Samarie.<br> '''Σαμοθρᾴκη, -ης (nom propre) (f)''' : Samothrace.<br> '''Σαμόθρᾳξ, -κος (nom commun) (m)''' : Samothracien.<br> '''Σάμος, -ου (nom propre) (f)''' : Samos.<br> '''Σανδρόκυπτος, -ύπτου (nom propre) (m)''' : Chandragupta.<br> '''Σαγχουνιάθων, - (nom propre) (m)''' : Sanchoniathon.<br> '''Σαούλ (nom propre) (m)''' : Saül.<br> '''Σαπφώ, -οῦς (nom propre) (f)''' : Sapphô.<br> '''Σαπώρης, -ου (nom commun) (m)''' : Shapur.<br> '''Σάρα, -ας (prénom) (f)''' : Sarah.<br> '''Σαρδόνιος, -ίου (nom commun) (m)''' : Sarde.<br> '''Σαρδώ, -οῦς (nom propre) (f)''' : Sardaigne.<br> '''Σαυρομάτης, -ου (nom commun) (m)''' : Sarmate.<br> '''Σαυροματία, -ας (nom propre) (f)''' : Sarmatie.<br> '''Σαυρομάτις, -δος (nom commun) (f)''' : Sarmate.<br> '''Σατάν (nom propre) (m)''' : Satan.<br> '''Σδεύς, -έως (nom propre) (f)''' : Autre forme éolienne de ''Ζεύς''.<br> '''Σεϐάστεια, -ίας (nom propre) (f)''' : Sivas.<br> '''Σεϐαστή, -ῆς (nom propre) (f)''' : .<br> '''Σεϐαστός, -οῦ (nom propre) (m)''' : Sébastien.<br> '''Σειρήν, -ῆνος (nom propre) (f)''' : sirène.<br> '''Σείριος, -ίου (nom propre) (m)''' : Sirius.<br> '''Σελεύκεια, -ίας (nom propre) (f)''' : Séleucie.<br> '''Σελεύκειος, -α, -ον (adjectif)''' : séleucien.<br> '''Σελευκεύς, -έως (nom commun) (m)''' : Séleucien.<br> '''Σελευκίδης, -ου (nom commun) (m)''' : Séleucide.<br> '''Σελευκίς, -δος (nom commun) (f)''' : Séleucienne.<br> '''Σέλευκος, -ύκου (nom propre) (m)''' : Séleuce.<br> '''Σελήνη, -ης (nom propre) (f)''' : [[wikt:Séléné|Séléné]].<br> '''Σεντικλῆς, -έους (nom propre) (m)''' : Senticlès.<br> '''Σέργιος, -ίου (nom propre) (m)''' : Serge.<br> '''Σέσορθος, -όρθου (nom commun) (m)''' : Djéser.<br> '''Σεύθης, -ου (nom commun) (m)''' : Seuthès.<br> '''Σευθόπολις, -όλεως (nom propre) (f)''' : .<br> '''Σῆθ (nom propre) (m)''' : Seth.<br> '''Σηρική, -ῆς (nom propre) (f)''' : Chine.<br> '''Σθεννώ, -οῦς (nom propre) (f)''' : Sthéno.<br> '''Σίϐυλλα, -ύλλης (nom propre) (f)''' : Sibylle.<br> '''Σιδών, -ῶνος (nom propre) (f)''' : Sidon.<br> '''Σικελία, -ας (nom propre) (f)''' : Sicile.<br> '''Σικελιώτης, -ου (nom commun) (m)''' : Sicéliote.<br> '''Σικελιῶτις, -ώτιδος (nom commun) (f)''' : Sicéliotide.<br> '''Σίκελος, -έλου (nom commun) (m)''' : Sicule.<br> '''Σικυών, -ῶνος (nom propre) (f)''' : Sicyone.<br> '''Σίσυφος, -ύφου (nom propre) (m)''' : Sisyphe.<br> '''Σίνη, -ης (nom propre) (f)''' : Chine.<br> '''Σíνων, -ος (nom propre) (m)''' : Sinon. (cousin d'Ulysse)<br> '''Σιός, -οῦ (nom propre) (m)''' : Autre forme béotienne de ''Ζεύς''.<br> '''Σίσυφος, -ύφου (nom propre) (m)''' : Sisyphe.<br> '''Σκορπιός, -οῦ (nom commun) (m)''' : Scorpion.<br> '''Σκύθαινα, -ίνης (nom propre) (f)''' : Scythe.<br> '''Σκύθης, -ου (nom propre) (m)''' : Scythe.<br> '''Σκυθία, -ας (nom propre) (f)''' : Scythie.<br> '''Σκύλλα, -ης (nom propre) (f)''' : Scylla.<br> '''Σκύλλη, -ης (nom propre) (f)''' : Forme homérique de ''Σκύλλα''.<br> '''Σόλλαξ, -κος (nom propre) (m)''' : Sollax (ancien nom du Tigre).<br> '''Σολομών, -ος (nom propre) (m)''' : Salomon.<br> '''Σόλων, -ος (nom propre) (m)''' : Solon. (cousin d’Ulysse)<br> '''Σούηϐος, -ήϐου (nom propre) (m)''' : Suève.<br> '''Σουοϐηνός, -οῦ (nom commun) (m)''' : Slave.<br> '''Σουσάννα, -ας (nom propre) (f)''' : Suzanne.<br> '''Σοῦφις, -ύφιδος (nom propre) (m)''' : Souphis.<br> '''Σοῦχος, -ύχου (nom propre) (m)''' : Sobek.<br> '''Σοφία, -ας (nom propre) (f)''' : Sophie.<br> '''Σοφοκλῆς, -έους (nom propre) (m)''' : Sophocle.<br> '''Σπάρτα, -ας (nom propre) (f)''' : Forme dorienne de ''Σπάρτη''.<br> '''Σπάρτη, -ης (nom propre) (f)''' : Sparte.<br> '''Σπαρτιάτης, -ου (nom commun) (m)''' : Spartiate.<br> '''Σπαρτιᾶτις, -άτιδος (nom commun) (f)''' : Spartiate.<br> '''Σταυανός, -οῦ (nom commun) (m)''' : Slave.<br> '''Στέφανος, -άνου (nom propre) (m)''' : Étienne ; Stéphane.<br> '''Στράϐων, -ος (nom propre) (m)''' : Strabon.<br> '''Στρογγύλη, ης (nom propre) (f)''' : Stromboli. (île)<br> '''Στρούθας, -ου (nom propre) (m)''' : Struthas.<br> '''Στύξ, -γός (nom propre) (f)''' : Styx.<br> '''Σύϐαρις, -άριδος (nom propre) (f)''' : Sybaris (ville).<br> '''Σύϐαρις, -άρεως (nom propre) (m)''' : Sybaris (fleuve).<br> '''Συδύκ (nom propre) (m)''' : Sydyk.<br> '''Συρία, -ας (nom propre) (f)''' : Syrie.<br> '''Συριακός, -ός, -όν (adjectif)''' : syrien.<br> '''Σύριος, -ίου (nom commun) (m)''' : Syrien.<br> '''Σῦριγξ, -ύριγγος (nom propre) (f)''' : Syrinx.<br> '''Σφίγξ, -γός (nom propre) (f)''' : Sphinx, Sphinge.<br> '''Σωσίας, -ου (nom propre) (m)''' : Sosie.<br> '''Σωσίπατρος, -άτρου (nom propre) (m)''' : Sosipatros.<br> ==Τ== '''τάγηνον, -ήνου (nom commun) (n)''' : Forme dorienne de ''τήγανον''.<br> '''τάγμα, -τος (nom commun) (n)''' : Arrangement. (Militaire) Régiment.<br> '''ταινία, -ας (nom commun) (f)''' : ruban.<br> '''ταινίη, -ης (nom commun) (f)''' : Forme ionienne de ''ταινία''.<br> '''τακτική, -ῆς (nom commun) (f)''' : tactique.<br> '''τακτικός, -ή, -όν (adjectif)''' : tactique.<br> '''τακτικῶς (adverbe)''' : tactiquement.<br> '''τακτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τακτικός''.<br> '''τακ τικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τακτικός''.<br> '''τακτικώτατα, -, - (adverbe)''' : Superlatif de ''τακτικῶς''.<br> '''τακτικώτερον, -, - (adverbe)''' : Comparatif de ''τακτικῶς''.<br> '''τάλαντον, -άντου (nom commun) (n)''' : plateau de balance.<br> '''ταλαντοῦμαι (verbe)''' : osciller.<br> '''ταλάντωσις, -ώσεως (nom commun) (f)''' : oscillation.<br> '''ταμεῖον, -ίου (nom commun) (n)''' : .<br> '''ταμία, -ας (nom commun) (f)''' : maîtresse de maison.<br> '''ταμιακόν, -οῦ (nom commun) (m)''' : fisc.<br> '''ταμιακός, -ή, -όν (adjectif)''' : fiscal.<br> '''ταμιακότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ταμιακός''.<br> '''ταμιακότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ταμιακός''.<br> '''ταμιακῶς (adverbe)''' : fiscalement.<br> '''ταμίας, -ου (nom commun) (m)''' : Dispensateur, distributeur ; partageur. Intendant, économe. Gardien d’un trésor. Directeur, ordonnateur ; arbitre.<br> '''ταμιεῖον, -ίου (nom commun) (n)''' : caisse.<br> '''ταμιεύω (verbe)''' : .<br> '''τάμνω (verbe)''' : Forme homérique et ionienne de ''τέμνω''.<br> '''τάξις, -εως (nom commun) (f)''' : disposition.<br> '''τάξος, -ου (nom commun) (f)''' : if.<br> '''τάπης, -τος (nom commun) (m)''' : tapis.<br> '''τάραγμα, -άγματος (nom commun) (m)''' : inquiétude ; trouble.<br> '''ταραξίας, -ου (nom commun) (m)''' : trouble-fête.<br> '''τάραξις, -άξεως (nom commun) (f)''' : trouble.<br> '''ταράσσω (verbe)''' : troubler.<br> '''ταραχή, -ῆς (nom commun) (f)''' : trouble.<br> '''ταρταροῦχος, -ος, -ον (adjectif)''' : du Tartare.<br> '''τάσις, -εως (nom commun) (f)''' : tension.<br> '''τάσσω (verbe)''' : disposer.<br> '''τατᾶ (interjection)''' : papa ; maman.<br> '''ταταλίζω (verbe)''' : .<br> '''ταῦρος, -ύρου (nom commun) (m)''' : taureau.<br> '''ταυρῶ (verbe)''' : tirer.<br> '''ταῦ (nom commun) (n)''' : tau.<br> '''τάφος, -ου (nom commun) (m)''' : tombeau.<br> '''τάχα (adverbe)''' (Devient ''τάχ’'' devant un mot commençant par une voyelle à esprit doux.) : bientôt.<br> '''ταχέως (adverbe)''' : rapidement.<br> '''ταχύς, -εῖα, -ύ (adjectif)''' : rapide ; pressé.<br> '''ταχύτατος, -άτη, -ύτατον (adjectif)''' : Superlatif de ''ταχύς''.<br> '''ταχύτερος, -έρα, -ύτερον (adjectif)''' : Comparatif de ''ταχύς''.<br> '''ταχυτής, -ῆτος (nom commun) (f)''' : rapidité.<br> '''ταώς, -ώ (nom commun) (m)''' : paon.<br> '''τείνω (verbe)''' : étirer ; tendre.<br> '''τέκτων, -ονος (nom commun) (m)''' : Auteur, créateur. Ouvrier, artisan.<br> '''τεῖχος, -ίχους (nom commun) (n)''' : mur de ville.<br> '''τέλειος, -ία, -ιον (adjectif)''' : terminé ; parfait.<br> '''τελειότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''τέλειος''.<br> '''τελειότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''τέλειος''.<br> '''τελείως (adverbe)''' : parfaitement.<br> '''τελειῶ (verbe)''' : terminer.<br> '''τέλεσμα, -έσματος (nom commun) (n)''' : Paiement, taxe. Certificat.<br> '''τελεστιχίς, -δος (nom commun) (f)''' : téléstiche.<br> '''τελετή, -ῆς (nom commun) (f)''' : cérémonie.<br> '''τελευταῖος, -ία, -ῖον (adjectif)''' : dernier.<br> '''τελευτή, -ῆς (nom commun) (f)''' : fin ; finalité.<br> '''τελέω (verbe)''' : Accomplir. Mettre un terme à.<br> '''τέλος, -ους (nom commun) (n)''' : Achèvement ; accomplissement ; réalisation. Prix dans les luttes.<br> '''τέμαχος, -άχους (nom commun) (n)''' : tranche ; morceau.<br> '''τέμενος, -ένους (nom commun) (n)''' : téménos.<br> '''τέμνω (verbe)''' : couper.<br> '''τέρας, -τος (nom commun) (n)''' : Signe divin ; monstre.<br> '''τεράστιος -α -ον (adjectif)''' : monstrueux.<br> '''τερπνός, -ή, -όν (adjectif)''' : Amusant ; plaisant.<br> '''τερπνότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''τερπνός''.<br> '''τερπνότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''τερπνός''.<br> '''τερπνότης, -τος (nom commun) (f)''' : amusement.<br> '''τερπνῶς (adverbe)''' : plaisamment.<br> '''τέρπω (adverbe)''' : Prendre plaisir ; s’amuser.<br> '''τέσσαρες (adjectif numéral)''' : quatre.<br> '''τετράδιον, -ίου (nom commun) (n)''' : cahier.<br> '''τετραίνω (verbe)''' : trouer.<br> '''τετράλημμα, -ήμματος (nom commun) (n)''' : tétralemme.<br> '''τετράπους, -δος (nom commun) (m)''' : quadrupède.<br> '''τετράς, -δος (nom commun) (f)''' : .<br> '''τετράων, -ος (nom commun) (m)''' : coq de bruyère.<br> '''τετράστιχον, -ίχου (nom commun) (n)''' : quatrain.<br> '''τετταράκοντα (adjectif numéral)''' quarante.<br> '''τέττιξ, -γος (nom commun) (m)''' : cigale.<br> '''τεῦτλον, -ύτλου (nom commun) (n)'''' : blette.<br> '''τεῦχος, -ύχους (nom commun) (n)''' : Ustensile, instrument. (Au pluriel) Armes, armure. (Au pluriel) Agrès de navire (voiles, cordages, rames). Urne pour les libations. Urne funéraire. Baignoire. Tonneau de bois. Huche pour la farine. Ruche d’abeilles.(Par analogie) Vaisseau du corps. Enveloppe qui enferme les petits. Livre.<br> '''τεύχω (verbe)''' : .<br> '''τέφρα, -ας (nom commun) (f)''' : cendre.<br> '''τέφρη, -ης (nom commun) (f)''' : Forme homérique et ionienne de ''τέφρα''.<br> '''τεχνάζω (verbe)''' : faire avec art.<br> '''τέχνασμα, -άσματος (nom commun) (n)'''' : Artifice, machination, ruse.<br> '''τέχνη, -ης (nom commun) (f)''' : Art ; habileté.<br> '''τέχνημα, -ήματος (nom commun) (n)''' : artéfact.<br> '''τεχνητός, -ή, -όν (adjectif)''' : artificiel.<br> '''τεχνητῶς (adverbe)''' : artificiellement.<br> '''τεχνητώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τεχνητός''.<br> '''τεχνητώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τεχνητός''.<br> '''τεχνικός, -ή, -όν (adjectif)''' : artistique.<br> '''τεχνικῶς (adverbe)''' : artistiquement.<br> '''τεχνικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τεχνικός''.<br> '''τεχνικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τεχνικός''.<br> '''τεχνῶμαι (verbe)''' : .<br> '''τηγάνιον, -ίου (nom commun) (n)''' : Diminutif de ''τήγανον''.<br> '''τήγανον, -άνου (nom commun) (n)''' : poêle à frire.<br> '''τήκω (verbe)''' : fondre.<br> '''τῆλε (adverbe ; préposition)''' Loin, au loin. (Avec le génitif) Loin de.<br> '''τήμερον (adverbe)''' : Forme attique de ''σήμερον''.<br> '''-τήρ, -ῆρος (suffixe) (m)''' : Suffixe nominal.<br> '''-τής, -ῆτος (suffixe) (f)''' : Suffixe permettant de créer à partir d’un adjectif le nom désignant la qualité correspondante.<br> '''-της, -τος (suffixe) (f)''' : Suffixe de même usage que ''-τής''.<br> '''τίγρις, -εως (nom commun) (m/f)''' : Tigre ; tigresse.<br> '''τίθημι (verbe)''' : Poser ; placer.<br> '''τιθήνη, -ης (nom commun) (f)''' : nourrice.<br> '''τεκμηρίωσις, -ώσεως (nom commun) (f)''' : documentation.<br> '''τεκμηριῶ (verbe)''' : documenter.<br> '''τίκτω (verbe)''' : Engendrer, produire ; mettre au monde.<br> '''τιμή, -ῆς (nom commun) (f)''' : (Sens positif) Évaluation, estimation. Prix attaché à un honneur. Ce qui est tenu en honneur ; objet de l’estime, du respect ; autorité, magistrature. (Sens négatif) Peine, châtiment, vengeance.<br> '''τίμιος, -α, -ον (adjectif)''' : honnête.<br> '''τιμιότης, -τος (nom commun) (f)''' : honnêteté.<br> '''τιμωρητέος, -α, -ον (adjectif)''' : punissable.<br> '''τιμωρητικός, -ή, -όν (adjectif)''' : punitif.<br> '''τιμωρητικῶς (adverbe)''' : punitivement.<br> '''τιμωρητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τιμωρητικός''.<br> '''τιμωρητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τιμωρητικός''.<br> '''τιμωρητικώτατα, -, - (adverbe)''' : Superlatif de ''τιμωρητικῶς''.<br> '''τιμωρητικώτερον, -, - (adverbe)''' : Comparatif de ''τιμωρητικῶς''.<br> '''τιμωρία, -ας (nom commun) (f)''' : punition.<br> '''τιμωρῶ (verbe)''' : punir.<br> '''τιμῶ (verbe)''' : honorer.<br> '''τίνω (verbe)''' : Payer ; payer pour ses fautes, expier.<br> '''τιούχα, -ας (nom commun) (f)''' : Autre forme béotienne de ''τύχη''.<br> '''τίσις, -εως (nom commun) (f)''' : Paiement, récompense. Pénalité, vengeance.<br> '''τιταίνω (verbe)''' : étendre.<br> '''τίταξ, -κos (nom commun) (m)''' : roi.<br> '''τίτας, -αντος (nom commun) (m)''' : vengeur.<br> '''τίτης, -ου (nom commun) (m)''' : Forme dorienne de ''τίτας''.<br> '''τῖφος, -ίφου (nom commun) (m)''' : Étang, marais.<br> '''τίω (verbe)''' : rendre (i.e. payer) des hommages à quelqu’un, estimer une personne. Évaluer, estimer.<br> '''τμῆμα, -ήµατος (nom commun) (n)''' : Partie, secteur ; section.<br> '''τμῆσις, -ήσεως (nom commun) (f)''' : césure.<br> '''τοιοῦτος, -αύτη, -οῦτο (pronom)''' : .<br> '''τοῖχος, -ίχου (nom commun) (m)''' : Mur de maison ; bord ou paroi d’un navire.<br> '''τοιχωρύχημα, -ήµατος (nom commun) (n)''' : cambriolage.<br> '''τοιχώρυχος, -ύχου (nom commun) (m)''' : cambrioleur.<br> '''τοιχωρυχῶ (verbe)''' : cambrioler.<br> '''τοκογλυφία, -ας (nom commun) (f)''' : usure.<br> '''τοκογλυφικός, -ή, -όν (adjectif)''' : usurier.<br> '''τοκογλύφος, -ου (nom commun) (m)''' : usurier.<br> '''τόκος, -ου (nom commun) (m)''' : Parturition, accouchement. Descendance. Intérêt de l'argent prêté.<br> '''τόλμα, -ης (nom commun) (f)''' : Audace ; courage.<br> '''τολμηρός, -ή, -όν (adjectif)''' : hardi.<br> '''τολμηρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''τολμηρός''.<br> '''τολμηρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''τολμηρός''.<br> '''τολμηρότης, -τος (nom commun) (f)''' : hardiesse.<br> '''τολμηρῶς (adverbe)''' : hardiment.<br> '''τολμηρώτατα, -, - (adverbe)''' : Superlatif de ''τολμηρῶς''.<br> '''τολμηρώτερον, -, - (adverbe)''' : Comparatif de ''τολμηρῶς''.<br> '''τολμῶ (verbe)''' : oser.<br> '''-τομία, -ας (suffixe) (f)''' : Suffixe signifiant « coupure », « césure ».<br> '''τόμος, -ου (nom commun) (m)''' : Tranche, pièce ; chose coupée.<br> '''τομός, -οῦ (nom commun) (m)''' : Coupure, action de couper.<br> '''τοπικός, -ή, -όν (adjectif)''' : local.<br> '''τοπικῶς (adverbe)''' : localement.<br> '''τοπικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τοπικός''.<br> '''τοπικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τοπικός''.<br> '''τοπικώτατα, -, - (adverbe)''' : Superlatif de ''τοπικῶς''.<br> '''τοπικώτερον, -, - (adverbe)''' : Comparatif de ''τοπικῶς''.<br> '''τοξάριον, -ίου (nom commun) (n)''' : archet.<br> '''τοξικός, -ή, -όν (adjectif)''' : qui convient pour un arc ou pour des flèches.<br> '''τόξον, -ου (nom commun) (n)''' : arc ; arc-en-ciel.<br> '''τοξότης, -ου (nom commun) (m)''' : archer.<br> '''τὸ (article défini)''' : le (neutre).<br> '''τούχα, -ας (nom commun) (f)''' : Forme béotienne de ''τύχη''.<br> '''τράγημα, -ατος (nom commun) (n)''' : friandise.<br> '''τραγικός, -ή, -όν (adjectif)''' : tragique.<br> '''τραγικότατα, -, - (adverbe)''' : Superlatif de ''τραγικῶς''.<br> '''τραγικότερον, -, - (adverbe)''' : Comparatif de ''τραγικῶς''.<br> '''τραγικῶς (adverbe)''' : comiquement.<br> '''τραγικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τραγικός''.<br> '''τραγικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τραγικός''.<br> '''τραγίσκος, -ου (nom commun) (m)''' : chevreau.<br> '''τράγος, -ου (nom commun) (m)''' : bouc.<br> '''τραγῳδία, -ας (nom commun) (f)''' : tragédie.<br> '''τραγωδῶ (verbe)''' : chanter.<br> '''τράπεζα, -ης (nom commun) (f)''' : table.<br> '''τραυλίζω (verbe)''' : bégayer, bafouiller.<br> '''τραυλισμός, -οῦ (nom commun) (m)''' : bégaiement, bafouillis.<br> '''τραυλός, -οῦ (nom commun) (m)''' : bègue, bafouilleur.<br> '''τραῦμα, -ύματος (nom commun) (n)''' : Blessure. Déroute, désastre.<br> '''τράχηλος, -ήλου (nom commun) (m)''' : Cou. (En particulier) Derrière du cou, nuque.<br> '''τραχύς, -εῖα, -ύ (adjectif)''' : rude.<br> '''τράχω (verbe)''' : Forme dorienne de ''τρέχω''.<br> '''τρεῖς (adjectif numéral)''' : trois.<br> '''τρέμω (verbe)''' : trembler, s’agiter ; s’ébranler.<br> '''τρέπω (verbe)''' : tourner.<br> '''τρέστης, -ου (nom commun) (m)''' : couard ; peureux.<br> '''τρέφω (verbe)''' : Rendre compact. Rendre gras, engraisser, nourrir. Nourrir, élever. (Par extension) Élever, former, façonner, instruire. Pourvoir aux besoins de. S’épaissir, se condenser. Être nourri ou élevé.<br> '''τρέχω (verbe)''' : courir.<br> '''τρέω (verbe)''' : avoir peur.<br> '''τρῆμα, -ήµατος (nom commun) (n)''' : trou.<br> '''τρηρός, -ή, -όν (adjectif)''' : fou.<br> '''τρήρων, -ος (nom commun) (m/f)''' : timide.<br> '''τριάκοντα (adjectif numéral)''' : trente.<br> '''τρίϐω (verbe)''' : frotter.<br> '''τρίλημμα, -ήμματος (nom commun) (n)''' : trilemme.<br> '''τρίμμα, -τος (nom commun) (n)''' : .<br> '''τρίπος, -ου (nom commun) (m)''' : trépied.<br> '''τρίπους, -δος (adjectif)''' : tripède.<br> '''τρισκελής, -οῦ (nom commun) (m)''' : triskèle.<br> '''τρισκέλιον, -ίου (nom commun) (n)''' : Diminutif de ''τρισκελής''.<br> '''τριταγωνιστής, -οῦ (nom commun) (m)''' : tritagoniste.<br> '''τρίτος, -η, -ον (adjectif numéral)''' : troisième.<br> '''τρίφυλλον, -ύλλου (nom commun) (n)''' : trèfle.<br> '''-τρον, -ου (suffixe) (n)''' : Suffixe servant à former des noms d’instruments.<br> '''τρόπαιον, -ίου (nom commun) (n)''' : trophée.<br> '''τροπή, -ῆς (nom commun) (f)''' : Tour. Fuite. Révolution, changement. (Rhétorique) Tournure de phrase.<br> '''τροπικός, -ή, -όν (adjectif)''' : tournant.<br> '''τρόπος, -ου (nom commun) (m)''' : Tour, direction ; façon, mode, manière.<br> '''τροχαῖος, -ίου (nom commun) (m)''' : trochée.<br> '''τροχαλία, -ας (nom commun) (f)''' : poulie.<br> '''τροχίλος, -ου (nom commun) (m)''' : poulie.<br> '''τρόχος, -ου (nom commun) (m)''' : blaireau.<br> '''τροχός, -οῦ (nom commun) (m)''' : Roue. Tour de potier. Pain (de forme ronde) de suif ou de cire.<br> '''τρύϐλιον, -ίου (nom commun) (n)''' : bol ; coupe.<br> '''τρυγόνιον, -ίου (nom commun) (n)''' : Diminutif de ''τρυγών ''.<br> '''τρυγών, -όνος (nom commun) (f)''' : tourterelle.<br> '''τρύζω (verbe)''' : .<br> '''τρῦπα, -ύπας (nom commun) (f)''' : trou.<br> '''τρύπημα, -ήματος (nom commun) (n)''' : trou.<br> '''τρύω (verbe)''' : user.<br> '''τύρρις, -ος (nom commun) (f)''' : variante de ''τύρσις''.<br> '''τύρσις, -ος (nom commun) (f)''' : tour (construction élevée).<br> '''τρύφαξ, -κος (nom commun) (m)''' : débauché.<br> '''τρυφερός, -ά, -όν (adjectif)''' : délicat.<br> '''τρυφερότης, -τος (nom commun) (f)''' : délicatesse.<br> '''τρυφερώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τρυφερός''.<br> '''τρυφερώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τρυφερός''.<br> '''τρυφερῶς (adverbe)''' : délicatement.<br> '''τρυφή, -ῆς (nom commun) (f)''' : Douceur, mollesse. Luxe, délicatesse. Dissolution, débauche.<br> '''τρύφημα, -ήματος (nom commun) (n)''' : orgueil.<br> '''τρυφητής, -ής, -ές (adjectif)''' : voluptueux.<br> '''τρυφῶ (verbe)''' : être extravagant, se donner des airs.<br> '''τρῦχος, -ύχους (nom commun) (n)''' : Haillon, lambeau.<br> '''τρύχω (verbe)''' : épuiser, user.<br> '''τρώγω (verbe)''' : ronger, grignoter.<br> '''τρωϊκός, -ή -όν (adjectif)''' : troyen.<br> '''τρῶ (verbe)''' : avoir peur.<br> '''τῦκον, -ύκου (nom commun) (m)''' : Forme béotienne de ''σῦκον''.<br> '''τύμϐος, -ου (nom commun) (m)''' : tumulus.<br> '''τυνδάρειος, -ος, -ον (nom commun) (m)''' : tyndaréen.<br> '''τυπικός, -ή -όν (adjectif)''' : figuré.<br> '''τυπικῶς (adverbe)''' : figurativement.<br> '''τυπικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''τυπικός''.<br> '''τυπικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''τυπικός''.<br> '''τυπικώτατα, -, - (adverbe)''' : Superlatif de ''τυπικῶς''.<br> '''τυπικώτερον, -, - (adverbe)''' : Comparatif de ''τυπικῶς''.<br> '''τύπος, -ου (nom commun) (m)''' : Coup ; frappe. Frappe, marque du coup ; sceau, impression.<br> '''τύπτω (verbe)''' : frapper.<br> '''τύραννος, -άννου (nom commun) (m)''' : Maître, dominateur. (Péjoratif) Tyran, dictateur ; despote.<br> '''τύρϐη, -ης (nom commun) (f)''' : tumulte, désordre.<br> '''τυρός, -οῦ (nom commun) (m)''' : fromage.<br> '''τυτώ, -οῦς (nom commun) (f)''' : chouette.<br> '''τύ (pronom personnel)''' : Forme dorienne de ''σύ''.<br> '''τυφλός, -ή -όν (adjectif)''' : aveugle.<br> '''τῦφος, -ύφου (nom commun) (m)''' : fumée, vapeur qui monte au cerveau ; orgueil.<br> '''τῦφω (verbe)''' : enfumer.<br> '''τυχαῖος, -ία, -ῖον (adjectif)''' : chanceux.<br> '''τυχερῶς (adverbe)''' : .<br> '''τύχη, -ης (nom commun) (f)''' : chance.<br> '''τυχηρός, -ά, -όν, (adjectif)''' : chanceux.<br> '''τύψις, -εως (nom commun) (f)''' : remords.<br> '''Ταλθύϐιος, -ίου (nom propre) (m)''' : Talthybios.<br> '''Τάλως, -ώ (nom propre) (m)''' : Talos.<br> '''Τάμεσις, -έσεως (nom propre) (f)''' : Tamise.<br> '''Τάναϊς, -άϊδος (nom propre) (m)''' : Tanaïs.<br> '''Τάν, -ός (nom propre) (m)''' : Forme crétoise de ''Ζεύς''.<br> '''Ταραντῖνος, -ίνου (nom commun) (m)''' : Tarentin.<br> '''Τάρας, -αντος (nom propre) (m)''' : Tarente.<br> '''Τάρταρος, -άρου (nom propre) (m)''' : Tartare.<br> '''Ταῦρος, -ύρου (nom propre) (m)''' : Taureau.<br> '''Τειρεσίας, -ου (nom propre) (m)''' : Tirésias.<br> '''Τεΐσπης, -ου (nom propre) (m)''' : Teispès.<br> '''Τελεύτας, -αντος (nom propre) (m)''' : Téleutas.<br> '''Τελευτίας, -ου (nom propre) (m)''' : Téleutias.<br> '''Τερψιχόρα, -ας (nom propre) (f)''' : Terpsichore.<br> '''Τεύτων, -ονος (nom commun) (m)''' : Teuton.<br> '''Τηθύς, -ος (nom propre) (f)''' : [[wikt:Téthys|Téthys]].<br> '''Τηλέγονος, -όνου (nom propre) (m)''' : Télégonos.<br> '''Τηλέμαχος, -άχου (nom propre) (m)''' : Télémaque.<br> '''Τηρεύς, -έως (nom propre) (m)''' : Térée.<br> '''Τίγρης, -τος (nom propre) (m)''' : Tigre (fleuve du Moyen-Orient).<br> '''Τίγρις, -δος (nom propre) (f)''' : Forme alternative de ''Τίγρης''.<br> '''Τιθωνός, -οῦ (nom propre) (m)''' : Tithon.<br> '''Τιμασίθεος, -έου (nom propre) (m)''' : Timasithée.<br> '''Τιμόθεος, -έου (nom propre) (m)''' : Timothée.<br> '''Τίμων, -ωνος (nom propre) (m)''' : Timon.<br> '''Τισαμενός, -οῦ (nom propre) (m)''' : Tisamène.<br> '''Τίσανδρος, -άνδρου (nom propre) (m)''' : Tisandre.<br> '''Τισίας, -ου (nom propre) (m)''' : Tisias.<br> '''Τισικράτης, -ου (nom propre) (m)''' : Tisicrate.<br> '''Τισιφόνη, -ης (nom propre) (f)''' : Tisiphone (une des Érynies).<br> '''Τισσαφέρνης, -ου (nom propre) (m)''' : Tissapherne.<br> '''Τιτάν, -ᾶνος (nom propre) (m)''' : Titan.<br> '''Τιτανίς, -δος (nom propre) (f)''' : Titanide.<br> '''Τιτυός, -οῦ (nom propre) (m)''' : Tityos.<br> '''Τόσορθρος, -όρθου (nom commun) (m)''' : Djéser.<br> '''Τοξότης, -ου (nom propre) (m)''' : Sagittaire.<br> '''Τρίπολις, -όλεως (nom propre) (f)''' : Tripoli.<br> '''Τρίτων, -ος (nom propre) (m)''' : Triton.<br> '''Τροία, -ας (nom propre) (f)''' : Troie.<br> '''Τρωάς, -δος (nom commun) (f)''' : Troyenne.<br> '''Τρώς, -ός (nom commun) (m)''' : Troyen.<br> '''Τῦϐι (nom propre) (m)''' : Tybi.<br> '''Τυδεύς, -έως (nom propre) (m)''' : Tydée.<br> '''Τυνδάρεως, -εω (nom propre) (m)''' : Tyndare.<br> '''Τυνδαρίδης, -ου (nom propre) (m)''' : Tyndaride.<br> '''Τυνδαρίς, -δος (nom propre) (f)''' : Tyndaride.<br> '''Τυφάων, -ος (nom propre) (m)''' : Forme de ''Τυφῶν''.<br> '''Τυφωεύς, -έως (nom propre) (m)''' : Forme de ''Τυφῶν''.<br> '''Τυφώς, - (nom propre) (m)''' : Forme de ''Τυφῶν''.<br> '''Τυφῶν, -ος (nom propre) (m)''' : Typhon.<br> '''Τύχη, -ης (nom propre) (f)''' : [[wikt:Tyché|Tyché]].<br> '''Τύχων, -ος (nom propre) (m)''' : Tychon.<br> ==Υ== '''ὕαινα, -ίνης (nom commun) (f)''' : hyène.<br> '''ὕαλος, -άλου (nom commun) (m)''' : verre. (matière)<br> '''ὑϐριζω (verbe)''' : maltraiter, outrager.<br> '''ὕϐρις, -εως (nom commun) (f)''' : démesure, violence ; excès, outrage.<br> '''ὑγίεια, -ίας (nom commun) (f)''' : propreté.<br> '''ὑγιεινή, -ῆς (nom commun) (f)''' : santé.<br> '''ὑγιεινός, -ή, -όν (adjectif)''' : salubre.<br> '''ὑγραίνω (verbe)''' : humidifier.<br> '''ὑγρασία, -ας (nom commun) (f)''' : humidité.<br> '''ὑγρός, -ά, -όν (adjectif)''' : humide.<br> '''ὑγρότατα, -, - (adverbe)''' : Superlatif de ''ὑγρῶς''.<br> '''ὑγρότερον, -, - (adverbe)''' : Comparatif de ''ὑγρῶς''.<br> '''ὑγρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ὑγρός''.<br> '''ὑγρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''ὑγρός''.<br> '''ὑγρῶς (adverbe)''' : humidement.<br> '''ὑδραγωγεῖον, -ίου (nom commun) (n)''' : aqueduc.<br> '''ὑδράργυρος, -ύρου (nom commun) (m)''' : mercure.<br> '''ὑδρόμελι, -τος (nom commun) (n)''' : Boisson à base d'eau et de miel.<br> '''ὑδρο- (préfixe)''' : hydro-.<br> '''ὕδωρ, -ατος (nom commun) (n)''' : Eau ; sueur.<br> '''ὕενος, -ένου (nom commun) (m)''' : mercure.<br> '''υἱός, -οῦ (nom commun) (m)''' : fils.<br> '''ὕλη, -ης (nom commun) (f)''' : matière ; bois.<br> '''ὑμεῖς (pronom personnel)''' : vous.<br> '''ὑμέτερος, -έρα, -έτερον (adjectif possessif)''' : votre.<br> '''ὑμήν, -ένος (nom commun) (m)''' : Membrane ; pellicule enveloppant les organes du corps.<br> '''ὕμνος, -ου (nom commun) (m)''' : trame ; chant.<br> '''ὑμνῳδία, -ας (nom commun) (f)''' : hymne.<br> '''ὑμνῶ (verbe)''' : .<br> '''ὔμοι (adverbe)''' : Forme éolienne de ''ὁμοῦ''.<br> '''ὔμοιος, -, - (adjectif)''' : Forme éolienne de ''ὅμοιος''.<br> '''ὑμοῖος, -, -ῖον (adjectif)''' : Forme arcado-chypriote de ''ὅμοιος''.<br> '''ὑπαγόρευσις, -ύσεως (nom commun) (f)''' : dictée.<br> '''ὑπάγω (verbe)''' : mener sous.<br> '''ὑπακτικός -ή -όν (adjectif)''' : .<br> '''ὑπακοή, -ῆς (nom commun) (f)''' : obéissance.<br> '''ὑπάκουος, -η, -ον (adjectif)''' : obéissant.<br> '''ὑπακούω (verbe)''' : obéir.<br> '''ὑπαρξιακός, -ή, -όν (adjectif)''' : existentiel.<br> '''ὕπαρξις, -άρξεως (nom commun) (f)''' : existence.<br> '''ὑπάρχω (verbe)''' : exister.<br> '''ὑπεξαίρεσις, -έσεως (nom commun) (f)''' : malversation.<br> '''ὑπεξαιρῶ (verbe)''' : .<br> '''ὑπερκόσμιος, -α, -ο (adjectif)''' : .<br> '''ὑπέρ (adverbe ; préposition)''' : au-dessus.<br> '''ὑπερϐάλλω (verbe)''' : exagérer.<br> '''ὑπερϐολή, -ῆς (nom commun) (f)''' : exagération.<br> '''ὑπερϐολικός, -ή, -όν (adjectif)''' : excessif.<br> '''ὑπερθετικός, -ή, -όν (adjectif)''' : superlatif.<br> '''ὑπεριώδης, -ης, -ες (adjectif)''' : ultraviolet.<br> '''ὑπεροπτικός, -ή, -όν (adjectif)''' : arrogant.<br> '''ὑπέροπτος, -ος, -ον (adjectif)''' : .<br> '''ὑπεροψία, -ας (nom commun) (f)''' : arrogance.<br> '''ὑπέρυθρος, -η, -ον (adjectif)''' : infrarouge.<br> '''ὑπερφυσικός, -ή, -όν (adjectif)''' : surnaturel.<br> '''ὑπεύθυνος, -ος, -ον (adjectif)''' : responsable.<br> '''ὑπευθυνότητα, -ας (nom commun) (f)''' : responsabilité.<br> '''ὑπηρεσία, -ας (nom commun) (f)''' : service.<br> '''ὑπηρέτης, -ου (nom commun) (m)''' : serviteur.<br> '''ὑπηρετικός, -ή, -όν (adjectif)''' : de service.<br> '''ὑπηρετικῶς (adverbe)''' : -ment.<br> '''ὑπηρετικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ὑπηρετικός''.<br> '''ὑπηρετικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ὑπηρετικός''.<br> '''ὑπηρετικώτατα, -, - (adverbe)''' : Superlatif de ''ὑπηρετικῶς''.<br> '''ὑπηρετικώτερον, -, - (adverbe)''' : Comparatif de ''ὑπηρετικῶς''.<br> '''ὑπηρέτρια, -ας (nom commun) (f)''' : servante.<br> '''ὑπηρετῶ (verbe)''' : servir.<br> '''ὑπνολαλία, -ας (nom commun) (f)''' : somniloquie.<br> '''ὑπνολαλῶ (verbe)''' : somniloquer.<br> '''ὕπνωσις, -ώσεως (nom commun) (f)''' : hypnose.<br> '''ὑπνωτικός, -ή, -όν (adjectif)''' : hypnotique.<br> '''ὑπνῶ (adjectif)''' : hypnotiser.<br> '''ὑπόϐαθρον, -άθρου (nom commun) (n)''' : arrière-plan.<br> '''ὑπόγειον, -ίου (nom commun) (n)''' : cave.<br> '''ὑπόδειγμα, -ίγματος (nom commun) (n)''' : exemple.<br> '''ὑποδειγματικός, -ή, -όν (adjectif)''' : exemplaire.<br> '''ὑποδείκνυμι (verbe)''' : .<br> '''ὑπόδημα, -ήματος (nom commun) (n)''' : chaussure.<br> '''ὑποδηματοποιεῖον, -ίου (nom commun) (n)''' : boutique du cordonnier.<br> '''ὑποδηματοποιός, -οῦ (nom commun) (m)''' : cordonnier.<br> '''ὑποζύγιον, -ίου (nom commun) (n)''' : attelage.<br> '''ὑπόθεσις, -έσεως (nom commun) (f)''' : supposition.<br> '''ὑποκινῶ (verbe)''' : .<br> '''ὑποκορίζομαι (verbe)''' : parler comme un enfant.<br> '''ὑποκόρισμα, -τος (nom commun) (n)''' : sobriquet.<br> '''ὑποκοριστικός, -ή, -όν (adjectif)''' : caressant, propre à atténuer.<br> '''ὑποκρίνομαι (verbe)''' : jouer une pièce.<br> '''ὑπόκρισις, -ίσεως (nom commun) (f)''' : Réponse. Action de jouer un rôle, une pièce, une pantomime. Débit théâtral, déclamation. Feinte, faux-semblant.<br> '''ὑποκριτής, -οῦ (nom commun) (m)''' : Donneur de réponse. Acteur, comédien.<br> '''ὑπόκωφος, -η, -ον (adjectif)''' : sourd.<br> '''ὑποκώφως (adverbe)''' : sourdement.<br> '''ὑπολογίζομαι (verbe)''' : calculer.<br> '''ὑπολογισμός, -οῦ (nom commun) (m)''' : calcul.<br> '''ὑπομιμνήσκω (verbe)''' : .<br> '''ὑπομονή, -ῆς (nom commun) (f)''' : .<br> '''ὑπόμνημα, -ήματος (nom commun) (n)''' : .<br> '''ὑπόνομος, -ου (nom commun) (m)''' : égout.<br> '''ὑπόστασις, -άσεως (nom commun) (f)''' : .<br> '''ὑποταγή, -ῆς (nom commun) (f)''' : Subordination, soumission.<br> '''ὑποτάσσω (verbe)''' : Subordonner, soumettre. Dominer, contrôler.<br> '''ὑποτίθημι (verbe)''' : supposer.<br> '''ὑπότριμμα, -ίμματος (nom commun) (n)''' : Sauce aux herbes, sauce verte et piquante.<br> '''ὑπουργεῖον, -ίου (nom commun) (n)''' : ministère.<br> '''ὑπουργικός, -ή, -όν (adjectif)''' : ministériel.<br> '''ὑπουργός, -οῦ (nom commun) (m)''' : ministre.<br> '''ὑποχώρησις, -ήσεως (nom commun) (f)''' : régression.<br> '''ὑποχωρητικός, -ή, -όν (adjectif)''' : régressif.<br> '''ὑποψήφιος, -ίου (nom commun) (m)''' : candidat.<br> '''ὑπό (adverbe ; préposition)''' : en dessous.<br> '''ὑπο- (préfixe)''' : relatif au dessous.<br> '''ὕραξ, -κος (nom commun) (m)''' : souris.<br> '''ὕσσωπος, -ώπου (nom commun) (f)''' : hysope.<br> '''ὕστατος, -η, -ον (adjectif)''' : dernier.<br> '''ὑστερέω (verbe)''' : .<br> '''ὑστέρησις, -ήσεως (nom commun) (f)''' : hystérèse.<br> '''ὑστερικός, -ή, -όν (adjectif)''' : utérin ; hystérique.<br> '''ὑστερο- (préfixe)''' : suivant ; tardif.<br> '''ὕστερος, -α, -ον (adjectif)''' : postérieur.<br> '''ὕστερος, -έρου (nom commun) (m)''' : matrice ; utérus.<br> '''ὑστέρως (adverbe)''' : .<br> '''ὕστριξ, -χός (nom commun) (m/f)''' : porc-épic.<br> '''ὗς, -ός (nom commun) (m/f)''' : Porc, sanglier. Truie, laie.<br> '''ὑφαίνω (verbe)''' : tisser.<br> '''ὕφαλος, -άλου (nom commun) (m)''' : récif.<br> '''ὑφή, -ῆς (nom commun) (f)''' : toile d’araignée.<br> '''ὕφος, -ους (nom commun) (n)''' : tissu.<br> '''ὑψηλός, -ή, -όν (adjectif)''' : .<br> '''ὕψι (adverbe)''' : en haut.<br> '''ὖ ψιλόν (nom commun) (n)''' : upsilon.<br> '''ὑψίτερος, -έρη, -ερον (adverbe)''' : Comparatif de ''ὕψι''.<br> '''ὕψιστος, -ίστη, -ιστον (adverbe)''' : Superlatif de ''ὕψι''.<br> '''ὕψος, -ους (nom commun) (n)''' : hauteur.<br> '''ὕψωμα, -ώματος (nom commun) (n)''' : élévation.<br> '''ὕψωσις, -ώσεως (nom commun) (f)''' : élévation.<br> '''ὑψῶ (verbe)''' : élever.<br> '''ὕω (verbe)''' : pleuvoir.<br> '''Ὕϐρις, -εως (nom propre) (f)''' : Hybris.<br> '''Ὑδροχόος, -ου (nom propre) (m)''' : Verseau.<br> '''Ὑγίεια, -ίας (nom propre) (f)''' : [[wikt:Hygie|Hygie]].<br> '''Ὕηττος, -ήττου (nom propre) (m)''' : Hyettos.<br> '''Ὑκσώς, -οῦς (nom commun) (m)''' : Hyksôs.<br> '''Ὕλλος, -ου (nom propre) (m)''' : Hyllos.<br> '''Ὑμέναιος, -ίου (nom propre) (m)''' : [[wikt:Hyménée|Hyménée]].<br> '''Ὑμήν, -ένος (nom propre) (m)''' : Variante de ''Ὑμέναιος''.<br> '''Ὑπερίων, -ος (nom propre) (m)''' : Hypérion.<br> '''Ὕπνος, -ου (nom propre) (m)''' : [[wikt:Hypnos|Hypnos]].<br> '''Ὑστάσπης, -ου (nom propre) (m)''' : Hystaspès.<br> '''Ὕψιστος, -ίστου (nom propre) (m)''' : Très-Haut.<br> ==Φ== '''φαγός, -οῦ (nom commun) (m)''' : Forme dorienne de ''φηγός''.<br> '''φαιδρός, -ίδρα, -ιδρόν (adjectif)''' : brillant ; rayonnant, enjoué ; gai, jovial.<br> '''φαίνεσθαι (verbe)''' : se montrer.<br> '''φαινόμενον, -ένου (nom commun) (n)''' : phénomène.<br> '''φαίνω (verbe)''' : faire briller.<br> '''φακός, -οῦ (nom commun) (m)''' : Lentille. (Anatomie) Cristallin. Tache de rousseur.<br> '''φακόχοιρος, -ίρου (nom commun) (m)''' : phacochère.<br> '''φάλαγξ, -γος (nom commun) (f)''' : phalange.<br> '''φάλλαινα, -ίνης (nom commun) (f)''' : baleine.<br> '''φαλλός, -οῦ (nom commun) (m)''' : phallus.<br> '''φάμη, -ης (nom commun) (f)''' : Forme dorienne de ''φήμη''.<br> '''φαμί (verbe)''' : Forme dorienne de ''φημί''.<br> '''φάναξ, -κος (nom commun) (m)''' : .<br> '''φανερός, -ά, -όν (adjectif)''' : Apparent. En vue.<br> '''φανερῶς (adverbe)''' : .<br> '''φανερώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''φανερός''.<br> '''φανερώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''φανερός''.<br> '''φανερῶ (verbe)''' : .<br> '''φανός, -οῦ (nom commun) (m)''' : .<br> '''φάνταγμα, -άγματος (nom commun) (n)''' : Forme ionienne de ''φάντασμα''.<br> '''φαντάζω (verbe)''' : Dénoncer ; Se montrer, apparaître.<br> '''φαντασία, -ας (nom commun) (f)''' : imagination.<br> '''φάντασμα, -άσματος (nom commun) (n)''' : Apparition, vision, songe ; fantôme, spectre.<br> '''φανταστής, -οῦ (nom commun) (m)''' : vantard.<br> '''φανταστικός, -ή, -όν (adjectif)''' : imaginaire.<br> '''φάραγξ, -γος (nom commun) (m)''' : canyon.<br> '''φαραώ (nom commun) (m)''' : pharaon.<br> '''φαρέτρα, -ας (nom commun) (f)''' : carquois.<br> '''φαρέτρη, -ης (nom commun) (f)''' : Forme dorienne de ''φαρέτρα''.<br> '''φαρετρεών, -ῶνος (nom commun) (m)''' : .<br> '''φαρισαϊκός, -ή, -όν (adjectif) (f)''' : pharisien.<br> '''φαρισαϊκότατα, -, - (adverbe)''' : Superlatif de ''φαρισαϊκῶς''.<br> '''φαρισαϊκότερον, -, - (adverbe)''' : Comparatif de ''φαρισαϊκῶς''.<br> '''φαρισαϊκῶς (adverbe)''' : pharisiennement.<br> '''φαρισαϊκώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''φαρισαϊκός''.<br> '''φαρισαϊκώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''φαρισαϊκός''.<br> '''φαρισαῖος, -ίου (nom commun) (m)''' : pharisien.<br> '''φαρμακεία, -ας (nom commun) (f)''' : ensemble des médicaments.<br> '''φαρμακεύς, -έως (nom commun) (m)''' : Apothicaire, empoisonneur. Sorcier.<br> '''φαρμακευτικός, -ή, -όν (adjectif) (f)''' : de remède.<br> '''φαρμακευτικότατα, -, - (adverbe)''' : Superlatif de ''φαρμακευτικῶς''.<br> '''φαρμακευτικότερον, -, - (adverbe)''' : Comparatif de ''φαρμακευτικῶς''.<br> '''φαρμακευτικῶς (adverbe)''' : .<br> '''φαρμακευτικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''φαρμακευτικός''.<br> '''φαρμακευτικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''φαρμακευτικός''.<br> '''φαρμακίς, -δος (nom commun) (f)''' : Apothicaire, empoisonneuse. Sorcière.<br> '''φάρμακον, -άκου (nom commun) (n)''' : Médicament, remède ; poison, préparation magique. Teinture, fard.<br> '''φαρμακοποσία, -ας''' : action de boire une potion.<br> '''φαρμακοπώλης, -ου (nom commun) (m)''' : pharmacien.<br> '''φαρμακός, -οῦ (nom commun) (m)''' : victime expiatoire.<br> '''φαρμακοτρίϐης, -ου (nom commun) (m)''' : laborantin.<br> '''φαρμακώδης, -ης, -ες (adjectif)''' : médicinal ; vénéneux.<br> '''φαρμακῶ (verbe)''' : empoisonner.<br> '''φάρυγξ, -γος (nom commun) (m)''' : gosier.<br> '''φάσηλος, -ήλου (nom commun) (m)''' : haricot sec.<br> '''φασιανικός, -ή, -όν (adjectif)''' : phasianien.<br> '''φασιανός, -οῦ (nom commun) (m)''' : faisan.<br> '''φάκελος, -έλου (nom commun) (m)''' : fagot, faisceau.<br> '''φάσκος, -ου (nom commun) (m)''' : .<br> '''φασκώλιον, -ίου (nom commun) (n)''' : valisette.<br> '''φάσκωλος, -ώλου (nom commun) (m)''' : valise.<br> '''φάσμα, -τος (nom commun) (n)''' : spectre.<br> '''φασματικός, -ή, -όν (adjectif)''' : spectral.<br> '''φασματικώτατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''φασματικός''.<br> '''φασματικώτερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''φασματικός''.<br> '''φασματικῶς (adverbe)''' : spectralement.<br> '''φασματικώτατα, -, - (adverbe)''' : Superlatif de ''φασματικῶς''.<br> '''φασματικώτερον, -, - (adverbe)''' : Comparatif de ''φασματικῶς''.<br> '''φάτις, -εως (nom commun) (f)''' : rumeur, parole.<br> '''φάττα, -ης (nom commun) (f)''' : palombe ; ramier.<br> '''φαῦλος, -ύλη, -ῦλον (adjectif)''' : vicieux.<br> '''φέγγος, -ους (nom commun) (n)''' : .<br> '''φέρετρον, -έτρου (nom commun) (n)''' : cercueil.<br> '''φέρω (verbe)''' : porter.<br> '''φεύγω (verbe)''' : fuir (prendre la fuite).<br> '''φεῦξις, -ύξεως (nom commun) (f)''' : échappée, évasion ; fuite.<br> '''φεῦ (interjection)''' : Hélas ; ah.<br> '''φή (conjonction)''' : Forme homérique de ''ὡς''.<br> '''φηγός, -οῦ (nom commun) (f)''' : chêne.<br> '''φηλητής, -οῦ (nom commun) (m)''' : trompeur.<br> '''φῆλος, -ος, -ον (adjectif)''' : trompeur.<br> '''φήμη, -ης (nom commun) (f)''' : Voix prophétique, oracle. Rumeur, réputation.<br> '''φημί (verbe)''' : dire.<br> '''φήρ, -ός (nom commun) (m)''' : Forme éolienne de ''θήρ''.<br> '''φθέγγομαι (verbe)''' : proférer.<br> '''φθειρρός, -οῦ (nom commun) (m)''' : pou.<br> '''φθείρω (verbe)''' : user.<br> '''φθινόπωρον, -ώρου (nom commun) (n)''' : automne.<br> '''φθίσις, -εως (nom commun) (f)''' : Déclin, ruine. Atrophie, consomption. Contraction, réduction de la pupille.<br> '''φθίω (verbe)''' : périr, disparaitre.<br> '''φθόγγος, -ου (nom commun) (m)''' : son.<br> '''φθονερός, -ή, -όν (adjectif) (f)''' : envieux.<br> '''φθόνησις, -ήσεως (nom commun) (f)''' : dénégation.<br> '''φθόνος, -ου (nom commun) (m)''' : envie.<br> '''φθονῶ (verbe)''' : envier.<br> '''φθορά, -ᾶς (nom commun) (f)''' : Perdition, perte, ruine, destruction. Action de corrompre, corruption, séduction. (Peinture) Dégradation de couleur, affaiblissement de teinte.<br> '''φῖ (nom commun) (n)''' : phi.<br> '''φίλαμα, -άματος (nom commun) (n)''' : Forme dorienne de ''φίλημα''.<br> '''φιλαδελφία, -ας (nom commun) (f)''' philadelphie.<br> '''φιλανδρία, -ας (nom commun) (f)''' philandrie.<br> '''φιλανθρωπία, -ας (nom commun) (f)''' philanthropie.<br> '''φιλάνθρωπος, -ος, -ον (adjectif)''' : Humain, bon ; bienveillant, affable. Qui aime les hommes (en parlant des dieux). Qui plaît aux hommes, agréable.<br> '''φιλαργυρία, -ας (nom commun) (f)''' : avarice.<br> '''φιλάργυρος, -ος, -ον (adjectif)''' : avare.<br> '''φίλειμι (verbe)''' : Forme béotienne de ''φιλῶ''.<br> '''φίλημμι (verbe)''' : Forme éolienne de ''φιλῶ''.<br> '''φιλία, -ας (nom commun) (f)''' : amitié, amour absolu, plaisir de la compagnie.<br> '''φιλίη, -ης (nom commun) (f)''' : Forme ionienne de ''φιλία''.<br> '''φίλημα, -ήματος (nom commun) (n)''' : baiser.<br> '''φίλημμι (verbe)''' : Forme éolienne de ''φιλῶ''.<br> '''φιλόγελως, -ωτος (nom commun) (m)''' : Amateur d'histoires drôles.<br> '''φιλόπαις, -δός (nom commun) (m)''' : philopaide.<br> '''φίλος, -η, -ον (adjectif)''' : amical.<br> '''φίλος, -ου (nom commun) (m)''' : ami.<br> '''φιλο- (préfixe)''' : qui aime.<br> '''φιλογυνία, -ας (nom commun) (f)''' : philogynie.<br> '''φιλοπαιδία, -ας (nom commun) (f)''' : philopaidie.<br> '''φιλόπαις, -αίδος (nom commun) (m)''' : philopaide.<br> '''φιλοσοφία, -ας (nom commun) (f)''' : philosophie.<br> '''φιλοσοφικός, -ή, -όν (adjectif)''' : philosophique.<br> '''φιλοσοφικότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''φιλοσοφικός''.<br> '''φιλοσοφικότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''φιλοσοφικός''.<br> '''φιλοσοφικῶς (adverbe)''' : philosophiquement.<br> '''φιλοσοφικώτατα, -, - (adverbe)''' : Superlatif de ''φιλοσοφικῶς''.<br> '''φιλοσοφικώτερον, -, - (adverbe)''' : Comparatif de ''φιλοσοφικῶς''.<br> '''φιλόσοφος, -όφου (nom commun) (m)''' : philosophe.<br> '''φιλοσοφῶ (verbe)''' : philosopher.<br> '''φιλότης, -τος (nom commun) (f)''' : Amitié ; relation sexuelle.<br> '''φιλύρα, -ας (nom commun) (f)''' : tilleul.<br> '''φιλῶ (verbe)''' : Aimer d'amitié. Éprouver de l'amitié. Traiter en ami, regarder comme un ami. Donner un signe d'amitié. Aimer d'amour. (Par extension) Aimer. Voir volontiers, accueillir avec plaisir, approuver, agréer. Rechercher, poursuivre. Se plaire à.<br> '''φίλως ‎(adverbe)''' : amicalement.<br> '''φιμός, -οῦ (nom commun) (m)''' : .<br> '''φίμωσις, -ώσεως (nom commun) (f)''' : musellement.<br> '''φίμωτρον, -ου (nom commun) (m)''' : muselière.<br> '''φιμῶ (verbe)''' : museler.<br> '''φιτύω (verbe)''' : engendrer.<br> '''φλέγμα, -τος (nom commun) (n)''' : flegme.<br> '''φλέγω (verbe)''' : brûler.<br> '''φλέψ, -ϐός (nom commun) (f)''' : veine (vaisseau sanguin).<br> '''φλέω (verbe)''' : sourdre.<br> '''φλίϐω (verbe)''' : étendre, presser.<br> '''φλόγωσις, -ώσεως (nom commun) (m)''' : inflammation.<br> '''φλογῶ (verbe)''' : flamber.<br> '''φλοιός, -οῦ (nom commun) (m)''' : écorce.<br> '''φλόξ, -γός (nom commun) (m)''' : flamme.<br> '''φλύαρος, -ος, -ον (adjectif)''' : bavard.<br> '''φλυαρῶ (verbe)''' : bavarder.<br> '''φλύκταινα, -ίνας (nom commun) (f)''' : cloque.<br> '''φλύζω (verbe)''' : Forme de ''φλύω''.<br> '''φλύω (verbe)''' : couler.<br> '''φοϐερός, -ά, -όν (adjectif)''' : effrayant.<br> '''φόϐος, -ου (nom commun) (m)''' : peur.<br> '''φοῖϐος, -η, -ον (adjectif)''' : .<br> '''φοῖνιξ, -ίνικος (nom commun) (m)''' : palmier-dattier ; phénix.<br> '''φονεύς, -έως (nom commun) (m)''' : meurtrier.<br> '''φονεύω (verbe)''' : assassiner.<br> '''φονικός, -ή, -όν (adjectif)''' : meurtrier.<br> '''φόνος, -ου (nom commun) (m)''' : meurtre.<br> '''φόρημα, -ήματος (nom commun) (n)''' : .<br> '''φόρμιγξ, -γος (nom commun) (f)''' : (poésie) lyre.<br> '''φορτίζω (verbe)''' : charger.<br> '''φόρτισις, -ίσεως (nom commun) (f)''' : charge.<br> '''φόρτος, -ου (nom commun) (m)''' : .<br> '''φοῦκτα, -ύκτας (nom commun) (m)''' : poignée de main.<br> '''φοῦρνος, -ύρνου (nom commun) (m)''' : four.<br> '''φραγή, -ῆς (nom commun) (f)''' : bloc.<br> '''φράγμα, -ατος (nom commun) (n)''' : clôture.<br> '''φραγμός, -οῦ (nom commun) (m)''' : bloc.<br> '''φράν, -ός (nom commun) (f)''' : Forme dorienne de ''φρήν''.<br> '''φράσις, -εως (nom commun) (f)''' : Suite de mots.<br> '''φράσσω (verbe)''' : déclarer.<br> '''φράτηρ, -ερος (nom commun) (m)''' : Membre d'une phratrie.<br> '''φρατήρ, -έρος (nom commun) (m)''' : Forme dorienne de ''φράτηρ''.<br> '''φρατρία, -ας (nom commun) (f)''' : phratrie.<br> '''φρέαρ, -τος (nom commun) (n)''' : puits.<br> '''φρενητικός, -ή, -όν (adjectif)''' : délirant.<br> '''φρενητικῶς (adverbe)''' : -ment.<br> '''φρενητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''φρενητικός''.<br> '''φρενητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''φρενητικός''.<br> '''φρενητικώτατα, -, - (adverbe)''' : Superlatif de ''φρενητικῶς''.<br> '''φρενητικώτερον, -, - (adverbe)''' : Comparatif de ''φρενητικῶς''.<br> '''φρενῖτις, -ίτιδος (nom commun) (f)''' : délire.<br> '''φρήν, -ενός (nom commun) (f)''' : Toute membrane qui enveloppe un organe. (Au pluriel) Viscères, entrailles. (Par suite) (Poésie) Cœur, âme.<br> '''φρήτηρ, -ερος (nom commun) (m)''' : Forme ionienne de ''φράτηρ''.<br> '''φρίκη, -ης (nom commun) (f)''' : terreur.<br> '''φρίξ, -ικός (nom commun) (f)''' : terreur.<br> '''φριξός, -ή, -όν (adjectif)''' : terrifiant.<br> '''φρίσσω (verbe)''' : terroriser.<br> '''φρόνημα, -ήματος (nom commun) (n)''' : Intelligence, pensée. Manière de penser.<br> '''φρόνησις, -ήσεως (nom commun) (f)''' : Pensée, dessein. Intelligence raisonnable, sagesse. Intelligence (ou sagesse) divine.<br> '''φρόνιμος, -ος, -ον (adjectif)''' : sensé.<br> '''φρονῶ (verbe)''' : Penser, avoir la faculté de penser ou de sentir, vivre. Être dans son bon sens. Penser. Être sensé. Avoir dans l’esprit. Songer à, projeter de.<br> '''φρουρά, -ᾶς (nom commun) (m)''' : garde (corps d’armée).<br> '''φρουρή, -ῆς (nom commun) (m)''' : Forme ionienne de ''φρουρή''.<br> '''φρούρημα, -ήματος (nom commun) (n)''' : bannissement.<br> '''φρούρησις, -ήσεως (nom commun) (f)''' : fuite, bannissement.<br> '''φρουρητός, -ός, -όν (adjectif)''' : banni.<br> '''φρούριον, -ίου (nom commun) (n)''' : forteresse.<br> '''φρουρός, -οῦ (nom commun) (m)''' : garde (surveillant).<br> '''φρουρῶ (verbe)''' : bannir.<br> '''φρύγω (verbe)''' : rôtir.<br> '''φρῦνος, -ύνου (nom commun) (m)''' : crapaud.<br> '''φυγάς, -δος (nom commun) (m)''' : fugitif.<br> '''φυγή, -ῆς (nom commun) (f)''' : fuite, bannissement.<br> '''φύζω (verbe)''' : Forme ionienne de ''φεύγω''.<br> '''φυίω (verbe)''' : Forme éolienne de ''φύω''.<br> '''φυλακή, -ῆς (nom commun) (f)''' : garde, surveillance ; vigilance.<br> '''φυλακτήριον, -ίου (nom commun) (n)''' : amulette.<br> '''φυλακτήρ, -ῆρος (nom commun) (m)''' : garde.<br> '''φυλάξις, -εως (nom commun) (f)''' : garde.<br> '''φύλαξ, -κος (nom commun) (m)''' : observateur, garde ; protecteur.<br> '''φυλάσσω (verbe)''' : garder.<br> '''φυλάττω (verbe)''' : Forme attique de ''φυλάσσω''.<br> '''φυλετικός, -ή, -όν (adjectif)''' : racial.<br> '''φυλή, -ῆς (nom commun) (f)''' : Tribu, groupe de familles de même races ; (Militaire) Corps de troupes au nombre de 10. (Par extension) Classe, genre ; espèce.<br> '''φύλλον, -ου (nom commun) (n)''' : feuille.<br> '''φυλλόω (verbe)''' : .<br> '''φῦλον, -ύλου (nom commun) (n)''' : groupe, tribu ; nation.<br> '''φῦμα, -ύματος (nom commun) (n)''' : .<br> '''φυμάτιον, -ίου (nom commun) (n)''' : .<br> '''φύραμα, -τος (nom commun) (n)''' : .<br> '''φυράω (verbe)''' : .<br> '''φύρδην (adverbe)''' : .<br> '''φυρατέον, -ου (nom commun) (n)''' : .<br> '''φυρατής, -οῦ (nom commun) (m)''' : .<br> '''φύρμα, -τος (nom commun) (n)''' : .<br> '''φυρμός, -οῦ (nom commun) (m)''' : .<br> '''φύρσιμος, -ίµου (nom commun) (m)''' : .<br> '''φύρσις, -εως (nom commun) (f)''' : .<br> '''φύρω (verbe)''' : .<br> '''φυσσαλίς, -δος (nom commun) (m)''' : bulle.<br> '''φῦσα, -ύσας (nom commun) (f)''' : .<br> '''φυσάω (verbe)''' : .<br> '''φυσητήρ, -ῆρος (nom commun) (m)''' : soupirail.<br> '''φῦσιγξ, -ύσιγγος (nom commun) (m)''' : cartouche.<br> '''φύσις, -εως (nom commun) (f)''' : nature.<br> '''φυσικός, -ή, -όν, (adjectif)''' : naturel.<br> '''φυσικῶς (adverbe)''' : naturellement.<br> '''φυσικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''φυσικός''.<br> '''φυσικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''φυσικός''.<br> '''φυσικώτατα, -, - (adverbe)''' : Superlatif de ''φυσικῶς''.<br> '''φυσικώτερον, -, - (adverbe)''' : Comparatif de ''φυσικῶς''.<br> '''φύσκα, -ας (nom commun) (f)''' : Forme dorienne de ''φύσκη''.<br> '''φύσκη, -ης (nom commun) (f)''' : .<br> '''φύτευμα, -ύματος (nom commun) (n)''' : raiponce.<br> '''φυτεύω (verbe)''' : planter.<br> '''φυτόν, -οῦ (nom commun) (n)''' : végétal, plante.<br> '''φυτο- (préfixe)''' : relatif aux plantes.<br> '''φῦ (interjection)''' : pouah.<br> '''φύω (verbe)''' : croître.<br> '''φώκη, -ης (nom commun) (f)''' : phoque.<br> '''φώκιος, -ος, -ον (adjectif)''' : phocidien.<br> '''φωλεός, -οῦ (nom commun) (m)''' : tanière, terrier.<br> '''φωνήεις, -σσα, -ῆεν (adjectif)''' : vocalique.<br> '''φωνῆεν, -ήεντος (nom commun) (n)''' : voyelle.<br> '''φωνή, -ῆς (nom commun) (f)''' : voix.<br> '''φώνημα, -ήματος (nom commun) (n)''' : phonème.<br> '''φωνητικός, -ή, -όν (adjectif)''' : phonétique.<br> '''φωνητικῶς (adverbe)''' : phonétiquement.<br> '''φωνητικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''φωνητικός''.<br> '''φωνητικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''φωνητικός''.<br> '''φωνῶ (verbe)''' : Faire entendre un son de voix. Parler haut, dire d'une voix forte, élever la voix Ordonner, commander, prescrire. Parler de. Chanter.<br> '''φώς, -τός (nom commun) (m)''' : homme.<br> '''φῶς, -τός (nom commun) (n)''' : lumière, éclair.<br> '''φωσφορίζων, -ουσα, -ον (adjectif)''' : fluorescent.<br> '''φωσφορίζω (verbe)''' : fluorescer.<br> '''φωσφόρος, -ος, -ον (adjectif)''' : qui apporte la lumière.<br> '''Φαέθουσα, -ας (nom propre) (f)''' : Phaéthuse.<br> '''Φαέθων, -οντος (nom propre) (m)''' : Phaéton.<br> '''Φαίδρα, -ας (nom propre) (f)''' : Phèdre.<br> '''Φαῖδρος, -ίδρου (nom propre) (f)''' : Phèdre.<br> '''Φαιδρία, -ας (nom propre) (f)''' : Phédrie.<br> '''Φαμενώθ (nom propre) (m)''' : Phaminoth.<br> '''Φαντασός, -οῦ (nom propre) (m)''' : Phantasos.<br> '''Φάρος, -ου (nom propre) (f)''' : Pharos.<br> '''Φαρμουθί (nom propre) (m)''' : Pharmouti.<br> '''Φασιανός, -οῦ (nom commun) (m)''' : Phasien.<br> '''Φᾶσις, -άσιος (nom propre) (m)''' : Phase.<br> '''Φαῶφι (nom propre) (m)''' : Phaophi.<br> '''Φειδίας, -ου (nom propre) (m)''' : Phidias.<br> '''Φερεκύδης, -ου (nom propre) (m)''' : Phérécyde.<br> '''Φερενίκη, -ης (nom propre) (f)''' : Véronique.<br> '''Φηγεύς, -έως (nom propre) (m)''' : Phégée.<br> '''Φθόνος, -ου (nom propre) (m)''' : [[wikt:Phtonos|Phtonos]].<br> '''Φιλάμμων, -ονος (nom propre) (m)''' : Philammon. (Demi-frère d'Autolycos.)<br> '''Φιλέας, -ου (nom propre) (m)''' : Philéas.<br> '''Φίλιππος, -ίππου (nom propre) (m)''' : Philippe.<br> '''Φιλόγελως, -τος (nom propre) (m)''' : Philogélos. (Recueil d’histoires drôles probablement rédigé au V{{e}} siècle apr. J.-C., attribué à Hiéroclès et Philagrios)<br> '''Φιλοκτήτης, -ου (nom propre) (m)''' : Philoctète.<br> '''Φιλομήλη, -ης (nom propre) (f)''' : Philomèle.<br> '''Φιλότης, -τος (nom propre) (f)''' : [[wikt:Philotès|Philotès]].<br> '''Φίλων, -ος (nom propre) (m)''' : Philo.<br> '''Φιλώτας, -ου (nom propre) (m)''' : Philinte.<br> '''Φινεές, -οῦ (nom propre) (m)''' : Phinées.<br> '''Φινεύς, -έως (nom propre) (m)''' : Phinée.<br> '''Φίξ, -γγός (nom propre) (f)''' : Forme béotienne de ''Σφίγξ''.<br> '''Φλεγέθων, -οντος (nom propre) (m)''' : Phlégéthon.<br> '''Φλεγύας, -ντος (nom propre) (m)''' : Phlégias. (père de Coronis)<br> '''Φλέγων, -ος (nom propre) (m)''' : Phlégon.<br> '''Φοϐητώρ, -όρος (nom propre) (m)''' : Phobétor.<br> '''Φοίϐη, -ης (nom propre) (f)''' : [[wikt:Phœbé|Phœbé]].<br> '''Φοιϐίδας, -ου (nom propre) (m)''' : [[wikt:Phébidas|Phébidas]].<br> '''Φοῖϐος, -ίϐου (nom propre) (m)''' : [[wikt:Phébus|Phébus]].<br> '''Φοῖνιξ, -ίνικος (nom commun) (m/f)''' : Phénicien. Carthaginois. (les descendants de Phénicie.)<br> '''Φόϐος, -ου (nom propre) (m)''' : Phobos.<br> '''Φραόρτης, -ου (nom propre) (m)''' : .<br> '''Φρυγία, -ας (nom propre) (f)''' : Phrygie.<br> '''Φρύξ, -γός (nom commun) (m)''' : Phrygien.<br> '''Φυλεύς, -έως (nom propre) (m)''' : Phylée (fils d’Augias).<br> '''Φυλλίς, -δος (nom propre) (f)''' : Phyllis.<br> '''Φυσίγναθος, -άθου (nom propre) (f)''' : Physignathe.<br> '''Φωκεύς, -έως (nom commun) (m)''' : Phocidien.<br> '''Φώκαια, -ίας (nom propre) (f)''' : Phocée. (Ancienne cité grecque d’Asie Mineure.)<br> '''Φωκαιεύς, -έως (nom commun) (m)''' : Phocéen.<br> '''Φωκαιίς, -δος (nom commun) (f)''' : Phocéenne.<br> '''Φωκίς, -δος (nom propre) (f)''' : Phocide.<br> '''Φῶκος, -ώκου (nom propre) (m)''' : Phocus.<br> '''Φορμίων, -ος (nom propre) (m)''' : Phormion.<br> '''Φωτεινή, -ῆς (nom propre) (f)''' : Photine.<br> ==Χ== '''χαίνω (verbe)''' : .<br> '''χαῖρε (interjection)''' (Devient ''χαίρετε'' au pluriel.) : bonjour ; salut.<br> '''χαίρω (verbe)''' : se réjouir ; être joyeux. Se réjouir d'ordinaire, se plaire d'ordinaire à ou dans. Avoir sujet de se réjouir.<br> '''χάλαζα, -άζης (nom commun) (f)''' : grêle.<br> '''χαλαρός, -ά, -όν (adjectif)''' : détendu.<br> '''χαλαρότης, -τος (nom commun) (f)''' : détente.<br> '''χαλάρωσις, -ώσεως (nom commun) (f)''' : détente.<br> '''χαλαρῶς (adverbe)''' : .<br> '''χαλαρῶ (verbe)''' : détendre.<br> '''χαλάω (verbe)''' : Lâcher, relâcher. Laisser tomber, baisser, rabaisser. Laisser aller. (Au passif) Être adouci. Être indulgent. Céder le passage. Affaiblir.<br> '''χάλασις, -άσεως (nom commun) (f)''' : Relâchement, relaxation.<br> '''χαλεπός, -ή, -όν (adjectif)''' : difficile.<br> '''χαλεπῶς (adverbe)''' : difficilement.<br> '''χαλεπώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''χαλεπός''.<br> '''χαλεπώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''χαλεπός''.<br> '''χάλιξ, -κος (nom commun) (m/f)''' : galet ; gravier.<br> '''χαλκεύς, -έως (nom commun) (m)''' : forgeron.<br> '''χαλκός, -οῦ (nom commun) (m)''' : cuivre ; bronze, fer.<br> '''χαλυϐήϊος, -ΐα, -ήϊον (adjectif)''' : d’acier.<br> '''χάλυψ, -ϐος (nom commun) (m)''' : acier.<br> '''χαμᾶζε (adverbe)''' : à terre (avec mouvement).<br> '''χαμαί (adverbe)''' : à terre (sans mouvement).<br> '''χαμαικέρασος, -άσου (nom commun) (f)''' : fraise.<br> '''χαμαιλέων, -οντος (nom commun) (m)''' : caméléon.<br> '''χαμαίμηλον, -ήλου (nom commun) (f)''' : camomille.<br> '''χαμαιτυπεῖον, -ίου (nom commun) (n)''' : lupanar.<br> '''χαμαιτύπη, -ης (nom commun) (f)''' : prostituée.<br> '''χάν, -ός (nom commun) (m/f)''' : Forme dorienne de ''χήν''.<br> '''χάος, -ους (nom commun) (n)''' : chaos.<br> '''χαρά, -ᾶς (nom commun) (f)''' : joie ; plaisir.<br> '''χαρακτηρίζω (verbe)''' : inscrire, marquer.<br> '''χαρακτήρ, -ῆρος (nom commun) (m)''' : Fer pour marquer le bétail, marque faite au fer rouge. Marque, signe, empreinte, stigmate. Cachet, caractère, genre de style, style.<br> '''χαράσσω (verbe)''' : Aiguiser. Gratter, couper.<br> '''χάραξ, -κος (nom commun) (m)''' : pieu.<br> '''χαριέντως (adverbe)''' : gracieusement.<br> '''χαρίεις, -εσσα, -εν (adjectif)''' : gracieux.<br> '''χαρίϝεις, -εσσα, -εν (adjectif)''' : Forme homérique de ''χαρίεις''.<br> '''χαριέστατος, -άτη, -έστατον (adjectif)''' : Superlatif de ''χαρίεις''.<br> '''χαριέστερος, -έρα, -ερον (adjectif)''' : Comparatif de ''χαρίεις''.<br> '''χαρίϝεττα, -, - (adjectif)''' : Forme béotienne de ''χαρίεις''.<br> '''χαρίζομαι (verbe)''' : .<br> '''χάρις, -τος (nom commun) (f)''' : Ce qui brille ; ce qui réjouit. Grâce.<br> '''χάρισμα, -ίσματος (nom commun) (n)''' : grâce accordée par Dieu.<br> '''χαριτῶ (verbe)''' : .<br> '''χάρμα, -τος (nom commun) (n)''' : source de joie, délice.<br> '''χάσμα, -τος (nom commun) (n)''' : béance, ouverture ; creux, gouffre. Abysse.<br> '''χάσκω (verbe)''' : bayer, béer.<br> '''χαῦνος, -ύνη, -ῦνον (adjectif)''' : .<br> '''χαυνότης, -τος (suffixe) (f)''' : .<br> '''χαυνῶ (verbe)''' : .<br> '''χέζω (verbe)''' : chier.<br> '''χεῖμα, -ίματος (nom commun) (n)''' : hiver.<br> '''χείμαρρος, -άρρου (nom commun) (m)''' : torrent.<br> '''χειμών, -ῶνος (nom commun) (m)''' : (sens propre) Mauvais temps. (sens figuré) Trouble.<br> '''χειραφέτησις, -ήσεως (nom commun) (f)''' : émancipation.<br> '''χείριστος, -ίστη, -ίριστον (adjectif)''' : Superlatif de ''κακός''.<br> '''χείρ, -ός (nom commun) (f)''' : main.<br> '''χειρόγραφον, -άφου (nom commun) (n)''' : manuscrit.<br> '''χειρόγραφος, -η, -ον (adjectif)''' : manuscrit.<br> '''χείρων, -ων, -ῖρον (adjectif)''' : Comparatif de ''κακός''.<br> '''χελιδών, -ονός (nom commun) (f)''' : hirondelle.<br> '''χελώνη, -ης (nom commun) (f)''' : tortue.<br> '''χερνίϐιον, -ίου (nom commun) (n)''' : pot de chambre.<br> '''χερσόνησος, -ήσου (nom commun) (f)''' : péninsule.<br> '''χέρσος, -ος, -ον (adjectif)''' : sec ; stérile.<br> '''χέω (verbe)''' : jouir. (Profiter d'une chose que l'on possède.)<br> '''χηλή, -ῆς (nom commun) (f)''' : pince ; serre de certains animaux.<br> '''χηλός, -οῦ (nom commun) (m)''' : coffre.<br> '''χήν, -ός (nom commun) (m/f)''' : jars ; oie.<br> '''χήρα, -ας (nom commun) (f)''' : veuve.<br> '''χῆρος, -ήρου (nom commun) (m)''' : veuf.<br> '''χθές (adverbe)''' : hier.<br> '''χθόνιος, -α, -ον (adjectif)''' : Relatif aux divinités infernales.<br> '''χθών, -ονός (nom commun) (f)''' : Sol, terre. Terre, pays, contrée. Ensemble du sol terrestre, terre entière. Terre comme séjour des vivants et des morts.<br> '''χῖ (nom commun) (n)''' : chi.<br> '''χίλιοι (adjectif numéral)''' : mille.<br> '''χιόνεος, -έα, -εον (verbe)''' : enneigé.<br> '''χιονίζω (verbe)''' : enneiger.<br> '''χιονόχρως (adjectif)''' : blanc comme neige.<br> '''χιτών, -ῶνος (nom commun) (m)''' : chiton.<br> '''χιών, -όνος (nom commun) (f)''' : neige.<br> '''χλαμύς, -δος (nom commun) (n)''' : chlamyde.<br> '''χλευάζω (verbe)''' : se moquer.<br> '''χλευασία, -ας (nom commun) (f)''' : moquerie.<br> '''χλευασμός, -οῦ (nom commun) (m)''' : Moquerie ; blague.<br> '''χλιαρός, -ή, -όν (adjectif)''' : tiède.<br> '''χλωμός -ή -όν (adjectif)''' : pâle.<br> '''χλωρός, -ά, -όν (adjectif)''' : Vert ; jaune verdâtre.<br> '''χοῖρος, -ίρου (nom commun) (m)''' : Petit cochon. (Par extension) Cochon engraissé, porc.<br> '''χόνδρος, -ου (nom commun) (m)''' : Petit corps dur et rond, grain. Grain de froment et d’épeautre. Froment, épeautre. Cartilage.<br> '''χονδρός, -ά, -όν (adjectif)''' : gros.<br> '''χονδρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''χονδρός''.<br> '''χονδρότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''χονδρός''.<br> '''χονδρύνω (verbe)''' : grossir.<br> '''χονδρῶς (adverbe)''' : .<br> '''χοραύλης, -ου (nom commun) (m)''' : choraule.<br> '''χοραυλικός, -ή, -όν (adjectif)''' : choraulique.<br> '''χορδή, -ῆς (nom commun) (f)''' : ficelle.<br> '''χορεία, -ας (nom commun) (f)''' : danse.<br> '''χορεῖος, -ίου (nom commun) (m)''' : chorée.<br> '''χορευτής, -οῦ (nom commun) (m)''' : danseur.<br> '''χορεύω (verbe)''' : danser.<br> '''χορήγιον, -ίου (nom commun) (m)''' : chorégie.<br> '''χορηγός, -οῦ (nom commun) (m)''' : chorège.<br> '''χορικός, -ή, -όν (adjectif)''' : chorique.<br> '''χοροκιθαριστής, -οῦ (nom commun) (m)''' : chorocithariste.<br> '''χορός, -οῦ (nom commun) (m)''' : danse en ronde.<br> '''χόρτος, -ου (nom commun) (m)''' : Enclos. Pré clôturé ; pâturage. Nourriture.<br> '''χορῳδία, -ας (nom commun) (f)''' : .<br> '''χράω (verbe)''' : Frapper, attaquer. Infliger, asséner. Désirer ardemment. Proclamer. (Au passif) Être déclaré par un oracle. (Voix moyenne) Consulter un oracle, être averti par un oracle. Fournir, prêter. Utiliser. Avoir besoin de.<br> '''χρεία, -ας (nom commun) (f)''' : Usage, emploi. Manière dont on fait usage. Profit qu'on retire d'un usage. Besoin, nécessité.<br> '''χρείη, -ης (nom commun) (f)''' : Forme ionienne de ''χρεία''.<br> '''χρεώ (verbe)''' : avoir besoin.<br> '''χρῄζω (verbe)''' : nécessiter, désirer ; vouloir.<br> '''χρή (verbe)''' : il faut.<br> '''χρῆμα, -ήματος (nom commun) (n)''' : Chose dont on se sert, ou dont on a besoin. (Au singulier) Ce dont on se sert, chose, affaire. Évènement, occurrence. (Au pluriel) Bien, avoir.<br> '''χρῆσις, -ήσεως (nom commun) (f)''' : .<br> '''χρησμός, -οῦ (nom commun) (f)''' : oracle.<br> '''χρηστομάθεια, -ίας (nom commun) (f)''' : savoir utile.<br> '''χρηστός, -ή -όν (adjectif)''' : Dont on peut se servir. Qui rend service.<br> '''χρηστότης, -τος (nom commun) (f)''' : Bonne qualité, bonté. (En particulier) Bonté de cœur.<br> '''χρίζω (verbe)''' : oindre.<br> '''χρῖσμα, -ίσματος (nom commun) (n)''' : onction.<br> '''χρονικός, -ή -όν (adjectif)''' : temporel.<br> '''χρονικῶς (adverbe)''' : temporellement.<br> '''χρονικώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''χρονικός''.<br> '''χρονικώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''χρονικός''.<br> '''χρόνιος, -ία -όνιον (adjectif)''' : tardif.<br> '''χρονίως (adverbe)''' : tardivement.<br> '''χρονιώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''χρονίως''.<br> '''χρονιώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''χρονίως''.<br> '''χρόνος, -ου (nom commun) (m)''' : temps (durée).<br> '''χρυσαίετος, -ου (nom commun) (m)''' : aigle royal.<br> '''χρυσάνθεμον, -έμου (nom commun) (n)''' : chrysanthème.<br> '''χρυσόγονον, -όνου (nom commun) (n)''' : navet noir.<br> '''χρυσομηλιά, -ᾶς (nom commun) (f)''' : orange.<br> '''χρυσός, -οῦ (nom commun) (m)''' : or.<br> '''χρῶμα, -ώματος (nom commun) (n)''' : couleur.<br> '''χυδαῖος, -ίη ,-ῖον (adjectif)''' : s’affaissant ; commun. Vulgaire.<br> '''χυδαιολογία, -ας (nom commun) (f)''' : .<br> '''χυλός, οῦ (nom commun) (m)''' : gruau.<br> '''χυλοπίτα, -ας (nom commun) (f)''' : .<br> '''χυλώδης, -ης, -ες (adjectif)''' : .<br> '''χύλωμα, -τος (nom commun) (n)''' : .<br> '''χυλώνω (verbe)''' : .<br> '''χύμα, -τος (nom commun) (n)''' : suc.<br> '''χυμεία, -ας (nom commun) (f)''' : .<br> '''χυµός, -οῦ (nom commun) (m)''' : jus.<br> '''χωλαίνω (verbe)''' : boiter.<br> '''χωλίαμϐος, -άμϐου (nom commun) (m)''' : choliambe.<br> '''χωλός, -ή, -όν (adjectif)''' : boiteux. (En parlant de l'intelligence) Dont l'esprit cloche, infirme d'esprit. Mal équilibré, instable, chancelant.(Rhétorique) Boiteux. (Métrique) Qui n'est pas sur ses pieds, boiteux.<br> '''χωλότης, -τος (nom commun) (f)''' : .<br> '''χωλῶς (adverbe)''' : en boitant.<br> '''χωλότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''χωλός''.<br> '''χωλότερος, -έρα, -ότερον (adjectif)''' : Comparatif de ''χωλός''.<br> '''χῶμα, -ώματος (nom commun) (n)''' : (Militaire) Terrassement. (Par extension) Toute jetée, même en pierres, môle.<br> '''κώμη, -ης (nom commun) (f)''' : village.<br> '''χώρα, -ας (nom commun) (f)''' : Lieu. Place, endroit. (Militaire) Poste, position. (Au sens abstrait) Moment. Pays, région. Campagne. Champ, ferme.<br> '''χώρη, -ης (nom commun) (f)''' : Forme ionienne de ''χώρα''.<br> '''χωρίζω (verbe)''' : séparer.<br> '''χωρίον, -ου (nom commun) (n)''' : district.<br> '''χωρισμός, -οῦ (nom commun) (m)''' : séparation.<br> '''χωρίς (adverbe)''' : Séparément ; à part. (Avec le génitif) sans. (Par suite) différemment.<br> '''Χαιρέας, -ου (nom propre) (m)''' : Chéréas.<br> '''Χαιρεφῶν, -ῶντος (nom propre) (m)''' : Chariphon.<br> '''Χαιρώνεια, -ίας (nom propre) (f)''' : Chéronée (cité de Béotie).<br> '''Χαιρωνεύς, -έως (nom propre) (m)''' : Chéronéen.<br> '''Χαλδαία, -ας (nom propre) (f)''' : Chaldée.<br> '''Χαλδαῖα, -ίας (nom commun) (f)''' : Chaldéenne.<br> '''Χαλδαϊκός, -ή, -όν (adjectif)''' : chaldéen.<br> '''Χαλδαῖος, -ίου (nom commun) (m)''' : Chaldéen.<br> '''Χαλκηδών, -όνος (nom commun) (f)''' : Chalcédoine.<br> '''Χαλκίς, -δος (nom commun) (f)''' Chalcis.<br> '''Χάλυψ, -ϐος (nom propre) (m)''' : Chalybe.<br> '''Χαπύ (nom propre) (m)''' : Hâpy.<br> '''Χάρις, -τος (nom propre) (f)''' : Charite.<br> '''Χαρίτων, -ος (nom propre) (m)''' : Chariton.<br> '''Χάρυϐδις, -ύϐδεως (nom propre) (f)''' : Charybde.<br> '''Χάρων, -ος (nom propre) (m)''' : Charon. (nocher des Enfers)<br> '''Χέϐρης, -ου (nom propre) (m)''' : Toutânkhamon.<br> '''Χείρων, -ος (nom propre) (m)''' : Chiron.<br> '''Χένερης, -ου (nom propre) (m)''' : Khâsekhemoui.<br> '''Χέοψ, -πος (nom propre) (m)''' : Khéops.<br> '''Χεφρήν, -ένος (nom propre) (m)''' : Khéphren.<br> '''Χθών, -ονός (nom propre) (f)''' : Chthon.<br> '''Χιόνη, -ης (nom propre) (f)''' : Chioné.<br> '''Χλόη, -ης (nom propre) (f)''' : Chloé.<br> '''Χλωρίς, -δος (nom propre) (f)''' : Chloris (nymphe).<br> '''Χνοῦϐις, -ύϐιδος (nom propre) (m)''' : [[wikt:Khnoum|Khnoum]].<br> '''Χοίακ (nom propre) (m)''' : Choeac.<br> ‎ '''Χοσρόης, -ου (nom propre) (m)''' : Chosroès.<br> ‎ '''Χριστόφορος, -όρου (prénom) (m)''' : Christophe.<br> '''Χριστός, -οῦ (nom commun) (m)''' : Christ.<br> '''Χρυσάωρ, -ου (nom propre) (m)''' : Chrysaor.<br> '''Χρύσιππος, -ίππου (nom propre) (m)''' : Chrysippe.<br> '''Χρυσόμαλλον Δέρας (locution nominale)''' : Toison d'or.<br> '''Χρυσόμαλλος, -ου (nom propre) (m)''' : Chrysomallos.<br> '''Χρυσόπολις, -όλεως (nom propre) (m)''' : Üsküdar.<br> ==Ψ== '''ψάλλω (verbe)''' : chanter.<br> '''ψαλμός, -οῦ (nom commun) (m)''' : psaume.<br> '''ψαλτήριον, -ίου (nom commun) (n)''' : psaltérion.<br> '''ψάλτιγξ, -γος (nom commun) (m)''' : psaltinx.<br> '''ψάρ, -ός (nom commun) (m)''' : étourneau.<br> '''ψαρός, -ά, -όν (adjectif)''' : .<br> '''ψαῦμα, -ύματος (nom commun) (n)''' : palpation.<br> '''ψαῦσις, -ύσεως (nom commun) (f)''' : palpation.<br> '''ψαύω (verbe)''' : palper.<br> '''ψᾶφαξ, -άφακου (nom commun) (m)''' : Forme éolienne de ''ψῆφος''.<br> '''ψᾶφος, -άφου (nom commun) (m)''' : Forme dorienne de ''ψῆφος''.<br> '''ψάω (verbe)''' : Frotter, gratter.<br> '''ψέγω (verbe)''' : Blâmer, reprocher.<br> '''ψευδής, -ής, -ές (adjectif)''' : faux.<br> '''ψεύδομαι (verbe)''' : mentir.<br> '''ψεῦδος, -ύδους (nom commun) (n)''' : tromperie.<br> '''ψευδῶς (adverbe)''' : faussement.<br> '''ψευδώτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ψευδής''.<br> '''ψευδώτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ψευδής''.<br> '''ψεύδω (verbe)''' : tromper.<br> '''ψεῦσμα, -ύσματος (nom commun) (n)''' : mensonge.<br> '''ψεύστης, -ου (nom commun) (m)''' : menteur.<br> '''ψεύστρα, -ας (nom commun) (f)''' : menteuse.<br> '''ψῆγμα, -ήγματος (nom commun) (n)''' : pépite.<br> '''ψηλάφησις, -ήσεως (nom commun) (f)''' : palpation.<br> '''ψηλαφῶ (verbe)''' : palper.<br> '''ψήρ, -ός (nom commun) (m)''' : Forme ionienne de ''ψάρ''.<br> '''ψῆφος, -ήφου (nom commun) (m)''' : Galet, caillou, pierre, en particulier utilisée pour le calcul. Gemme, pierre précieuse.<br> '''ψήχω (verbe)''' : racler.<br> '''ψῖ (nom commun) (n)''' : psi.<br> '''ψιλός, -ή, -όν (adjectif)''' : Nu ; simple.<br> '''ψίξ, -χός (nom commun) (m/f)''' : Mie ; miette.<br> '''ψιττακός, -οῦ (nom commun) (m)''' : perroquet.<br> '''ψιχίον, -ου (nom commun) (n)''' : miette.<br> '''ψίω (verbe)''' : .<br> '''ψόα, -ας (nom commun) (f)''' : lombes.<br> '''ψόγος, -ου (nom commun) (m)''' : Blâme, reproche.<br> '''ψόλος, -ου (nom commun) (m)''' : suie.<br> '''ψό (interjection)''' : beurk.<br> '''ψυδρεύς, -έως (nom commun) (m)''' : trompeur.<br> '''ψυδρός, -ά, -όν (adjectif)''' : faux.<br> '''ψυχεινός, -ή, -όν (adjectif)''' : frais.<br> '''ψυχή, -ῆς (nom commun) (f)''' : Âme ; papillon.<br> '''ψύθος, -ους (nom commun) (n)''' : Forme homérique de ''ψεῦδος''.<br> '''ψυχοπομπός, -ός, -όν (adjectif)''' : psychopompe.<br> '''ψυχοπομπός, -οῦ (nom commun) (m)''' : psychopompe.<br> '''ψῦχος, -ύχους (nom commun) (n)''' : fraîcheur.<br> '''ψυχραίνω (verbe)''' : refroidir.<br> '''ψυχρός, -ά, -όν (adjectif)''' : Froid ; glacial.<br> '''ψυχρότατος, -άτη, -ότατον (adjectif)''' : Superlatif de ''ψυχρός''.<br> '''ψυχρότερος, -έρη, -ότερον (adjectif)''' : Comparatif de ''ψυχρός''.<br> '''ψυχρῶς (adverbe)''' : Froidement ; glacialement.<br> '''ψύχω (verbe)''' : Souffler, respirer. Se refroidir.<br> '''ψχέντ (nom commun) (m)''' : pschent.<br> '''ψωμός, -οῦ (nom commun) (m)''' : bouchée de pain.<br> '''Ψαπφώ, -οῦς (nom propre) (f)''' : Forme éolienne de ''Σαπφώ''.<br> '''Ψίλαξ, -κος (nom propre) (m)''' : Psilax.<br> '''Ψιχάρπαξ, -γος (nom propre) (m)''' : Psicharpax.<br> '''Ψουσέννης, -ου (nom propre) (m)''' : Psousennès.<br> '''Ψυχή, -ῆς (nom propre) (f)''' : Psyché.<br> '''Ψωφίς, -δος (nom propre) (f)''' : Psophis.<br> ==Ω== '''ᾠδή, -ῆς (nom commun) (f)''' : chant.<br> '''ὠδυσάμην, - ()''' : .<br> '''ὠθῶ (verbe)''' : pousser, forcer ; (militaire) repousser l’ennemi.<br> '''ὠκεανός, -οῦ (nom commun) (m)''' : océan.<br> '''ὠκέως (adverbe)''' : rapidement.<br> '''ὠκύς, -εῖα, -ύ (adjectif)''' : rapide.<br> '''ὠκύτατος, -άτη, -ώτατον (adjectif)''' : Superlatif de ''ὠκύς''.<br> '''ὠκύτερος, -έρα, -ώτερον (adjectif)''' : Comparatif de ''ὠκύς''.<br> '''ὦλαξ, ὤλακος (nom commun) (m)''' : Forme dorienne de ''αὖλαξ''.<br> '''ὠλένη, -ης (nom commun) (f)''' : coude, coudée ; avant-bras.<br> '''ὠμοπλάτη, -ης (nom commun) (f)''' : omoplate.<br> '''ὦμος, ὤμου (nom commun) (m)''' : épaule.<br> '''ὠνέομαι (verbe)''' : acheter.<br> '''ὠνητής, -οῦ (nom commun) (m)''' : client.<br> '''ὦνος, ὤνου (nom commun) (m)''' : prix.<br> '''ᾠόν, -οῦ (nom commun) (n)''' : œuf.<br> '''ὦ μέγα (nom commun) (n)''' : oméga.<br> '''ὤρα, -ας (nom commun) (f)''' : soin ; souci.<br> '''ὥρα, -ας (nom commun) (f)''' : heure.<br> '''ὡραῖος, -ία, -ῖον (adjectif)''' : Qui est de la saison. Qui se fait à une époque, dans une saison déterminée. Qui est dans la fleur de l’âge.<br> '''ὠρανός, -οῦ (nom commun) (m)''' : Forme dorienne et béotienne de ''οὐρανός''.<br> '''ὡρεῖον‎, -ίου (nom commun) (n)''' : grenier.<br> '''ὤρη, -ης (nom commun) (f)''' : Forme ionienne de ''ὤρα''.<br> '''ὥρη, -ης (nom commun) (f)''' : Forme ionienne de ''ὥρα''.<br> '''ὥριμος, -ος, -ον (adjectif)''' : mûr.<br> '''ὡρολόγιον, -ίου (nom commun) (n)''' : horloge.<br> '''ὡσαννά (interjection)''' : hosanna.<br> '''ὦσις, ὤσεως (nom commun) (f)''' : poussée.<br> '''ὦς, -τός (nom commun) (n)''' : Forme dorienne de ''οὖς''.<br> '''ὡς (adverbe ; conjonction)''' : .<br> '''ὥτερος, -έρα, -ερον (adjectif)''' : Autre forme dorienne de ''ἕτερος''.<br> '''ὠτικός, -ή, -όν (adjectif)''' : otique.<br> '''ὠτίον, -ίου (nom commun) (n)''' : Diminutif de '' οὖς''.<br> '''ὠτίς, -δος (nom commun) (f)''' : outarde.<br> '''ὦτος, ὤτου (nom commun) (m)''' : hibou.<br> '''ὠφέλεια, -ίας (nom commun) (f)''' : Aide ; secours.<br> '''ὠφέλημα, -ήματος (nom commun) (n)''' : .<br> '''ὠφέλησις, -ήσεως (nom commun) (f)''' : Aide ; secours.<br> '''ὠφελῶ (verbe)''' : Aider ; secourir.<br> '''ὠχρός, -ά, -όν (adjectif)''' : pâle.<br> '''ὤψ, -πός (nom commun) (f)''' : Vue ; visage.<br> '''ὦ (particule)''' : ô.<br> '''ὤ (interjection)''' : ah !, oh !<br> '''Ὠγυγία, -ας (nom propre) (f)''' : Ogygie.<br> '''Ὠγυγίη, -ης (nom propre) (f)''' : Forme ionienne de ''Ὠγυγία''.<br> '''Ὠκεανίς, -δος (nom propre) (f)''' : Océanide.<br> '''Ὠκεανός, -οῦ (nom propre) (m)''' : Océan.<br> '''Ὠρανός, -οῦ (nom propre) (m)''' : Forme dorienne et béotienne de ''Οὐρανός''.<br> '''Ὠρείθυια, -ίας (nom commun) (f)''' : Orithye (fille d'Érechthée).<br> '''Ὠριγένης, -ου (nom propre) (m)''' : Origène.<br> '''Ὠρομέδων, -οντος (nom propre) (m)''' : Oromédon.<br> '''Ὧρος, Ὥρου (nom propre) (m)''' : [[wikt:Horus|Horus]].<br> 7thfrh6tvl0c137mii5llny6qimblkq Photographie/Personnalités/B/Sir Cecil Walter Hardy Beaton 0 38604 746380 569404 2025-07-09T09:33:19Z Ziv 119944 ([[c:GR|GR]]) [[c:COM:Duplicate|Duplicate]]: [[File:A Cecil Beaton portrait of a cook in the Women's Royal Naval Service. A9747.jpg]] → [[File:Womens Royal Navy Service Uniforms and Dress. A9747.jpg]] Exact or scaled-down duplicate: [[c::File:Womens Royal Navy Service Uniforms and Dress. A9747.jpg]] 746380 wikitext text/x-wiki {{Ph s Personnalités}} [[File:1932 Standard Rolleiflex.jpg|thumb|250px|Le [[Rollei]]flex de Cecil Beaton (1932)]] == Galerie de photographies == <gallery widths="240px" heights="240px"> Womens Royal Navy Service Uniforms and Dress. A9747.jpg A Cecil Beaton portrait of a member of the Women's Royal Naval Service equipped for gardening duties. A9742.jpg The Royal Observatory- Everyday Life at the Royal Observatory, Greenwich, London, England, UK, 1945 D24697.jpg The Royal Observatory- Everyday Life at the Royal Observatory, Greenwich, London, England, UK, 1945 D24700.jpg The Royal Observatory- Everyday Life at the Royal Observatory, Greenwich, London, England, UK, 1945 D24701.jpg The Royal Observatory- Everyday Life at the Royal Observatory, Greenwich, London, England, UK, 1945 D24703.jpg Ministry of Information Second World War Official Collection; Captain Simon Astley IB606.jpg Ministry of Information Second World War Official Collection IB640.jpg Ministry of Information Second World War Official Collection IB656.jpg Ministry of Information Second World War Official Collection IB1257.jpg Ministry of Information Second World War Official Collection IB1308.jpg Ministry of Information Second World War Official Collection; Major St Rling CBM1522.jpg Ministry of Information Second World War Official Collection CBM1524.jpg Ministry of Information Second World War Official Collection IB1892.jpg Ministry of Information Second World War Official Collection IB2073.jpg Ministry of Information Second World War Official Collection MH26349.jpg Ministry of Information Second World War Official Collection MH26394.jpg Ministry of Information Second World War Official Collection MH26363.jpg Short Stirling - MoI Second World War Official Collection MH26368.jpg Ministry of Information Second World War Official Collection IB4394C.jpg Ministry of Information Second World War Official Collection IB4420C.jpg The War in the Far East- the Burma Campaign 1941-1945 IB229.jpg The War in the Far East- the Burma Campaign 1941-1945; British Army IB283.jpg At Government House Calcutta IB428.jpg Hyderabad City IB1137.jpg Hyderabad City IB1142.jpg Jaipur - City of Reform in Central India IB678.jpg Work of the Red Cross in India IB1169.jpg The Sacred City of Benares IB1056.jpg The Sacred City of Benares IB1060.jpg Scenes in India during the Second World War IB1875.jpg The London Blitz, 1940 MH26395 2.jpg New Zealand Forces in North Africa during the Second World War CBM1424.jpg British Generals 1939-1945; Wavell, Archibald Percival IB2.jpg Women War Workers in Britain during the Second World War L503.jpg Life at Sea on Board HMS Alcantara, March 1942 CBM1049.jpg Medical Services in India, 1944 IB1869.jpg Paratroop in the Making CBM1520.jpg At a US Airfield in China IB3258C.jpg In a Bengali Village IB1726.jpg In a Bengali Village IB1842.jpg Bengali Girls School IB1507.jpg Second World War 1939 - 1945- Long Range Desert Group CBM1214.jpg Winston Churchill As Prime Minister 1940-1945 MH26392.jpg Indian Pilots Train For the Indian Air Force IB1330.jpg War Industry, UK, 1942 L421.jpg Cecil Beaton Photographs- General CBM1005.jpg Cecil Beaton Photographs- General; British Army, Long Range Desert Group CBM1212.jpg Cecil Beaton Photographs- General CBM1334.jpg Cecil Beaton Photographs- General; Royal Air Force CBM1342.jpg A soldier battling his way through a sandstorm in the Western Desert during 1942. CBM1358.jpg Cecil Beaton portrait of a Royal Artillery officer leaning against a rock in the Western Desert, 1942. CBM1363.jpg Cecil Beaton Photographs- General CBM1725.jpg Cecil Beaton Photographs CBM2200.jpg Cecil Beaton Photographs- General; British Army, Long Range Desert Group CBM2220.jpg Cecil Beaton Photographs- General CBM2235.jpg Cecil Beaton Photographs- General; British Army, Long Range Desert Group CBM2264.jpg Cecil Beaton Photographs- General CBM2268.jpg Cecil Beaton Photographs- General CBM2449.jpg Cecil Beaton Photographs- General CBM2484.jpg Cecil Beaton Photographs- General CBM2488.jpg Cecil Beaton Photographs- General; Royal Air Force D4736.jpg Cecil Beaton photograph of an RAF bomber crew being debriefed by the squadron intellgence officer on their return from a night raid over Germany, 1941. D4750.jpg Cecil Beaton Photographs- General IB63.jpg Arakan Front IB297.jpg The Palace of Amber, Jaipur IB624.jpg Cecil Beaton Photographs- General IB113.jpg On the Arakan Front IB269.jpg Cecil Beaton Photographs- General IB291.jpg Jaipur - City of Reform in Central India IB643.jpg Cecil Beaton Photographs- General IB647.jpg Cecil Beaton Photographs- General IB726.jpg The Old City of Peshawar IB1269.jpg The Old City of Peshawar IB1273.jpg Cecil Beaton Photographs- General; Chung-yuch, Chow IB1365C.jpg Cecil Beaton Photographs- General IB1558.jpg In an Indian Village IB1583.jpg In a Bengali Village IB1733.jpg Cecil Beaton Photographs- General IB1744.jpg Cecil Beaton Photographs - General, IB1793 - Bengali boy using a spinning wheel (India, 1944).jpg Cecil Beaton Photographs- General IB1863.jpg Cecil Beaton Photographs- General IB1882; India 1944, soldier drinking tea next to a Red Cross Mobile tea wagon at Calcutta airport.jpg Cecil Beaton Photographs- General; Beaton, Cecil IB2357.jpg Cecil Beaton Photographs- General IB2425C.jpg Cecil Beaton Photographs- General IB2439C.jpg Cecil Beaton Photographs- General IB2482A.jpg Cecil Beaton Photographs- General IB2510C.jpg Cecil Beaton Photographs- General IB2531C.jpg Cecil Beaton Photographs- General; China 1944, Canadian Mission Hospital in Chengtu IB2569C.jpg Cecil Beaton Photographs- General IB2789C.jpg At the British Embassy, Chungking IB2946C.jpg Cecil Beaton Photographs- General IB3121C.jpg Cecil Beaton Photographs- General; China 1944, a river coolie IB3242C.jpg Cecil Beaton Photographs- General; China 1944, temple IB3342C.jpg Cecil Beaton Photographs IB3533C.jpg Cecil Beaton Photographs- General IB4150C.jpg Cecil Beaton Photographs- General IB4152C.jpg Cecil Beaton Photographs- General; Beaton, Cecil IB4287C.jpg Cecil Beaton Photographs- General IB4336C.jpg Cecil Beaton Photographs- General MH2718.jpg The Royal Indian Navy during the Second World War IB1535.jpg Life in An Air Raid Shelter, South East London, England, 1940 D1624.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943.; Tedder, Arthur William CBM1164.jpg Vickers Wellington - Royal Air Force- Operations in North Africa, 1939-1943.; Royal Air Force, 38 Squadron CBM1225.jpg The Royal Air Force in North Africa during the Second World War; Royal Air Force, 108 Squadron CBM1264.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943; Royal Air Force, 213 Squadron CBM1293.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943. CBM1327.jpg Vickers Wellington - Egypt - Royal Air Force- Operations in North Africa, 1939-1943. CBM1329.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943. CBM1476.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943; Tedder, Arthur William CBM1641.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943; Royal Air Force, 335 Squadron CBM1720.jpg Vickers Wellington - Royal Air Force- Operations in North Africa, 1939-1943. CBM1922.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943; Royal Air Force, 230 Squadron CBM1944.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943. CBM2082.jpg Royal Air Force- Operations in the Middle East and North Africa, 1939-1943; Royal Air Force, 39 Squadron CBM2083.jpg The Long Range Desert Group (lrdg) during the Second World War CBM2219.jpg The Campaign in North Africa 1940-1943; British Army CBM1781.jpg The Campaign in North Africa 1940-1943; Italian Air Force CBM2480.jpg The Campaign in North Africa 1940-1943 CBM2490.jpg The Campaign in North Africa 1940-1943; German Army (Third Reich) CBM2494.jpg Womens Royal Navy Service Uniforms and Dress. A9747.jpg Womens Royal Naval Service, Uniforms and Dress. A9742.jpg Women's Royal Naval Service. November 1942, Admiralty. Uniforms of the Wrns. A12614 2.jpg Uniforms of the Women's Royal Navy Service. November 1942, Admiralty. A12606 2.jpg Uniforms of the Women's Royal Navy Service. November 1942, Admiralty. A12612 2.jpg Cecil Beaton Photographs- Political and Military Personalities; Auchinleck, Claude John Eyre IB2095.jpg Cecil Beaton Photographs- Political and Military Personalities; Chahnaz, Princess of Iran, Fawzieh, Queen of Iran, Mohammed Reza Pahlevi CBM2404.jpg Cecil Beaton Photographs- Political and Military Personalities CBM2398.jpg Cecil Beaton Photographs- Political and Military Personalities; Feisal II, King of Iraq CBM2392.jpg Cecil Beaton Photographs- Political and Military Personalities; Joubert de la Ferte, Philip Bennet IB124.jpg Cecil Beaton Photographs- Political and Military Personalities; Mountbatten, Louis (Earl) IB122.jpg Cecil Beaton Photographs- Political and Military Personalities; Tedder, Arthur William CBM1174.jpg Cecil Beaton Photographs- Political and Military Personalities; Churchill, Randolph Frederick Edward Spencer CBM1585.jpg Cecil Beaton Photographs- Political and Military Personalities; Drummond, Peter Roy Maxwell CBM1478.jpg Cecil Beaton Photographs- Political and Military Personalities; Crespigny, Hugh Vivian Champion de CBM2192.jpg Cecil Beaton Photographs- Political and Military Personalities; Chennault, Claire Lee, Grimsdale, Gordon Edward IB1100C.jpg Cecil Beaton Photographs- Political and Military Personalities; Chennault, Claire Lee IB1113C.jpg Cecil Beaton Photographs- Political and Military Personalities; Abdullah, King of Jordan; Abdullah, King of Jordan CBM1666.jpg Cecil Beaton Photographs- Political and Military Personalities; Sun Yat-Sen, Madame IB3459C.jpg Cecil Beaton Photographs- Political and Military Personalities; Lampson, Jacqueline Aldine Leslie, Lampson, Miles Wedderburn CBM2016.jpg Cecil Beaton Photographs- Political and Military Personalities IB698.jpg Cecil Beaton Photographs- Political and Military Personalities; Fawzieh, Queen of Iran CBM2401.jpg Cecil Beaton Photographs- Political and Military Personalities; Colville, (David) John IB1243.jpg Cecil Beaton Photographs- Political and Military Personalities; Casey, Richard Gavin Gardiner IB349.jpg Cecil Beaton Photographs- Political and Military Personalities; George II, King of Greece; George II, King of Greece CBM1587.jpg Cecil Beaton Photographs- Political and Military Personalities; Carton de Wiart, Adrian IB3449C.jpg Cecil Beaton Photographs- Political and Military Personalities; Durri Shehvar, Princess IB783.jpg Cecil Beaton Photographs- Political and Military Personalities; Feisal II, King of Iraq CBM2383.jpg Regent Emir Abdul Illah of Iraq (Baghdad, during World War Two).jpg Arthur Coningham, Commander of the Western Desert Air Force, during the Battle of El Alamein.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB244.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB246.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB247.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB248.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB249.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB250.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB251.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB252.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB253.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB254.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB255.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB256.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB257.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB258.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB259.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB260.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB261.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB262.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB263.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB264.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB265.jpg Cecil Beaton Photographs- Women's Horticultural College, Waterperry House, Oxfordshire, 1943 DB266.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB1.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB2.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB4.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB5.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB6.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB7.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB8.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB9.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB10.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB11.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB12.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB13.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB14.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB15.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB16.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB17.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB18.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB19.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB20.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB21.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB22.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB23.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB24.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB25.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB26.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB27.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB28.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB29.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB30.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB31.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB32.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB33.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB34.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB35.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB36.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB37.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB38.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB39.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB40.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB41.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB43.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB44.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB46.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB48.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB51.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB53.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB54.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB55.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB57.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB58.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB59.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB60.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB61.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB62.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB63.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB64.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB65.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB66.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB67.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB68.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB69.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB70.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB71.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB72.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB73.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB74.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB75.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB76.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB77.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB78.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB79.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB80.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB81.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB82.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB83.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB84.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB85.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB86.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB87.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB88.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB89.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB91.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB92.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB93.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB94.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB95.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB96.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB97.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB98.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB106.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB107.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB108.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB109.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB110.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB111.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB112.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB113.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB115.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB116.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB118.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB119.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB120.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB122.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB123.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB126.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB127.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB129.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB130.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB131.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB132.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB135.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB137.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB138.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB139.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB140.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB141.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB142.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB143.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB146.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB148.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB149.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB151.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB152.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB153.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB154.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB155.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB157.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB158.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB159.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB160.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB161.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB162.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB163.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB164.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB165.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB166.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB168.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB169.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB172.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB173.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB174.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB175.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB177.jpg Cecil Beaton Photographs- Tyneside Shipyards, England, 1943 DB178.jpg Cecil Beaton Photographs- Tyneside Shipyards, England, 1943 DB179.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB181.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB182.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB183.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB184.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB185.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB186.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB187.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB188.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB189.jpg War Industry in Britain 1939-1945 DB190.jpg Cecil Beaton Photographs- Tyneside Shipyards, England, 1943 DB191.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB192.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB193.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB194.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB195.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB196.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB197.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB201.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB202.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB203.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB204.jpg In a British Shipyard- Everyday Life in the Shipbuilding Industry, UK, 1943 DB206.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB207.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB215.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB216.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB219.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB220.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB221.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB223.jpg Cecil Beaton Photographs- Tyneside Shipyards, 1943 DB242.jpg </gallery> {{DEFAULTSORT:Beaton, Sir}} [[Catégorie:Personnalités de la photographie]] 2vfyp8fxdcuxn0bp4t70es0mrmlzgi2 Fonctionnement d'un ordinateur/L'abstraction mémoire et la mémoire virtuelle 0 65813 746368 744659 2025-07-09T08:47:02Z 2A02:8440:7151:C9A6:8A51:D3AA:4180:5010 /* Le partage de la mémoire */Remplacement de "librairie" (c'est un commerce de détail en français) par bibliothèque (library en anglais) 746368 wikitext text/x-wiki Pour introduire ce chapitre, nous devons faire un rappel sur le concept d''''espace d'adressage'''. Pour rappel, un espace d'adressage correspond à l'ensemble des adresses utilisables par le processeur. Par exemple, si je prends un processeur 16 bits, il peut adresser en tout 2^16 = 65536 adresses, l'ensemble de ces adresses forme son espace d'adressage. Intuitivement, on s'attend à ce qu'il y ait correspondance avec les adresses envoyées à la mémoire RAM. J'entends par là que l'adresse 1209 de l'espace d'adressage correspond à l'adresse 1209 en mémoire RAM. C'est là une hypothèse parfaitement raisonnable et on voit mal comment ce pourrait ne pas être le cas. Mais sachez qu'il existe des techniques d''''abstraction mémoire''' qui font que ce n'est pas le cas. Avec ces techniques, l'adresse 1209 de l'espace d'adressage correspond en réalité à l'adresse 9999 en mémoire RAM, voire n'est pas en RAM. L'abstraction mémoire fait que les adresses de l'espace d'adressage sont des adresses fictives, qui doivent être traduites en adresses mémoires réelles pour être utilisées. Les adresses de l'espace d'adressage portent le nom d''''adresses logiques''', alors que les adresses de la mémoire RAM sont appelées '''adresses physiques'''. ==L'abstraction mémoire implémente plusieurs fonctionnalités complémentaires== L'utilité de l'abstraction matérielle n'est pas évidente, mais sachez qu'elle est si que tous les processeurs modernes la prennent en charge. Elle sert notamment à implémenter la mémoire virtuelle, que nous aborderons dans ce qui suit. La plupart de ces fonctionnalités manipulent la relation entre adresses logiques et physique. Dans le cas le plus simple, une adresse logique correspond à une seule adresse physique. Mais beaucoup de fonctionnalités avancées ne respectent pas cette règle. ===L'abstraction matérielle des processus=== Les systèmes d'exploitation modernes sont dits multi-tâche, à savoir qu'ils sont capables d'exécuter plusieurs logiciels en même temps. Et ce même si un seul processeur est présent dans l'ordinateur : les logiciels sont alors exécutés à tour de rôle. Toutefois, cela amène un paquet de problèmes qu'il faut résoudre au mieux. Par exemple, les programmes exécutés doivent se partager la mémoire RAM, ce qui ne vient pas sans problèmes. Le problème principal est que les programmes ne doivent pas lire ou écrire dans les données d'un autre, sans quoi on se retrouverait rapidement avec des problèmes. Il faut donc introduire des mécanismes d''''isolement des processus''', pour isoler les programmes les uns des autres. Un de ces mécanismes est l''''abstraction matérielle des processus''', une technique qui fait que chaque programme a son propre espace d'adressage. Chaque programme a l'impression d'avoir accès à tout l'espace d'adressage, de l'adresse 0 à l'adresse maximale gérée par le processeur. Évidemment, il s'agit d'une illusion maintenue justement grâce à la traduction d'adresse. Les espaces d'adressage contiennent des adresses logiques, les adresses de la RAM sont des adresses physiques, la nécessité de l'abstraction mémoire est évidente. Implémenter l'abstraction mémoire peut se faire de plusieurs manières. Mais dans tous les cas, il faut que la correspondance adresse logique - physique change d'un programme à l'autre. Ce qui est normal, vu que les deux processus sont placés à des endroits différents en RAM physique. La conséquence est qu'avec l'abstraction mémoire, une adresse logique correspond à plusieurs adresses physiques. Une même adresse logique dans deux processus différents correspond à deux adresses phsiques différentes, une par processus. Une adresse logique dans un processus correspondra à l'adresse physique X, la même adresse dans un autre processus correspondra à l'adresse Y. Les adresses physiques qui partagent la même adresse logique sont alors appelées des '''adresses homonymes'''. Le choix de la bonne adresse étant réalisé par un mécanisme matériel et dépend du programme en cours. Le mécanisme pour choisir la bonne adresse dépend du processeur, mais il y en a deux grands types : * La première consiste à utiliser l'identifiant de processus CPU, vu au chapitre précédent. C'est, pour rappel, un numéro attribué à chaque processus par le processeur. L'identifiant du processus en cours d'exécution est mémorisé dans un registre du processeur. La traduction d'adresse utilise cet identifiant, en plus de l'adresse logique, pour déterminer l'adresse physique. * La seconde solution mémorise les correspondances adresses logiques-physique dans des tables en mémoire RAM, qui sont différentes pour chaque programme. Les tables sont accédées à chaque accès mémoire, afin de déterminer l'adresse physique. ===Le partage de la mémoire=== L'isolation des processus est très importante sur les systèmes d'exploitation modernes. Cependant, il existe quelques situations où elle doit être contournée ou du moins mise en pause. Les situations sont multiples : gestion de bibliothèques partagées, communication entre processus, usage de ''threads'', etc. Elles impliquent toutes un '''partage de mémoire''', à savoir qu'une portion de mémoire RAM est partagée entre plusieurs programmes. Le partage de mémoire est une sorte de brèche de l'isolation des processus, mais qui est autorisée car elle est utile. Un cas intéressant est celui des '''bibliothèques partagées'''. Les bibliothèques sont des collections de fonctions regroupées ensemble, dans une seule unité de code. Un programme qui utilise une bibliothèque peut appeler n’importe quelle fonction présente dans la bibliothèque. La bibliothèque peut être simplement inclue dans le programme lui-même, on parle alors de bibliothèques statiques. De telles bibliothèques fonctionnent très bien, mais avec un petit défaut pour les bibliothèques très utilisées : plusieurs programmes qui utilisent la même bibliothèque vont chacun l'inclure dans leur code, ce qui fera doublon. Pour éviter cela, les OS modernes gèrent des bibliothèques partagées, à savoir qu'un seul exemplaire de la bibliothèque est partagé entre plusieurs programmes. Chaque programme peut exécuter une fonction de la bibliothèque quand il le souhaite, en effectuant un branchement adéquat. Mais cela implique que la bibliothèque soit présente dans l'espace d'adressage du programme en question. Une bibliothèque est donc présente dans plusieurs espaces d'adressage, alors qu'il n'y en a qu'un seul exemplaire en mémoire RAM. [[File:Ogg vorbis libs and application dia.svg|centre|vignette|upright=2|Exemple de bibliothèques, avec Ogg vorbis.]] D'autres situations demandent de partager de la mémoire entre deux programmes. Par exemple, les systèmes d'exploitation modernes gèrent nativement des systèmes de '''communication inter-processus''', très utilisés par les programmes modernes pour échanger des données. Et la plupart demandant de partager un bout de mémoire entre processus, même si c'est seulement temporairement. Typiquement, deux processus partagent un intervalle d'adresse où l'un écrit les données à l'autre, l'autre lisant les données envoyées. Une dernière utilisation de la mémoire partagée est l''''accès direct au noyau'''. Sur les systèmes d'exploitations moderne, dans l'espace d'adressage de chaque programme, les adresses hautes sont remplies avec une partie du noyau ! Évidemment, ces adresses sont accessibles uniquement en lecture, pas en écriture. Pas question de modifier le noyau de l'OS ! De plus, il s'agit d'une portion du noyau dont on sait que la consultation ne pose pas de problèmes de sécurité. Le programme peut lire des données dans cette portion du noyau, mais aussi exécuter les fonctions du noyau qui sont dedans. L'idée est d'éviter des appels systèmes trop fréquents. Au lieu d'effectuer un véritable appel système, avec une interruption logicielle, le programme peut exécuter des appels systèmes simplifiés, de simples appels de fonctions couplés avec un changement de niveau de privilège (passage en espace noyau nécessaire). [[File:AMD64-canonical--48-bit.png|vignette|Répartition des adresses entre noyau (jaune/orange) et programme (verte), sur les systèmes x86-64 bits, avec des adresses physiques de 48 bits.]] L'espace d'adressage est donc séparé en deux portions : l'OS d'un côté, le programme de l'autre. La répartition des adresses entre noyau et programme varie suivant l'OS ou le processeur utilisé. Sur les PC x86 32 bits, Linux attribuait 3 gigas pour les programmes et 1 giga pour le noyau, Windows attribuait 2 gigas à chacun. Sur les systèmes x86 64 bits, l'espace d'adressage d'un programme est coupé en trois, comme illustré ci-contre : une partie basse de 2^48 octets, une partie haute de même taille, et un bloc d'adresses invalides entre les deux. Les adresses basses sont utilisées pour le programme, les adresses hautes pour le noyau, il n'y a rien entre les deux. Avec le partage de mémoire, plusieurs adresses logiques correspondent à la même adresse physique. Tel processus verra la zone de mémoire partagée à l'adresse X, l'autre la verra à l'adresse Y. Mais il s'agira de la même portion de mémoire physique, avec une seule adresse physique. En clair, lorsque deux processus partagent une même zone de mémoire, la zone sera mappées à des adresses logiques différentes. Les adresses logiques sont alors appelées des '''adresses synonymes''', terme qui trahit le fait qu'elles correspondent à la même adresse physique. ===La mémoire virtuelle=== Toutes les adresses ne sont pas forcément occupées par de la mémoire RAM, s'il n'y a pas assez de RAM installée. Par exemple, un processeur 32 bits peut adresser 4 gibioctets de RAM, même si seulement 3 gibioctets sont installés dans l'ordinateur. L'espace d'adressage contient donc 1 gigas d'adresses inutilisées, et il faut éviter ce surplus d'adresses pose problème. Sans mémoire virtuelle, seule la mémoire réellement installée est utilisable. Si un programme utilise trop de mémoire, il est censé se rendre compte qu'il n'a pas accès à tout l'espace d'adressage. Quand il demandera au système d'exploitation de lui réserver de la mémoire, le système d'exploitation le préviendra qu'il n'y a plus de mémoire libre. Par exemple, si un programme tente d'utiliser 4 gibioctets sur un ordinateur avec 3 gibioctets de mémoire, il ne pourra pas. Pareil s'il veut utiliser 2 gibioctets de mémoire sur un ordinateur avec 4 gibioctets, mais dont 3 gibioctets sont déjà utilisés par d'autres programmes. Dans les deux cas, l'illusion tombe à plat. Les techniques de '''mémoire virtuelle''' font que l'espace d'adressage est utilisable au complet, même s'il n'y a pas assez de mémoire installée dans l'ordinateur ou que d'autres programmes utilisent de la RAM. Par exemple, sur un processeur 32 bits, le programme aura accès à 4 gibioctets de RAM, même si d'autres programmes utilisent la RAM, même s'il n'y a que 2 gibioctets de RAM d'installés dans l'ordinateur. Pour cela, on utilise une partie des mémoires de masse (disques durs) d'un ordinateur en remplacement de la mémoire physique manquante. Le système d'exploitation crée sur le disque dur un fichier, appelé le ''swapfile'' ou '''fichier de ''swap''''', qui est utilisé comme mémoire RAM supplémentaire. Il mémorise le surplus de données et de programmes qui ne peut pas être mis en mémoire RAM. [[File:Vm1.png|centre|vignette|upright=2.0|Mémoire virtuelle et fichier de Swap.]] Une technique naïve de mémoire virtuelle serait la suivante. Avant de l'aborder, précisons qu'il s'agit d'une technique abordée à but pédagogique, mais qui n'est implémentée nulle part tellement elle est lente et inefficace. Un espace d'adressage de 4 gigas ne contient que 3 gigas de RAM, ce qui fait 1 giga d'adresses inutilisées. Les accès mémoire aux 3 gigas de RAM se font normalement, mais l'accès aux adresses inutilisées lève une exception matérielle "Memory Unavailable". La routine d'interruption de cette exception accède alors au ''swapfile'' et récupère les données associées à cette adresse. La mémoire virtuelle est alors émulée par le système d'exploitation. Le défaut de cette méthode est que l'accès au giga manquant est toujours très lent, parce qu'il se fait depuis le disque dur. D'autres techniques de mémoire virtuelle logicielle font beaucoup mieux, mais nous allons les passer sous silence, vu qu'on peut faire mieux, avec l'aide du matériel. L'idée est de charger les données dont le programme a besoin dans la RAM, et de déplacer les autres sur le disque dur. Par exemple, imaginons la situation suivante : un programme a besoin de 4 gigas de mémoire, mais ne dispose que de 2 gigas de mémoire installée. On peut imaginer découper l'espace d'adressage en 2 blocs de 2 gigas, qui sont chargés à la demande. Si le programme accède aux adresses basses, on charge les 2 gigas d'adresse basse en RAM. S'il accède aux adresses hautes, on charge les 2 gigas d'adresse haute dans la RAM après avoir copié les adresses basses sur le ''swapfile''. On perd du temps dans les copies de données entre RAM et ''swapfile'', mais on gagne en performance vu que tous les accès mémoire se font en RAM. Du fait de la localité temporelle, le programme utilise les données chargées depuis le swapfile durant un bon moment avant de passer au bloc suivant. La RAM est alors utilisée comme une sorte de cache alors que les données sont placées dans une mémoire fictive représentée par l'espace d'adressage et qui correspond au disque dur. Mais avec cette technique, la correspondance entre adresses du programme et adresses de la RAM change au cours du temps. Les adresses de la RAM correspondent d'abord aux adresses basses, puis aux adresses hautes, et ainsi de suite. On a donc besoin d'abstraction mémoire. Les correspondances entre adresse logique et physique peuvent varier avec le temps, ce qui permet de déplacer des données de la RAM vers le disque dur ou inversement. Une adresse logique peut correspondre à une adresse physique, ou bien à une donnée swappée sur le disque dur. C'est l'unité de traduction d'adresse qui se charge de faire la différence. Si une correspondance entre adresse logique et physique est trouvée, elle l'utilise pour traduire les adresses. Si aucune correspondance n'est trouvée, alors elle laisse la main au système d'exploitation pour charger la donnée en RAM. Une fois la donnée chargée en RAM, les correspondances entre adresse logique et physiques sont modifiées de manière à ce que l'adresse logique pointe vers la donnée chargée. ===L'extension d'adressage=== Une autre fonctionnalité rendue possible par l'abstraction mémoire est l''''extension d'adressage'''. Elle permet d'utiliser plus de mémoire que l'espace d'adressage ne le permet. Par exemple, utiliser 7 gigas de RAM sur un processeur 32 bits, dont l'espace d'adressage ne gère que 4 gigas. L'extension d'adresse est l'exact inverse de la mémoire virtuelle. La mémoire virtuelle sert quand on a moins de mémoire que d'adresses, l'extension d'adresse sert quand on a plus de mémoire que d'adresses. Il y a quelques chapitres, nous avions vu que c'est possible via la commutation de banques. Mais l'abstraction mémoire est une méthode alternative. Que ce soit avec la commutation de banques ou avec l'abstraction mémoire, les adresses envoyées à la mémoire doivent être plus longues que les adresses gérées par le processeur. La différence est que l'abstraction mémoire étend les adresses d'une manière différente. Une implémentation possible de l'extension d'adressage fait usage de l'abstraction matérielle des processus. Chaque processus a son propre espace d'adressage, mais ceux-ci sont placés à des endroits différents dans la mémoire physique. Par exemple, sur un ordinateur avec 16 gigas de RAM, mais un espace d'adressage de 2 gigas, on peut remplir la RAM en lançant 8 processus différents et chaque processus aura accès à un bloc de 2 gigas de RAM, pas plus, il ne peut pas dépasser cette limite. Ainsi, chaque processus est limité par son espace d'adressage, mais on remplit la mémoire avec plusieurs processus, ce qui compense. Il s'agit là de l'implémentation la plus simple, qui a en plus l'avantage d'avoir la meilleure compatibilité logicielle. De simples changements dans le système d'exploitation suffisent à l'implémenter. [[File:Extension de l'espace d'adressage.png|centre|vignette|upright=1.5|Extension de l'espace d'adressage]] Un autre implémentation donne plusieurs espaces d'adressage différents à chaque processus, et a donc accès à autant de mémoire que permis par la somme de ces espaces d'adressage. Par exemple, sur un ordinateur avec 16 gigas de RAM et un espace d'adressage de 4 gigas, un programme peut utiliser toute la RAM en utilisant 4 espaces d'adressage distincts. On passe d'un espace d'adressage à l'autre en changeant la correspondance adresse logique-physique. L'inconvénient est que la compatibilité logicielle est assez mauvaise. Modifier l'OS ne suffit pas, les programmeurs doivent impérativement concevoir leurs programmes pour qu'ils utilisent explicitement plusieurs espaces d'adressage. Les deux implémentations font usage des adresses logiques homonymes, mais à l'intérieur d'un même processus. Pour rappel, cela veut dire qu'une adresse logique correspond à des adresses physiques différentes. Rien d'étonnant vu qu'on utilise plusieurs espaces d'adressage, comme pour l'abstraction des processus, sauf que cette fois-ci, on a plusieurs espaces d'adressage par processus. Prenons l'exemple où on a 8 gigas de RAM sur un processeur 32 bits, dont l'espace d'adressage ne gère que 4 gigas. L'idée est qu'une adresse correspondra à une adresse dans les premiers 4 gigas, ou dans les seconds 4 gigas. L'adresse logique X correspondra d'abord à une adresse physique dans les premiers 4 gigas, puis à une adresse physique dans les seconds 4 gigas. ===La protection mémoire=== La '''protection mémoire''' regroupe des techniques très différentes les unes des autres, qui visent à améliorer la sécurité des programmes et des systèmes d'exploitation. Elles visent à empêcher de lire, d'écrire ou d'exécuter certaines portions de mémoire. Sans elle, les programmes peuvent techniquement lire ou écrire les données des autres, ce qui causent des situations non-prévues par le programmeur, avec des conséquences qui vont d'un joli plantage à des failles de sécurité dangereuses. La première technique de protection mémoire est l''''isolation des processus''', qu'on a vue plus haut. Elle garantit que chaque programme n'a accès qu'à certaines portions dédiées de la mémoire et rend le reste de la mémoire inaccessible en lecture et en écriture. Le système d'exploitation attribue à chaque programme une ou plusieurs portions de mémoire rien que pour lui, auquel aucun autre programme ne peut accéder. Un tel programme, isolé des autres, s'appelle un '''processus''', d'où le nom de cet objectif. Toute tentative d'accès à une partie de la mémoire non autorisée déclenche une exception matérielle (rappelez-vous le chapitre sur les interruptions) qui est traitée par une routine du système d'exploitation. Généralement, le programme fautif est sauvagement arrêté et un message d'erreur est affiché à l'écran. La '''protection de l'espace exécutable''' empêche d’exécuter quoique ce soit provenant de certaines zones de la mémoire. En effet, certaines portions de la mémoire sont censées contenir uniquement des données, sans aucun programme ou code exécutable. Cependant, des virus informatiques peuvent se cacher dedans et d’exécuter depuis celles-ci. Ou encore, des failles de sécurités peuvent permettre à un attaquant d'injecter du code exécutable malicieux dans des données, ce qui peut lui permettre de lire les données manipulées par un programme, prendre le contrôle de la machine, injecter des virus, ou autre. Pour éviter cela, le système d'exploitation peut marquer certaines zones mémoire comme n'étant pas exécutable. Toute tentative d’exécuter du code localisé dans ces zones entraîne la levée d'une exception ou d'une erreur et le système d'exploitation réagit en conséquence. Là encore, le processeur doit détecter les exécutions non autorisées. D'autres méthodes de protection mémoire visent à limiter des actions dangereuses. Pour cela, le processeur et l'OS gèrent des '''droits d'accès''', qui interdisent certaines actions pour des programmes non-autorisés. Lorsqu'on exécute une opération interdite, le système d’exploitation et/ou le processeur réagissent en conséquence. La première technique de ce genre n'est autre que la séparation entre espace noyau et utilisateur, vue dans le chapitre sur les interruptions. Mais il y en a d'autres, comme nous le verrons dans ce chapitre. ==La MMU== La traduction des adresses logiques en adresses physiques se fait par un circuit spécialisé appelé la '''''Memory Management Unit''''' (MMU), qui est souvent intégré directement dans l'interface mémoire. La MMU est souvent associée à une ou plusieurs mémoires caches, qui visent à accélérer la traduction d'adresses logiques en adresses physiques. En effet, nous verrons plus bas que la traduction d'adresse demande d'accéder à des tableaux, gérés par le système d'exploitation, qui sont en mémoire RAM. Aussi, les processeurs modernes incorporent des mémoires caches appelées des '''''Translation Lookaside Buffers''''', ou encore TLB. Nous nous pouvons pas parler des TLB pour le moment, car nous n'avons pas encore abordé le chapitre sur les mémoires caches, mais un chapitre entier sera dédié aux TLB d'ici peu. [[File:MMU principle updated.png|centre|vignette|upright=2|MMU.]] ===Les MMU intégrées au processeur=== D'ordinaire, la MMU est intégrée au processeur. Et elle peut l'être de deux manières. La première en fait un circuit séparé, relié au bus d'adresse. La seconde fusionne la MMU avec l'unité de calcul d'adresse. La première solution est surtout utilisée avec une technique d'abstraction mémoire appelée la pagination, alors que l'autre l'est avec une autre méthode appelée la segmentation. La raison est que la traduction d'adresse avec la segmentation est assez simple : elle demande d'additionner le contenu d'un registre avec l'adresse logique, ce qui est le genre de calcul qu'une unité de calcul d'adresse sait déjà faire. La fusion est donc assez évidente. Pour donner un exemple, l'Intel 8086 fusionnait l'unité de calcul d'adresse et la MMU. Précisément, il utilisait un même additionneur pour incrémenter le ''program counter'' et effectuer des calculs d'adresse liés à la segmentation. Il aurait été logique d'ajouter les pointeurs de pile avec, mais ce n'était pas possible. La raison est que le pointeur de pile ne peut pas être envoyé directement sur le bus d'adresse, vu qu'il doit passer par une phase de traduction en adresse physique liée à la segmentation. [[File:80186 arch.png|centre|vignette|upright=2|Intel 8086, microarchitecture.]] ===Les MMU séparées du processeur, sur la carte mère=== Il a existé des processeurs avec une MMU externe, soudée sur la carte mère. Par exemple, les processeurs Motorola 68000 et 68010 pouvaient être combinés avec une MMU de type Motorola 68451. Elle supportait des versions simplifiées de la segmentation et de la pagination. Au minimum, elle ajoutait un support de la protection mémoire contre certains accès non-autorisés. La gestion de la mémoire virtuelle proprement dit n'était possible que si le processeur utilisé était un Motorola 68010, en raison de la manière dont le 68000 gérait ses accès mémoire. La MMU 68451 gérait un espace d'adressage de 16 mébioctets, découpé en maximum 32 pages/segments. On pouvait dépasser cette limite de 32 segments/pages en combinant plusieurs 68451. Le Motorola 68851 était une MMU qui était prévue pour fonctionner de paire avec le Motorola 68020. Elle gérait la pagination pour un espace d'adressage de 32 bits. Les processeurs suivants, les 68030, 68040, et 68060, avaient une MMU interne au processeur. ==La relocation matérielle== Pour rappel, les systèmes d'exploitation moderne permettent de lancer plusieurs programmes en même temps et les laissent se partager la mémoire. Dans le cas le plus simple, qui n'est pas celui des OS modernes, le système d'exploitation découpe la mémoire en blocs d'adresses contiguës qui sont appelés des '''segments''', ou encore des ''partitions mémoire''. Les segments correspondent à un bloc de mémoire RAM. C'est-à-dire qu'un segment de 259 mébioctets sera un segment continu de 259 mébioctets dans la mémoire physique comme dans la mémoire logique. Dans ce qui suit, un segment contient un programme en cours d'exécution, comme illustré ci-dessous. [[File:CPT Memory Addressable.svg|centre|vignette|upright=2|Espace d'adressage segmenté.]] Le système d'exploitation mémorise la position de chaque segment en mémoire, ainsi que d'autres informations annexes. Le tout est regroupé dans la '''table de segment''', un tableau dont chaque case est attribuée à un programme/segment. La table des segments est un tableau numéroté, chaque segment ayant un numéro qui précise sa position dans le tableau. Chaque case, chaque entrée, contient un '''descripteur de segment''' qui regroupe plusieurs informations sur le segment : son adresse de base, sa taille, diverses informations. ===La relocation avec la relocation matérielle : le registre de base=== Un segment peut être placé n'importe où en RAM physique et sa position en RAM change à chaque exécution. Le programme est chargé à une adresse, celle du début du segment, qui change à chaque chargement du programme. Et toutes les adresses utilisées par le programme doivent être corrigées lors du chargement du programme, généralement par l'OS. Cette correction s'appelle la '''relocation''', et elle consiste à ajouter l'adresse de début du segment à chaque adresse manipulée par le programme. [[File:Relocation assistée par matériel.png|centre|vignette|upright=2.5|Relocation.]] La relocation matérielle fait que la relocation est faite par le processeur, pas par l'OS. La relocation est intégrée dans le processeur par l'intégration d'un registre : le '''registre de base''', aussi appelé '''registre de relocation'''. Il mémorise l'adresse à laquelle commence le segment, la première adresse du programme. Pour effectuer la relocation, le processeur ajoute automatiquement l'adresse de base à chaque accès mémoire, en allant la chercher dans le registre de relocation. [[File:Registre de base de segment.png|centre|vignette|upright=2|Registre de base de segment.]] Le processeur s'occupe de la relocation des segments et le programme compilé n'en voit rien. Pour le dire autrement, les programmes manipulent des adresses logiques, qui sont traduites par le processeur en adresses physiques. La traduction se fait en ajoutant le contenu du registre de relocation à l'adresse logique. De plus, cette méthode fait que chaque programme a son propre espace d'adressage. [[File:CPU created logical address presentation.png|centre|vignette|upright=2|Traduction d'adresse avec la relocation matérielle.]] Le système d'exploitation mémorise les adresses de base pour chaque programme, dans la table des segments. Le registre de base est mis à jour automatiquement lors de chaque changement de segment. Pour cela, le registre de base est accessible via certaines instructions, accessibles en espace noyau, plus rarement en espace utilisateur. Le registre de segment est censé être adressé implicitement, vu qu'il est unique. Si ce n'est pas le cas, il est possible d'écrire dans ce registre de segment, qui est alors adressable. ===La protection mémoire avec la relocation matérielle : le registre limite=== Sans restrictions supplémentaires, la taille maximale d'un segment est égale à la taille complète de l'espace d'adressage. Sur les processeurs 32 bits, un segment a une taille maximale de 2^32 octets, soit 4 gibioctets. Mais il est possible de limiter la taille du segment à 2 gibioctets, 1 gibioctet, 64 Kibioctets, ou toute autre taille. La limite est définie lors de la création du segment, mais elle peut cependant évoluer au cours de l'exécution du programme, grâce à l'allocation mémoire. Le processeur vérifie à chaque accès mémoire que celui-ci se fait bien dans le segment, en comparant l'adresse accédée à l'adresse de base et l'adresse maximale, l'adresse limite. Limiter la taille d'un segment demande soit de mémoriser sa taille, soit de mémoriser l'adresse limite (l'adresse de fin de segment, l'adresse limite à ne pas dépasser). Les deux sont possibles et marchent parfaitement, le choix entre les deux solutions est une pure question de préférence. A la rigueur, la vérification des débordements est légèrement plus rapide si on utilise l'adresse de fin du segment. Précisons que l'adresse limite est une adresse logique, le segment commence toujours à l'adresse logique zéro. Pour cela, la table des segments doit être modifiée. Au lieu de ne contenir que l'adresse de base, elle contient soit l'adresse maximale du segment, soit la taille du segment. En clair, le descripteur de segment est enrichi avec l'adresse limite. D'autres informations peuvent être ajoutées, comme on le verra plus tard, mais cela complexifie la table des segments. De plus, le processeur se voit ajouter un '''registre limite''', qui mémorise soit la taille du segment, soit l'adresse limite. Les deux registres, base et limite, sont utilisés pour vérifier si un programme qui lit/écrit de la mémoire en-dehors de son segment attitré : au-delà pour le registre limite, en-deça pour le registre de base. Le processeur vérifie pour chaque accès mémoire ne déborde pas au-delà du segment qui lui est allouée, ce qui n'arrive que si l'adresse d'accès dépasse la valeur du registre limite. Pour les accès en-dessous du segment, il suffit de vérifier si l'addition de relocation déborde, tout débordement signifiant erreur de protection mémoire. Techniquement, il y a une petite différence de vitesse entre utiliser la taille et l'adresse maximale. Vérifier les débordements avec la taille demande juste de comparer la taille avec l'adresse logique, avant relocation, ce qui peut être fait en parallèle de la relocation. Par contre, l'adresse limite est comparée à une adresse physique, ce qui demande de faire la relocation avant la vérification, ce qui prend un peu plus de temps. Mais l'impact sur les performances est des plus mineurs. [[File:Registre limite.png|centre|vignette|upright=2|Registre limite]] Les registres de base et limite sont altérés uniquement par le système d'exploitation et ne sont accessibles qu'en espace noyau. Lorsque le système d'exploitation charge un programme, ou reprend son exécution, il charge les adresses de début/fin du segment dans ces registres. D'ailleurs, ces deux registres doivent être sauvegardés et restaurés lors de chaque interruption. Par contre, et c'est assez évident, ils ne le sont pas lors d'un appel de fonction. Cela fait une différence de plus entre interruption et appels de fonctions. : Il faut noter que le registre limite et le registre de base sont parfois fusionnés en un seul registre, qui contient un descripteur de segment tout entier. Pour information, la relocation matérielle avec un registre limite a été implémentée sur plusieurs processeurs assez anciens, notamment sur les anciens supercalculateurs de marque CDC. Un exemple est le fameux CDC 6600, qui implémentait cette technique. ===La mémoire virtuelle avec la relocation matérielle=== Il est possible d'implémenter la mémoire virtuelle avec la relocation matérielle. Pour cela, il faut swapper des segments entiers sur le disque dur. Les segments sont placés en mémoire RAM et leur taille évolue au fur et à mesure que les programmes demandent du rab de mémoire RAM. Lorsque la mémoire est pleine, ou qu'un programme demande plus de mémoire que disponible, des segments entiers sont sauvegardés dans le ''swapfile'', pour faire de la place. Faire ainsi de demande juste de mémoriser si un segment est en mémoire RAM ou non, ainsi que la position des segments swappés dans le ''swapfile''. Pour cela, il faut modifier la table des segments, afin d'ajouter un '''bit de swap''' qui précise si le segment en question est swappé ou non. Lorsque le système d'exploitation veut swapper un segment, il le copie dans le ''swapfile'' et met ce bit à 1. Lorsque l'OS recharge ce segment en RAM, il remet ce bit à 0. La gestion de la position des segments dans le ''swapfile'' est le fait d'une structure de données séparée de la table des segments. L'OS exécute chaque programme l'un après l'autre, à tour de rôle. Lorsque le tour d'un programme arrive, il consulte la table des segments pour récupérer les adresses de base et limite, mais il vérifie aussi le bit de swap. Si le bit de swap est à 0, alors l'OS se contente de charger les adresses de base et limite dans les registres adéquats. Mais sinon, il démarre une routine d'interruption qui charge le segment voulu en RAM, depuis le ''swapfile''. C'est seulement une fois le segment chargé que l'on connait son adresse de base/limite et que le chargement des registres de relocation peut se faire. Un défaut évident de cette méthode est que l'on swappe des programmes entiers, qui sont généralement assez imposants. Les segments font généralement plusieurs centaines de mébioctets, pour ne pas dire plusieurs gibioctets, à l'époque actuelle. Ils étaient plus petits dans l'ancien temps, mais la mémoire était alors plus lente. Toujours est-il que la copie sur le disque dur des segments est donc longue, lente, et pas vraiment compatible avec le fait que les programmes s'exécutent à tour de rôle. Et ca explique pourquoi la relocation matérielle n'est presque jamais utilisée avec de la mémoire virtuelle. ===L'extension d'adressage avec la relocation matérielle=== Passons maintenant à la dernière fonctionnalité implémentable avec la traduction d'adresse : l'extension d'adressage. Elle permet d'utiliser plus de mémoire que ne le permet l'espace d'adressage. Par exemple, utiliser plus de 64 kibioctets de mémoire sur un processeur 16 bits. Pour cela, les adresses envoyées à la mémoire doivent être plus longues que les adresses gérées par le processeur. L'extension des adresses se fait assez simplement avec la relocation matérielle : il suffit que le registre de base soit plus long. Prenons l'exemple d'un processeur aux adresses de 16 bits, mais qui est reliée à un bus d'adresse de 24 bits. L'espace d'adressage fait juste 64 kibioctets, mais le bus d'adresse gère 16 mébioctets de RAM. On peut utiliser les 16 mébioctets de RAM à une condition : que le registre de base fasse 24 bits, pas 16. Un défaut de cette approche est qu'un programme ne peut pas utiliser plus de mémoire que ce que permet l'espace d'adressage. Mais par contre, on peut placer chaque programme dans des portions différentes de mémoire. Imaginons par exemple que l'on ait un processeur 16 bits, mais un bus d'adresse de 20 bits. Il est alors possible de découper la mémoire en 16 blocs de 64 kibioctets, chacun attribué à un segment/programme, qu'on sélectionne avec les 4 bits de poids fort de l'adresse. Il suffit de faire démarrer les segments au bon endroit en RAM, et cela demande juste que le registre de base le permette. C'est une sorte d'émulation de la commutation de banques. ==La segmentation en mode réel des processeurs x86== Avant de passer à la suite, nous allons voir la technique de segmentation de l'Intel 8086, un des tout premiers processeurs 16 bits. Il s'agissait d'une forme très simple de segmentation, sans aucune forme de protection mémoire, ni même de mémoire virtuelle, ce qui le place à part des autres formes de segmentation. Il s'agit d'une amélioration de la relocation matérielle, qui avait pour but de permettre d'utiliser plus de 64 kibioctets de mémoire, ce qui était la limite maximale sur les processeurs 16 bits de l'époque. Par la suite, la segmentation s'améliora et ajouta un support complet de la mémoire virtuelle et de la protection mémoire. L'ancienne forme de segmentation fut alors appelé le '''mode réel''', et la nouvelle forme de segmentation fut appelée le '''mode protégé'''. Le mode protégé rajoute la protection mémoire, en ajoutant des registres limite et une gestion des droits d'accès aux segments, absents en mode réel. De plus, il ajoute un support de la mémoire virtuelle grâce à l'utilisation d'une des segments digne de ce nom, table qui est absente en mode réel ! Pour le moment, voyons le mode réel. ===Les segments en mode réel=== [[File:Typical computer data memory arrangement.png|vignette|upright=0.5|Typical computer data memory arrangement]] La segmentation en mode réel sépare la pile, le tas, le code machine et les données constantes dans quatre segments distincts. * Le segment '''''text''''', qui contient le code machine du programme, de taille fixe. * Le segment '''''data''''' contient des données de taille fixe qui occupent de la mémoire de façon permanente, des constantes, des variables globales, etc. * Le segment pour la '''pile''', de taille variable. * le reste est appelé le '''tas''', de taille variable. Un point important est que sur ces processeurs, il n'y a pas de table des segments proprement dit. Chaque programme gére de lui-même les adresses de base des segments qu'il manipule. Il n'est en rien aidé par une table des segments gérée par le système d'exploitation. ===Les registres de segments en mode réel=== Chaque segment subit la relocation indépendamment des autres. Pour cela, le processeur intégre plusieurs registres de base, un par segment. Notons que cette solution ne marche que si le nombre de segments par programme est limité, à une dizaine de segments tout au plus. Les processeurs x86 utilisaient cette méthode, et n'associaient que 4 à 6 registres de segments par programme. Les processeurs 8086 et le 286 avaient quatre registres de segment : un pour le code, un autre pour les données, et un pour la pile, le quatrième étant un registre facultatif laissé à l'appréciation du programmeur. Ils sont nommés CS (''code segment''), DS (''data segment''), SS (''Stack segment''), et ES (''Extra segment''). Le 386 rajouta deux registres, les registres FS et GS, qui sont utilisés pour les segments de données. Les processeurs post-386 ont donc 6 registres de segment. Les registres CS et SS sont adressés implicitement, en fonction de l'instruction exécutée. Les instructions de la pile manipulent le segment associé à la pile, le chargement des instructions se fait dans le segment de code, les instructions arithmétiques et logiques vont chercher leurs opérandes sur le tas, etc. Et donc, toutes les instructions sont chargées depuis le segment pointé par CS, les instructions de gestion de la pile (PUSH et POP) utilisent le segment pointé par SS. Les segments DS et ES sont, eux aussi, adressés implicitement. Pour cela, les instructions LOAD/STORE sont dupliquées : il y a une instruction LOAD pour le segment DS, une autre pour le segment ES. D'autres instructions lisent leurs opérandes dans un segment par défaut, mais on peut changer ce choix par défaut en précisant le segment voulu. Un exemple est celui de l'instruction CMPSB, qui compare deux octets/bytes : le premier est chargé depuis le segment DS, le second depuis le segment ES. Un autre exemple est celui de l'instruction MOV avec un opérande en mémoire. Elle lit l'opérande en mémoire depuis le segment DS par défaut. Il est possible de préciser le segment de destination si celui-ci n'est pas DS. Par exemple, l'instruction MOV [A], AX écrit le contenu du registre AX dans l'adresse A du segment DS. Par contre, l'instruction MOV ES:[A], copie le contenu du registre AX das l'adresse A, mais dans le segment ES. ===La traduction d'adresse en mode réel=== La segmentation en mode réel a pour seul but de permettre à un programme de dépasser la limite des 64 KB autorisée par les adresses de 16 bits. L'idée est que chaque segment a droit à son propre espace de 64 KB. On a ainsi 64 Kb pour le code machine, 64 KB pour la pile, 64 KB pour un segment de données, etc. Les registres de segment mémorisaient la base du segment, les adresses calculées par l'ALU étant des ''offsets''. Ce sont tous des registres de 16 bits, mais ils ne mémorisent pas des adresses physiques de 16 bits, comme nous allons le voir. [[File:Table des segments dans un banc de registres.png|centre|vignette|upright=2|Table des segments dans un banc de registres.]] L'Intel 8086 utilisait des adresses de 20 bits, ce qui permet d'adresser 1 mébioctet de RAM. Vous pouvez vous demander comment on peut obtenir des adresses de 20 bits alors que les registres de segments font tous 16 bits ? Cela tient à la manière dont sont calculées les adresses physiques. Le registre de segment n'est pas additionné tel quel avec le décalage : à la place, le registre de segment est décalé de 4 rangs vers la gauche. Le décalage de 4 rangs vers la gauche fait que chaque segment a une adresse qui est multiple de 16. Le fait que le décalage soit de 16 bits fait que les segments ont une taille de 64 kibioctets. {|class="wikitable" |- | <code>&nbsp; </code><code style="background:#DED">0000 0110 1110 1111</code><code>0000</code> | Registre de segment - | 16 bits, décalé de 4 bits vers la gauche |- | <code>+ &nbsp;&nbsp;&nbsp;&nbsp; </code><code style="background:#DDF">0001 0010 0011 0100</code> | Décalage/''Offset'' | 16 bits |- | colspan="3" | |- | <code>&nbsp; </code><code style="background:#FDF">0000 1000 0001 0010 0100</code> | Adresse finale | 20 bits |} Vous aurez peut-être remarqué que le calcul peut déborder, dépasser 20 bits. Mais nous reviendrons là-dessus plus bas. L'essentiel est que la MMU pour la segmentation en mode réel se résume à quelques registres et des additionneurs/soustracteurs. Un exemple est l'Intel 8086, un des tout premier processeur Intel. Le processeur était découpé en deux portions : l'interface mémoire et le reste du processeur. L'interface mémoire est appelée la '''''Bus Interface Unit''''', et le reste du processeur est appelé l''''''Execution Unit'''''. L'interface mémoire contenait les registres de segment, au nombre de 4, ainsi qu'un additionneur utilisé pour traduire les adresses logiques en adresses physiques. Elle contenait aussi une file d'attente où étaient préchargées les instructions. Sur le 8086, la MMU est fusionnée avec les circuits de gestion du ''program counter''. Les registres de segment sont regroupés avec le ''program counter'' dans un même banc de registres. Au lieu d'utiliser un additionneur séparé pour le ''program counter'' et un autre pour le calcul de l'adresse physique, un seul additionneur est utilisé pour les deux. L'idée était de partager l'additionneur, qui servait à la fois à incrémenter le ''program counter'' et pour gérer la segmentation. En somme, il n'y a pas vraiment de MMU dédiée, mais un super-circuit en charge du Fetch et de la mémoire virtuelle, ainsi que du préchargement des instructions. Nous en reparlerons au chapitre suivant. [[File:80186 arch.png|centre|vignette|upright=2|Architecture du 8086, du 80186 et de ses variantes.]] La MMU du 286 était fusionnée avec l'unité de calcul d'adresse. Elle contient les registres de segments, un comparateur pour détecter les accès hors-segment, et plusieurs additionneurs. Il y a un additionneur pour les calculs d'adresse proprement dit, suivi d'un additionneur pour la relocation. [[File:Intel i80286 arch.svg|centre|vignette|upright=3|Intel i80286 arch]] ===La segmentation en mode réel accepte plusieurs segments de code/données=== Les programmes peuvent parfaitement répartir leur code machine dans plusieurs segments de code. La limite de 64 KB par segment est en effet assez limitante, et il n'était pas rare qu'un programme stocke son code dans deux ou trois segments. Il en est de même avec les données, qui peuvent être réparties dans deux ou trois segments séparés. La seule exception est la pile : elle est forcément dans un segment unique et ne peut pas dépasser 64 KB. Pour gérer plusieurs segments de code/donnée, il faut changer de segment à la volée suivant les besoins, en modifiant les registres de segment. Il s'agit de la technique de '''commutation de segment'''. Pour cela, tous les registres de segment, à l'exception de CS, peuvent être altérés par une instruction d'accès mémoire, soit avec une instruction MOV, soit en y copiant le sommet de la pile avec une instruction de dépilage POP. L'absence de sécurité fait que la gestion de ces registres est le fait du programmeur, qui doit redoubler de prudence pour ne pas faire n'importe quoi. Pour le code machine, le répartir dans plusieurs segments posait des problèmes au niveau des branchements. Si la plupart des branchements sautaient vers une instruction dans le même segment, quelques rares branchements sautaient vers du code machine dans un autre segment. Intel avait prévu le coup et disposait de deux instructions de branchement différentes pour ces deux situations : les '''''near jumps''''' et les '''''far jumps'''''. Les premiers sont des branchements normaux, qui précisent juste l'adresse à laquelle brancher, qui correspond à la position de la fonction dans le segment. Les seconds branchent vers une instruction dans un autre segment, et doivent préciser deux choses : l'adresse de base du segment de destination, et la position de la destination dans le segment. Le branchement met à jour le registre CS avec l'adresse de base, avant de faire le branchement. Ces derniers étaient plus lents, car on n'avait pas à changer de segment et mettre à jour l'état du processeur. Il y avait la même pour l'instruction d'appel de fonction, avec deux versions de cette instruction. La première version, le '''''near call''''' est un appel de fonction normal, la fonction appelée est dans le segment en cours. Avec la seconde version, le '''''far call''''', la fonction appelée est dans un segment différent. L'instruction a là aussi besoin de deux opérandes : l'adresse de base du segment de destination, et la position de la fonction dans le segment. Un ''far call'' met à jour le registre CS avec l'adresse de base, ce qui fait que les ''far call'' sont plus lents que les ''near call''. Il existe aussi la même chose, pour les instructions de retour de fonction, avec une instruction de retour de fonction normale et une instruction de retour qui renvoie vers un autre segment, qui sont respectivement appelées '''''near return''''' et '''''far return'''''. Là encore, il faut préciser l'adresse du segment de destination dans le second cas. La même chose est possible pour les segments de données. Sauf que cette fois-ci, ce sont les pointeurs qui sont modifiés. pour rappel, les pointeurs sont, en programmation, des variables qui contiennent des adresses. Lors de la compilation, ces pointeurs sont placés soit dans un registre, soit dans les instructions (adressage absolu), ou autres. Ici, il existe deux types de pointeurs, appelés '''''near pointer''''' et '''''far pointer'''''. Vous l'avez deviné, les premiers sont utilisés pour localiser les données dans le segment en cours d'utilisation, alors que les seconds pointent vers une donnée dans un autre segment. Là encore, la différence est que le premier se contente de donner la position dans le segment, alors que les seconds rajoutent l'adresse de base du segment. Les premiers font 16 bits, alors que les seconds en font 32 : 16 bits pour l'adresse de base et 16 pour l'''offset''. ===L'occupation de l'espace d'adressage par les segments=== Nous venons de voir qu'un programme pouvait utiliser plus de 4-6 segments, avec la commutation de segment. Mais d'autres programmes faisaient l'inverse, à savoir qu'ils se débrouillaient avec seulement 1 ou 2 segments. Suivant le nombre de segments utilisés, la configuration des registres n'était pas la même. Les configurations possibles sont appelées des ''modèle mémoire'', et il y en a en tout 6. En voici la liste : {| class="wikitable" |- ! Modèle mémoire !! Configuration des segments !! Configuration des registres || Pointeurs utilisés || Branchements utilisés |- | Tiny* || Segment unique pour tout le programme || CS=DS=SS || ''near'' uniquement || ''near'' uniquement |- | Small || Segment de donnée séparé du segment de code, pile dans le segment de données || DS=SS || ''near'' uniquement || ''near'' uniquement |- | Medium || Plusieurs segments de code unique, un seul segment de données || CS, DS et SS sont différents || ''near'' et ''far'' || ''near'' uniquement |- | Compact || Segment de code unique, plusieurs segments de données || CS, DS et SS sont différents || ''near'' uniquement || ''near'' et ''far'' |- | Large || Plusieurs segments de code, plusieurs segments de données || CS, DS et SS sont différents || ''near'' et ''far'' || ''near'' et ''far'' |} Un programme est censé utiliser maximum 4-6 segments de 64 KB, ce qui permet d'adresser maximum 64 * 6 = 384 KB de RAM, soit bien moins que le mébioctet de mémoire théoriquement adressable. Mais ce défaut est en réalité contourné par la commutation de segment, qui permettait d'adresser la totalité de la RAM si besoin. Une second manière de contourner cette limite est que plusieurs processus peuvent s'exécuter sur un seul processeur, si l'OS le permet. Ce n'était pas le cas à l'époque du DOS, qui était un OS mono-programmé, mais c'était en théorie possible. La limite est de 6 segments par programme/processus, en exécuter plusieurs permet d'utiliser toute la mémoire disponible rapidement. [[File:Overlapping realmode segments.svg|vignette|Segments qui se recouvrent en mode réel.]] Vous remarquerez qu'avec des registres de segments de 16 bits, on peut gérer 65536 segments différents, chacun de 64 KB. Et 65 536 segments de 64 kibioctets, ça ne rentre pas dans le mébioctet de mémoire permis avec des adresses de 20 bits. La raison est que plusieurs couples segment+''offset'' pointent vers la même adresse. En tout, chaque adresse peut être adressée par 4096 couples segment+''offset'' différents. L'avantage de cette méthode est que des segments peuvent se recouvrir, à savoir que la fin de l'un se situe dans le début de l'autre, comme illustré ci-contre. Cela permet en théorie de partager de la mémoire entre deux processus. Mais la technique est tout sauf pratique et est donc peu utilisée. Elle demande de placer minutieusement les segments en RAM, et les données à partager dans les segments. En pratique, les programmeurs et OS utilisent des segments qui ne se recouvrent pas et sont disjoints en RAM. Le nombre maximal de segments disjoints se calcule en prenant la taille de la RAM, qu'on divise par la taille d'un segment. Le calcul donne : 1024 kibioctets / 64 kibioctets = 16 segments disjoints. Un autre calcul prend le nombre de segments divisé par le nombre d'adresses aliasées, ce qui donne 65536 / 4096 = 16. Seulement 16 segments, c'est peu. En comptant les segments utilisés par l'OS et ceux utilisés par le programme, la limite est vite atteinte si le programme utilise la commutation de segment. ===Le mode réel sur les 286 et plus : la ligne d'adresse A20=== Pour résumer, le registre de segment contient des adresses de 20 bits, dont les 4 bits de poids faible sont à 0. Et il se voit ajouter un ''offset'' de 16 bits. Intéressons-nous un peu à l'adresse maximale que l'on peut calculer avec ce système. Nous allons l'appeler l''''adresse maximale de segmentation'''. Elle vaut : {|class="wikitable" |- | <code>&nbsp; </code><code style="background:#DED">1111 1111 1111 1111</code><code>0000</code> | Registre de segment - | 16 bits, décalé de 4 bits vers la gauche |- | <code>+ &nbsp;&nbsp;&nbsp;&nbsp; </code><code style="background:#DDF">1111 1111 1111 1111</code> | Décalage/''Offset'' | 16 bits |- | colspan="3" | |- | <code>&nbsp; </code><code style="background:#FDF">1 0000 1111 1111 1110 1111</code> | Adresse finale | 20 bits |} Le résultat n'est pas l'adresse maximale codée sur 20 bits, car l'addition déborde. Elle donne un résultat qui dépasse l'adresse maximale permis par les 20 bits, il y a un 21ème bit en plus. De plus, les 20 bits de poids faible ont une valeur bien précise. Ils donnent la différence entre l'adresse maximale permise sur 20 bit, et l'adresse maximale de segmentation. Les bits 1111 1111 1110 1111 traduits en binaire donnent 65 519; auxquels il faut ajouter l'adresse 1 0000 0000 0000 0000. En tout, cela fait 65 520 octets adressables en trop. En clair : on dépasse la limite du mébioctet de 65 520 octets. Le résultat est alors très différent selon que l'on parle des processeurs avant le 286 ou après. Avant le 286, le bus d'adresse faisait exactement 20 bits. Les adresses calculées ne pouvaient pas dépasser 20 bits. L'addition générait donc un débordement d'entier, géré en arithmétique modulaire. En clair, les bits de poids fort au-delà du vingtième sont perdus. Le calcul de l'adresse débordait et retournait au début de la mémoire, sur les 65 520 premiers octets de la mémoire RAM. [[File:IBM PC Memory areas.svg|vignette|IBM PC Memory Map, la ''High memory area'' est en jaune.]] Le 80286 en mode réel gère des adresses de base de 24 bits, soit 4 bits de plus que le 8086. Le résultat est qu'il n'y a pas de débordement. Les bits de poids fort sont conservés, même au-delà du 20ème. En clair, la segmentation permettait de réellement adresser 65 530 octets au-delà de la limite de 1 mébioctet. La portion de mémoire adressable était appelé la '''''High memory area''''', qu'on va abrévier en HMA. {| class="wikitable" |+ Espace d'adressage du 286 |- ! Adresses en héxadécimal !! Zone de mémoire |- | 10 FFF0 à FF FFFF || Mémoire étendue, au-delà du premier mébioctet |- | 10 0000 à 10 FFEF || ''High Memory Area'' |- | 0 à 0F FFFF || Mémoire adressable en mode réel |} En conséquence, les applications peuvent utiliser plus d'un mébioctet de RAM, mais au prix d'une rétrocompatibilité imparfaite. Quelques programmes DOS ne marchaient pus à cause de ça. D'autres fonctionnaient convenablement et pouvaient adresser les 65 520 octets en plus. Pour résoudre ce problème, les carte mères ajoutaient un petit circuit relié au 21ème bit d'adresse, nommé A20 (pas d'erreur, les fils du bus d'adresse sont numérotés à partir de 0). Le circuit en question pouvait mettre à zéro le fil d'adresse, ou au contraire le laisser tranquille. En le forçant à 0, le calcul des adresses déborde comme dans le mode réel des 8086. Mais s'il ne le fait pas, la ''high memory area'' est adressable. Le circuit était une simple porte ET, qui combinait le 21ème bit d'adresse avec un '''signal de commande A20''' provenant d'ailleurs. Le signal de commande A20 était géré par le contrôleur de clavier, qui était soudé à la carte mère. Le contrôleur en question ne gérait pas que le clavier, il pouvait aussi RESET le processeur, alors gérer le signal de commande A20 n'était pas si problématique. Quitte à avoir un microcontrôleur sur la carte mère, autant s'en servir au maximum... La gestion du bus d'adresse étaitdonc gérable au clavier. D'autres carte mères faisaient autrement et préféraient ajouter un interrupteur, pour activer ou non la mise à 0 du 21ème bit d'adresse. : Il faut noter que le signal de commande A20 était mis à 1 en mode protégé, afin que le 21ème bit d'adresse soit activé. Le 386 ajouta deux registres de segment, les registres FS et GS, ainsi que le '''mode ''virtual 8086'''''. Ce dernier permet d’exécuter des programmes en mode réel alors que le système d'exploitation s'exécute en mode protégé. C'est une technique de virtualisation matérielle qui permet d'émuler un 8086 sur un 386. L'avantage est que la compatibilité avec les programmes anciens écrits pour le 8086 est conservée, tout en profitant de la protection mémoire. Tous les processeurs x86 qui ont suivi supportent ce mode virtuel 8086. ==La segmentation avec une table des segments== La '''segmentation avec une table des segments''' est apparue sur des processeurs assez anciens, le tout premier étant le Burrough 5000. Elle a ensuite été utilisée sur les processeurs x86 de nos PCs, à partir du 286 d'Intel. Tout comme la segmentation en mode réel, la segmentation attribue plusieurs segments par programmes ! Et cela a des répercutions sur la manière dont la traduction d'adresse est effectuée. ===Pourquoi plusieurs segments par programme ?=== L'utilité d'avoir plusieurs segments par programme n'est pas évidente, mais elle le devient quand on se plonge dans le passé. Dans le passé, les programmeurs devaient faire avec une quantité de mémoire limitée et il n'était pas rare que certains programmes utilisent plus de mémoire que disponible sur la machine. Mais les programmeurs concevaient leurs programmes en fonction. [[File:Overlay Programming.svg|vignette|upright=1|Overlay Programming]] L'idée était d'implémenter un système de mémoire virtuelle, mais émulé en logiciel, appelé l''''''overlaying'''''. Le programme était découpé en plusieurs morceaux, appelés des ''overlays''. Les ''overlays'' les plus importants étaient en permanence en RAM, mais les autres étaient faisaient un va-et-vient entre RAM et disque dur. Ils étaient chargés en RAM lors de leur utilisation, puis sauvegardés sur le disque dur quand ils étaient inutilisés. Le va-et-vient des ''overlays'' entre RAM et disque dur était réalisé en logiciel, par le programme lui-même. Le matériel n'intervenait pas, comme c'est le cas avec la mémoire virtuelle. Avec la segmentation, un programme peut utiliser la technique des ''overlays'', mais avec l'aide du matériel. Il suffit de mettre chaque ''overlay'' dans son propre segment, et laisser la segmentation faire. Les segments sont swappés en tout ou rien : on doit swapper tout un segment en entier. L'intérêt est que la gestion du ''swapping'' est grandement facilitée, vu que c'est le système d'exploitation qui s'occupe de swapper les segments sur le disque dur ou de charger des segments en RAM. Pas besoin pour le programmeur de coder quoique ce soit. Par contre, cela demande l'intervention du programmeur, qui doit découper le programme en segments/''overlays'' de lui-même. Sans cela, la segmentation n'est pas très utile. L'''overlaying'' est une forme de '''segmentation à granularité grossière''', à savoir que le programme est découpé en segments de grande taille. L'usage classique est d'avoir un segment pour la pile, un autre pour le code exécutable, un autre pour le reste. Éventuellement, on peut découper les trois segments précédents en deux ou trois segments, rarement au-delà. Les segments sont alors peu nombreux, guère plus d'une dizaine par programme. D'où le terme de ''granularité grossière''. La '''segmentation à granularité fine''' pousse le concept encore plus loin. Avec elle, il y a idéalement un segment par entité manipulée par le programme, un segment pour chaque structure de donnée et/ou chaque objet. Par exemple, un tableau aura son propre segment, ce qui est idéal pour détecter les accès hors tableau. Pour les listes chainées, chaque élément de la liste aura son propre segment. Et ainsi de suite, chaque variable agrégée (non-primitive), chaque structure de donnée, chaque objet, chaque instance d'une classe, a son propre segment. Diverses fonctionnalités supplémentaires peuvent être ajoutées, ce qui transforme le processeur en véritable processeur orienté objet, mais passons ces détails pour le moment. Vu que les segments correspondent à des objets manipulés par le programme, on peut deviner que leur nombre évolue au cours du temps. En effet, les programmes modernes peuvent demander au système d'exploitation du rab de mémoire pour allouer une nouvelle structure de données. Avec la segmentation à granularité fine, cela demande d'allouer un nouveau segment à chaque nouvelle allocation mémoire, à chaque création d'une nouvelle structure de données ou d'un objet. De plus, les programmes peuvent libérer de la mémoire, en supprimant les structures de données ou objets dont ils n'ont plus besoin. Avec la segmentation à granularité fine, cela revient à détruire le segment alloué pour ces objets/structures de données. Le nombre de segments est donc dynamique, il change au cours de l'exécution du programme. ===Les tables de segments avec la segmentation=== La présence de plusieurs segments par programme a un impact sur la table des segments. Avec la relocation matérielle, elle conte nait un segment par programme. Chaque entrée, chaque ligne de la table des segment, mémorisait l'adresse de base, l'adresse limite, un bit de présence pour la mémoire virtuelle et des autorisations liées à la protection mémoire. Avec la segmentation, les choses sont plus compliquées, car il y a plusieurs segments par programme. Les entrées ne sont pas modifiées, mais elles sont organisées différemment. Avec cette forme de segmentation, la table des segments doit respecter plusieurs contraintes. Premièrement, il y a plusieurs segments par programmes. Deuxièmement, le nombre de segments est variable : certains programmes se contenteront d'un seul segment, d'autres de dizaine, d'autres plusieurs centaines, etc. Il y a typiquement deux manières de faire : soit utiliser une table des segments uniques, utiliser une table des segment par programme. Il est possible d'utiliser une table des segment unique qui mémorise tous les segments de tous les processus, système d'exploitation inclut. On parle alors de '''table des segment globale'''. Mais cette solution n'est pas utilisée avec la segmentation proprement dite. Elle est utilisée sur les architectures à capacité qu'on détaillera vers la fin du chapitre, dans une section dédiée. A la place, la segmentation utilise une table de segment par processus/programme, chacun ayant une '''table des segment locale'''. Dans les faits, les choses sont plus compliquées. Le système d'exploitation doit savoir où se trouvent les tables de segment locale pour chaque programme. Pour cela, il a besoin d'utiliser une table de segment globale, dont chaque entrée pointe non pas vers un segment, mais vers une table de segment locale. Lorsque l'OS effectue une commutation de contexte, il lit la table des segment globale, pour récupérer un pointeur vers celle-ci. Ce pointeur est alors chargé dans un registre du processeur, qui mémorise l'adresse de la table locale, ce qui sert lors des accès mémoire. Une telle organisation fait que les segments d'un processus/programme sont invisibles pour les autres, il y a une certaine forme de sécurité. Un programme ne connait que sa table de segments locale, il n'a pas accès directement à la table des segments globales. Tout accès mémoire se passera à travers la table de segment locale, il ne sait pas où se trouvent les autres tables de segment locales. Les processeurs x86 sont dans ce cas : ils utilisent une table de segment globale couplée à autant de table des segments qu'il y a de processus en cours d'exécution. La table des segments globale s'appelle la '''''Global Descriptor Table''''' et elle peut contenir 8192 segments maximum, ce qui permet le support de 8192 processus différents. Les tables de segments locales sont appelées les '''''Local Descriptor Table''''' et elles font aussi 8192 segments maximum, ce qui fait 8192 segments par programme maximum. Il faut noter que la table de segment globale peut mémoriser des pointeurs vers les routines d'interruption, certaines données partagées (le tampon mémoire pour le clavier) et quelques autres choses, qui n'ont pas leur place dans les tables de segment locales. ===La relocation avec la segmentation=== La table des segments locale mémorise les adresses de base et limite de chaque segment, ainsi que d'autres méta-données. Les informations pour un segment sont regroupés dans un '''descripteur de segment''', qui est codé sur plusieurs octets, et qui regroupe : adresse de base, adresse limite, bit de présence en RAM, méta-données de protection mémoire. La table des segments est un tableau dans lequel les descripteurs de segment sont placés les uns à la suite des autres en mémoire RAM. La table des segments est donc un tableau de segment. Les segments d'un programme sont numérotés, le nombre s'appelant un '''indice de segment''', appelé '''sélecteur de segment''' dans la terminologie Intel. L'indice de segment n'est autre que l'indice du segment dans ce tableau. [[File:Global Descriptor table.png|centre|vignette|upright=2|Table des segments locale.]] Il n'y a pas de registre de segment proprement dit, qui mémoriserait l'adresse de base. A la place, les segments sont adressés de manière indirecte. A la place, les registres de segment mémorisent des sélecteurs de segment. Ils sont utilisés pour lire l'adresse de base/limite dans la table de segment en mémoire RAM. Pour cela, un registre mémorise l'adresse de la table de segment locale, sa position en mémoire RAM. Toute lecture ou écriture se fait en deux temps, en deux accès mémoire, consécutifs. Premièrement, le numéro de segment est utilisé pour adresser la table des segment. La lecture récupère alors un pointeur vers ce segment. Deuxièmement, ce pointeur est utilisé pour faire la lecture ou écriture. Plus précisément, la première lecture récupère un descripteur de segment qui contient l'adresse de base, le pointeur voulu, mais aussi l'adresse limite et d'autres informations. [[File:Segmentation avec table des segments.png|centre|vignette|upright=2|Segmentation avec table des segments]] L'accès à la table des segments se fait automatiquement à chaque accès mémoire. La conséquence est que chaque accès mémoire demande d'en faire deux : un pour lire la table des segments, l'autre pour l'accès lui-même. Il s'agit en quelque sorte d'une forme d'adressage indirect mémoire. Un point important est que si le premier accès ne fait qu'une simple lecture dans un tableau, le second accès implique des calculs d'adresse. En effet, le premier accès récupère l'adresse de base du segment, mais le second accès sélectionne une donnée dans le segment, ce qui demande de calculer son adresse. L'adresse finale se déduit en combinant l'adresse de base avec un décalage (''offset'') qui donne la position de la donnée dans ce segment. L'indice de segment est utilisé pour récupérer l'adresse de base du segment. Une fois cette adresse de base connue, on lui additionne le décalage pour obtenir l'adresse finale. [[File:Table des segments.png|centre|vignette|upright=2|Traduction d'adresse avec une table des segments.]] Pour effectuer automatiquement l'accès à la table des segments, le processeur doit contenir un registre supplémentaire, qui contient l'adresse de la table de segment, afin de la localiser en mémoire RAM. Nous appellerons ce registre le '''pointeur de table'''. Le pointeur de table est combiné avec l'indice de segment pour adresser le descripteur de segment adéquat. [[File:Segment 2.svg|centre|vignette|upright=2|Traduction d'adresse avec une table des segments, ici appelée table globale des de"scripteurs (terminologie des processeurs Intel x86).]] Un point important est que la table des segments n'est pas accessible pour le programme en cours d'exécution. Il ne peut pas lire le contenu de la table des segments, et encore moins la modifier. L'accès se fait seulement de manière indirecte, en faisant usage des indices de segments, mais c'est un adressage indirect. Seul le système d'exploitation peut lire ou écrire la table des segments directement. ===La protection mémoire : les accès hors-segments=== Comme avec la relocation matérielle, le processeur utilise l'adresse ou la taille limite pour vérifier si l'accès mémoire ne déborde pas en-dehors du segment en cours. Pour cela, le processeur compare l'adresse logique accédée avec l'adresse limite, ou compare la taille limite avec le décalage. L'information est lue depuis la table des segments à chaque accès. [[File:Vm7.svg|centre|vignette|upright=2|Traduction d'adresse avec vérification des accès hors-segment.]] Par contre, une nouveauté fait son apparition avec la segmentation : la '''gestion des droits d'accès'''. Chaque segment se voit attribuer un certain nombre d'autorisations d'accès qui indiquent si l'on peut lire ou écrire dedans, si celui-ci contient un programme exécutable, etc. Les autorisations pour chaque segment sont placées dans le descripteur de segment. Elles se résument généralement à trois bits, qui indiquent si le segment est accesible en lecture/écriture ou exécutable. Par exemple, il est possible d'interdire d'exécuter le contenu d'un segment, ce qui fournit une protection contre certaines failles de sécurité ou certains virus. Lorsqu'on exécute une opération interdite, le processeur lève une exception matérielle, à charge du système d'exploitation de gérer la situation. ===La mémoire virtuelle avec la segmentation=== La mémoire virtuelle est une fonctionnalité souvent implémentée sur les processeurs qui gèrent la segmentation, alors que les processeurs avec relocation matérielle s'en passaient. Il faut dire que l'implémentation de la mémoire virtuelle est beaucoup plus simple avec la segmentation, comparé à la relocation matérielle. Le remplacement des registres de base par des sélecteurs de segment facilite grandement l'implémentation. Le problème de la mémoire virtuelle est que les segments peuvent être swappés sur le disque dur n'importe quand, sans que le programme soit prévu. Le swapping est réalisé par une interruption de l'OS, qui peut interrompre le programme n'importe quand. Et si un segment est swappé, le registre de base correspondant devient invalide, il point sur une adresse en RAM où le segment était, mais n'est plus. De plus, les segments peuvent être déplacés en mémoire, là encore n'importe quand et d'une manière invisible par le programme, ce qui fait que les registres de base adéquats doivent être modifiés. Si le programme entier est swappé d'un coup, comme avec la relocation matérielle simple, cela ne pose pas de problèmes. Mais dès qu'on utilise plusieurs registres de base par programme, les choses deviennent soudainement plus compliquées. Le problème est qu'il n'y a pas de mécanismes pour choisir et invalider le registre de base adéquat quand un segment est déplacé/swappé. En théorie, on pourrait imaginer des systèmes qui résolvent le problème au niveau de l'OS, mais tous ont des problèmes qui font que l'implémentation est compliquée ou que les performances sont ridicules. L'usage d'une table des segments accédée à chaque accès résout complètement le problème. La table des segments est accédée à chaque accès mémoire, elle sait si le segment est swappé ou non, chaque accès vérifie si le segment est en mémoire et quelle est son adresse de base. On peut changer le segment de place n'importe quand, le prochain accès récupérera des informations à jour dans la table des segments. L'implémentation de la mémoire virtuelle avec la segmentation est simple : il suffit d'ajouter un bit dans les descripteurs de segments, qui indique si le segment est swappé ou non. Tout le reste, la gestion de ce bit, du swap, et tout ce qui est nécessaire, est délégué au système d'exploitation. Lors de chaque accès mémoire, le processeur vérifie ce bit avant de faire la traduction d'adresse, et déclenche une exception matérielle si le bit indique que le segment est swappé. L'exception matérielle est gérée par l'OS. ===Le partage de segments=== Il est possible de partager un segment entre plusieurs applications. Cela peut servir pour partager des données entre deux programmes : un segment de données partagées est alors partagé entre deux programmes. Partager un segment de code est utile pour les librairies partagées : la librairie est placée dans un segment dédié, qui est partagé entre les programmes qui l'utilisent. Partager un segment de code est aussi utile quand plusieurs instances d'une même application sont lancés simultanément : le code n'ayant pas de raison de changer, celui-ci est partagé entre toutes les instances. Mais ce n'est là qu'un exemple. La première solution pour cela est de configurer les tables de segment convenablement. Le même segment peut avoir des droits d'accès différents selon les processus. Les adresses de base/limite sont identiques, mais les tables des segments ont alors des droits d'accès différents. Mais cette méthode de partage des segments a plusieurs défauts. Premièrement, les sélecteurs de segments ne sont pas les mêmes d'un processus à l'autre, pour un même segment. Le segment partagé peut correspondre au segment numéro 80 dans le premier processus, au segment numéro 1092 dans le second processus. Rien n'impose que les sélecteurs de segment soient les mêmes d'un processus à l'autre, pour un segment identique. Deuxièmement, les adresses limite et de base sont dupliquées dans plusieurs tables de segments. En soi, cette redondance est un souci mineur. Mais une autre conséquence est une question de sécurité : que se passe-t-il si jamais un processus a une table des segments corrompue ? Il se peut que pour un segment identique, deux processus n'aient pas la même adresse limite, ce qui peut causer des failles de sécurité. Un processus peut alors subir un débordement de tampon, ou tout autre forme d'attaque. [[File:Vm9.png|centre|vignette|upright=2|Illustration du partage d'un segment entre deux applications.]] Une seconde solution, complémentaire, utilise une table de segment globale, qui mémorise des segments partagés ou accessibles par tous les processus. Les défauts de la méthode précédente disparaissent avec cette technique : un segment est identifié par un sélecteur unique pour tous les processus, il n'y a pas de duplication des descripteurs de segment. Par contre, elle a plusieurs défauts. Le défaut principal est que cette table des segments est accessible par tous les processus, impossible de ne partager ses segments qu'avec certains pas avec les autres. Un autre défaut est que les droits d'accès à un segment partagé sont identiques pour tous les processus. Impossible d'avoir un segment partagé accessible en lecture seule pour un processus, mais accessible en écriture pour un autre. Il est possible de corriger ces défauts, mais nous en parlerons dans la section sur les architectures à capacité. ===L'extension d'adresse avec la segmentation=== L'extension d'adresse est possible avec la segmentation, de la même manière qu'avec la relocation matérielle. Il suffit juste que les adresses de base soient aussi grandes que le bus d'adresse. Mais il y a une différence avec la relocation matérielle : un même programme peut utiliser plus de mémoire qu'il n'y en a dans l'espace d'adressage. La raison est simple : un segment peut prendre tout l'espace d'adressage, et il y a plusieurs segments par programme. Pour donner un exemple, prenons un processeur 16 bits, qui peut adresser 64 kibioctets, associé à une mémoire de 4 mébioctets. Il est possible de placer le code machine dans les premiers 64k de la mémoire, la pile du programme dans les 64k suivants, le tas dans les 64k encore après, et ainsi de suite. Le programme dépasse donc les 64k de mémoire de l'espace d'adressage. Ce genre de chose est impossible avec la relocation, où un programme est limité par l'espace d'adressage. ===Le mode protégé des processeurs x86=== L'Intel 80286, aussi appelé 286, ajouta un mode de segmentation séparé du mode réel, qui ajoute une protection mémoire à la segmentation, ce qui lui vaut le nom de '''mode protégé'''. Dans ce mode, les registres de segment ne contiennent pas des adresses de base, mais des sélecteurs de segments qui sont utilisés pour l'accès à la table des segments en mémoire RAM. Le 286 bootait en mode réel, puis le système d'exploitation devait faire quelques manipulations pour passer en mode protégé. Le 286 était pensé pour être rétrocompatible au maximum avec le 80186. Mais les différences entre le 286 et le 8086 étaient majeures, au point que les applications devaient être réécrites intégralement pour profiter du mode protégé. Un mode de compatibilité permettait cependant aux applications destinées au 8086 de fonctionner, avec même de meilleures performances. Aussi, le mode protégé resta inutilisé sur la plupart des applications exécutées sur le 286. Vint ensuite le processeur 80386, renommé en 386 quelques années plus tard. Sur ce processeur, les modes réel et protégé sont conservés tel quel, à une différence près : toutes les adresses passent à 32 bits, qu'il s'agisse des adresses de base, limite ou des ''offsets''. Le processeur peut donc adresser un grand nombre de segments : 2^32, soit plus de 4 milliards. Les segments grandissent aussi et passent de 64 KB maximum à 4 gibioctets maximum. Mais surtout : le 386 ajouta le support de la pagination en plus de la segmentation. Ces modifications ont été conservées sur les processeurs 32 bits ultérieurs. Les processeurs x86 gèrent deux types de tables des segments : une table locale pour chaque processus, et une table globale partagée entre tous les processus. Il ne peut y avoir qu'une table locale d'active, vu que le processeur ne peut exécuter qu'un seul processus en même temps. Chaque table locale définit 8192 segments, pareil pour la table globale. La table globale est utilisée pour les segments du noyau et la mémoire partagée entre processus. Un défaut est qu'un segment partagé par la table globale est visible par tous les processus, avec les mêmes droits d'accès. Ce qui fait que cette méthode était peu utilisée en pratique. La table globale mémorise aussi des pointeurs vers les tables locales, avec un descripteur de segment par table locale. Sur les processeurs x86 32 bits, un descripteur de segment est organisé comme suit, pour les architectures 32 bits. On y trouve l'adresse de base et la taille limite, ainsi que de nombreux bits de contrôle. Le premier groupe de bits de contrôle est l'octet en bleu à droite. Il contient : * le bit P qui indique que l'entrée contient un descripteur valide, qu'elle n'est pas vide ; * deux bits DPL qui indiquent le niveau de privilège du segment (noyau, utilisateur, les deux intermédiaires spécifiques au x86) ; * un bit S qui précise si le segment est de type système (utiles pour l'OS) ou un segment de code/données. * un champ Type qui contient les bits suivants : un bit E qui indique si le segment contient du code exécutable ou non, le bit RW qui indique s'il est en lecture seule ou non, les bits A et DC assez spécifiques. En haut à gauche, en bleu, on trouve deux bits : * Le bit G indique comment interpréter la taille contenue dans le descripteur : 0 si la taille est exprimée en octets, 1 si la taille est un nombre de pages de 4 kibioctets. Ce bit précise si on utilise la segmentation seule, ou combinée avec la pagination. * Le bit DB précise si l'on utilise des segments en mode de compatibilité 16 bits ou des segments 32 bits. [[File:SegmentDescriptor.svg|centre|vignette|upright=3|Segment Descriptor]] Les indices de segment sont appelés des sélecteurs de segment. Ils ont une taille de 16 bits, mais 3 bits sont utilisés pour encoder des méta-données. Le numéro de segment est donc codé sur 13 bits, ce qui permettait de gérer maximum 8192 segments par table de segment (locale ou globale). Les 16 bits sont organisés comme suit : * 13 bits pour le numéro du segment dans la table des segments, l'indice de segment proprement dit ; * un bit qui précise s'il faut accéder à la table des segments globale ou locale ; * deux bits qui indiquent le niveau de privilège de l'accès au segment (les 4 niveaux de protection, dont l'espace noyau et utilisateur). [[File:SegmentSelector.svg|centre|vignette|upright=1.5|Sélecteur de segment 16 bit.]] En tout, l'indice permet de gérer 8192 segments pour la table locale et 8192 segments de la table globale. ====Le ''Hardware task switching des CPU x86==== Les systèmes d’exploitation modernes peuvent lancer plusieurs logiciels en même temps. Les logiciels sont alors exécutés à tour de rôle. Passer d'un programme à un autre est ce qui s'appelle une commutation de contexte. Lors d'une commutation de contexte, l'état du processeur est sauvegardé, afin que le programme stoppé puisse reprendre là où il était. Il arrivera un moment où le programme stoppé redémarrera et il doit reprendre dans l'état exact où il s'est arrêté. Deuxièmement, le programme à qui c'est le tour restaure son état. Cela lui permet de revenir là où il était avant d'être stoppé. Il y a donc une sauvegarde et une restauration des registres. Divers processeurs incorporent des optimisations matérielles pour rendre la commutation de contexte plus rapide. Ils peuvent sauvegarder et restaurer les registres du processeur automatiquement lors d'une interruption de commutation de contexte. Les registres sont sauvegardés dans des structures de données en mémoire RAM, appelées des '''contextes matériels'''. Sur les processeurs x86, il s'agit de la technique d'''Hardware Task Switching''. Fait intéressant, le ''Hardware Task Switching'' se base beaucoup sur les segments mémoires. Avec ''Hardware Task Switching'', chaque contexte matériel est mémorisé dans son propre segment mémoire, séparé des autres. Les segments pour les contextes matériels sont appelés des '''''Task State Segment''''' (TSS). Un TSS mémorise tous les registres généraux, le registre d'état, les pointeurs de pile, le ''program counter'' et quelques registres de contrôle du processeur. Par contre, les registres flottants ne sont pas sauvegardés, de même que certaines registres dit SIMD que nous n'avons pas encore abordé. Et c'est un défaut qui fait que le ''Hardware Task Switching'' n'est plus utilisé. Le programme en cours d'exécution connait l'adresse du TSS qui lui est attribué, car elle est mémorisée dans un registre appelé le '''''Task Register'''''. En plus de pointer sur le TSS, ce registre contient aussi les adresses de base et limite du segment en cours. Pour être plus précis, le ''Task Register'' ne mémorise pas vraiment l'adresse du TSS. A la place, elle mémorise le numéro du segment, le numéro du TSS. Le numéro est codé sur 16 bits, ce qui explique que 65 536 segments sont adressables. Les instructions LDR et STR permettent de lire/écrire ce numéro de segment dans le ''Task Register''. Le démarrage d'un programme a lieu automatiquement dans plusieurs circonstances. La première est une instruction de branchement CALL ou JMP adéquate. Le branchement fournit non pas une adresse à laquelle brancher, mais un numéro de segment qui pointe vers un TSS. Cela permet à une routine du système d'exploitation de restaurer les registres et de démarrer le programme en une seule instruction de branchement. Une seconde circonstance est une interruption matérielle ou une exception, mais nous la mettons de côté. Le ''Task Register'' est alors initialisé avec le numéro de segment fournit. S'en suit la procédure suivante : * Le ''Task Register'' est utilisé pour adresser la table des segments, pour récupérer un pointeur vers le TSS associé. * Le pointeur est utilisé pour une seconde lecture, qui adresse le TSS directement. Celle-ci restaure les registres du processeur. En clair, on va lire le ''TSS descriptor'' dans la GDT, puis on l'utilise pour restaurer les registres du processeur. [[File:Hardware Task Switching x86.png|centre|vignette|upright=2|Hardware Task Switching x86]] ===La segmentation sur les processeurs Burrough B5000 et plus=== Le Burrough B5000 est un très vieil ordinateur, commercialisé à partir de l'année 1961. Ses successeurs reprennent globalement la même architecture. C'était une machine à pile, doublé d'une architecture taguée, choses très rare de nos jours. Mais ce qui va nous intéresser dans ce chapitre est que ce processeur incorporait la segmentation, avec cependant une différence de taille : un programme avait accès à un grand nombre de segments. La limite était de 1024 segments par programme ! Il va de soi que des segments plus petits favorise l'implémentation de la mémoire virtuelle, mais complexifie la relocation et le reste, comme nous allons le voir. Le processeur gère deux types de segments : les segments de données et de procédure/fonction. Les premiers mémorisent un bloc de données, dont le contenu est laissé à l'appréciation du programmeur. Les seconds sont des segments qui contiennent chacun une procédure, une fonction. L'usage des segments est donc différent de ce qu'on a sur les processeurs x86, qui n'avaient qu'un segment unique pour l'intégralité du code machine. Un seul segment de code machine x86 est découpé en un grand nombre de segments de code sur les processeurs Burrough. La table des segments contenait 1024 entrées de 48 bits chacune. Fait intéressant, chaque entrée de la table des segments pouvait mémoriser non seulement un descripteur de segment, mais aussi une valeur flottante ou d'autres types de données ! Parler de table des segments est donc quelque peu trompeur, car cette table ne gère pas que des segments, mais aussi des données. La documentation appelaiat cette table la '''''Program Reference Table''''', ou PRT. La raison de ce choix quelque peu bizarre est que les instructions ne gèrent pas d'adresses proprement dit. Tous les accès mémoire à des données en-dehors de la pile passent par la segmentation, ils précisent tous un indice de segment et un ''offset''. Pour éviter d'allouer un segment pour chaque donnée, les concepteurs du processeur ont décidé qu'une entrée pouvait contenir directement la donnée entière à lire/écrire. La PRT supporte trois types de segments/descripteurs : les descripteurs de données, les descripteurs de programme et les descripteurs d'entrées-sorties. Les premiers décrivent des segments de données. Les seconds sont associés aux segments de procédure/fonction et sont utilisés pour les appels de fonction (qui passent, eux aussi, par la segmentation). Le dernier type de descripteurs sert pour les appels systèmes et les communications avec l'OS ou les périphériques. Chaque entrée de la PRT contient un ''tag'', une suite de bit qui indique le type de l'entrée : est-ce qu'elle contient un descripteur de segment, une donnée, autre. Les descripteurs contiennent aussi un ''bit de présence'' qui indique si le segment a été swappé ou non. Car oui, les segments pouvaient être swappés sur ce processeur, ce qui n'est pas étonnant vu que les segments sont plus petits sur cette architecture. Le descripteur contient aussi l'adresse de base du segment ainsi que sa taille, et diverses informations pour le retrouver sur le disque dur s'il est swappé. : L'adresse mémorisée ne faisait que 15 bits, ce qui permettait d'adresse 32 kibi-mots, soit 192 kibioctets de mémoire. Diverses techniques d'extension d'adressage étaient disponibles pour contourner cette limitation. Outre l'usage de l'''overlay'', le processeur et l'OS géraient aussi des identifiants d'espace d'adressage et en fournissaient plusieurs par processus. Les processeurs Borrough suivants utilisaient des adresses plus grandes, de 20 bits, ce qui tempérait le problème. [[File:B6700Word.jpg|centre|vignette|upright=2|Structure d'un mot mémoire sur le B6700.]] ==Les architectures à capacités== Les architectures à capacité utilisent la segmentation à granularité fine, mais ajoutent des mécanismes de protection mémoire assez particuliers, qui font que les architectures à capacité se démarquent du reste. Les architectures de ce type sont très rares et sont des processeurs assez anciens. Le premier d'entre eux était le Plessey System 250, qui date de 1969. Il fu suivi par le CAP computer, vendu entre les années 70 et 77. En 1978, le System/38 d'IBM a eu un petit succès commercial. En 1980, la Flex machine a aussi été vendue, mais à très peu d'examplaires, comme les autres architectures à capacité. Et enfin, en 1981, l'architecture à capacité la plus connue, l'Intel iAPX 432 a été commercialisée. Depuis, la seule architecture de ce type est en cours de développement. Il s'agit de l'architecture CHERI, dont la mise en projet date de 2014. ===Le partage de la mémoire sur les architectures à capacités=== Le partage de segment est grandement modifié sur les architectures à capacité. Avec la segmentation normale, il y a une table de segment par processus. Les conséquences sont assez nombreuses, mais la principale est que partager un segment entre plusieurs processus est compliqué. Les défauts ont été évoqués plus haut. Les sélecteurs de segments ne sont pas les mêmes d'un processus à l'autre, pour un même segment. De plus, les adresses limite et de base sont dupliquées dans plusieurs tables de segments, et cela peut causer des problèmes de sécurité si une table des segments est modifiée et pas l'autre. Et il y a d'autres problèmes, tout aussi importants. [[File:Partage des segments avec la segmentation.png|centre|vignette|upright=1.5|Partage des segments avec la segmentation]] A l'opposé, les architectures à capacité utilisent une table des segments unique pour tous les processus. La table des segments unique sera appelée dans de ce qui suit la '''table des segments globale''', ou encore la table globale. En conséquence, les adresses de base et limite ne sont présentes qu'en un seul exemplaire par segment, au lieu d'être dupliquées dans autant de processus que nécessaire. De plus, cela garantit que l'indice de segment est le même quelque soit le processus qui l'utilise. Un défaut de cette approche est au niveau des droits d'accès. Avec la segmentation normale, les droits d'accès pour un segment sont censés changer d'un processus à l'autre. Par exemple, tel processus a accès en lecture seule au segment, l'autre seulement en écriture, etc. Mais ici, avec une table des segments uniques, cela ne marche plus : incorporer les droits d'accès dans la table des segments ferait que tous les processus auraient les mêmes droits d'accès au segment. Et il faut trouver une solution. ===Les capacités sont des pointeurs protégés=== Pour éviter cela, les droits d'accès sont combinés avec les sélecteurs de segments. Les sélecteurs des segments sont remplacés par des '''capacités''', des pointeurs particuliers formés en concaténant l'indice de segment avec les droits d'accès à ce segment. Si un programme veut accéder à une adresse, il fournit une capacité de la forme "sélecteur:droits d'accès", et un décalage qui indique la position de l'adresse dans le segment. Il est impossible d'accéder à un segment sans avoir la capacité associée, c'est là une sécurité importante. Un accès mémoire demande que l'on ait la capacité pour sélectionner le bon segment, mais aussi que les droits d'accès en permettent l'accès demandé. Par contre, les capacités peuvent être passées d'un programme à un autre sans problème, les deux programmes pourront accéder à un segment tant qu'ils disposent de la capacité associée. [[File:Comparaison entre capacités et adresses segmentées.png|centre|vignette|upright=2.5|Comparaison entre capacités et adresses segmentées]] Mais cette solution a deux problèmes très liés. Au niveau des sélecteurs de segment, le problème est que les sélecteur ont une portée globale. Avant, l'indice de segment était interne à un programme, un sélecteur ne permettait pas d'accéder au segment d'un autre programme. Sur les architectures à capacité, les sélecteurs ont une portée globale. Si un programme arrive à forger un sélecteur qui pointe vers un segment d'un autre programme, il peut théoriquement y accéder, à condition que les droits d'accès le permettent. Et c'est là qu'intervient le second problème : les droits d'accès ne sont plus protégés par l'espace noyau. Les droits d'accès étaient dans la table de segment, accessible uniquement en espace noyau, ce qui empêchait un processus de les modifier. Avec une capacité, il faut ajouter des mécanismes de protection qui empêchent un programme de modifier les droits d'accès à un segment et de générer un indice de segment non-prévu. La première sécurité est qu'un programme ne peut pas créer une capacité, seul le système d'exploitation le peut. Les capacités sont forgées lors de l'allocation mémoire, ce qui est du ressort de l'OS. Pour rappel, un programme qui veut du rab de mémoire RAM peut demander au système d'exploitation de lui allouer de la mémoire supplémentaire. Le système d'exploitation renvoie alors un pointeurs qui pointe vers un nouveau segment. Le pointeur est une capacité. Il doit être impossible de forger une capacité, en-dehors d'une demande d'allocation mémoire effectuée par l'OS. Typiquement, la forge d'une capacité se fait avec des instructions du processeur, que seul l'OS peut éxecuter (pensez à une instruction qui n'est accessible qu'en espace noyau). La seconde protection est que les capacités ne peuvent pas être modifiées sans raison valable, que ce soit pour l'indice de segment ou les droits d'accès. L'indice de segment ne peut pas être modifié, quelqu'en soit la raison. Pour les droits d'accès, la situation est plus compliquée. Il est possible de modifier ses droits d'accès, mais sous conditions. Réduire les droits d'accès d'une capacité est possible, que ce soit en espace noyau ou utilisateur, pas l'OS ou un programme utilisateur, avec une instruction dédiée. Mais augmenter les droits d'accès, seul l'OS peut le faire avec une instruction précise, souvent exécutable seulement en espace noyau. Les capacités peuvent être copiées, et même transférées d'un processus à un autre. Les capacités peuvent être détruites, ce qui permet de libérer la mémoire utilisée par un segment. La copie d'une capacité est contrôlée par l'OS et ne peut se faire que sous conditions. La destruction d'une capacité est par contre possible par tous les processus. La destruction ne signifie pas que le segment est effacé, il est possible que d'autres processus utilisent encore des copies de la capacité, et donc le segment associé. On verra quand la mémoire est libérée plus bas. Protéger les capacités demande plusieurs conditions. Premièrement, le processeur doit faire la distinction entre une capacité et une donnée. Deuxièmement, les capacités ne peuvent être modifiées que par des instructions spécifiques, dont l'exécution est protégée, réservée au noyau. En clair, il doit y avoir une séparation matérielle des capacités, qui sont placées dans des registres séparés. Pour cela, deux solutions sont possibles : soit les capacités remplacent les adresses et sont dispersées en mémoire, soit elles sont regroupées dans un segment protégé. ====La liste des capacités==== Avec la première solution, on regroupe les capacités dans un segment protégé. Chaque programme a accès à un certain nombre de segments et à autant de capacités. Les capacités d'un programme sont souvent regroupées dans une '''liste de capacités''', appelée la '''''C-list'''''. Elle est généralement placée en mémoire RAM. Elle est ce qu'il reste de la table des segments du processus, sauf que cette table ne contient pas les adresses du segment, qui sont dans la table globale. Tout se passe comme si la table des segments de chaque processus est donc scindée en deux : la table globale partagée entre tous les processus contient les informations sur les limites des segments, la ''C-list'' mémorise les droits d'accès et les sélecteurs pour identifier chaque segment. C'est un niveau d'indirection supplémentaire par rapport à la segmentation usuelle. [[File:Architectures à capacité.png|centre|vignette|upright=2|Architectures à capacité]] La liste de capacité est lisible par le programme, qui peut copier librement les capacités dans les registres. Par contre, la liste des capacités est protégée en écriture. Pour le programme, il est impossible de modifier les capacités dedans, impossible d'en rajouter, d'en forger, d'en retirer. De même, il ne peut pas accéder aux segments des autres programmes : il n'a pas les capacités pour adresser ces segments. Pour protéger la ''C-list'' en écriture, la solution la plus utilisée consiste à placer la ''C-list'' dans un segment dédié. Le processeur gère donc plusieurs types de segments : les segments de capacité pour les ''C-list'', les autres types segments pour le reste. Un défaut de cette approche est que les adresses/capacités sont séparées des données. Or, les programmeurs mixent souvent adresses et données, notamment quand ils doivent manipuler des structures de données comme des listes chainées, des arbres, des graphes, etc. L'usage d'une ''C-list'' permet de se passer de la séparation entre espace noyau et utilisateur ! Les segments de capacité sont eux-mêmes adressés par leur propre capacité, avec une capacité par segment de capacité. Le programme a accès à la liste de capacité, comme l'OS, mais leurs droits d'accès ne sont pas les mêmes. Le programme a une capacité vers la ''C-list'' qui n'autorise pas l'écriture, l'OS a une autre capacité qui accepte l'écriture. Les programmes ne pourront pas forger les capacités permettant de modifier les segments de capacité. Une méthode alternative est de ne permettre l'accès aux segments de capacité qu'en espace noyau, mais elle est redondante avec la méthode précédente et moins puissante. ====Les capacités dispersées, les architectures taguées==== Une solution alternative laisse les capacités dispersées en mémoire. Les capacités remplacent les adresses/pointeurs, et elles se trouvent aux mêmes endroits : sur la pile, dans le tas. Comme c'est le cas dans les programmes modernes, chaque allocation mémoire renvoie une capacité, que le programme gére comme il veut. Il peut les mettre dans des structures de données, les placer sur la pile, dans des variables en mémoire, etc. Mais il faut alors distinguer si un mot mémoire contient une capacité ou une autre donnée, les deux ne devant pas être mixés. Pour cela, chaque mot mémoire se voit attribuer un certain bit qui indique s'il s'agit d'un pointeur/capacité ou d'autre chose. Mais cela demande un support matériel, ce qui fait que le processeur devient ce qu'on appelle une ''architecture à tags'', ou ''tagged architectures''. Ici, elles indiquent si le mot mémoire contient une adresse:capacité ou une donnée. [[File:Architectures à capacité sans liste de capacité.png|centre|vignette|upright=2|Architectures à capacité sans liste de capacité]] L'inconvénient est le cout en matériel de cette solution. Il faut ajouter un bit à chaque case mémoire, le processeur doit vérifier les tags avant chaque opération d'accès mémoire, etc. De plus, tous les mots mémoire ont la même taille, ce qui force les capacités à avoir la même taille qu'un entier. Ce qui est compliqué. ===Les registres de capacité=== Les architectures à capacité disposent de registres spécialisés pour les capacités, séparés pour les entiers. La raison principale est une question de sécurité, mais aussi une solution pragmatique au fait que capacités et entiers n'ont pas la même taille. Les registres dédiés aux capacités ne mémorisent pas toujours des capacités proprement dites. A la place, ils mémorisent des descripteurs de segment, qui contiennent l'adresse de base, limite et les droits d'accès. Ils sont utilisés pour la relocation des accès mémoire ultérieurs. Ils sont en réalité identiques aux registres de relocation, voire aux registres de segments. Leur utilité est d'accélérer la relocation, entre autres. Les processeurs à capacité ne gèrent pas d'adresses proprement dit, comme pour la segmentation avec plusieurs registres de relocation. Les accès mémoire doivent préciser deux choses : à quel segment on veut accéder, à quelle position dans le segment se trouve la donnée accédée. La première information se trouve dans le mal nommé "registre de capacité", la seconde information est fournie par l'instruction d'accès mémoire soit dans un registre (Base+Index), soit en adressage base+''offset''. Les registres de capacités sont accessibles à travers des instructions spécialisées. Le processeur ajoute des instructions LOAD/STORE pour les échanges entre table des segments et registres de capacité. Ces instructions sont disponibles en espace utilisateur, pas seulement en espace noyau. Lors du chargement d'une capacité dans ces registres, le processeur vérifie que la capacité chargée est valide, et que les droits d'accès sont corrects. Puis, il accède à la table des segments, récupère les adresses de base et limite, et les mémorise dans le registre de capacité. Les droits d'accès et d'autres méta-données sont aussi mémorisées dans le registre de capacité. En somme, l'instruction de chargement prend une capacité et charge un descripteur de segment dans le registre. Avec ce genre de mécanismes, il devient difficile d’exécuter certains types d'attaques, ce qui est un gage de sureté de fonctionnement indéniable. Du moins, c'est la théorie, car tout repose sur l'intégrité des listes de capacité. Si on peut modifier celles-ci, alors il devient facile de pouvoir accéder à des objets auxquels on n’aurait pas eu droit. ===Le recyclage de mémoire matériel=== Les architectures à capacité séparent les adresses/capacités des nombres entiers. Et cela facilite grandement l'implémentation de la ''garbage collection'', ou '''recyclage de la mémoire''', à savoir un ensemble de techniques logicielles qui visent à libérer la mémoire inutilisée. Rappelons que les programmes peuvent demander à l'OS un rab de mémoire pour y placer quelque chose, généralement une structure de donnée ou un objet. Mais il arrive un moment où cet objet n'est plus utilisé par le programme. Il peut alors demander à l'OS de libérer la portion de mémoire réservée. Sur les architectures à capacité, cela revient à libérer un segment, devenu inutile. La mémoire utilisée par ce segment est alors considérée comme libre, et peut être utilisée pour autre chose. Mais il arrive que les programmes ne libèrent pas le segment en question. Soit parce que le programmeur a mal codé son programme, soit parce que le compilateur n'a pas fait du bon travail ou pour d'autres raisons. Pour éviter cela, les langages de programmation actuels incorporent des '''''garbage collectors''''', des morceaux de code qui scannent la mémoire et détectent les segments inutiles. Pour cela, ils doivent identifier les adresses manipulées par le programme. Si une adresse pointe vers un objet, alors celui-ci est accessible, il sera potentiellement utilisé dans le futur. Mais si aucune adresse ne pointe vers l'objet, alors il est inaccessible et ne sera plus jamais utilisé dans le futur. On peut libérer les objets inaccessibles. Identifier les adresses est cependant très compliqué sur les architectures normales. Sur les processeurs modernes, les ''garbage collectors'' scannent la pile à la recherche des adresses, et considèrent tout mot mémoire comme une adresse potentielle. Mais les architectures à capacité rendent le recyclage de la mémoire très facile. Un segment est accessible si le programme dispose d'une capacité qui pointe vers ce segment, rien de plus. Et les capacités sont facilement identifiables : soit elles sont dans la liste des capacités, soit on peut les identifier à partir de leur ''tag''. Le recyclage de mémoire était parfois implémenté directement en matériel. En soi, son implémentation est assez simple, et peu être réalisé dans le microcode d'un processeur. Une autre solution consiste à utiliser un second processeur, spécialement dédié au recyclage de mémoire, qui exécute un programme spécialement codé pour. Le programme en question est placé dans une mémoire ROM, reliée directement à ce second processeur. ===L'intel iAPX 432=== Voyons maintenat une architecture à capacité assez connue : l'Intel iAPX 432. Oui, vous avez bien lu : Intel a bel et bien réalisé un processeur orienté objet dans sa jeunesse. La conception du processeur Intel iAPX 432 commença en 1975, afin de créer un successeur digne de ce nom aux processeurs 8008 et 8080. La conception du processeur Intel iAPX 432 commença en 1975, afin de créer un successeur digne de ce nom aux processeurs 8008 et 8080. Ce processeur s'est très faiblement vendu en raison de ses performances assez désastreuses et de défauts techniques certains. Par exemple, ce processeur était une machine à pile à une époque où celles-ci étaient tombées en désuétude, il ne pouvait pas effectuer directement de calculs avec des constantes entières autres que 0 et 1, ses instructions avaient un alignement bizarre (elles étaient bit-alignées). Il avait été conçu pour maximiser la compatibilité avec le langage ADA, un langage assez peu utilisé, sans compter que le compilateur pour ce processeur était mauvais. ====Les segments prédéfinis de l'Intel iAPX 432==== L'Intel iAPX432 gére plusieurs types de segments. Rien d'étonnant à cela, les Burrough géraient eux aussi plusieurs types de segments, à savoir des segments de programmes, des segments de données, et des segments d'I/O. C'est la même chose sur l'Intel iAPX 432, mais en bien pire ! Les segments de données sont des segments génériques, dans lequels on peut mettre ce qu'on veut, suivant les besoins du programmeur. Ils sont tous découpés en deux parties de tailles égales : une partie contenant les données de l'objet et une partie pour les capacités. Les capacités d'un segment pointent vers d'autres segments, ce qui permet de créer des structures de données assez complexes. La ligne de démarcation peut être placée n'importe où dans le segment, les deux portions ne sont pas de taille identique, elles ont des tailles qui varient de segment en segment. Il est même possible de réserver le segment entier à des données sans y mettre de capacités, ou inversement. Les capacités et données sont adressées à partir de la ligne de démarcation, qui sert d'adresse de base du segment. Suivant l'instruction utilisée, le processeur accède à la bonne portion du segment. Le processeur supporte aussi d'autres segments pré-définis, qui sont surtout utilisés par le système d'exploitation : * Des segments d'instructions, qui contiennent du code exécutable, typiquement un programme ou des fonctions, parfois des ''threads''. * Des segments de processus, qui mémorisent des processus entiers. Ces segments contiennent des capacités qui pointent vers d'autres segments, notamment un ou plusieurs segments de code, et des segments de données. * Des segments de domaine, pour les modules ou librairies dynamiques. * Des segments de contexte, utilisés pour mémoriser l'état d'un processus, utilisés par l'OS pour faire de la commutation de contexte. * Des segments de message, utilisés pour la communication entre processus par l'intermédiaire de messages. * Et bien d'autres encores. Sur l'Intel iAPX 432, chaque processus est considéré comme un objet à part entière, qui a son propre segment de processus. De même, l'état du processeur (le programme qu'il est en train d’exécuter, son état, etc.) est stocké en mémoire dans un segment de contexte. Il en est de même pour chaque fonction présente en mémoire : elle était encapsulée dans un segment, sur lequel seules quelques manipulations étaient possibles (l’exécuter, notamment). Et ne parlons pas des appels de fonctions qui stockaient l'état de l'appelé directement dans un objet spécial. Bref, de nombreux objets système sont prédéfinis par le processeur : les objets stockant des fonctions, les objets stockant des processus, etc. L'Intel 432 possédait dans ses circuits un ''garbage collector'' matériel. Pour faciliter son fonctionnement, certains bits de l'objet permettaient de savoir si l'objet en question pouvait être supprimé ou non. ====Le support de la segmentation sur l'Intel iAPX 432==== La table des segments est une table hiérarchique, à deux niveaux. Le premier niveau est une ''Object Table Directory'', qui réside toujours en mémoire RAM. Elle contient des descripteurs qui pointent vers des tables secondaires, appelées des ''Object Table''. Il y a plusieurs ''Object Table'', typiquement une par processus. Plusieurs processus peuvent partager la même ''Object Table''. Les ''Object Table'' peuvent être swappées, mais pas l'''Object Table Directory''. Une capacité tient compte de l'organisation hiérarchique de la table des segments. Elle contient un indice qui précise quelle ''Object Table'' utiliser, et l'indice du segment dans cette ''Object Table''. Le premier indice adresse l'''Object Table Directory'' et récupère un descripteur de segment qui pointe sur la bonne ''Object Table''. Le second indice est alors utilisé pour lire l'adresse de base adéquate dans cette ''Object Table''. La capacité contient aussi des droits d'accès en lecture, écriture, suppression et copie. Il y a aussi un champ pour le type, qu'on verra plus bas. Au fait : les capacités étaient appelées des ''Access Descriptors'' dans la documentation officielle. Une capacité fait 32 bits, avec un octet utilisé pour les droits d'accès, laissant 24 bits pour adresser les segments. Le processeur gérait jusqu'à 2^24 segments/objets différents, pouvant mesurer jusqu'à 64 kibioctets chacun, ce qui fait 2^40 adresses différentes, soit 1024 gibioctets. Les 24 bits pour adresser les segments sont partagés moitié-moitié pour l'adressage des tables, ce qui fait 4096 ''Object Table'' différentes dans l'''Object Table Directory'', et chaque ''Object Table'' contient 4096 segments. ====Le jeu d'instruction de l'Intel iAPX 432==== L'Intel iAPX 432 est une machine à pile. Le jeu d'instruction de l'Intel iAPX 432 gère pas moins de 230 instructions différentes. Il gére deux types d'instructions : les instructions normales, et celles qui manipulent des segments/objets. Les premières permettent de manipuler des nombres entiers, des caractères, des chaînes de caractères, des tableaux, etc. Les secondes sont spécialement dédiées à la manipulation des capacités. Il y a une instruction pour copier une capacité, une autre pour invalider une capacité, une autre pour augmenter ses droits d'accès (instruction sécurisée, éxecutable seulement sous certaines conditions), une autre pour restreindre ses droits d'accès. deux autres instructions créent un segment et renvoient la capacité associée, la première créant un segment typé, l'autre non. le processeur gérait aussi des instructions spécialement dédiées à la programmation système et idéales pour programmer des systèmes d'exploitation. De nombreuses instructions permettaient ainsi de commuter des processus, faire des transferts de messages entre processus, etc. Environ 40 % du micro-code était ainsi spécialement dédié à ces instructions spéciales. Les instructions sont de longueur variable et peuvent prendre n'importe quelle taille comprise entre 10 et 300 bits, sans vraiment de restriction de taille. Les bits d'une instruction sont regroupés en 4 grands blocs, 4 champs, qui ont chacun une signification particulière. * Le premier est l'opcode de l'instruction. * Le champ reference, doit être interprété différemment suivant la donnée à manipuler. Si cette donnée est un entier, un caractère ou un flottant, ce champ indique l'emplacement de la donnée en mémoire. Alors que si l'instruction manipule un objet, ce champ spécifie la capacité de l'objet en question. Ce champ est assez complexe et il est sacrément bien organisé. * Le champ format, n'utilise que 4 bits et a pour but de préciser si les données à manipuler sont en mémoire ou sur la pile. * Le champ classe permet de dire combien de données différentes l'instruction va devoir manipuler, et quelles seront leurs tailles. [[File:Encodage des instructions de l'Intel iAPX-432.png|centre|vignette|upright=2|Encodage des instructions de l'Intel iAPX-432.]] ====Le support de l'orienté objet sur l'Intel iAPX 432==== L'Intel 432 permet de définir des objets, qui correspondent aux classes des langages orientés objets. L'Intel 432 permet, à partir de fonctions définies par le programmeur, de créer des '''''domain objects''''', qui correspondent à une classe. Un ''domain object'' est un segment de capacité, dont les capacités pointent vers des fonctions ou un/plusieurs objets. Les fonctions et les objets sont chacun placés dans un segment. Une partie des fonctions/objets sont publics, ce qui signifie qu'ils sont accessibles en lecture par l'extérieur. Les autres sont privées, inaccessibles aussi bien en lecture qu'en écriture. L'exécution d'une fonction demande que le branchement fournisse deux choses : une capacité vers le ''domain object'', et la position de la fonction à exécuter dans le segment. La position permet de localiser la capacité de la fonction à exécuter. En clair, on accède au ''domain object'' d'abord, pour récupérer la capacité qui pointe vers la fonction à exécuter. Il est aussi possible pour le programmeur de définir de nouveaux types non supportés par le processeur, en faisant appel au système d'exploitation de l'ordinateur. Au niveau du processeur, chaque objet est typé au niveau de son object descriptor : celui-ci contient des informations qui permettent de déterminer le type de l'objet. Chaque type se voit attribuer un domain object qui contient toutes les fonctions capables de manipuler les objets de ce type et que l'on appelle le type manager. Lorsque l'on veut manipuler un objet d'un certain type, il suffit d'accéder à une capacité spéciale (le TCO) qui pointera dans ce type manager et qui précisera quel est l'objet à manipuler (en sélectionnant la bonne entrée dans la liste de capacité). Le type d'un objet prédéfini par le processeur est ainsi spécifié par une suite de 8 bits, tandis que le type d'un objet défini par le programmeur est défini par la capacité spéciale pointant vers son type manager. ===Conclusion=== Pour ceux qui veulent en savoir plus, je conseille la lecture de ce livre, disponible gratuitement sur internet (merci à l'auteur pour cette mise à disposition) : * [https://homes.cs.washington.edu/~levy/capabook/ Capability-Based Computer Systems]. Voici un document qui décrit le fonctionnement de l'Intel iAPX432 : * [https://homes.cs.washington.edu/~levy/capabook/Chapter9.pdf The Intel iAPX 432 ] ==La pagination== Avec la pagination, la mémoire est découpée en blocs de taille fixe, appelés des '''pages mémoires'''. La taille des pages varie suivant le processeur et le système d'exploitation et tourne souvent autour de 4 kibioctets. Mais elles sont de taille fixe : on ne peut pas en changer la taille. C'est la différence avec les segments, qui sont de taille variable. Le contenu d'une page en mémoire fictive est rigoureusement le même que le contenu de la page correspondante en mémoire physique. L'espace d'adressage est découpé en '''pages logiques''', alors que la mémoire physique est découpée en '''pages physique''' de même taille. Les pages logiques correspondent soit à une page physique, soit à une page swappée sur le disque dur. Quand une page logique est associée à une page physique, les deux ont le même contenu, mais pas les mêmes adresses. Les pages logiques sont numérotées, en partant de 0, afin de pouvoir les identifier/sélectionner. Même chose pour les pages physiques, qui sont elles aussi numérotées en partant de 0. [[File:Principe de la pagination.png|centre|vignette|upright=2|Principe de la pagination.]] Pour information, le tout premier processeur avec un système de mémoire virtuelle était le super-ordinateur Atlas. Il utilisait la pagination, et non la segmentation. Mais il fallu du temps avant que la méthode de la pagination prenne son essor dans les processeurs commerciaux x86. Un point important est que la pagination implique une coopération entre OS et hardware, les deux étant fortement mélés. Une partie des informations de cette section auraient tout autant leur place dans le wikilivre sur les systèmes d'exploitation, mais il est plus simple d'en parler ici. ===La mémoire virtuelle : le ''swapping'' et le remplacement des pages mémoires=== Le système d'exploitation mémorise des informations sur toutes les pages existantes dans une '''table des pages'''. C'est un tableau où chaque ligne est associée à une page logique. Une ligne contient un bit ''Valid'' qui indique si la page logique associée est swappée sur le disque dur ou non, et la position de la page physique correspondante en mémoire RAM. Elle peut aussi contenir des bits pour la protection mémoire, et bien d'autres. Les lignes sont aussi appelées des ''entrées de la table des pages'' [[File:Gestionnaire de mémoire virtuelle - Pagination et swapping.png|centre|vignette|upright=2|Table des pages.]] De plus, le système d'exploitation conserve une '''liste des pages vides'''. Le nom est assez clair : c'est une liste de toutes les pages de la mémoire physique qui sont inutilisées, qui ne sont allouées à aucun processus. Ces pages sont de la mémoire libre, utilisable à volonté. La liste des pages vides est mise à jour à chaque fois qu'un programme réserve de la mémoire, des pages sont alors prises dans cette liste et sont allouées au programme demandeur. ====Les défauts de page==== Lorsque l'on veut traduire l'adresse logique d'une page mémoire, le processeur vérifie le bit ''Valid'' et l'adresse physique. Si le bit ''Valid'' est à 1 et que l'adresse physique est présente, la traduction d'adresse s'effectue normalement. Mais si ce n'est pas le cas, l'entrée de la table des pages ne contient pas de quoi faire la traduction d'adresse. Soit parce que la page est swappée sur le disque dur et qu'il faut la copier en RAM, soit parce que les droits d'accès ne le permettent pas, soit parce que la page n'a pas encore été allouée, etc. On fait alors face à un '''défaut de page'''. Un défaut de page a lieu quand la MMU ne peut pas associer l'adresse logique à une adresse physique, quelque qu'en soit la raison. Il existe deux types de défauts de page : mineurs et majeurs. Un '''défaut de page majeur''' a lieu quand on veut accéder à une page déplacée sur le disque dur. Un défaut de page majeur lève une exception matérielle dont la routine rapatriera la page en mémoire RAM. S'il y a de la place en mémoire RAM, il suffit d'allouer une page vide et d'y copier la page chargée depuis le disque dur. Mais si ce n'est par le cas, on va devoir faire de la place en RAM en déplaçant une page mémoire de la RAM vers le disque dur. Dans tous les cas, c'est le système d'exploitation qui s'occupe du chargement de la page, le processeur n'est pas impliqué. Une fois la page chargée, la table des pages est mise à jour et la traduction d'adresse peut recommencer. Si je dis recommencer, c'est car l'accès mémoire initial est rejoué à l'identique, sauf que la traduction d'adresse réussit cette fois-ci. Un '''défaut de page mineur''' a lieu dans des circonstances pas très intuitives : la page est en mémoire physique, mais l'adresse physique de la page n'est pas accessible. Par exemple, il est possible que des sécurités empêchent de faire la traduction d'adresse, pour des raisons de protection mémoire. Une autre raison est la gestion des adresses synonymes, qui surviennent quand on utilise des libraires partagées entre programmes, de la communication inter-processus, des optimisations de type ''copy-on-write'', etc. Enfin, une dernière raison est que la page a été allouée à un programme par le système d'exploitation, mais qu'il n'a pas encore attribué sa position en mémoire. Pour comprendre comment c'est possible, parlons rapidement de l'allocation paresseuse. Imaginons qu'un programme fasse une demande d'allocation mémoire et se voit donc attribuer une ou plusieurs pages logiques. L'OS peut alors réagir de deux manières différentes. La première est d'attribuer une page physique immédiatement, en même temps que la page logique. En faisant ainsi, on ne peut pas avoir de défaut mineur, sauf en cas de problème de protection mémoire. Cette solution est simple, on l'appelle l''''allocation immédiate'''. Une autre solution consiste à attribuer une page logique, mais l'allocation de la page physique se fait plus tard. Elle a lieu la première fois que le programme tente d'écrire/lire dans la page physique. Un défaut mineur a lieu, et c'est lui qui force l'OS à attribuer une page physique pour la page logique demandée. On parle alors d''''allocation paresseuse'''. L'avantage est que l'on gagne en performance si des pages logiques sont allouées mais utilisées, ce qui peut arriver. Une optimisation permise par l'existence des défauts mineurs est le '''''copy-on-write'''''. Le but est d'optimiser la copie d'une page logique dans une autre. L'idée est que la copie est retardée quand elle est vraiment nécessaire, à savoir quand on écrit dans la copie. Tant que l'on ne modifie pas la copie, les deux pages logiques, originelle et copiée, pointent vers la même page physique. A quoi bon avoir deux copies avec le même contenu ? Par contre, la page physique est marquée en lecture seule. La moindre écriture déclenche une erreur de protection mémoire, et un défaut mineur. Celui-ci est géré par l'OS, qui effectue alors la copie dans une nouvelle page physique. Je viens de dire que le système d'exploitation gère les défauts de page majeurs/mineurs. Un défaut de page déclenche une exception matérielle, qui passe la main au système d'exploitation. Le système d'exploitation doit alors déterminer ce qui a levé l'exception, notamment identifier si c'est un défaut de page mineur ou majeur. Pour cela, le processeur a un ou plusieurs '''registres de statut''' qui indique l'état du processeur, qui sont utiles pour gérer les défauts de page. Ils indiquent quelle est l'adresse fautive, si l'accès était une lecture ou écriture, si l'accès a eu lieu en espace noyau ou utilisateur (les espaces mémoire ne sont pas les mêmes), etc. Les registres en question varient grandement d'une architecture de processeur à l'autre, aussi on ne peut pas dire grand chose de plus sur le sujet. Le reste est de toute façon à voir dans un cours sur les systèmes d'exploitation. ====Le remplacement des pages==== Les pages virtuelles font référence soit à une page en mémoire physique, soit à une page sur le disque dur. Mais l'on ne peut pas lire une page directement depuis le disque dur. Les pages sur le disque dur doivent être chargées en RAM, avant d'être utilisables. Ce n'est possible que si on a une page mémoire vide, libre. Si ce n'est pas le cas, on doit faire de la place en swappant une page sur le disque dur. Les pages font ainsi une sorte de va et vient entre le fichier d'échange et la RAM, suivant les besoins. Tout cela est effectué par une routine d'interruption du système d'exploitation, le processeur n'ayant pas vraiment de rôle là-dedans. Supposons que l'on veuille faire de la place en RAM pour une nouvelle page. Dans une implémentation naïve, on trouve une page à évincer de la mémoire, qui est copiée dans le ''swapfile''. Toutes les pages évincées sont alors copiées sur le disque dur, à chaque remplacement. Néanmoins, cette implémentation naïve peut cependant être améliorée si on tient compte d'un point important : si la page a été modifiée depuis le dernier accès. Si le programme/processeur a écrit dans la page, alors celle-ci a été modifiée et doit être sauvegardée sur le ''swapfile'' si elle est évincée. Par contre, si ce n'est pas le cas, la page est soit initialisée, soit déjà présente à l'identique dans le ''swapfile''. Mais cette optimisation demande de savoir si une écriture a eu lieu dans la page. Pour cela, on ajoute un '''''dirty bit''''' à chaque entrée de la table des pages, juste à côté du bit ''Valid''. Il indique si une écriture a eu lieu dans la page depuis qu'elle a été chargée en RAM. Ce bit est mis à jour par le processeur, automatiquement, lors d'une écriture. Par contre, il est remis à zéro par le système d'exploitation, quand la page est chargée en RAM. Si le programme se voit allouer de la mémoire, il reçoit une page vide, et ce bit est initialisé à 0. Il est mis à 1 si la mémoire est utilisée. Quand la page est ensuite swappée sur le disque dur, ce bit est remis à 0 après la sauvegarde. Sur la majorité des systèmes d'exploitation, il est possible d'interdire le déplacement de certaines pages sur le disque dur. Ces pages restent alors en mémoire RAM durant un temps plus ou moins long, parfois en permanence. Cette possibilité simplifie la vie des programmeurs qui conçoivent des systèmes d'exploitation : essayez d'exécuter l'interruption pour les défauts de page alors que la page contenant le code de l'interruption est placée sur le disque dur ! Là encore, cela demande d'ajouter un bit dans chaque entrée de la table des pages, qui indique si la page est swappable ou non. Le bit en question s'appelle souvent le '''bit ''swappable'''''. ====Les algorithmes de remplacement des pages pris en charge par l'OS==== Le choix de la page doit être fait avec le plus grand soin et il existe différents algorithmes qui permettent de décider quelle page supprimer de la RAM. Leur but est de swapper des pages qui ne seront pas accédées dans le futur, pour éviter d'avoir à faire triop de va-et-vient entre RAM et ''swapfile''. Les données qui sont censées être accédées dans le futur doivent rester en RAM et ne pas être swappées, autant que possible. Les algorithmes les plus simples pour le choix de page à évincer sont les suivants. Le plus simple est un algorithme aléatoire : on choisit la page au hasard. Mine de rien, cet algorithme est très simple à implémenter et très rapide à exécuter. Il ne demande pas de modifier la table des pages, ni même d'accéder à celle-ci pour faire son choix. Ses performances sont surprenamment correctes, bien que largement en-dessous de tous les autres algorithmes. L'algorithme FIFO supprime la donnée qui a été chargée dans la mémoire avant toutes les autres. Cet algorithme fonctionne bien quand un programme manipule des tableaux de grande taille, mais fonctionne assez mal dans le cas général. L'algorithme LRU supprime la donnée qui été lue ou écrite pour la dernière fois avant toutes les autres. C'est théoriquement le plus efficace dans la majorité des situations. Malheureusement, son implémentation est assez complexe et les OS doivent modifier la table des pages pour l'implémenter. L'algorithme le plus utilisé de nos jours est l''''algorithme NRU''' (''Not Recently Used''), une simplification drastique du LRU. Il fait la différence entre les pages accédées il y a longtemps et celles accédées récemment, d'une manière très binaire. Les deux types de page sont appelés respectivement les '''pages froides''' et les '''pages chaudes'''. L'OS swappe en priorité les pages froides et ne swappe de page chaude que si aucune page froide n'est présente. L'algorithme est simple : il choisit la page à évincer au hasard parmi une page froide. Si aucune page froide n'est présente, alors il swappe au hasard une page chaude. Pour implémenter l'algorithme NRU, l'OS mémorise, dans chaque entrée de la table des pages, si la page associée est froide ou chaude. Pour cela, il met à 0 ou 1 un bit dédié : le '''bit ''Accessed'''''. La différence avec le bit ''dirty'' est que le bit ''dirty'' est mis à jour uniquement lors des écritures, alors que le bit ''Accessed'' l'est aussi lors d'une lecture. Uen lecture met à 1 le bit ''Accessed'', mais ne touche pas au bit ''dirty''. Les écritures mettent les deux bits à 1. Implémenter l'algorithme NRU demande juste de mettre à jour le bit ''Accessed'' de chaque entrée de la table des pages. Et sur les architectures modernes, le processeur s'en charge automatiquement. A chaque accès mémoire, que ce soit en lecture ou en écriture, le processeur met à 1 ce bit. Par contre, le système d'exploitation le met à 0 à intervalles réguliers. En conséquence, quand un remplacement de page doit avoir lieu, les pages chaudes ont de bonnes chances d'avoir le bit ''Accessed'' à 1, alors que les pages froides l'ont à 0. Ce n'est pas certain, et on peut se trouver dans des cas où ce n'est pas le cas. Par exemple, si un remplacement a lieu juste après la remise à zéro des bits ''Accessed''. Le choix de la page à remplacer est donc imparfait, mais fonctionne bien en pratique. Tous les algorithmes précédents ont chacun deux variantes : une locale, et une globale. Avec la version locale, la page qui va être rapatriée sur le disque dur est une page réservée au programme qui est la cause du page miss. Avec la version globale, le système d'exploitation va choisir la page à virer parmi toutes les pages présentes en mémoire vive. ===La protection mémoire avec la pagination=== Avec la pagination, chaque page a des '''droits d'accès''' précis, qui permettent d'autoriser ou interdire les accès en lecture, écriture, exécution, etc. La table des pages mémorise les autorisations pour chaque page, sous la forme d'une suite de bits où chaque bit autorise/interdit une opération bien précise. En pratique, les tables de pages modernes disposent de trois bits : un qui autorise/interdit les accès en lecture, un qui autorise/interdit les accès en écriture, un qui autorise/interdit l'éxecution du contenu de la page. Le format exact de la suite de bits a cependant changé dans le temps sur les processeurs x86 modernes. Par exemple, avant le passage au 64 bits, les CPU et OS ne pouvaient pas marquer une page mémoire comme non-exécutable. C'est seulement avec le passage au 64 bits qu'a été ajouté un bit pour interdire l'exécution de code depuis une page. Ce bit, nommé '''bit NX''', est à 0 si la page n'est pas exécutable et à 1 sinon. Le processeur vérifie à chaque chargement d'instruction si le bit NX de page lue est à 1. Sinon, il lève une exception matérielle et laisse la main à l'OS. Une amélioration de cette protection est la technique dite du '''''Write XOR Execute''''', abréviée WxX. Elle consiste à interdire les pages d'être à la fois accessibles en écriture et exécutables. Il est possible de changer les autorisations en cours de route, ceci dit. Les premiers IBM 360 disposaient d'un mécanisme de protection mémoire totalement différent, sans registres limite/base. Ce mécanisme de protection attribue à chaque programme une '''clé de protection''', qui consiste en un nombre unique de 4 bits (chaque programme a donc une clé différente de ses collègues). La mémoire est fragmentée en blocs de même taille, de 2 kibioctets. Le processeur mémorise, pour chacun de ses blocs, la clé de protection du programme qui a réservé ce bloc. À chaque accès mémoire, le processeur compare la clé de protection du programme en cours d’exécution et celle du bloc de mémoire de destination. Si les deux clés sont différentes, alors un programme a effectué un accès hors des clous et il se fait sauvagement arrêter. ===La traduction d'adresse avec la pagination=== Comme dit plus haut, les pages sont numérotées, de 0 à une valeur maximale, afin de les identifier. Le numéro en question est appelé le '''numéro de page'''. Il est utilisé pour dire au processeur : je veux lire une donnée dans la page numéro 20, la page numéro 90, etc. Une fois qu'on a le numéro de page, on doit alors préciser la position de la donnée dans la page, appelé le '''décalage''', ou encore l'''offset''. Le numéro de page et le décalage se déduisent à partir de l'adresse, en divisant l'adresse par la taille de la page. Le quotient obtenu donne le numéro de la page, alors que le reste est le décalage. Les processeurs actuels utilisent tous des pages dont la taille est une puissance de deux, ce qui fait que ce calcul est fortement simplifié. Sous cette condition, le numéro de page correspond aux bits de poids fort de l'adresse, alors que le décalage est dans les bits de poids faible. Le numéro de page existe en deux versions : un numéro de page physique qui identifie une page en mémoire physique, et un numéro de page logique qui identifie une page dans la mémoire virtuelle. Traduire l'adresse logique en adresse physique demande de remplacer le numéro de la page logique en un numéro de page physique. [[File:Phycical address.JPG|centre|vignette|upright=2|Traduction d'adresse avec la pagination.]] ====Les tables des pages simples==== Dans le cas le plus simple, il n'y a qu'une seule table des pages, qui est adressée par les numéros de page logique. La table des pages est un vulgaire tableau d'adresses physiques, placées les unes à la suite des autres. Avec cette méthode, la table des pages a autant d'entrée qu'il y a de pages logiques en mémoire virtuelle. Accéder à la mémoire nécessite donc d’accéder d'abord à la table des pages en mémoire, de calculer l'adresse de l'entrée voulue, et d’y accéder. [[File:Table des pages.png|centre|vignette|upright=2|Table des pages.]] La table des pages est souvent stockée dans la mémoire RAM, son adresse est connue du processeur, mémorisée dans un registre spécialisé du processeur. Le processeur effectue automatiquement le calcul d'adresse à partir de l'adresse de base et du numéro de page logique. [[File:Address translation (32-bit).png|centre|vignette|upright=2|Address translation (32-bit)]] ====Les tables des pages inversées==== Sur certains systèmes, notamment sur les architectures 64 bits ou plus, le nombre de pages est très important. Sur les ordinateurs x86 récents, les adresses sont en pratique de 48 bits, les bits de poids fort étant ignorés en pratique, ce qui fait en tout 68 719 476 736 pages. Chaque entrée de la table des pages fait au minimum 48 bits, mais fait plus en pratique : partons sur 64 bits par entrée, soit 8 octets. Cela fait 549 755 813 888 octets pour la table des pages, soit plusieurs centaines de gibioctets ! Une table des pages normale serait tout simplement impraticable. Pour résoudre ce problème, on a inventé les '''tables des pages inversées'''. L'idée derrière celles-ci est l'inverse de la méthode précédente. La méthode précédente stocke, pour chaque page logique, son numéro de page physique. Les tables des pages inversées font l'inverse : elles stockent, pour chaque numéro de page physique, la page logique qui correspond. Avec cette méthode table des pages contient ainsi autant d'entrées qu'il y a de pages physiques. Elle est donc plus petite qu'avant, vu que la mémoire physique est plus petite que la mémoire virtuelle. Quand le processeur veut convertir une adresse virtuelle en adresse physique, la MMU recherche le numéro de page de l'adresse virtuelle dans la table des pages. Le numéro de l'entrée à laquelle se trouve ce morceau d'adresse virtuelle est le morceau de l'adresse physique. Pour faciliter le processus de recherche dans la page, la table des pages inversée est ce que l'on appelle une table de hachage. C'est cette solution qui est utilisée sur les processeurs Power PC. [[File:Table des pages inversée.jpg|centre|vignette|upright=2|Table des pages inversée.]] ====Les tables des pages multiples par espace d'adressage==== Dans les deux cas précédents, il y a une table des pages unique. Cependant, les concepteurs de processeurs et de systèmes d'exploitation ont remarqué que les adresses les plus hautes et/ou les plus basses sont les plus utilisées, alors que les adresses situées au milieu de l'espace d'adressage sont peu utilisées en raison du fonctionnement de la pile et du tas. Il y a donc une partie de la table des pages qui ne sert à rien et est utilisé pour des adresses inutilisées. C'est une source d'économie d'autant plus importante que les tables des pages sont de plus en plus grosses. Pour profiter de cette observation, les concepteurs d'OS ont décidé de découper l'espace d'adressage en plusieurs sous-espaces d'adressage de taille identique : certains localisés dans les adresses basses, d'autres au milieu, d'autres tout en haut, etc. Et vu que l'espace d'adressage est scindé en plusieurs parties, la table des pages l'est aussi, elle est découpée en plusieurs sous-tables. Si un sous-espace d'adressage n'est pas utilisé, il n'y a pas besoin d'utiliser de la mémoire pour stocker la table des pages associée. On ne stocke que les tables des pages pour les espaces d'adressage utilisés, ceux qui contiennent au moins une donnée. L'utilisation de plusieurs tables des pages ne fonctionne que si le système d'exploitation connaît l'adresse de chaque table des pages (celle de la première entrée). Pour cela, le système d'exploitation utilise une super-table des pages, qui stocke les adresses de début des sous-tables de chaque sous-espace. En clair, la table des pages est organisé en deux niveaux, la super-table étant le premier niveau et les sous-tables étant le second niveau. L'adresse est structurée de manière à tirer profit de cette organisation. Les bits de poids fort de l'adresse sélectionnent quelle table de second niveau utiliser, les bits du milieu de l'adresse sélectionne la page dans la table de second niveau et le reste est interprété comme un ''offset''. Un accès à la table des pages se fait comme suit. Les bits de poids fort de l'adresse sont envoyés à la table de premier niveau, et sont utilisés pour récupérer l'adresse de la table de second niveau adéquate. Les bits au milieu de l'adresse sont envoyés à la table de second niveau, pour récupérer le numéro de page physique. Le tout est combiné avec l'''offset'' pour obtenir l'adresse physique finale. [[File:Table des pages hiérarchique.png|centre|vignette|upright=2|Table des pages hiérarchique.]] On peut aussi aller plus loin et découper la table des pages de manière hiérarchique, chaque sous-espace d'adressage étant lui aussi découpé en sous-espaces d'adressages. On a alors une table de premier niveau, plusieurs tables de second niveau, encore plus de tables de troisième niveau, et ainsi de suite. Cela peut aller jusqu'à 5 niveaux sur les processeurs x86 64 bits modernes. On parle alors de '''tables des pages emboitées'''. Dans ce cours, la table des pages désigne l'ensemble des différents niveaux de cette organisation, toutes les tables inclus. Seules les tables du dernier niveau mémorisent des numéros de page physiques, les autres tables mémorisant des pointeurs, des adresses vers le début des tables de niveau inférieur. Un exemple sera donné plus bas, dans la section suivante. ====L'exemple des processeurs x86==== Pour rendre les explications précédentes plus concrètes, nous allons prendre l'exemple des processeur x86 anciens, de type 32 bits. Les processeurs de ce type utilisaient deux types de tables des pages : une table des page unique et une table des page hiérarchique. Les deux étaient utilisées dans cas séparés. La table des page unique était utilisée pour les pages larges et encore seulement en l'absence de la technologie ''physical adress extension'', dont on parlera plus bas. Les autres cas utilisaient une table des page hiérarchique, à deux niveaux, trois niveaux, voire plus. Une table des pages unique était utilisée pour les pages larges (de 2 mébioctets et plus). Pour les pages de 4 mébioctets, il y avait une unique table des pages, adressée par les 10 bits de poids fort de l'adresse, les bits restants servant comme ''offset''. La table des pages contenait 1024 entrées de 4 octets chacune, ce qui fait en tout 4 kibioctet pour la table des pages. La table des page était alignée en mémoire sur un bloc de 4 kibioctet (sa taille). [[File:X86 Paging 4M.svg|centre|vignette|upright=2|X86 Paging 4M]] Pour les pages de 4 kibioctets, les processeurs x86-32 bits utilisaient une table des page hiérarchique à deux niveaux. Les 10 bits de poids fort l'adresse adressaient la table des page maitre, appelée le directoire des pages (''page directory''), les 10 bits précédents servaient de numéro de page logique, et les 12 bits restants servaient à indiquer la position de l'octet dans la table des pages. Les entrées de chaque table des pages, mineure ou majeure, faisaient 32 bits, soit 4 octets. Vous remarquerez que la table des page majeure a la même taille que la table des page unique obtenue avec des pages larges (de 4 mébioctets). [[File:X86 Paging 4K.svg|centre|vignette|upright=2|X86 Paging 4K]] La technique du '''''physical adress extension''''' (PAE), utilisée depuis le Pentium Pro, permettait aux processeurs x86 32 bits d'adresser plus de 4 gibioctets de mémoire, en utilisant des adresses physiques de 64 bits. Les adresses virtuelles de 32 bits étaient traduites en adresses physiques de 64 bits grâce à une table des pages adaptée. Cette technologie permettait d'adresser plus de 4 gibioctets de mémoire au total, mais avec quelques limitations. Notamment, chaque programme ne pouvait utiliser que 4 gibioctets de mémoire RAM pour lui seul. Mais en lançant plusieurs programmes, on pouvait dépasser les 4 gibioctets au total. Pour cela, les entrées de la table des pages passaient à 64 bits au lieu de 32 auparavant. La table des pages gardait 2 niveaux pour les pages larges en PAE. [[File:X86 Paging PAE 2M.svg|centre|vignette|upright=2|X86 Paging PAE 2M]] Par contre, pour les pages de 4 kibioctets en PAE, elle était modifiée de manière à ajouter un niveau de hiérarchie, passant de deux niveaux à trois. [[File:X86 Paging PAE 4K.svg|centre|vignette|upright=2|X86 Paging PAE 4K]] En 64 bits, la table des pages est une table des page hiérarchique avec 5 niveaux. Seuls les 48 bits de poids faible des adresses sont utilisés, les 16 restants étant ignorés. [[File:X86 Paging 64bit.svg|centre|vignette|upright=2|X86 Paging 64bit]] ====Les circuits liés à la gestion de la table des pages==== En théorie, la table des pages est censée être accédée à chaque accès mémoire. Mais pour éviter d'avoir à lire la table des pages en mémoire RAM à chaque accès mémoire, les concepteurs de processeurs ont décidé d'implanter un cache dédié, le '''''translation lookaside buffer''''', ou TLB. Le TLB stocke au minimum de quoi faire la traduction entre adresse virtuelle et adresse physique, à savoir une correspondance entre numéro de page logique et numéro de page physique. Pour faire plus général, il stocke des entrées de la table des pages. [[File:MMU principle updated.png|centre|vignette|upright=2.0|MMU avec une TLB.]] Les accès à la table des pages sont gérés de deux façons : soit le processeur gère tout seul la situation, soit il délègue cette tâche au système d’exploitation. Sur les processeurs anciens, le système d'exploitation gère le parcours de la table des pages. Mais cette solution logicielle n'a pas de bonnes performances. D'autres processeurs gèrent eux-mêmes le défaut d'accès à la TLB et vont chercher d'eux-mêmes les informations nécessaires dans la table des pages. Ils disposent de circuits, les '''''page table walkers''''' (PTW), qui s'occupent eux-mêmes du défaut. Les ''page table walkers'' contiennent des registres qui leur permettent de faire leur travail. Le plus important est celui qui mémorise la position de la table des pages en mémoire RAM, dont nous avons parlé plus haut. Les PTW ont besoin, pour faire leur travail, de mémoriser l'adresse physique de la table des pages, ou du moins l'adresse de la table des pages de niveau 1 pour des tables des pages hiérarchiques. Mais d'autres registres existent. Toutes les informations nécessaires pour gérer les défauts de TLB sont stockées dans des registres spécialisés appelés des '''tampons de PTW''' (PTW buffers). ===L'abstraction matérielle des processus : une table des pages par processus=== [[File:Memoire virtuelle.svg|vignette|Mémoire virtuelle]] Il est possible d'implémenter l'abstraction matérielle des processus avec la pagination. En clair, chaque programme lancé sur l'ordinateur dispose de son propre espace d'adressage, ce qui fait que la même adresse logique ne pointera pas sur la même adresse physique dans deux programmes différents. Pour cela, il y a plusieurs méthodes. ====L'usage d'une table des pages unique avec un identifiant de processus dans chaque entrée==== La première solution n'utilise qu'une seule table des pages, mais chaque entrée est associée à un processus. Pour cela, chaque entrée contient un '''identifiant de processus''', un numéro qui précise pour quel processus, pour quel espace d'adressage, la correspondance est valide. La page des tables peut aussi contenir des entrées qui sont valides pour tous les processus en même temps. L'intérêt n'est pas évident, mais il le devient quand on se rappelle que le noyau de l'OS est mappé dans le haut de l'espace d'adressage. Et peu importe l'espace d'adressage, le noyau est toujours mappé de manière identique, les mêmes adresses logiques adressant la même adresse mémoire. En conséquence, les correspondances adresse physique-logique sont les mêmes pour le noyau, peu importe l'espace d'adressage. Dans ce cas, la correspondance est mémorisée dans une entrée, mais sans identifiant de processus. A la place, l'entrée contient un '''bit ''global''''', qui précise que cette correspondance est valide pour tous les processus. Le bit global accélère rapidement la traduction d'adresse pour l'accès au noyau. Un défaut de cette méthode est que le partage d'une page entre plusieurs processus est presque impossible. Impossible de partager une page avec seulement certains processus et pas d'autres : soit on partage une page avec tous les processus, soit on l'alloue avec un seul processus. ====L'usage de plusieurs tables des pages==== Une solution alternative, plus simple, utilise une table des pages par processus lancé sur l'ordinateur, une table des pages unique par espace d'adressage. À chaque changement de processus, le registre qui mémorise la position de la table des pages est modifié pour pointer sur la bonne. C'est le système d'exploitation qui se charge de cette mise à jour. Avec cette méthode, il est possible de partager une ou plusieurs pages entre plusieurs processus, en configurant les tables des pages convenablement. Les pages partagées sont mappées dans l'espace d'adressage de plusieurs processus, mais pas forcément au même endroit, pas forcément dans les mêmes adresses logiques. On peut placer la page partagée à l'adresse logique 0x0FFF pour un processus, à l'adresse logique 0xFF00 pour un autre processus, etc. Par contre, les entrées de la table des pages pour ces adresses pointent vers la même adresse physique. [[File:Vm5.png|centre|vignette|upright=2|Tables des pages de plusieurs processus.]] ===La taille des pages=== La taille des pages varie suivant le processeur et le système d'exploitation et tourne souvent autour de 4 kibioctets. Les processeurs actuels gèrent plusieurs tailles différentes pour les pages : 4 kibioctets par défaut, 2 mébioctets, voire 1 à 4 gibioctets pour les pages les plus larges. Les pages de 4 kibioctets sont les pages par défaut, les autres tailles de page sont appelées des ''pages larges''. La taille optimale pour les pages dépend de nombreux paramètres et il n'y a pas de taille qui convienne à tout le monde. Certaines applications gagnent à utiliser des pages larges, d'autres vont au contraire perdre drastiquement en performance en les utilisant. Le désavantage principal des pages larges est qu'elles favorisent la fragmentation mémoire. Si un programme veut réserver une portion de mémoire, pour une structure de donnée quelconque, il doit réserver une portion dont la taille est multiple de la taille d'une page. Par exemple, un programme ayant besoin de 110 kibioctets allouera 28 pages de 4 kibioctets, soit 120 kibioctets : 2 kibioctets seront perdus. Par contre, avec des pages larges de 2 mébioctets, on aura une perte de 2048 - 110 = 1938 kibioctets. En somme, des morceaux de mémoire seront perdus, car les pages sont trop grandes pour les données qu'on veut y mettre. Le résultat est que le programme qui utilise les pages larges utilisent plus de mémoire et ce d'autant plus qu'il utilise des données de petite taille. Un autre désavantage est qu'elles se marient mal avec certaines techniques d'optimisations de type ''copy-on-write''. Mais l'avantage est que la traduction des adresses est plus performante. Une taille des pages plus élevée signifie moins de pages, donc des tables des pages plus petites. Et des pages des tables plus petites n'ont pas besoin de beaucoup de niveaux de hiérarchie, voire peuvent se limiter à des tables des pages simples, ce qui rend la traduction d'adresse plus simple et plus rapide. De plus, les programmes ont une certaine localité spatiale, qui font qu'ils accèdent souvent à des données proches. La traduction d'adresse peut alors profiter de systèmes de mise en cache dont nous parlerons dans le prochain chapitre, et ces systèmes de cache marchent nettement mieux avec des pages larges. Il faut noter que la taille des pages est presque toujours une puissance de deux. Cela a de nombreux avantages, mais n'est pas une nécessité. Par exemple, le tout premier processeur avec de la pagination, le super-ordinateur Atlas, avait des pages de 3 kibioctets. L'avantage principal est que la traduction de l'adresse physique en adresse logique est trivial avec une puissance de deux. Cela garantit que l'on peut diviser l'adresse en un numéro de page et un ''offset'' : la traduction demande juste de remplacer les bits de poids forts par le numéro de page voulu. Sans cela, la traduction d'adresse implique des divisions et des multiplications, qui sont des opérations assez couteuses. ===Les entrées de la table des pages=== Avant de poursuivre, faisons un rapide rappel sur les entrées de la table des pages. Nous venons de voir que la table des pages contient de nombreuses informations : un bit ''valid'' pour la mémoire virtuelle, des bits ''dirty'' et ''accessed'' utilisés par l'OS, des bits de protection mémoire, un bit ''global'' et un potentiellement un identifiant de processus, etc. Étudions rapidement le format de la table des pages sur un processeur x86 32 bits. * Elle contient d'abord le numéro de page physique. * Les bits AVL sont inutilisés et peuvent être configurés à loisir par l'OS. * Le bit G est le bit ''global''. * Le bit PS vaut 0 pour une page de 4 kibioctets, mais est mis à 1 pour une page de 4 mébioctets dans le cas où le processus utilise des pages larges. * Le bit D est le bit ''dirty''. * Le bit A est le bit ''accessed''. * Le bit PCD indique que la page ne peut pas être cachée, dans le sens où le processeur ne peut copier son contenu dans le cache et doit toujours lire ou écrire cette page directement dans la RAM. * Le bit PWT indique que les écritures doivent mettre à jour le cache et la page en RAM (dans le chapitre sur le cache, on verra qu'il force le cache à se comporter comme un cache ''write-through'' pour cette page). * Le bit U/S précise si la page est accessible en mode noyau ou utilisateur. * Le bit R/W indique si la page est accessible en écriture, toutes les pages sont par défaut accessibles en lecture. * Le bit P est le bit ''valid''. [[File:PDE.png|centre|vignette|upright=2.5|Table des pages des processeurs Intel 32 bits.]] ==Comparaison des différentes techniques d'abstraction mémoire== Pour résumer, l'abstraction mémoire permet de gérer : la relocation, la protection mémoire, l'isolation des processus, la mémoire virtuelle, l'extension de l'espace d'adressage, le partage de mémoire, etc. Elles sont souvent implémentées en même temps. Ce qui fait qu'elles sont souvent confondues, alors que ce sont des concepts sont différents. Ces liens sont résumés dans le tableau ci-dessous. {|class="wikitable" |- ! ! colspan="5" | Avec abstraction mémoire ! rowspan="2" | Sans abstraction mémoire |- ! ! Relocation matérielle ! Segmentation en mode réel (x86) ! Segmentation, général ! Architectures à capacités ! Pagination |- ! Abstraction matérielle des processus | colspan="4" | Oui, relocation matérielle | Oui, liée à la traduction d'adresse | Impossible |- ! Mémoire virtuelle | colspan="2" | Non, sauf émulation logicielle | colspan="3" | Oui, gérée par le processeur et l'OS | Non, sauf émulation logicielle |- ! Extension de l'espace d'adressage | colspan="2" | Oui : registre de base élargi | colspan="2" | Oui : adresse de base élargie dans la table des segments | ''Physical Adress Extension'' des processeurs 32 bits | Commutation de banques |- ! Protection mémoire | Registre limite | Aucune | colspan="2" | Registre limite, droits d'accès aux segments | Gestion des droits d'accès aux pages | Possible, méthodes variées |- ! Partage de mémoire | colspan="2" | Non | colspan="2" | Segment partagés | Pages partagées | Possible, méthodes variées |} ===Les différents types de segmentation=== La segmentation regroupe plusieurs techniques franchement différentes, qui auraient gagné à être nommées différemment. La principale différence est l'usage de registres de relocation versus des registres de sélecteurs de segments. L'usage de registres de relocation est le fait de la relocation matérielle, mais aussi de la segmentation en mode réel des CPU x86. Par contre, l'usage de sélecteurs de segments est le fait des autres formes de segmentation, architectures à capacité inclues. La différence entre les deux est le nombre de segments. L'usage de registres de relocation fait que le CPU ne gère qu'un petit nombre de segments de grande taille. La mémoire virtuelle est donc rarement implémentée vu que swapper des segments de grande taille est trop long, l'impact sur les performances est trop important. Sans compter que l'usage de registres de base se marie très mal avec la mémoire virtuelle. Vu qu'un segment peut être swappé ou déplacée n'importe quand, il faut invalider les registres de base au moment du swap/déplacement, ce qui n'est pas chose aisée. Aucun processeur ne gère cela, les méthodes pour n'existent tout simplement pas. L'usage de registres de base implique que la mémoire virtuelle est absente. La protection mémoire est aussi plus limitée avec l'usage de registres de relocation. Elle se limite à des registres limite, mais la gestion des droits d'accès est limitée. En théorie, la segmentation en mode réel pourrait implémenter une version limitée de protection mémoire, avec une protection de l'espace exécutable. Mais ca n'a jamais été fait en pratique sur les processeurs x86. Le partage de la mémoire est aussi difficile sur les architectures avec des registres de base. L'absence de table des segments fait que le partage d'un segment est basiquement impossible sans utiliser des méthodes complétement tordues, qui ne sont jamais implémentées en pratique. ===Segmentation versus pagination=== Par rapport à la pagination, la segmentation a des avantages et des inconvénients. Tous sont liés aux propriétés des segments et pages : les segments sont de grande taille et de taille variable, les pages sont petites et de taille fixe. L'avantage principal de la segmentation est sa rapidité. Le fait que les segments sont de grande taille fait qu'on a pas besoin d'équivalent aux tables des pages inversée ou multiple, juste d'une table des segments toute simple. De plus, les échanges entre table des pages/segments et registres sont plus rares avec la segmentation. Par exemple, si un programme utilise un segment de 2 gigas, tous les accès dans le segment se feront avec une seule consultation de la table des segments. Alors qu'avec la pagination, il faudra une consultation de la table des pages chaque bloc de 4 kibioctet, au minimum. Mais les désavantages sont nombreux. Le système d'exploitation doit agencer les segments en RAM, et c'est une tâche complexe. Le fait que les segments puisse changer de taille rend le tout encore plus complexe. Par exemple, si on colle les segments les uns à la suite des autres, changer la taille d'un segment demande de réorganiser tous les segments en RAM, ce qui demande énormément de copies RAM-RAM. Une autre possibilité est de laisser assez d'espace entre les segments, mais cet espace est alors gâché, dans le sens où on ne peut pas y placer un nouveau segment. Swapper un segment est aussi très long, vu que les segments sont de grande taille, alors que swapper une page est très rapide. <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=L'espace d'adressage du processeur | prevText=L'espace d'adressage du processeur | next=Les méthodes de synchronisation entre processeur et périphériques | nextText=Les méthodes de synchronisation entre processeur et périphériques }} </noinclude> 6vo4gj8za1tlml3ck4jour4fitgh3lo Formation musicale/Qu'est-ce que la musique ? 0 75724 746322 744830 2025-07-08T12:05:49Z Cdang 1202 /* Musiques savante, populaire et traditionnelle */ précision sur la musique classique 746322 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de musique classique est lui-même ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes pipe ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone alto Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse NEXT14 Day 1 - Image by Dan Taylor - dan@heisenbergmedia.com-256 (14091533006).jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] 9i7r33hnr4n396wthoqpjgv7ahjj0mm 746323 746322 2025-07-08T12:08:02Z Cdang 1202 /* Musiques savante, populaire et traditionnelle */ précision dans le relatif 746323 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). Au {{pc|xxi}}{{e}} siècle, certains qualifieront certainement le jazz de musique élitiste, la musique la plus écoutée en France étant le rap. La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de musique classique est lui-même ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes pipe ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone alto Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse NEXT14 Day 1 - Image by Dan Taylor - dan@heisenbergmedia.com-256 (14091533006).jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] 3pnraichypxo47xuf9v9n9owx70yfil 746324 746323 2025-07-08T12:08:48Z Cdang 1202 /* Musiques savante, populaire et traditionnelle */ précision 746324 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). Au {{pc|xxi}}{{e}} siècle, certains qualifieront certainement le jazz de musique élitiste, la musique la plus écoutée en France étant le rap. La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de « musique classique » est lui aussi ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes pipe ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone alto Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse NEXT14 Day 1 - Image by Dan Taylor - dan@heisenbergmedia.com-256 (14091533006).jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] l4swjb4epxbyliy4bsk8kjoag1c6osj 746325 746324 2025-07-08T12:12:59Z Cdang 1202 /* Les bois */ typo 746325 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). Au {{pc|xxi}}{{e}} siècle, certains qualifieront certainement le jazz de musique élitiste, la musique la plus écoutée en France étant le rap. La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de « musique classique » est lui aussi ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone alto Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse NEXT14 Day 1 - Image by Dan Taylor - dan@heisenbergmedia.com-256 (14091533006).jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] 5607amvcilr1beahbvzdlt0d497bu4m 746326 746325 2025-07-08T12:14:39Z Cdang 1202 /* Les bois */ erreur su rle sax 746326 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). Au {{pc|xxi}}{{e}} siècle, certains qualifieront certainement le jazz de musique élitiste, la musique la plus écoutée en France étant le rap. La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de « musique classique » est lui aussi ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone ténor Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse NEXT14 Day 1 - Image by Dan Taylor - dan@heisenbergmedia.com-256 (14091533006).jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] c66c0hehiekvyxo9ln8jfk2v93tnh87 746327 746326 2025-07-08T12:18:09Z Cdang 1202 /* Les cuivres */ autre image (lien mort) 746327 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). Au {{pc|xxi}}{{e}} siècle, certains qualifieront certainement le jazz de musique élitiste, la musique la plus écoutée en France étant le rap. La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de « musique classique » est lui aussi ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone ténor Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse LyceumSimplyThree-0231.jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] 0t9osek9ygmhd1jg4vb2ez1xw1ch5qt 746328 746327 2025-07-08T12:18:52Z Cdang 1202 /* Les percussions */ claves 746328 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). Au {{pc|xxi}}{{e}} siècle, certains qualifieront certainement le jazz de musique élitiste, la musique la plus écoutée en France étant le rap. La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de « musique classique » est lui aussi ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone ténor Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse LyceumSimplyThree-0231.jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * claves ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] mn0wojc1zz48q6psn1vzwpty7m7yy25 746329 746328 2025-07-08T12:19:46Z Cdang 1202 /* Les percussions */ photo claves 746329 wikitext text/x-wiki {{Bases de solfège}} <span style="font-size:25px;">1. Qu'est-ce que la musique ?</span> ---- La musique est l'art d'organiser les sons et les silences afin de provoquer une émotion. == Technique de production des sons == Puisqu'il faut organiser les sons, il faut pouvoir déterminer l'instant où ils vont se produire : la musique concerne donc initialement les sons provoqués par les humains. Il peut s'agir de sons créés par l'utilisation du seul corps : * voix ; * sifflement ; * percussions corporelles : claquer des mains ou des doigts, frapper des pieds par terre, frapper ses cuisses, sa poitrine, claquer la langue… Il peut également s'agir de sons produits des instruments : flûte, tambour, piano, violon, guitare… Les instruments de musique sont des outils, des objets créés par les humains dans un but précis (ici créer des sons) ; ils consistent à créer des vibrations de l'air, soit en faisant vibrer une surface (surface d'une percussion, caisse de résonance d'un instrument à cordes), soit en provoquant des perturbations dans un flux d'air (instruments à vent). Grâce à l'invention de l'enregistrement à la fin du {{pc|xix}}<sup>e</sup> siècle, il est possible d'utiliser des sons naturels dans des œuvres. Mais le bruit naturel environnant, par exemple lorsque l'on est en plein air, peut aussi faire partie de la musique, en tant que « fond, papier peint, tapisserie » (pour les bruits d'un court d'eau ou le sifflement du vent) ou en tant que sons aléatoires (ressac, chants d'oiseaux dont on ne peut prévoir quand ils vont survenir). L'invention du haut-parleur à la fin du {{pc|xix}}<sup>e</sup> siècle donne naissance à la musique amplifiée : les sons peuvent être captés par un microphone (ou micro) puis transmis à distance et rejoués plus fort ou plus bas ; soit transmis par un fil, le haut-parleur étant éloigné du micro (cas d'une salle de concert mais aussi de la musique écoutée en ligne par Internet), soit transmis par les ondes radio (radio, télévision, téléphone portable, oreillette ''bluetooth'', liaison wifi). L'invention de l'électronique au début du {{pc|xx}}<sup>e</sup> siècle fournit de nouvelles manières de créer des sons : le son produit par le haut-parleur n'est plus la reproduction d'un son capté mais est un son créé directement par un circuit électronique, ce qui donne le thérémine ou les ondes Martenot vers 1920. Puis le développement de l'informatique permet de définir le son à produire par un programme ce qui donne naissance à la musique synthétisée, et en particulier au synthétiseur dans les années 1950. == Usage de la musique == La musique se retrouve dans toutes les cultures. Lorsqu'elle est pratiquée en groupe, elle rejoint les autres pratiques sociales : respecter des règles communes, partager un moment, créer quelque chose ensemble, faire partie d'un groupe… Si elle est en soi une activité, elle accompagne aussi les autres pratiques de représentation : danse, théâtre, cirque, cinéma. Elle accompagne également les cérémonies, célébrations et rites. Mais la musique provoque aussi des émotions individuellement, lorsque l'on joue ou que l'on écoute de la musique seul·e. Notons toutefois que la musique n'est pas identifiée comme une pratique explicite dans toutes les cultures. Par exemple, dans certains cas, la musique est utilisée exclusivement pour accompagner une activité, il n'y a pas forcément de mot spécifique pour désigner la musique en dehors de l'activité à laquelle elle est liée. ; Exemples de musique rituelle * {{lien web | url = https://www.dailymotion.com/video/x4vua6a | titre = <nowiki>[</nowiki>Resonances<nowiki>]</nowiki> Voices from Ancient Abbeys: Plainchant & Polyphony (Album presentation) | auteur = harmonia mundi | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} : plain-chant (musique sacrée chrétienne) * {{lien web | url = https://www.youtube.com/watch?v=PgPSU6SqDL0 | titre = A Native American Ritual Music | auteur = Ancestral Way Music | site = YouTube | date = 2020-09-09 | consulté le = 2021-01-20 }} : ''{{lang|en|Little Ritual}}'', Douglas Spotted Eagle * {{lien web | url = https://www.youtube.com/watch?v=yHexcVpHsb4 | titre = Kenya and Tanzania Witchcraft and Ritual Music (1975) | auteur = Aeolus 13 Umbra | site = YouTube | date = 2020-02-25 | consulté le = 2021-01-20 }} * {{lien web | url = https://www.youtube.com/watch?v=kdBSTAw_cKY | titre = Ritual Music of Tibetan Buddhism | auteur = Elena O Val | site = YouTube | date = 2009-09-18 | consulté le = 2021-01-20 }} : moines bouddhistes du monastère Dip Tse Chok Ling, Dharamsala La musique a parfois une utilité pratique, en particulier dans le cas des chants de travail ''({{lang|en|working song}})''. Ces chants permettent : * de se donner du cœur à l'ouvrage ; * de garder le moral dans des conditions difficiles, par exemple dans le cas des chants de marins qui restent longtemps sans toucher terre, ou des chants de bagnards ou d'esclaves ; * de se coordonner, de synchroniser ses gestes, de rythmer le travail ; * c'est parfois une manière de mesurer le temps : la durée du chant correspond à la durée de l'opération. ; Exemples de chants de travail * {{lien web | url = https://www.youtube.com/watch?v=ATlmhXuHutw | titre = Maria Marquez — Canto del Pilon | auteur = Alexey S | site = YouTube | date = 2010-02-16 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=sI8NH1421-c | titre = Chant de travail (work-song) | auteur = Documents musicaux | site = YouTube | date = 2015-04-09 | consulté le = 2021-01-13 }}, extrait de ''O’ Brother, Where Art Thou?'', Joel Cohen (2000) * {{lien web | url = https://www.youtube.com/watch?v=RALnF8RtITs | titre = Velkommen hjem Statsraad Lehmkuhl | auteur = wiostan | site = YouTube | date = 2016-12-10 | consulté le = 2021-01-13 }} (chant de marins) * {{lien web | url = https://www.youtube.com/watch?v=8eVcJlqWIEQ | titre = Ghana : Les forçats d'Elmina (extrait) | auteur = ThalassaOfficiel | site = YouTube | date = 2012-08-23 | consulté le = 2021-01-14 }} * {{lien web | url = https://www.youtube.com/watch?v=xzbp6ZS6oE8 | titre = Le kulning, un chant ancestral féminin pour appeler les troupeaux - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2021-02-19 | consulté le = 2021-03-04 }} * {{lien web | url = https://www.youtube.com/watch?v=te3osM4q1sI | titre = Le chant des sardinières - La chronique d'Aliette de Laleu | auteur = France Musique | site = YouTube | date = 2020-11-23 | consulté le = 2021-03-04 }} Dans certains cas, on veut inscrire la production de musique dans un lieu ayant ses propres sons, par exemple un théâtre de nature ou dans les rues, le métro… Dans d'autres cas, on veut au contraire se couper de l'environnement, s'isoler des bruits extérieurs considérés comme parasites, la musique se joue alors dans une salle de concert ou de spectacle. Dans certains cas on cherche à faire participer le public, qu'il danse, tape des mains et des pieds, chante en chœur ; dans d'autres cas, la musique ne sera qu'un tapis sonore pour une autre activité, par exemple un repas, un trajet en ascenseur ou des courses au supermarché ; parfois, on voudra que le public soit attentif et discret afin de ne pas interférer avec la musique produite. ; Participation du public * {{lien web | url = https://www.youtube.com/watch?v=lWFq8uILaq4 | titre = Pourquoi la foule chante toujours juste – Feat.PV NOVA | ÉPISODE #7 | auteur = Fouloscopie | site = YouTube | date = 2019-10-23 | consulté le = 2021-01-15 }} === Musique et langage === La musique est également un moyen de communication à distance : certains sons produits peuvent se propager bien plus loin que la voix et ces sons se distinguent d'autres bruits ambiants (et en particulier sur un champ de bataille). C'est le cas par exemple des [[w:fr:Langage sifflé|langues sifflées]], des langues tambourinées (par exemple utilisation du [[w:fr:Tama|tama]] ou du tambour à lèvres en Afrique), des cors (corne ou olifant, cor postal, cor des Alpes), et des sonneries militaires (fifre, clairon, tambour d'ordonnance). ; Exemple de langues musicales * {{lien web | url = https://www.youtube.com/watch?v=R64Rl6JWYxM | titre = Dans le Béarn, on siffle l'occitan pour se parler | auteur = AFP | site = YouTube | date = 2016-07-25 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.dailymotion.com/video/x5phv35 | titre = Une langue entièrement sifflée : le silbo gomero | auteur = Buzz moi ça ! | site = Dailymotion | date = 2017 | consulté la = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UbVz_okyY3g | titre = Le langage sifflé de l'île de la Gomera (îles Canaries), le Silbo Gomero | auteur = unescoFrench | site = YouTube | date = 2009-09-29 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=tWXVgIkdItY | titre = L'impressionnant langage sifflé en Turquie | auteur = HalalBooking | site = YouTube | date = 2018-02-09 | consulté le = 2021-01-13 }} * {{lien web | url = https://www.youtube.com/watch?v=UtzEjQG0RpI | titre = Le langage du cor des Alpes | auteur = Bruno Spinnler | site = YouTube | date = 2016-02-06 | consulté le = 2021-01-13 }} On peut toutefois se demander si les langues musicales relèvent de la musique ou bien sont simplement l'utilisation d'instruments de musique pour communiquer ; par exemple, si l'on utilise un piano pour faire du morse, est-ce encore de la musique ? Un compositeur ou interprète peut bien sûr intégrer du morse dans son morceau mais alors le sens du message ainsi codé devient secondaire. Par exemple, le ''silbo gomero'' est utilisé comme élément de la chanson ''Silbo'' de Féloche (album ''Silbo'', 2013) mais on ne s'intéresse pas au sens de ce qui est sifflé. * {{lien web | url = https://www.youtube.com/watch?v=jAlnL8JHetY | titre = Féloche - Silbo [Clip officiel] | auteur = FÉLOCHE | site = YouTube | date = 2013-10-15 | consulté le = 2021-01-21 }} {{citation bloc | 1=Si j'émets le son ''aï'', selon que je parle français, anglais ou allemand, cela signifiera une interjection de douleur, le pronom « je », ou un « œuf », tandis qu'en musique c'est le son seul qui agira en tant que tel, avec sa sonorité, sa hauteur, sa durée, son timbre, etc. La musique nous apprend donc à écouter les sons par aux-mêmes, et à les situer dans un ensemble d'autres sons dont la réunion traduit une pensée musicale, qui ne doit rien au langage parlé. […] Contrairement au langage parlé, la musique agit directement sur la sensibilité. | 2 = Jacques Chailley | 3 = ''La Musique'', (éd. Van de Velde, 1975), ISBN 2-85868-024-8, p. 7. }} Il n'y a probablement pas une frontière nette entre langage et musique. Aux deux extrêmes, il y a d'un côté la communication « purement pratique » (transmettre des informations), de l'autre une musique pensée uniquement comme un arrangement abstrait de sons. Mais dès que l'on prend en considération la prosodie de la langue — sonorités (rimes), intonations, rythme, scansion —, en particulier avec la poésie, on fait un pas vers la musique ; et lorsque la musique sert à exprimer un ressenti (sentiment, sensation, humeur) ou appuie une description, elle fait un pas vers le langage. Nous avons ainsi un continuum : communication pratique — poésie — chant — musique expressive — musique abstraite et une même œuvre peut alterner différents modes, par exemple une opérette alterne en général des parties parlées (dialogues ou monologues théâtraux), des récitatifs (parties parlées-chantées), des parties chantées (airs) et des mouvements instrumentaux. Pour clarifier les termes utilisés : pour la musique que nous avons appelé « expressive », nous pouvons citer la ''Lettre à Élise'' (''{{lang|de|Für Elise}}'', Bagatelle n<sup>o</sup>25 en ''la'' mineur WoO 59 de Ludwig van Beethoven, 1810), une lettre d'amour jouée ; ou bien les ''Tableaux d'une exposition'' ({{lang|ru|Картинки с выставки, ''Kartinki s vystavki''}}, Modeste Moussorgski, 1874), chaque pièce évoquant un tableau du peintre Viktor Hartmann, un ami du compositeur mort peu avant. Pour la musique que nous avons qualifiée abstraite, nous pouvons citer les fugues de Bach : chaque fugue présente un thème, une phrase musicale, puis ce thème est repris dans des variations, la composition suivant des règles assez strictes. Bien que composée ''a priori'' sans volonté de communiquer un ressenti ni penser à une personne, une scène ou un objet, l'écoute d'une fugue provoque un ressenti voire une émotion. * {{lien web | url=https://www.dailymotion.com/video/x5gerf0 | titre = Beethoven - Für Elise | Classical Piano Music | auteur = HalidonMusic (Giovanni Umberto Battel) | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x6j6pf9 | titre = Moussorgski | Tableaux d’une exposition par Daniel Ciobanu | auteur = France musique | site = Dailymotion | date = 2018 | consulté le = 2021-01-20 }} ** {{lien web | url=https://www.dailymotion.com/video/x7u1x3v | titre = « Tableaux d'une exposition » de Moussorgski / Ravel - Les Clefs de l'orchestre de Jean-François Zygel | auteur = France Inter | site = Dailymotion | date = 2020 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x3039ad | titre = Contrapunctus IX from The Art of Fugue | BACH | auteur = Halley Elden (Anderson & Roe Piano Duo) | site = Dailymotion | date = 2016 | consulté le = 2021-01-20 }} Le chant, lorsqu'il comporte des paroles, permet d'associer un message à la musique, de raconter une histoire. La musique est alors en général composée pour soutenir le sens des paroles (mais elle peut aussi introduire un décalage). Prenons par exemple ''La Truite'' de Schubert (''{{lang|de|Die Forelle}}'', lied op. 32, D.550, 1817) : il évoque une truite qui bondit dans un cours d'eau et la musique qui l'accompagne est légère et sautillante. Dans le cas de l'air de ''Kleinzach'' dans l'opérette ''Les Contes d'Hoffmann'' de Jacques Offenbach (1851) : le chanteur incarne le poète Hoffmann qui entonne un chant de taverne où il se moque d'un personnage disgracieux nommé Kleinzach. Dans la chanson ''{{lang|en|Diamonds and Rust}}'' (1975), la chanteuse Joan Baez évoque la mélancolie dans laquelle la plonge un appel téléphonique d'un ancien amant. Lorsque le message est revendicatif et contestataire, la musique peut prendre une certaine violence : par exemple le morceau ''{{lang|en|Anarchy in the UK}}'' des Sex Pistols (album ''{{lang|en|Never Mind the Bollocks}}'', 1976) qui se révolte contre la société anglaise de cette époque, ou bien ''Antisocial'' du groupe Trust (album ''Répression'', 1980). Mais la contestation ne s'accompagne pas forcément d'une musique violente ; les chansons engagées ''({{lang|en|protest song}})'' étatsuniennes des années 1960 se rapprochent de la musique ''folk'', comme par exemple ''Blowin' in the Wind'' de Bob Dylan (1962), les chansons réalistes françaises du début du {{pc|xx}}<sup>e</sup> siècle sont proche du bal musette, comme par exemple ''La Butte rouge'' (Montéhus et Georges Krier, 1923) qui dénonce les horreurs de la Première Guerre mondiale. * {{lien web | url=https://www.dailymotion.com/video/xx40hm | titre = Renée Fleming - Die Forelle - Schubert | auteur = medici.tv | site = Dailymotion | date = 2013 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5sogg | titre = Neil Shicoff Contes d'Hoffmann Kleinzach offenbach | auteur = richardvallouise | site = Dailymotion | date = 2008 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=IrVD0bP_ybg | titre = Diamonds And Rust | auteur = Joan Baez | site = YouTube | date = 2018-08-16 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x5ia0jv | titre = Sex Pistols - Anarchy in the UK | auteur = Sex Pistols | site = Dailymotion | date = 2017 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.youtube.com/watch?v=JthrO7hn2lQ | titre = Antisocial | auteur = Trust TV | site = YouTube | date = 2014-11-09 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=MMFj8uDubsE | titre = Bob Dylan - Blowin' in the Wind (Audio) | auteur = Bob Dylan | site = YouTube | date = 2019-01-25 | consulté le = 2021-01-20 }} * {{lien web | url=https://www.dailymotion.com/video/x1z6uot | titre = Rosalie Dubois - La butte rouge | auteur = Chanson Française | site = Dailymotion | date = 2014 | consulté le = 2021-01-20 }} La voix n'est pas nécessairement utilisée pour former des mots. Il peut s'agir d'imiter des animaux, comme par exemple dans le ''Duo de chats'' de Gioachino Rossini (''{{lang|it|Duetto buffo di due gatti}}'', 1825). La voix peut aussi être utilisée comme n'importe quel instrument : les phonèmes sont utilisés uniquement pour leurs sonorités ; c'est par exemple le cas de ''Nuits'' de Iannis Xenakis (1967). On peut aussi générer des sons avec la bouche autres que la voix, par exemple dans le cas de la ''{{lang|en|beatbox}}''. * {{lien web | url=https://www.youtube.com/watch?v=l7boSJxKAkg | titre = Chinwe Enu & Adrienne Webster - Gioachino ROSSINI - DUETTO BUFFO DI DUE GATTI - (byGigio!!!) | auteur = byGigio | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=tXjilKOyzow | titre = Iannis Xenakis — Nuits | auteur = MusicaRicercata | site = YouTube | date = 2014-04-20 | consulté le = 2021-01-21 }} * {{lien web | url=https://www.youtube.com/watch?v=CPKq9sDIs2M | titre = Human Beatbox Neil Amazes Everyone | Asia’s Got Talent Episode 4 | auteur = Asia's Got Talent | site = YouTube | date = 2015-04-03 | consulté le = 2021-01-21 }} === Musique et bruit === La musique utilise des sons ; elle peut donc utiliser des bruits. Les musiciens peuvent vouloir évoquer des bruits avec leurs instruments. On peut par exemple citer le ''{{lang|it|Cappriccio stravagante}}'' de Carlo Farina (1627), œuvre dans laquelle il veut évoquer des bruits de la nature (à 13 min. 30 sec. puis à 14 min. 28 sec. dans la vidéo ci-dessous), miaulements, aboiements, pépiements, au sein d'une œuvre plutôt baroque par ailleurs. * {{lien web | url=https://www.youtube.com/watch?v=RzBqnfs7rXY | titre=Farina: Capriccio stravagante for Violin, Two Violas, Cello, and Continuo | auteur= Chamber Music Society of Lincoln Center | site=YouTube | date=2020-04-28 | consulté le=2021-01-28 }} * {{lien web | url=https://www.youtube.com/watch?v=iumvl9CV0kc | titre=INCREDIBLE Choir Makes It Rain During Audition! | auteur=Got Talent Global | site=YouTube | date=2019-03-24 | consulté le=2021-01-27 }} (Coro Divertimento Vocale) Les compositeurs peuvent aussi utiliser des bruits dans leurs œuvres. * {{lien web | url=https://www.youtube.com/watch?v=nW8dGwa2zRw | titre=Typewriter - Brandenburger Symphoniker | auteur= Sabine Schneider | site=YouTube | date=2012-04-22 | consulté le=2021-01-27 }} (''The Typewriter'', Leslie Anderson, 1950) * {{lien web | url=https://www.dailymotion.com/video/x4jyofn | titre=Jacques - Dans la Radio | auteur= Buzzvid | site=Dailymotion | date=2016 | consulté le=2021-01-27 }} (composé à partir de bruits enregistré dans la Maison de la Radio) * {{lien web | url=https://www.youtube.com/watch?v=Kl6bQ6W7f4I | titre=William Tell Overture | auteur= Spike Jones | site=YouTube | date=2015-05-31 | consulté le=2021-01-27 }} * {{lien web | url=https://www.francemusique.fr/culture-musicale/quand-le-bruit-devient-il-musique-88665 | titre=Quand le bruit devient-il musique ? | auteur= Léopold Tobisch | date=2020-10-20 | consulté le=2021-01-27 }} === Musique et autres arts === La musique peut s'associer à d'autres arts. La danse évidemment (voir plus loin) mais aussi le théâtre, la poésie, le cinéma, les arts du cirque, les jeux vidéo et maintenant les jeux de société (en général sous la forme d'une bande son diffusée par un appareil mobile : téléphone portable, tablette tactile). Elle est diffusée dans de nombreux média : radio, télévision, pages internet… Son association avec la poésie est très ancienne ; on peut par exemple citer les aèdes de la Grèce antique qui chantaient les épopées, le plus célèbre étant Homère. De même pour le théâtre, les chœurs du théâtre grec antique chante et danse dans l’''orchestra'' (une zone dédiée du théâtre) pour accompagner la pièce. Au cinéma, la musique intervient dès le cinéma muet, un pianiste accompagnant la projection. La musique, partiellement écrite et largement improvisée, permet de renforcer le rythme et l'émotion transmise. Camille Saint-Saëns est le premier à composer une musique pour un film, ''L'Assassinat du duc de Guise'' d’André Calmettes et Charles Le Bargy en 1908. Lorsque le cinéma devient sonore en 1927, la musique s'inscrit naturellement dans la bande son. Comme il n'y a plus de problème de synchronisation (puisque la musique est très vite inscrite sur la pellicule), cela permet de faire intervenir plus d'instruments, des orchestres symphoniques complets. Au cinéma, la musique peut aller du simple rôle de « papier peint » comme le disait Igor Stravinsky, c'est-à-dire qu'elle se déroule en arrière-plan sans attirer l'attention sur elle pour laisser la priorité à l'image et à la parole, jusqu'à être intimement lié à l'image comme un opéra. La musique peut être « intra-diégétique », c'est-à-dire qu'elle fait partie de la fiction, qu'elle est entendue par les personnages, par exemple s'ils assistent à un concert ou si elle est diffusée par des haut-parleurs (radio, télé, chaîne hifi, enceinte connectée, musique d'ambiance d'un lieu public) dans l'histoire. Elle peut aussi être « extra-diégétique » c'est-à-dire hors fiction, elle accompagne les images mais n'est pas entendue par les personnages. Il y a parfois un passage intra-diégétique/extra-diégétique, par exemple la musique est diffusée à la radio (avec le son légèrement nasillard caractéristique) puis devenir la musique de fond du film (avec une qualité sonore alors irréprochable), ou vice-versa. L'opposition intra/extra-diégétique n'est pas toujours pertinente. Par exemple, dans le cas d'un opéra, une comédie musicale, un film musical… les personnages s'expriment en chantant. Il ne s'agit pas d'un monde imaginaire dans lequel les gens chanteraient et où de la musique se ferait entendre dans l'air… mais pourtant les personnages entendent bien la musique, puisqu'ils chantent en rythme et juste avec cet accompagnement, et ils entendent ce que chantent les autres. C'est en fait comme dans les pièces de théâtre écrites en vers : les personnages ne s'expriment pas de manière « naturelle » mais avec des contraintes esthétiques. La musique peut renforcer des sentiments éprouvés par les personnages pour essayer de les faire ressentir aux spectateurs et spectatrices (joie, tristesse, peur…), elle peut accompagner le rythme de l'action (rapide, lent). Elle peut évoquer une époque, un lieu et un milieu social, par exemple musique baroque à l'époque baroque, rock 'n roll dans les années 1950 aux États-Unis… Elle peut contenir des thèmes liés aux personnages ou à des éléments de l'histoire, à l'image des ''{{lang|de|leitmotiv}}'' utilisés par Richard Wagner et Franz Liszt. La musique est également un marqueur de l'époque à laquelle a été faite le film. Par exemple, dans les années 1950-1960, les films de science-fiction utilisaient souvent de la musique électronique (thérémine, ondes Marteneau) car cela « faisait moderne » et permettait de se projeter dans l'avenir ; on pourra écouter la bande son du ''Jour où la Terre s'arrêta'' (Robert Wise, 1951, musique de Bernard Herrmann), ''La Guerre des mondes'' (Byron Haskin, 1953, musique de Leith Stevens) ou ''Planète interdite'' (Fred McLeod Wilcox, 1956, musique de Louis et Bebe Barron). Mais dans ''2001, l'Odyssée de l'espace'' (1969), Stanley Kubrick décide d'utiliser de la musique classique (Richard Strauss, Johan Strauss fils, Aram Khatchatourian) et contemporaine (György Ligeti, Alex North). La musique peut aussi accompagner des expositions d'art plastique ou des performances. Dans les médias, la musique peut servir : * de ponctuation, pour annoncer le début ou la fin d'une émission, d'une chronique, par un générique ou un sonal ''({{lang|en|jingle}})'' ; * de respiration en radio : elle fournit une pause dans une émission ou un reportage, ce qui permet à l'auditeur ou à l'auditrice de relâcher son attention ou de faire le point d'assimiler les informations énoncées précédemment ; * de véhiculer une émotion, d'attirer l'attention, pour supporter une fiction (comme avec la poésie, le théâtre ou le cinéma) ou pour promouvoir une idée, un produit (publicité, propagande) ; * dans les lieux recevant du public, la musique peut servir à créer une ambiance particulière et les sonals ''({{lang|en|jingles}})'' servent à attirer l'attention avant une annonce ; * les médias sont aussi une manière de diffuser la musique et de promouvoir les artistes. '''Étude de cas : quelques exemples d'utilisation de musique au cinéma et dans les séries télévisées''' 1. ''M le maudit'', Fritz Lang (1931) C'est le premier film parlant de Fritz Lang. Dans ce film policier, le criminel est reconnu par un mendiant aveugle car il siffle ''Dans l'antre du roi de la montagne'' (thème de ''Peer Gynt'' d'Edvard Grieg, 1874). C'est un exemple de musique intra-diégétique et la musique est au cœur de l'intrigue. 2. ''Il était une fois dans l'Ouest'', Sergio Leone (1968) La musique de ce western « spaghetti » (réalisé par un italien et pas par un étatsunien) est signée Ennio Morricone, comme tous les autres films du réalisateur. Un des personnages (incarné par Charles Bronson) est un joueur d'harmonica, d'ailleurs surnommé « Harmonica ». Ce personnage est attaché à un thème, ''L'Homme à l'harmonica'', et fait référence au passé du personnage et en particulier à sa respiration et à la fatigue. 3. ''2001, l'Odyssée de l'espace'' Le film utilise six compositeurs aux points clef. Le premier morceau est le début d’''Ainsi parlait Zarathoustra'' de Richard Strauss (1896). Ce thème introduit la côté de divin et prophétique des mystérieux monolithes, des rectangles de pierre noire qui subliment l'humain. Le deuxième morceau est ''Le beau Danube bleu'' de Johann Strauss fils (1866) ; ici, ce n'est pas la musique qui se plie à l'action, c'est l'action qui suit la musique, la pièce étant diffusée en entier. La valse évoque le voyage spatial et la rotation des stations spatiales qui permet d'assurer une gravité artificielle, dessinant une danse avec la navette de transport. Le troisième compositeur est György Ligeti, avec un extrait du ''Requiem'' (1965) et un autre de ''Lux Æterna'' (1966). Il s'agit là encore de morceaux à connotation religieuse, et c'est de la musique atonale. Le spectateur n'a ainsi pas les références musicales habituelles, les morceaux ont un côté désagréable, et introduit ici une forme de peur et de vertige face à l'inconnu. Le quatrième est Aram Khatchatourian avec l’''Adagio'' de ''Gayaneh'' (1939). Son caractère désolé et apaisé évoque l'isolement du vaisseau spatial ''Discovery'' dans l'espace. Kubrick a commandé une partition originale à Alex North pour l'introduction du film et la césure au milieu. Ces morceaux de deux minutes sont diffusés avec un écran noir et servent à mettre le spectateur ou la spectatrice dans l'ambiance. Enfin, l'ordinateur HAL 9000 (CARL 500 en français) chante ''Daisy Bell'' de Harry Dacre, une chanson pour enfant qu'a apprise l'ordinateur lors de son apprentissage. C'est la première chanson qui a été interprétée par un ordinateur (un IBM 7094) en 1961 ; la musique est donc un clin d’œil caché (ce que l'on appelle maintenant un « œuf de Pâque », ''Easteregg''). 4. ''Cold case : Affaires classées/Victimes du passé'', Meredith Stiehm, 2003-2010 Cette série télévisée parle d'affaire classées, de crimes anciens non élucidés. Chaque épisode utilise des morceaux de musique populaires à l'époque des meurtres. == Musiques savante, populaire et traditionnelle == On distingue parfois la musique savante, la musique populaire et la musique traditionnelle. La musique savante est une musique suivant des règles strictes ; elle nécessite d'être étudiée pour pouvoir être jouée et est conservée sous forme écrite (partition). En occident, elle est synonyme de « musique classique ». La musique populaire, ou « musique pop », est une musique jouée par des personnes issues du milieu populaire, à destination de personnes du milieu populaire. La musique traditionnelle est une musique liée à une zone géographique ; elle est souvent de tradition orale, transmise par enseignement direct. Ces distinctions ont un caractère artificiel. Ainsi, le jazz peut être considéré comme une musique populaire puisqu'elle est née dans les couches populaires des États-Unis ; pourtant, il peut suivre des règles strictes, est enseigné dans des écoles, par exemple les conservatoires en France, et est en partie conservé par écrit (thèmes et grilles d'accords). Au {{pc|xxi}}{{e}} siècle, certains qualifieront certainement le jazz de musique élitiste, la musique la plus écoutée en France étant le rap. La musique traditionnelle est à l'origine aussi une musique populaire. La musique rock, une musique populaire par essence, peut parfois avoir une complexité qui la rapproche de la musique savante en particulier dans le rock progressif et le heavy metal. Le terme de « musique classique » est lui aussi ambigu. Il est créé au {{pc|xviii}}{{e}} siècle pour désigner la musique de compositeurs et compositrices comme Haydn, Mozart et Beethoven, de 1750 à 1830. Elle a ensuite été reprise par l'industrie musicale naissante, et désigne maintenant 800 ans de musique, du Moyen-Âge à la musique contemporaine<ref>{{lien web |url=https://www.radioclassique.fr/histoire/mouvements/musique-classique-pourquoi-sappelle-t-elle-comme-ca/ |titre=“Musique classique” : Pourquoi s’appelle-t-elle comme ça |auteur=Clément Kasser |site=Radio Classique |date=2023-01-12 |consulté le=2025-07-08}}.</ref> ; lorsque l'on veut parler de la période « Haydn, Mozart et Beethoven, de 1750 à 1830 », on parle maintenant de « classicisme » ou de « période classique » (qui suit la période baroque et précède le romantisme). ;Exemples de musiques populaires * {{lien web | url = https://www.youtube.com/watch?v=5yq1HaKtOmU | titre = Les esclaves et le blues (Arte) | auteur = CouvreFeu911 | site = YouTube | date = 2009-05-20 | consulté le = 2021-01-14 }} * {{lien web | url = https://view.genial.ly/5ff31cc5485b460cf9c7acbb/interactive-image-selection-ress-rap-cdi | titre = À la (re)découverte du rap | auteur=sabrina.ducroquet | site = Genially | date=2021-01-04 | consulté le = 2021-01-15 }} == Les instruments de musique == On classe en général les instruments de musique par la manière dont ils produisent les sons. Pour découvrir les instruments, l'idéal est d'assister à des concerts ou des présentations par des musiciens et musiciennes. On peut également utiliser des contes musicaux comme par exemple ''Pierre et le Loup'' ({{lang|eu|Петя и волк, ''Pétya i volk''}}, Sergueï Prokofiev, 1936) ou ''Piccolo, Saxo et compagnie'' (Jean Broussolle et André Popp, 1956), ou encore diffuser ''Les Zinstrus'', émission de Saskia de Ville sur France Musique. : {{lien web | url=https://www.francemusique.fr/emissions/les-zinstrus/decouvrez-les-zinstrus-le-nouveau-podcast-de-france-musique-en-exclusivite-sur-l-application-radio-france-96298 | titre=Les Zinstrus | auteur=Saskia de Ville | site=France Musique | date=2021-06-02 | consulté le=2021-06-07 }} === Les instruments naturels === Les sons sont produits par le corps humain seul : * voix, chant ; * percussions corporelles ; * sifflements. === Les instruments à corde === Les sons sont produits par une corde qui vibre. [[Fichier:Cello bow.jpg|vignette|Corde frottée par un archet (violoncelle).]] ;Instruments à corde frottée : Les cordes sont frottées par un archet ou par une roue {{colonnes|nombre=2|1= * violon ; * violon alto, ou alto ; * violoncelle ; * contrebasse ; * viole de gambe ; * vielle à roue ; * psaltérion ; * arc musical ; * erhu (violon chinois à deux cordes) ; * sokou (violon africain) ; * endingidi (violon africain) ; * orutu (violon africain). }} <gallery> Violin VL100.png | violon Langot2.jpg | violoncelle Andreas Unge Cosmopolite Djangofestivalen (214050).jpg | contrebasse DraailierWiel.jpg | Roue frottant sur les cordes d'une vielle </gallery> ; Instruments à cordes pincées : Les cordes sont pincées avec les doigts, un plectre (médiator) ou un dispositif mécanique (sautereau du clavecin) {{colonnes|nombre=2|1= * harpe ; * guitare ; * violon, alto, violoncelle, contrebasse joués en pizzicati ; * clavecin ; * luth ; * théorbe ; * lyre ; * épinette ; * psaltérion ; * cithare ; * oud ; * saz, baglama, tambûr ; * sanxian, shamisen ; * pipa, biwa ; * monocorde (cithare vietnamienne, ''{{lang|vi|đàn bầu}}'') ; * kora ; * koto ; * nyatiti ; * simbing. }} <gallery> Harpe celtique moderne (Camac).jpg | harpe celtique Konzertharfe.jpg | harpe à pédales Classical Guitar two views.jpg | Guitare classique 8-course-tenor-renaissance-lute-04.jpg | Luth Nyatiti.jpg | Nyatiti Giovanni Battista Dall'Olio, Salterio, Museo Civico di Modena.tif | Psaltérion Djélymady 2.jpg | Kora Vietnamese musical instrument Dan bau 2.jpg | Monocorde ''({{lang|vi|đàn bầu}})'' Simbing 2011.JPG | Simbing 1978 Fender Stratocaster hardtail & Marshall Amp (2008-11-02 16.03.17 by irish10567).jpg | Guitare électrique et amplificateur Biwa-hoshi.jpg | Biwa Fumie Hihara, au shamisen (danse du Kabuki, musée Guimet).jpg | Shamisen Woman Playing Koto, albumen silver print, Honolulu Museum of Art 2008-27-79.JPG | Koto </gallery> ; Instruments à cordes frappées : Les cordes sont frappées avec une mailloche ou un système mécanique à marteau * piano ; * tympanon ; * berimbau, m'bulumbumba (arc musical afro-brésilien). <gallery> Steinway & Sons concert grand piano, model D-274, manufactured at Steinway's factory in Hamburg, Germany.png | piano à queue Pianodroit.jpg | piano droit Hammered dulcimer reenactor.JPG | Tympanon History of Inventions USNM 41 Angola Muscial Bow.jpg | Berimbau COLLECTIE TROPENMUSEUM Een Samo muzikant bespeelt de muziekboog TMnr 20010316.jpg | Arc musical </gallery> === Les instruments à vent === [[Fichier:Musical instruments of prehistory.jpg|vignette|Instruments préhistoriques]] Les sons sont produits en perturbant un flux d'air. ==== Les bois ==== Le son est produit par un « sifflet ». Contrairement à son nom, un bois n'est pas nécessairement en bois : les flûtes traversières modernes et les saxophones sont en métal, les flûtes et sifflets préhistoriques pouvaient être en os. [[Fichier:Montre patine bronze.jpg|vignette|Bouche des tuyaux d'orgue (sifflet).]] ; Instruments à biseau : L'air est dévié par un biseau ou par la position de la bouche par rapport à l'ouverture de l'instrument * flûte à bec, pipeau, ''{{lang|en|tin whistle}}'' ; * flûte traversière et piccolo ; * flûte oblique ; * flûte de Pan ; * tuyaux d'orgue à bouche ; * sifflet ; * rhombe (plaque qui siffle lorsqu'on la fait tournoyer). {{clear}} <gallery> Turndun Bora Bora from New Zealand.jpg | rhombe Soprano-recorder.jpg | flûte à bec Kathrin Lemke Unterfahrt 2012-03-23-001s.jpg | flûte traversière Gasba de Beni Salah.jpg | flûte oblique Latinoamerican Pan flute.jpg | flûte de Pan SambaWhistle.jpg | sifflet de samba </gallery> [[Fichier:Bassoon Reeds.jpg|vignette|Anche double pour basson.]] ; Instruments à anche : Le sifflet est composé d'une ou deux lames de roseau (anche simple, anche double), parfois de métal * hautbois, cor anglais ; * clarinette ; * saxophone ; * bombarde ; * biniou, cornemuse, uilleann pipes ; * harmonica ; * accordéon, bandonéon ; * jeu d'anche (tuyaux d'orgue à anche). {{clear}} <gallery> Anche de clairon (orgue).jpg | anche de tuyau d'orgue (clairon) Oboe-player.jpg | hautbois Romeo Boninsegna (IMSO pp25).jpg | cor anglais Bassoon (26039503553).jpg | basson|alt=basson Blåser så klarinetten krackelerar! (2996867460).jpg | clarinette Joueur de saxophone.jpg | saxophone ténor Sopraansaxofoon Gentse Feesten 20-07-2019.jpg | saxophone soprano Anna Kristina playing the Harmonica 2019 by Glenn Francis.jpg | Harmonica Paris - Accordion Player - 0956.jpg | accordéon Bandoneon diatoniczny.jpg | bandonéon Bagpiper at Spanish Bay, CA.jpg | cornemuse Festival de Cornouaille 2015 - Championnat des bagadoù - Kerlenn Pondi 02.JPG | biniou Sonneur de bombarde, Festival Les Orientales (Saint-Florent-Le-Vieil).jpg | bombarde </gallery> ==== Les cuivres ==== Les sons sont créés par la vibration des lèvres. Le nom provient du fait qu'ils sont souvent faits en laiton, un alliage de cuivre, mais ce n'est pas systématique. {{colonnes|nombre=2|1= * Trompette ; * cornet à pistons ; * clairon ; * trombone à coulisse ; * trombone à piston ; * tuba ; * saxhorn, bugle ; * hélicon ; * soubassophone ; * cor d'harmonie ; * cor de chasse ; * cor des Alpes ; * didjeridoo (ou didgeridoo). }} <gallery> Maite Hontelé.jpg | trompette 80-G-40995 (31399109310).jpg | clairon Dodenherdenking Montfort 2013 33.JPG | bugle Zoetermeer Caribbean Festival trombonists.jpg | trombone à coulisse LyceumSimplyThree-0231.jpg | cor d'harmonie 03.11.1963.Saint Hubert. (1963) - 53Fi3146.jpg | cor de chasse Havana - Cuba - 3065.jpg | tuba Military orchestra in front of the Stockholm Palace 08 (cropped).jpg | hélicon Hot 8 Bennie Pete Old Algiers Riverfest.jpg | soubassophone Australia Aboriginal Culture 009.jpg | didjeridoo Alphorn player in Wallis.jpg | cor des Alpes </gallery> ; Vidéo * {{lien web | url = https://www.youtube.com/watch?v=cgfcR8ctW7 | titre = L'acoustique des tuyaux PVC | auteur = Nicolas Bras - Musiques de Nulle Part | site = YouTube | date = 2013-07-29 | consulté le = 2012-01-15 }} === Les percussions === Les sons sont produits en frappant un objet avec la main, le pied ou un maillet : {{colonnes|nombre=2|1= * tambour ; * timbale ; * triangle ; * xylophone, métallophone, glockenspiel, balafon ; * carillon ; * cloches ; * caisse claire ; * charleston ; * grosse caisse ; * cymbale ; * batterie : association de plusieurs percussions, en général une caisse claire, un charleston, une grosse caisse à pédale, des toms, des cymbales (dont un ''ride'', un ''crash'') ; * claves ; * percussions corporelles ; * darbouka ; * djembé. }} <gallery> Tambour v. Dragoner R. Schönborn 1716 (NYPL b14896507-90039).tiff | tambour militaire Kettledrum (PSF).png | timbales Triangle (13513809145).jpg | triangle Fastnachtsumzug in Arbon. 2008-02-10 15-24-58.jpg | grosse caisse Bala player 2.jpg | balafon (xylophone) et djembé CarillonAlteNikolaikircheFrankfurt2.jpg | carillon Cymbals (IMSO pp55).jpg | cymbales Music Instruments - ബാന്റ് സെറ്റ് ഉപകരണങ്ങൾ 12.JPG | caisse claire Charly Antolini.jpg | batterie Playingclaves.jpg | claves </gallery> === Les instruments à lamelles ressort === Le son est produit par une lamelle que l'on fléchit avant de la lâcher : * guimbarde ; * piano à pouce : sanza, mbira. <gallery> Maultrom 1a.jpg | Guimbardes. Kolomenskoe2015TAE 01 Player.jpg | Joueur de guimbarde. Holding an mbira dzavadzimu.jpg | Piano à pouces (sanza, mbira). </gallery> === classification Hornbostel-Sachs === La classification « classique » est hérité de l'Histoire de la musique savante occidentale et donnes quelques étrangetés, comme des bois qui sont en métal (flûte traversière, saxophones) ou des cuivres qui sont en bois (didjeridoo). En 1914, Erich von Hornbostel et Curt Sachs ont créé un système de classification plus systématique. ; Idiophone : instrument dont le son est produit par la vibration de l'instrument suite à une percussion ; * idiophone frappé : l'instrument est mis en vibration en le frappant ; ** idiophone frappé directement : l'instrumentiste fait un mouvement de frappe, que ce soit direct ou par un mécanisme intermédiaire (pédale, touche de clavier…) : *** instrument à concussion : deux ou plusieurs parties sont entrechoquées : bâtons (claves), plaques (fouet), gouttières (cuillers, castagnettes, cymbales) ; *** idiophones à percussion : la percussion se fait avec un objet qui lui-même ne sonne pas (main, baguette…) : bâtons à percussion (triangle, xylophone, marimba), plaque (métallophone, glockenspiel, célesta, vibraphone), tube (cloche tubulaire, tambour à lèvre, carillon), récipient (cymbale, gong, wood-block, steel drum, cloche) ** idiophone frappé indirectement : l'instrumentiste fait un mouvement mais ce n'est pas une frappe : *** idiophone secoué : maracas, bâton de pluie, tambourin ; *** idiophone raclé : crécelle, washboard ; *** idiophone fendu : une baguette est fendue et les lamelles s'entrechoquent ; * idiophone pincé : en forme de cadre (guimbarde), en forme de peigne (kalimba, sanza, boîte à musique) ; * idiophone frotté * idiophone soufflé * autres idiophones {{...}} == Danse == * procédés chorégraphiques : https://www.youtube.com/watch?v=S6W6FhBim0U * https://www.youtube.com/watch?v=wgblAOzedFc * https://www.youtube.com/watch?v=dC1BqNEbz5Y == Voir aussi == * {{lien web |url=https://www.youtube.com/watch?v=cTYvCpLRwao |titre=Les mathématiques de la musique (avec Vled Tapas) |site=Science étonnante (YouTube) |date=2018 |consulté le=2022-03-02 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/a-la-recherche-des-traces-des-musiques-de-la-prehistoire-8485583 |titre=À la recherche des traces des musiques de la préhistoire |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2019-08-03 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceinter/podcasts/sur-les-epaules-de-darwin/des-musiques-venues-du-fond-des-ages-1908530 |titre=Des musiques venues du fond des âges |auteur=Jean-Claude Ameisen |site=France Inter (Sur les épaules de Darwin) |date=2016-10-10 |consulté le=2025-04-11 }} * {{lien web |url=https://www.radiofrance.fr/franceculture/podcasts/serie-les-pouvoirs-de-la-musique |titre=Les Pouvoirs de la musique |auteur=Barbara Tillmann |site=France Culture |date=2025-04-23 |consulté le=2025-04-28 }} * {{lien web |url=https://www.youtube.com/watch?v=59Gozx4odSM |titre=Les ondes Martenot, comment ça marche ? - Culture Prime |auteur=Thomas Bloch |site=YouTube, chaîne France Musique |date=2025-06-14 |consulté le=2025-06-16 }} ---- ''[[../|Introduction]]'' &lt; [[../|↑]] &gt; ''[[../Transmettre la musique|Transmettre la musique]]'' [[Catégorie:Formation musicale (livre)|Questce que la musique]] n5kmq6n1cstqomxvkthbrg24duesnwm Mathc matrices/26a 0 77624 746330 733401 2025-07-08T12:21:01Z Xhungab 23827 746330 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| QR ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| QR ]] * [[Mathc matrices/c26a3|c03.c ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c04.c ]] * [[Mathc matrices/c26a5|c05.c ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c06.c ]] {{AutoCat}} 2g4ms2u5lcnunrp0wtkz0zzkbf8ujwi 746333 746330 2025-07-08T12:22:47Z Xhungab 23827 746333 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| QR ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| QR ]] * [[Mathc matrices/c26a3|c03.c ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c04.c ]] * [[Mathc matrices/c26a5|c05.c ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c06.c ]] {{AutoCat}} so2z4c1i1x07s8r7h93iuco7jvpk80m 746336 746333 2025-07-08T12:48:43Z Xhungab 23827 746336 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| QR ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| QR ]] * [[Mathc matrices/c26a3|c00c.c ]], [[Mathc matrices/06x| QR ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c00d.c ]], [[Mathc matrices/06y| QR ]] * [[Mathc matrices/c26a5|c05.c ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c06.c ]] {{AutoCat}} czrwvbikojhth0kajbq5m9s1nox3d51 746340 746336 2025-07-08T13:22:11Z Xhungab 23827 746340 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| QR ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| QR ]] * [[Mathc matrices/c26a3|c00c.c ]], [[Mathc matrices/06x| QR ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c00d.c ]], [[Mathc matrices/06y| QR ]] * [[Mathc matrices/c26a5|c05.c ]], [[Mathc matrices/06z| QR ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c06.c ]], [[Mathc matrices/070| QR ]] {{AutoCat}} b5i0czlrlmr1e834dw0o2tq3f56e2j2 746344 746340 2025-07-08T13:29:49Z Xhungab 23827 746344 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| QR ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| QR ]] * [[Mathc matrices/c26a3|c00c.c ]], [[Mathc matrices/06x| QR ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c00d.c ]], [[Mathc matrices/06y| QR ]] * [[Mathc matrices/c26a5|c00e.c ]], [[Mathc matrices/06z| QR ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c00f.c ]], [[Mathc matrices/070| QR ]] {{AutoCat}} 7azjaouheb53lypqlx6grt2qwq7dopd 746381 746344 2025-07-09T10:22:51Z Xhungab 23827 746381 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| '''QR''' ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| '''QR''' ]] * [[Mathc matrices/c26a3|c00c.c ]], [[Mathc matrices/06x| '''QR''' ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c00d.c ]], [[Mathc matrices/06y| '''QR''' ]] * [[Mathc matrices/c26a5|c00e.c ]], [[Mathc matrices/06z| '''QR''' ]], [[Mathc matrices/079| SVD:PseudoInverse ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c00f.c ]], [[Mathc matrices/070| '''QR''' ]], [[Mathc matrices/07a| SVD:PseudoInverse ]] {{AutoCat}} oy6ekiuwuix8b1v0jzjpavthx2a3tdg 746384 746381 2025-07-09T10:37:53Z Xhungab 23827 746384 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| '''QR''' ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| '''QR''' ]] * [[Mathc matrices/c26a3|c00c.c ]], [[Mathc matrices/06x| '''QR''' ]], [[Mathc matrices/07b| SVD:PseudoInverse ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c00d.c ]], [[Mathc matrices/06y| '''QR''' ]], [[Mathc matrices/07c| SVD:PseudoInverse ]] * [[Mathc matrices/c26a5|c00e.c ]], [[Mathc matrices/06z| '''QR''' ]], [[Mathc matrices/079| SVD:PseudoInverse ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c00f.c ]], [[Mathc matrices/070| '''QR''' ]], [[Mathc matrices/07a| SVD:PseudoInverse ]] {{AutoCat}} bzjqv4uaw2vwcomtal35cuzdaert34a 746388 746384 2025-07-09T11:18:41Z Xhungab 23827 746388 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> Les exemples : * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| '''QR''' ]], [[Mathc matrices/07d| SVD:PseudoInverse ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| '''QR''' ]], [[Mathc matrices/07e| SVD:PseudoInverse ]] * [[Mathc matrices/c26a3|c00c.c ]], [[Mathc matrices/06x| '''QR''' ]], [[Mathc matrices/07b| SVD:PseudoInverse ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c00d.c ]], [[Mathc matrices/06y| '''QR''' ]], [[Mathc matrices/07c| SVD:PseudoInverse ]] * [[Mathc matrices/c26a5|c00e.c ]], [[Mathc matrices/06z| '''QR''' ]], [[Mathc matrices/079| SVD:PseudoInverse ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c00f.c ]], [[Mathc matrices/070| '''QR''' ]], [[Mathc matrices/07a| SVD:PseudoInverse ]] {{AutoCat}} 15uv8cmb1ouhzzid7x6zexihe3mpsfj 746391 746388 2025-07-09T11:26:59Z Xhungab 23827 746391 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un polynôme}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26a| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction gj_TP_mR(Ab); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemples avec :''' gj_TP_mR(); '''QR_mR();''' Pinv_Rn_mR(); * [[Mathc matrices/c26a1|c00a.c ]], [[Mathc matrices/06v| '''QR''' ]], [[Mathc matrices/07d| SVD:PseudoInverse ]] ..... y = ax**2 + bx + c * [[Mathc matrices/c26a2|c00b.c ]], [[Mathc matrices/06w| '''QR''' ]], [[Mathc matrices/07e| SVD:PseudoInverse ]] * [[Mathc matrices/c26a3|c00c.c ]], [[Mathc matrices/06x| '''QR''' ]], [[Mathc matrices/07b| SVD:PseudoInverse ]] ..... y = ax**3 + bx**2 + cx + d * [[Mathc matrices/c26a4|c00d.c ]], [[Mathc matrices/06y| '''QR''' ]], [[Mathc matrices/07c| SVD:PseudoInverse ]] * [[Mathc matrices/c26a5|c00e.c ]], [[Mathc matrices/06z| '''QR''' ]], [[Mathc matrices/079| SVD:PseudoInverse ]] ..... y = ax**4 + bx**3 + cx**2 + dx + e * [[Mathc matrices/c26a6|c00f.c ]], [[Mathc matrices/070| '''QR''' ]], [[Mathc matrices/07a| SVD:PseudoInverse ]] {{AutoCat}} 4xa40wvf89xtzz9xzx8sd6pmde94136 Mathc matrices/h26a 0 77625 746345 729236 2025-07-08T13:38:45Z Xhungab 23827 746345 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] '''Sommaire''' ◀ '''''Utilise la commande "Retour en Arrière" de ton navigateur.''' Installer ce fichier dans votre répertoire de travail. {{Fichier|d.h|largeur=70%|info=|icon=Crystal Clear mimetype source h.png}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : d.h */ /* ------------------------------------ */ void i_A_b_with_XY_mR( double **XY, double **A, double **b ) { int r = R1; int c = C1; int power = 0; for(r=R1; r<XY[R_SIZE][C0]; r++) { power=rsize_R(XY)-R1; for(c=C1; c<A[C_SIZE][C0]; c++) A[r][c]=pow(XY[r][C1],power--); b[r][C1]=XY[r][C2]; } } /* --------------------------------- */ void p_eq_poly_mR( double **Ab ) { int r = R1; int power = rsize_R(Ab)-R1; int cL = csize_R(Ab); printf(" y = "); for(r=R1;r<Ab[R_SIZE][C0];r++) if(Ab[r][cL]) { if(!power) printf(" %+.3f", Ab[r][cL]); else if(power==1){printf(" %+.3fx", Ab[r][cL]);power--;} else printf(" %+.3fx**%d",Ab[r][cL], power--); } else power--; printf("\n\n\n"); } /* --------------------------------- */ void verify_X_mR( double **Ab, double x ) { int r = R1; int power = rsize_R(Ab)-R1; int cL = csize_R(Ab); double y = 0.; for(;r<Ab[R_SIZE][C0];r++) y+= Ab[r][cL]*pow(x,power--); printf(" With x = %+.3f, y = %+.3f \n",x,y); } /* --------------------------------- */ /* --------------------------------- */ </syntaxhighlight> Déclaration des fichiers h. {{AutoCat}} 5l7z8gxzzmb9xhijgytja5jnk2plwiz Mathc matrices/26b 0 77632 746331 746299 2025-07-08T12:21:58Z Xhungab 23827 746331 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un conique }} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26b| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. </syntaxhighlight> Deux exemples : * [[Mathc matrices/c26b1|c00a.c ]], [[Mathc matrices/06m| QR ]] * [[Mathc matrices/c26b5|c00b.c ]], [[Mathc matrices/06n| QR ]] * [[Mathc matrices/c26b2|c00c.c ]], [[Mathc matrices/06o| QR ]] * [[Mathc matrices/c26b3|c00d.c ]], [[Mathc matrices/06p| QR ]] * [[Mathc matrices/c26b4|c00e.c ]], [[Mathc matrices/06q| QR ]] {{AutoCat}} 89ouak4arsh2l7qycg4zmfvay4kqxlt 746372 746331 2025-07-09T08:57:06Z Xhungab 23827 746372 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un conique }} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26b| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. </syntaxhighlight> '''Exemples avec : gj_TP_mR(); QR_mR(); Pinv_Rn_mR();''' * [[Mathc matrices/c26b1|c00a.c ]], [[Mathc matrices/06m| '''QR''' ]] * [[Mathc matrices/c26b5|c00b.c ]], [[Mathc matrices/06n| '''QR''' ]] * [[Mathc matrices/c26b2|c00c.c ]], [[Mathc matrices/06o| '''QR''' ]] * [[Mathc matrices/c26b3|c00d.c ]], [[Mathc matrices/06p| '''QR''' ]] * [[Mathc matrices/c26b4|c00e.c ]], [[Mathc matrices/06q| '''QR''' ]] {{AutoCat}} c8sgzusjyqjf6dwvjhk4ojjrt4hpqbf 746373 746372 2025-07-09T09:01:10Z Xhungab 23827 746373 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un conique }} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26b| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. </syntaxhighlight> '''Exemples avec : gj_TP_mR(); QR_mR(); Pinv_Rn_mR();''' * [[Mathc matrices/c26b1|c00a.c ]], [[Mathc matrices/06m| '''QR''' ]], [[Mathc matrices/075| SVD:PseudoInverse ]] * [[Mathc matrices/c26b5|c00b.c ]], [[Mathc matrices/06n| '''QR''' ]] * [[Mathc matrices/c26b2|c00c.c ]], [[Mathc matrices/06o| '''QR''' ]], [[Mathc matrices/076| SVD:PseudoInverse ]] * [[Mathc matrices/c26b3|c00d.c ]], [[Mathc matrices/06p| '''QR''' ]], [[Mathc matrices/077| SVD:PseudoInverse ]] * [[Mathc matrices/c26b4|c00e.c ]], [[Mathc matrices/06q| '''QR''' ]], [[Mathc matrices/078| SVD:PseudoInverse ]] {{AutoCat}} i97i9fx9frl2ca18olfpf5kcwlekvmb 746378 746373 2025-07-09T09:23:20Z Xhungab 23827 746378 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un conique }} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26b| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. </syntaxhighlight> '''Exemples avec :''' gj_TP_mR(); '''QR_mR();''' Pinv_Rn_mR(); * [[Mathc matrices/c26b1|c00a.c ]], [[Mathc matrices/06m| '''QR''' ]], [[Mathc matrices/075| SVD:PseudoInverse ]] * [[Mathc matrices/c26b5|c00b.c ]], [[Mathc matrices/06n| '''QR''' ]] * [[Mathc matrices/c26b2|c00c.c ]], [[Mathc matrices/06o| '''QR''' ]], [[Mathc matrices/076| SVD:PseudoInverse ]] * [[Mathc matrices/c26b3|c00d.c ]], [[Mathc matrices/06p| '''QR''' ]], [[Mathc matrices/077| SVD:PseudoInverse ]] * [[Mathc matrices/c26b4|c00e.c ]], [[Mathc matrices/06q| '''QR''' ]], [[Mathc matrices/078| SVD:PseudoInverse ]] {{AutoCat}} 00ecc3omn0tntkdhnwhlja0y83iih74 Mathc matrices/26c 0 77639 746332 746311 2025-07-08T12:22:24Z Xhungab 23827 746332 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un cercle}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26c| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. </syntaxhighlight> Deux exemples : * [[Mathc matrices/c26c1|c00a.c ]], [[Mathc matrices/06r| QR ]] * [[Mathc matrices/c26c2|c00b.c ]], [[Mathc matrices/06s| QR ]] * [[Mathc matrices/c26c3|c00c.c ]], [[Mathc matrices/06t| QR ]] * [[Mathc matrices/c26c4|c00d.c ]], [[Mathc matrices/06u| QR ]] {{AutoCat}} dpefh3fhr5p6pdlg0li5xjjsifd8esm 746363 746332 2025-07-08T22:28:12Z Xhungab 23827 746363 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un cercle}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26c| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. </syntaxhighlight> Deux exemples : * [[Mathc matrices/c26c1|c00a.c ]], [[Mathc matrices/06r| QR ]], [[Mathc matrices/071| SVD:PseudoInverse ]] * [[Mathc matrices/c26c2|c00b.c ]], [[Mathc matrices/06s| QR ]], [[Mathc matrices/072| SVD:PseudoInverse ]] * [[Mathc matrices/c26c3|c00c.c ]], [[Mathc matrices/06t| QR ]], [[Mathc matrices/073| SVD:PseudoInverse ]] * [[Mathc matrices/c26c4|c00d.c ]], [[Mathc matrices/06u| QR ]], [[Mathc matrices/074| SVD:PseudoInverse ]] {{AutoCat}} kkv40c4jl3looebgm8vt0k8kdzs7da6 746369 746363 2025-07-09T08:54:31Z Xhungab 23827 746369 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un cercle}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26c| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. </syntaxhighlight> Exemples avec : gj_TP_mR(); QR_mR(); Pinv_Rn_mR(); : * [[Mathc matrices/c26c1|c00a.c ]], [[Mathc matrices/06r| QR ]], [[Mathc matrices/071| SVD:PseudoInverse ]] * [[Mathc matrices/c26c2|c00b.c ]], [[Mathc matrices/06s| QR ]], [[Mathc matrices/072| SVD:PseudoInverse ]] * [[Mathc matrices/c26c3|c00c.c ]], [[Mathc matrices/06t| QR ]], [[Mathc matrices/073| SVD:PseudoInverse ]] * [[Mathc matrices/c26c4|c00d.c ]], [[Mathc matrices/06u| QR ]], [[Mathc matrices/074| SVD:PseudoInverse ]] {{AutoCat}} h10dvvgrjye2aw223dxqk17w96i5rhw 746370 746369 2025-07-09T08:55:11Z Xhungab 23827 746370 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un cercle}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26c| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. </syntaxhighlight> '''Exemples avec : gj_TP_mR(); QR_mR(); Pinv_Rn_mR();''' * [[Mathc matrices/c26c1|c00a.c ]], [[Mathc matrices/06r| QR ]], [[Mathc matrices/071| SVD:PseudoInverse ]] * [[Mathc matrices/c26c2|c00b.c ]], [[Mathc matrices/06s| QR ]], [[Mathc matrices/072| SVD:PseudoInverse ]] * [[Mathc matrices/c26c3|c00c.c ]], [[Mathc matrices/06t| QR ]], [[Mathc matrices/073| SVD:PseudoInverse ]] * [[Mathc matrices/c26c4|c00d.c ]], [[Mathc matrices/06u| QR ]], [[Mathc matrices/074| SVD:PseudoInverse ]] {{AutoCat}} mydh9l9jhnwwpybgugt1i2wmx0473nt 746371 746370 2025-07-09T08:56:02Z Xhungab 23827 746371 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un cercle}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26c| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. </syntaxhighlight> '''Exemples avec : gj_TP_mR(); QR_mR(); Pinv_Rn_mR();''' * [[Mathc matrices/c26c1|c00a.c ]], [[Mathc matrices/06r| '''QR''' ]], [[Mathc matrices/071| SVD:PseudoInverse ]] * [[Mathc matrices/c26c2|c00b.c ]], [[Mathc matrices/06s| '''QR''' ]], [[Mathc matrices/072| SVD:PseudoInverse ]] * [[Mathc matrices/c26c3|c00c.c ]], [[Mathc matrices/06t| '''QR''' ]], [[Mathc matrices/073| SVD:PseudoInverse ]] * [[Mathc matrices/c26c4|c00d.c ]], [[Mathc matrices/06u| '''QR''' ]], [[Mathc matrices/074| SVD:PseudoInverse ]] {{AutoCat}} f2o4uj3cmzcnl84csp8uld1k4nr2qe1 746379 746371 2025-07-09T09:23:51Z Xhungab 23827 746379 wikitext text/x-wiki __NOTOC__ [[Catégorie:Mathc matrices (livre)]] : [[Mathc matrices/a259| '''Gass-Jordan''']] {{Partie{{{type|}}}|L'équation d'un cercle}} : Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes : *[[Mathc matrices/h26c| '''d.h ..................... Déclaration des fichiers h''']] Ne pas conserver le fichier d.h avec la bibliothèque après avoir testé les exemples. '''Présentation :''' <syntaxhighlight lang="C"> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. </syntaxhighlight> '''Exemples avec :''' gj_TP_mR(); '''QR_mR();''' Pinv_Rn_mR(); * [[Mathc matrices/c26c1|c00a.c ]], [[Mathc matrices/06r| '''QR''' ]], [[Mathc matrices/071| SVD:PseudoInverse ]] * [[Mathc matrices/c26c2|c00b.c ]], [[Mathc matrices/06s| '''QR''' ]], [[Mathc matrices/072| SVD:PseudoInverse ]] * [[Mathc matrices/c26c3|c00c.c ]], [[Mathc matrices/06t| '''QR''' ]], [[Mathc matrices/073| SVD:PseudoInverse ]] * [[Mathc matrices/c26c4|c00d.c ]], [[Mathc matrices/06u| '''QR''' ]], [[Mathc matrices/074| SVD:PseudoInverse ]] {{AutoCat}} 0ougserkeuyx6hz2kwdp5le9cvo6kky Recherches sur les naissances "physiologique" et "naturelle"/Sommaire/Questions sur les hormones 0 81159 746355 721390 2025-07-08T19:15:34Z 2A02:8440:715C:6F66:544A:8D81:B124:41CD /* L’ocytocine de synthèse */Ajout de sic dans la citation, devrait être "davantage" 746355 wikitext text/x-wiki == Les œstrogènes == En 1929, Adolf Butenandt et le duo Edgar Allen-Edward A. Doisy ont indépendamment isolé et purifié l'œstrone, le premier œstrogène découvert. Si Doisy recevra le Nobel, Butenandt non, possiblement dû au fait de son implication dans le régime Nazi. Ensuite, l'estriol et l'estradiol ont été découverts respectivement en 1930 par l’équipe de Marrian, et 1933 par Schwenk and Hildebrant. Les œstrogènes ou estrogènes, lipides complexes, constituent un sous-groupe d’hormones stéroïdiennes dérivées du choléstérol <span style="color:#000000;">dont l'abondance augmente à la fin de la gestation chez la plupart des espèces. </span> <span style="color:#000000;">Ils augmentent la contraction utérine en induisant l'expression de gènes dans les cellules musculaires lisses utérines codant pour des facteurs qui augmentent contractilité et excitabilité.</span> Les trois principaux œstrogènes endogènes sont l'estone (E1), l'estriol (E3) et l’oestradiol ou estradiol (E2), le plus puissant et le plus répandu. E4, l’estérol, est produit uniquement durant la grossesse. Il semble que la plupart des vertébrés en fabriquent, de même que quelques insectes, ce qui semble témoigner d’une histoire évolutive ancienne. Ils sont produits en premier lieu par le développement des follicules des ovaires et par le placenta. Certains œstrogènes sont également produits en petites quantités par d'autres tissus tels le foie, la surrénale, les seins et le tissu adipeux. Leur fonction de base est d'être une hormone sexuelle femelle primaire, même s’ils ont des fonctions également chez les mâles. Ils sont également impliqués dans le développement du système nerveux central, dans l'homéostasie du squelette et du système cardiovasculaire, et ont également des effets sur le foie et le tissu adipeux. La quantité présente est significativement plus importante chez les femmes que chez les hommes. Ils favorisent le développement des caractères sexuels secondaires féminins, comme les seins, le vagin, l’utérus et sont également impliqués dans la maturation des follicules ovariens, donc dans le cycle menstruel, ce qui explique pourquoi la plupart des contraceptifs hormonaux comme les pilules contraceptives en contiennent. Les œstrogènes amènent les mammifères femelles dotées d’une période d’œstrus à adopter un comportement réflexe moteur de de lordose, nécessaire pour la réceptivité sexuelle. Mais à partir des primates et surtout des hominidés (chimpanzés, orangs-outans, gorilles, humains), les réflexes innés deviennent secondaires. Le cycle menstruel rend les femelles actives tout le long du cycle, et non seulement dans la fenêtre des chaleurs. Chez l’être humain, le réflexe de lordose n'est pas fonctionnel, même s’il semble exister (c’est encore âprement discuté) une certaine réceptivité, peut être vestigiale à la cambrure accrue, comme l’a envisagé en 2017 Pazhooni<ref name="ftn159">Pazhoohi, F. ''et al'' (2017). Arching the back (lumbar curvature) as a female sexual proceptivity signal: An eyetracking study, ''Evolutionary Psychological Science'' DOI 10.1007/s40806-017-0123-7.</ref>. Les œstrogènes sont avec la <span style="color:#000000;">progestérone sont les principales hormones de la grossesse. Une femme produira plus d'œstrogènes pendant une grossesse que pendant toute sa vie sans être enceinte. Ils augmentent la contraction utérine en induisant l'expression de gènes dans les cellules musculaires lisses utérines codant pour des facteurs qui augmentent contractilité et excitabilité. </span> Quand je lis dans Davis et Pascali-B que l’œstrogène (au singulier, c’est mauvais signe) est l’hormone de l’ovulation, qu’elle provoquerait «&nbsp;élans sexuels doux&nbsp;», sensibilité et flexibilité du vagin, sensibilité des seins, c’est au mieux inexact et très imprécis. Pour que les follicules ovariens se rompent et libèrent les cellules ovariennes (ovulation) il faut un contrôle de l'hypothalamus et la libération d'hormones sécrétées dans le lobe antérieur de l' hypophyse, l'hormone lutéinisante (LH ou lutropine) et l'hormone folliculo-stimulante (FSH), toutes deux des glycoprotéines. L'ovulation est déclenchée par un pic de la quantité de FSH et de LH libérée par l'hypophyse. == La relaxine == La relaxine a été décrite en 1926 par Frederick Hisaw. C’est une hormone peptidique de la grande famille des insulines. Elle sécrétée par le corps jaune de l’ovaire, le tissu mammaire, le placenta, le chorion et la caduque. Elle provoque l'assouplissement et le relâchement de l'utérus, la maturation cervicale, la relaxation/élongation des ligaments pelviens et de la symphyse pubienne, ce qui facilite l'expulsion du bébé. Elle est présente également dans le sperme (secrétée par la prostate)&nbsp;: elle favorise la progression des spermatozoïdes dans les voies génitales de la femme. Contrairement à la ratte par exemple, chez les femmes la relaxine n’exerce aucune activité sur la relaxation du col de l’utérus pendant l’accouchement. En revanche, dans l’espèce humaine, un pic de relaxine circulante est observé en début de grossesse, au moment de la nidification de l’embryon, et il a été montré que la protéine joue un rôle crucial dans l’induction de la phase de décidualisation<ref name="ftn1602">Tellgmann R, Gellersen B. Marker genes of decidualization : activation of the decidual prolactin gene. Hum Reprod 1998; 4 : 472–9.</ref>. Qu’est-ce que la phase de décidualisation&nbsp;? Certaines cellules de l’endomètre de l’utérus peuvent se transformer, entre autres sous l’action de la progestérone en cellules déciduales arrondies, productrices d’hormones (prolactine) et d’une protéine de liaison du facteur de croissance insulinique (IGF, ''insulin growth factor''). Cette transformation survient lors de la nidation de l’œuf fécondé. Toutes les femelles de mammifères voient leur muqueuse utérine ou endomètre se préparer en vue de l'implantation de l'embryon, à la différence près que la plupart des mammifères manifestent une décidualisation déclenchée, où l'œuf fécondé lui-même est l'instigateur de cet épaississement, alors que chez les femmes, il s’agit d’une décidualisation spontanée, qui se produit même en l'absence d'œuf fécondé. Note&nbsp;: j’ai lu avec surprise ceci<blockquote>« L’humain est l'une des rares espèces de mammifères vivipares chez qui la grossesse se prolonge au-delà de la phase lutéale, phase au cours de laquelle la progestérone est synthétisée par l'ovaire maternel. Au lieu de cela, c'est le placenta fœtal qui produit la progestérone tout au long des 2 derniers trimestres de la grossesse humaine. Le placenta est crucial sur le plan du développement pour le succès de la reproduction et constitue la nouveauté anatomique la plus remarquable des mammifères placentaires. Cependant, avant qu'il puisse exercer sa double fonction d'organe endocrinien et d'organe capable de faciliter les échanges de gaz et de nutriments, d'énormes changements doivent avoir lieu dans l'utérus non seulement pour tolérer la présence de ce tissu hémiallogénique, mais aussi pour accueillir et soutenir le placenta. développement. Le plus dramatique de ces changements est la décidualisation de l'endomètre, dont l'origine coïncide dans l'histoire évolutive avec la placentation invasive. Cet article s'appuie sur l'observation que les changements physiologiques qui se produisent pendant la phase sécrétoire non enceinte du cycle utérin chez les femmes sont remarquablement similaires à ceux observés pendant la grossesse. Les caractéristiques fondamentales de la grossesse humaine (y compris la décidualisation de l'endomètre suivie plusieurs mois plus tard d'une inflammation intra-utérine, de contractions utérines et d'un écoulement de la muqueuse déciduale de la cavité utérine) sont déjà présentes dans le cycle menstruel non enceinte et sont donc indépendantes du fœtus. Nous émettons l'hypothèse que de nombreux défauts physiologiques qui entraînent des complications pendant la grossesse et l'accouchement sont déjà détectables lors de la décidualisation spontanée à l'état non enceinte et au début des menstruations, et peuvent donc être déterminés avant le début de la grossesse »<ref>Pavlicev M, Norwitz ER. Human Parturition: Nothing More Than a Delayed Menstruation. Reprod Sci. 2018 Feb;25(2):166-173. doi: 10.1177/1933719117725830. Epub 2017 Aug 22. PMID: 28826363.</ref>.</blockquote>La relaxine est également impliquée dans le développement de nouveaux vaisseaux sanguins indispensables à la croissance de l’embryon<ref name="ftn1612">Unemori EN, Erikson ME, Rocco SE, et al. Relaxin stimulates expression of vascular endothelial growth factor in normal human endometrial cells in vitro and is associated with menometrorrhagia in women. Hum Reprod 1999; 14 : 800–6.</ref>. Par ailleurs, elle n’est pas uniquement une hormone de la grossesse&nbsp;: elle est notamment responsable de la néoangiogenèse après un infarctus ou pendant une cicatrisation, elle prévient l’apparition de fibrose, elle affecte le métabolisme du collagène, est un puissant vasodilatateur sanguin<ref name="ftn1622">Conrad KP (August 2011). "Maternal vasodilation in pregnancy: the emerging role of relaxin". American Journal of Physiology. Regulatory, Integrative and Comparative Physiology. 301 (2): R267-75. doi:10.1152/ajpregu.00156.2011. PMC&nbsp;3154715. PMID&nbsp;21613576.</ref> ''Anecdote''&nbsp;: il faudra attendre 76 ans pour qu’on mette le doigt sur les récepteurs de la relaxine, avec les travaux de Hsu ''& al.''<ref name="ftn1632">Hsu SY, Nakabayashi K, Nishi S, ''et al.'' Activation of orphan receptors by the hormone relaxin. ''Science'' 2002; 295 : 671–4.</ref> en 2002. Il semble que qu’une faiblesse en relaxine soit un trait commun possible des femmes atteintes d'endométriose<ref name="ftn1642">Marshall SA, Senadheera SN, Parry LJ, Girling JE (March 2017). "The Role of Relaxin in Normal and Abnormal Uterine Function During the Menstrual Cycle and Early Pregnancy". Reproductive Sciences. 24 (3): 342–354. doi:10.1177/1933719116657189. PMID&nbsp;27365367. S2CID&nbsp;22443796.</ref>. Est-ce une voie à explorer ? Une autre question en suspens : la relaxine joue-t-elle un rôle dans la fertilité ? == La mélatonine == <div style="color:#000000;">La mélatonine ou N-acétyl-5-méthoxytryptamine, souvent dénommée hormone du sommeil, est la molécule principale de la glande pinéale surtout connue comme étant l'hormone centrale de régulation des rythmes chronobiologiques en étant synthétisée surtout la nuit. Elle régule de nombreuses sécrétions hormonales, chez l'humain et les autres mammifères. Cette neurohormone est synthétisée à partir d'un neurotransmetteur, la sérotonine, qui dérive elle-même du tryptophane, un acide alpha-aminé. La sérotonine est synthétisée jour et nuit en réponse à l'absence de lumière et stockée dans la glande pinéale, mais la nuit sa concentration baisse car elle sert de substrat à la synthèse de la mélatonine. La rétine, mais aussi les mitochondries de la moelle osseuses et d’autres cellules en produisent. Les noix et les noisettes sont des sources importantes de mélatonine biodisponible, c'est-à-dire facilement absorbable par l'organisme. C’est Julius Axelrod (1912-2004) qui découvre le rôle de la mélatonine et de la glande pinéale sur le cycle du sommeil et les autres rythmes circadiens.</div><span style="color:#000000;">La présence d'horloges circadiennes dans les tissus périphériques des mammifères n'a été acceptée qu'au XXIe siècle (Yamazaki & al., 2000, Reppert et Weaver, 2002, Abe & al., 2002). </span>Chez les mammifères, les rythmes circadiens sont contrôlés par le stimulateur circadien principal, le noyau suprachiasmatique.<div style="color:#000000;">'''Points critiques'''</div><span style="color:#000000;">Les personnes qui défendent la Naissance naturelle pensent que la mélatonine expliquerait pourquoi les femmes accouchent plus souvent la nuit et plus facilement dans la pénombre. Il y aurait des récepteurs à mélatonine dans l’utérus.</span><div style="color:#21409a;"><span style="color:#000000;">Dans un papier d’une revue certes secondaire, cosigné par Michel Odent, on lit : </span><blockquote><span style="color:#000000;">«&nbsp;La littérature démontre l’importance des caractéristiques de la lumière (spectre, intensité, durée d’exposition) et l’action des conditions lumineuses antérieures et du moment d’exposition, sur l’inhibition de sécrétion de mélatonine. La présence de récepteurs utérins à la mélatonine, l’augmentation de la concentration sanguine en mélatonine au cours du travail et l’action synergique de la mélatonine et de l’ocytocine sont également démontrées par les auteurs. Les taux d’éclairement mesurés en salles d’accouchement peuvent aller jusqu’à 5000&nbsp;lux. Les effets de ces taux retrouvés dans la littérature semblent diminuer significativement les concentrations en mélatonine chez la parturiente&nbsp;»<ref name="ftn165">Influence de la lumière sur le processus de parturition humaine, La Revue Sage-Femme Volume 16, Issue 5, November 2017, pp. 303-323.</ref>. </span></blockquote></div>Tentons d’approfondir un peu.<div style="color:#000000;"> Effectivement la mélatonine remplit de nombreux critères attendus pour servir de signal circadien dans l'initiation de la parturition humaine<ref name="ftn166">Olcese J, Lozier S, Paradise C. Melatonin and the circadian timing of human parturition. Reprod Sci. 2013 Feb;20(2):168-74. doi: 10.1177/1933719112442244. Epub 2012 May 3. PMID: 22556015. et Olcese J. Circadian aspects of mammalian parturition: a review. Mol Cell Endocrinol. 2012 Feb 5;349(1):62-7. doi: 10.1016/j.mce.2011.06.041. Epub 2011 Jul 14. PMID: 21777654.</ref>. On dit un peu partout que la mélatonine serait une hormone importante pendant l’accouchement, qui expliquerait pourquoi les femmes accouchent plus souvent la nuit et plus facilement dans la pénombre. Il y aurait des récepteurs à mélatonine dans l’utérus. Olcese ''& al.'' écrivent&nbsp;: <blockquote>«&nbsp;Bien que l'on sache depuis longtemps que le début de la parturition humaine spontanée se produit préférentiellement pendant la nuit et tôt le matin, aucune explication physiologique convaincante de ce schéma n'a encore été proposée&nbsp;». </blockquote>Ce n’est pas encore bien démontré, mais il semble bien que les différences dans le phasage de la parturition entre les différentes espèces soient probablement fonction de réponses utérines opposées aux signaux humoraux, en particulier ceux codant pour l'heure de la journée. L'hormone cérébrale mélatonine remplit de nombreuses conditions pour servir de signal circadien en vue de déclencher les contractions utérines qui conduisent à la parturition humaine. Par exemple, il y a action directe de la mélatonine sur les cellules musculaires lisses du myomètre, et qui, en synergie avec l'ocytocine vont occasionner de plus grandes contractions utérines la nuit<ref name="ftn167">Olcese J, Lozier S, Paradise C. Melatonin and the circadian timing of human parturition. Reprod Sci. 2013 Feb;20(2):168-74. doi: 10.1177/1933719112442244. Epub 2012 May 3. <span style="color:#000000;">PMID: 22556015. et Olcese&nbsp;:Circadian aspects of mammalian parturition: A review (2012)</span></ref>. Cornélia Gwinner a fait une revue de littérature en 2016<ref name="ftn168">Influence de la lumière sur le processus de parturitionhumaine Revue de la littérature, 2016 HAL Id: dumas-01412390https://dumas.ccsd.cnrs.fr/dumas-01412390</ref> sur les effets de la mélatonine sur la contractilité, et sur la machinerie contractile des cellules hTERT. Elle a mobilisé plusieurs études, dont Sharkey ''& al.'' 2009<ref name="ftn169">J T Sharkey et al., Melatonin synergizes with oxytocin to enhance contractility of human myometrial smooth muscle cells », The Journal of clinical endocrinology and metabolism, 2009.</ref> qui montre que : <span style="color:#000000;">–</span> le myomètre humain est une cible pour la mélatonine.</div><span style="color:#000000;">– La mélatonine augmente la sensibilité à l'ocytocine et la contractilité du myomètre in vitro, via la voie de signalisation MT2R (</span>récepteur 2 à la mélatonine) <span style="color:#000000;">/ phospholipase C / protéine kinase C.</span> <span style="color:#000000;">– La mélatonine augmente l'expression de la protéine connexine 43 des jonctions gap in vitro, via une voie dépendant de la </span>protéine kinase C<span style="color:#000000;">.</span><div style="color:#000000;">– La mélatonine augmente la connectivité intercellulaire ''in vitro''. Mais mes compétences en biochimie sont trop limitées pour voir les éventuelles failles chez Sharkley. De fait, Sharkey conclue&nbsp;: <blockquote>«&nbsp;La mélatonine agit en synergie avec l'ocytocine pour stimuler les contractions des cellules myométriales et pour faciliter l'activité des jonctions gap ''in vitro''&nbsp;». </blockquote>Gwinner concluait ainsi&nbsp;: <blockquote>«&nbsp;À ce jour, l'action inhibitrice de la lumière sur le processus de parturition n'est pas formellement établie. Cependant, les données actuelles de la littérature sont en faveur de cette hypothèse : au cours de la nuit, la lumière inhibe la sécrétion physiologique de mélatonine par la glande pinéale. La mélatonine ne stimule plus la sécrétion d'ocytocine au niveau hypophysaire et n'agit plus en synergie avec l'ocytocine au niveau utérin pour augmenter les contractions&nbsp;».</blockquote>Parmi les derniers papiers&nbsp;:</div><span style="color:#000000;">McCarthy ''& al.'' 2019<ref name="ftn170">McCarthy R, Jungheim ES, Fay JC, Bates K, Herzog ED, England SK. Riding the Rhythm of Melatonin Through Pregnancy to Deliver on Time. Front Endocrinol (Lausanne). 2019 Sep 13;10:616. doi: 10.3389/fendo.2019.00616. PMID: 31572299; PMCID: PMC6753220.</ref> : </span><blockquote><span style="color:#000000;">«&nbsp;Le désaligne</span>ment circadien provoque des perturbations maternelles dans l'organisation temporelle de nombreux processus physiologiques, y compris la synthèse de la mélatonine, et ces perturbations du système circadien ont été associées à un risque accru de complications de la grossesse&nbsp;»</blockquote>présentant un certain nombre d’éléments montrant que la mélatonine aide à réguler les systèmes circadiens maternel et fœtal et le moment de la naissance. Un article très technique de Hsu ''& al.''<ref name="ftn171">Hsu CN, Tain YL. Light and Circadian Signaling Pathway in Pregnancy: Programming of Adult Health and Disease. Int J Mol Sci. 2020 Mar 23;21(6):2232. doi: 10.3390/ijms21062232. PMID: 32210175; PMCID: PMC7139376.</ref>, que j’ai essayé de décrypter, montre également cela, et appelle à une attention accrue sur la chronoperturbation des parturientes. Donc le pressentiment de Michel Odent s’avère justifié.<div style="color:#000000;">''Note''&nbsp;: Il n’est pas du tout clair que donner de la mélatonine à la mère protège le cerveau du bébé<ref name="ftn172">Wilkinson D, Shepherd E, Wallace EM. Melatonin for women in pregnancy for neuroprotection of the fetus. Cochrane Database of Systematic Reviews 2016, Issue 3. Art. No.: CD010527. DOI: 10.1002/14651858.CD010527.pub2.</ref>.</div>Une des questions posées est le rôle de la lumière dans le processus, et pourquoi pas, le rôle de la Lune (bien que J. Balleyer ait déjà fait une synthèse sur le sujet). J’ai trouvé cet article de Matsumoto ''& al.'' (2020) bizarre&nbsp;:<div style="color:#000000;"><blockquote>«&nbsp;Nous avons examiné les actes de naissance du 1er janvier 1996 au 16 mars 2007 du service d'obstétrique de notre hôpital, qui était alors situé dans une zone relativement peu développée de la ville de Fukutsu dans la préfecture de Fukuoka au sud du Japon. Un total de 1507 naissances ont satisfait à tous les critères d'inclusion, entre autres, être à terme et suite à un travail déclenché spontanément. Lorsque les données sur les naissances ont été analysées comme par d'autres enquêteurs, c'est-à-dire le nombre total de naissances par jour lunaire, la phase lunaire n'a pas été jugée influente. Cependant, des analyses plus détaillées sur le sous-ensemble de bébés nés spécifiquement pendant les heures nocturnes (N = 362) ont révélé que le nombre de naissances variait spécifiquement en fonction de la quantité changeante de clair de lune pendant la nuit à différents stades du cycle lunaire, avec le nombre le plus élevé des naissances à ou autour de la pleine lune. En revanche, des analyses sur le sous-ensemble de bébés nés spécifiquement pendant les heures diurnes (N = 377) ont révélé que le nombre de naissances variait spécifiquement en fonction de la quantité changeante de clair de lune pendant la journée à différents stades du cycle lunaire, avec le plus grand nombre de naissances à ou autour de la nouvelle lune. L'initiation et le point culminant de la naissance humaine sont généralement un processus nocturne. Les résultats de cette enquête sont cohérents avec l'hypothèse que la parturition nocturne naturelle est influencée par la phase lunaire, en particulier la pleine lune, et, par conséquent, ils sont cohérents avec la croyance que la lune exerce un effet sur le moment de la naissance humaine. Nous supposons que la croyance de longue date de l'association entre la naissance et la phase lunaire peut être basée sur des observations historiques selon lesquelles, en l'absence de lumière artificielle la nuit, les naissances nocturnes se sont produites en nombre élevé lorsque la pleine lune illuminait brillamment le ciel nocturne&nbsp;»<ref>Matsumoto SI, Shirahashi K. Chronobiol Int. 2020 Jul;37(7):1082-1089. doi: 10.1080/07420528.2020.1785485. Epub 2020 Jul 23. PMID: 32703035.</ref>.</blockquote>Chose étrange, si la lumière est en jeu, cela sous-entend a) que les parturientes étaient dehors 2) que la Lune n’était pas voilée de nuages&nbsp;?</div> == La progestérone == La progestérone, <span style="color:#000000;">Comme son nom l'indique, est une hormone pro-gestation, </span>appelée parfois hormone de la grossesse ou P4, (appelée aussi je crois ''lutéine'' fut un temps). C’est une hormone stéroïdienne principalement sécrétée par les cellules du corps jaune des ovaires et le placenta. Comme son nom l’indique, (progestogène : progestatif, supporte la gestation) elle est impliquée dans la grossesse et l'embryogenèse de nombreuses espèces de mammifères, ainsi que dans le cycle menstruel. Elle été découverte simultanément par quatre groupes différentes (l’histoire dit qu’il a fallu 50 000 ovaires de truies pour isoler les premiers milligrammes). C’est Willard Allen qui lui a donné son nom dérivé de l’anglais Progestational Steroidal ketone, entre 1930 et 1935<ref name="ftn173">Allen WM (1930) Physiology of the corpus luteum VI. the production of progestational proliferation of the endometrium of the mature rabbit by progestin (an extract of the corpus luteum) after preliminary treatment with oestrin, ''American Journal of Physiology'' '''92''':612–681. <nowiki>https://doi.org/10.1152/ajplegacy.1930.92.3.612</nowiki>.</ref>. Dans les années 1950, Carl Djerassi et son groupe ont réussi à produire de la progestérone synthétique. La progestérone est synthétisée par modification enzymatique du cholestérol sous l'action de l'hormone lutéinisante (LH). Elle peut ensuite être convertie soit en androstènedione, puis en testostérone, soit en œstradiol (E2) par les cellules de la granulosa qui entourent le follicule ovarien. Dans le cycle ovarien, la progestérone inhibe les contractions rythmiques de la musculature utérine – ce qu’on appelle un effet tocolytique. Cela crée un «&nbsp;silence&nbsp;» utérin sans lequel toute gestation serait impossible. Elle permet le maintien et la densification de la muqueuse utérine, le développement de la vascularisation de l'endomètre, et l'apparition de glandes utérines responsables de l'aspect dentelé de la paroi utérine. La progestérone semble aussi diminuer la réponse immunitaire maternelle pour permettre l'acceptation de la grossesse<ref name="ftn174">Di Renzo GC, Giardina I, Clerici G, Brillo E, Gerli S (July 2016). "Progesterone in normal and pathological pregnancy". Hormone Molecular Biology and Clinical Investigation. 27 (1): 35–48. doi:10.1515/hmbci-2016-0038. PMID 27662646. S2CID 32239449.</ref>.<div style="color:#000000;">Un trait conservé chez semble-t-il tous les mammifères vivipares examinés jusqu'à présent, y compris les lézards est que l'établissement et le maintien de la grossesse dépendent fortement de la P4, comme l’ont montré Corner & Allen en 1929<ref name="ftn175">Corner GW Allen WM (1929) Physiology of the corpus luteum; production of a special uterine reaction (progestational proliferation) by extracts of corpus luteum The American Journal of Physiology 88:826–839. https://doi.org/10.1152/ajplegacy.1929.88.2.326.</ref>, puis Csapo en 1956<ref name="ftn176">Csapo A (1956) Progesterone ? Block? American Journal of Anatomy 98:273–291. https://doi.org/10.1002/aja.1000980206.</ref>. Elle favorise la quiescence myométriale, la fermeture cervicale, la tolérance immunologique à l'interface materno-fœtale et, surtout, maintient la parturition.</div>Quand Davis et Pascali-Bonaro<ref name=":0">Elizabeth Davis, Debra Pascali-Bonaro, La naissance orgasmique, Guide pour vivre une naissance sûre, satisfaisante et agréable, éd. Du Hêtre (2010).</ref> écrivent que la progestérone s’allie à la relaxine '''''pour''''' assouplir le corps... Je suis dubitatif. D’abord parce qu’il n’y a rien «&nbsp;pour&nbsp;» en biologie, il n’y a pas d’intention&nbsp;: celleux qui éteint dotés de ces capacités ont survécu, les autres non. S'il n'y a pas fécondation, la concentration de progestérone revient à un niveau normal car les cellules du corps jaune dans lequel elle est produite vont aussitôt régresser puis disparaître. En gros, la progestérone effectue un rétrocontrôle négatif sur le complexe hypothalamo-hypophysaire lors de la phase lutéale, phase qui suit l'ovulation et qui constitue les quatorze derniers jours du cycle. En effet, elle inhibe, de la même façon que l'estradiol, la sécrétion des hormones (FSH et LH) qui stimulent sa propre sécrétion par le corps jaune. Ce système est une sorte de système de régulation qui maintient par ces deux actions réciproques un taux sanguin constant d'hormones, ici la progestérone mais c'est aussi le cas de l'estradiol. Quand la progestérone est haute, ces hormones baissent (et par conséquent corrigent la tendance), et quand la progestérone est basse, ces hormones montent (et rétablissent la valeur). Cocasserie, il y a au moins une plante qui en contient, le noyer (''Juglans Regia),'' et d’autres qui contiennent de la diosgénine, qui peut être converti en progestérone (certaines ignams, fenugrec). On l’a vu, chez les rongeurs la production ovarienne de P4 est le facteur déterminant du maintien de la grossesse. Chez d'autres espèces, comme les moutons et les primates, la source de P4 pour le maintien de la grossesse se déplace du corps jaune vers le placenta<ref name="ftn177">Tuckey RC (2005) Progesterone synthesis by the human placenta Placenta 26:273–281. https://doi.org/10.1016/j.placenta.2004.06.012.</ref>.<div style="color:#000000;">Les études pionnières de Liggins ''& al''<ref name="ftn178">Liggins G Fairclough R Frieves S Forster C Knox B (1977) Parturition in the Sheep Amsterdam: Elsevier. https://doi.org/10.1002/9780470720295.ch2.</ref> en 1974 ont démontré que la parturition chez les moutons est déclenchée par une activité accrue de l'axe hypothalamo-hypophyso-surrénalien fœtal pour produire une poussée de cortisol qui diminue la production de P4 par le placenta, entraînant un retrait systémique de P4 qui déclenche la parturition. le mécanisme ovin pour le moment de la naissance est uniquement contrôlé par le cortisol produit par l'axe HPA fœtal qui coordonne le moment de la naissance avec la maturation fœtale et la préparation à exister en tant que nouveau-né. Mais il semble que chez l’humain, ce soit beaucoup moins simple. Pourtant, j’ai cru comprendre que ce sont les travaux de Liggins et de ses collègues sur les moutons ont conduit à l'utilisation clinique généralisée de la corticothérapie synthétique pour favoriser la maturation pulmonaire fœtale chez les femmes qui connaissent un travail prématuré et qui sont à risque d'accouchement prématuré, ce qui a considérablement amélioré la survie des nouveau-nés prématurés.</div>Chez les humains, ce transfert se produit vers la 10e semaine de gestation. Dans les grossesses associées à des déficits fœtaux et à un fonctionnement inadéquat de la signalisation fœto-placentaire-maternelle, une fausse couche survient généralement à ce point de transition ovarien-placentaire de la progestérone, comme l’a montré Baird en 2009<ref name="ftn179">Baird DD (2009) The gestational timing of pregnancy loss: adaptive strategy? American Journal of Human Biology 21:725–727. https://doi.org/10.1002/ajhb.20935.</ref> (mais je n'ai lu que le résumé). Chez les ovins, comme chez les rongeurs, le P4 circulant maternel décline de manière aiguë (en raison de la diminution de la production de P4 par le placenta), et favorise la parturition. Ceci, cependant, ne se produit pas chez les primates. Bien que les niveaux de P4 dans le sang maternel varient considérablement parmi les primates anthropoïdes (singes du Nouveau Monde, singes de l'Ancien Monde et grands singes, dont nous), un trait conservé dans ce groupe est que la parturition se produit sans retrait systémique de P4 (on doit ce résultat à Ratajczak & al., 2010<ref name="ftn180">Ratajczak CK Fay JC Muglia LJ (2010) Preventing preterm birth: the past limitations and new potential of animal models Disease Models & Mechanisms 3:407–414. https://doi.org/10.1242/dmm.001701.</ref>). Néanmoins, la perturbation de la signalisation P4 par un traitement avec l'antagoniste du récepteur P4 (PR), RU486, induit la parturition chez toutes les espèces examinées jusqu'à présent, y compris les humains. Une explication de cette incohérence serait que la parturition des primates implique un retrait fonctionnel de P4 par lequel les cellules cibles de l'utérus deviennent réfractaires au bloc P4 au travail. Des études suggèrent que cela se produit par de multiples mécanismes, y compris le métabolisme local de P4 en une forme inactive (c'est-à-dire le retrait de P4 de tissus ou de cellules cibles) (Nadeem ''& al.'', 2016 ) et altération de l'activité transcriptionnelle PR dans les cellules cibles utérines (Mesiano ''& al.'', 2014 ; Wu & DeMayo, 2017), mais je n’ai pas le niveau de comprendre ces papiers. Le modèle du blocage P4 (abordé en intro) postule que le moment de la naissance est déterminé par des facteurs qui induisent un retrait réel ou fonctionnel de P4. La diversité existe dans les signaux en amont pour induire le retrait du bloc P4. Le bloc P4 au travail peut diminuer avec l'avancement de la gestation sous le contrôle d'un mécanisme d'horloge jusqu'à ce qu'un seuil soit atteint en dessous duquel la cascade de parturition est initiée. Le système peut fonctionner de manière stochastique - la probabilité de parturition augmente avec le déclin progressif du bloc P4. Il est également possible que plusieurs signaux en amont pour la parturition convergent pour induire le retrait de P4. <span style="color:#000000;">Chez la plupart des mammifères euthériens, la parturition est associée à une diminution systémique des taux de P4 maternel due à la régression du CL ou à l'induction d'une activité enzymatique dans les cellules placentaires qui atténue la sécrétion de P4. Ceci, cependant, ne se produit pas chez les humains et les autres primates anthropoïdes; au lieu de cela, la parturition se produit avec les tissus utérins exposés à des niveaux élevés de P4 (Ratajczak ''& al.'', 2010). L'état ancestral original suggéré pour la modulation de la signalisation P4 maternelle circulante menant à la parturition est celui d'une diminution systémique de P4 circulant (retrait) tel que révélé dans les analyses phylogénétiques basées sur la comparaison des groupes externes avec des animaux à sabots et des carnivores (Nnamani ''& al.'', 2013). Cela suggère que la parturition humaine et primate implique une certaine forme de neutralisation du bloc P4. En effet, la perturbation de la signalisation P4 via les récepteurs nucléaires P4 (PR), augmente la contractilité utérine, favorise le ramollissement cervical et, dans la plupart des cas, induit la cascade complète de la parturition. Cela fait valoir que le bloc P4 au travail est médié par les récepteurs nucléaires P4 (PR) et que la modulation de la signalisation PR peut être un mécanisme alternatif pour le retrait de P4 lorsque les niveaux de P4 circulants ne sont pas réduits. </span> Dans Ratajczak, je lis :<blockquote>«&nbsp;Le rôle de la progestérone est connu pour changer pendant la gestation humaine en raison de la présence des isoformes des récepteurs de la progestérone PR-A et PR-B, dont les niveaux relatifs fluctuent pendant la grossesse et l'accouchement. Les récepteurs ont des fonctions uniques. PR-B induit des gènes sensibles à la progestérone. PRA réprime l'activité transcriptionnelle de PR-B. Il est encore difficile d'identifier des isoformes spécifiques, et on sait peu de choses sur l'expression relative de ces isoformes de récepteurs de la progestérone dans le myomètre humain en travail et non en travail. Une étude prometteuse de Merlino & al<ref name="ftn181">Merlino AA, Welsh TN, Tan H, Yi LJ, Cannon V, Mercer BM, Mesiano S (2007). Nuclear progesterone receptors in the human pregnancy myometrium: evidence that parturition involves functional progesterone withdrawal mediated by increased expression of progesterone receptor-A . J Clin Endocrinol Metab . 92, 1927 –1933.</ref> a identifié une augmentation du rapport PRA: PR-B, au niveau des protéines, dans le myomètre humain en travail à l'aide de deux anticorps spécifiques à l'isoforme &nbsp;».</blockquote>'''Je n’ai pas compris ceci&nbsp;:''' <blockquote>«&nbsp;L'inflammation au niveau des tissus utérins est associée à une parturition à terme normale chez les mammifères. Cependant, il est moins clair si les signaux pro-inflammatoires sont impliqués dans le processus d'initiation de la parturition chez les espèces qui ne subissent pas de lutéolyse et de retrait systémique de la progestérone ou agissent pour faciliter ou accélérer le processus une fois initié. Chez les primates, la cascade inflammatoire est apparente mais peut survenir après l'initiateur proximal de la parturition. Par exemple, des découvertes récentes d'association à l'échelle du génome chez l'homme identifient le locus pro-inflammatoire fœtal englobant la famille IL-1 sur le chromosome deux comme significativement associé à la durée de la gestation. Fait intéressant, l'association avec une gestation prolongée, et non avec une naissance prématurée, suggère que le locus contribue à favoriser le processus de naissance en aval des signaux initiateurs&nbsp;; ainsi, les signaux d'initiation et de facilitation peuvent être distincts &nbsp;». (Liu ''& al.'', 2019<ref name="ftn182">Liu X & al, (2019) Variants in the fetal genome near pro-inflammatory cytokine genes on 2q13 associate with gestational duration Nature Communications 10:3927. https://doi.org/10.1038/s41467-019-11881-8.</ref>).</blockquote> == L’ocytocine « naturelle&nbsp;» == Souvent appelée hormone du plaisir, de l’attachement<ref name="ftn183">Le rôle de l'ocytocine dans les comportements maternels de ''caregiving'' auprès de très jeunes enfants, Anne-Lise Saive, Nicole Guédeney Dans Devenir 2010/4 (Vol. 22), pp. 321 à 338. Grant AD, Erickson EN. Birth, love, and fear: Physiological networks from pregnancy to parenthood. Compr Psychoneuroendocrinol. 2022 Apr 26;11:100138. doi: 10.1016/j.cpnec.2022.100138. PMID: 35757173; PMCID: PMC9227990.</ref>, ou du bonheur, c'est le pharmacologue Henry Hallett Dale qui le premier démontre en 1906 les propriétés contractiles chez la chatte enceinte d'une substance produite par l'hypophyse et lui donne son nom (mots grecs ''ôkus'' et ''tokos'', signifiant littéralement «&nbsp;accouchement rapide&nbsp;») du fait qu’elle contracte les muscles lisses de l’utérus chez les mammifères (Dale 1906&nbsp;; Dale 1909). C’est ce qu’on appelle une neurohormone. Sa propriété d'éjection du lait a été décrite par Ott et Scott en 1910 et par Schafer et Mackenzie en 1911. La molécule est isolée et commercialisée en 1927 sous le nom d'''Oxytocin'', de ''oxus'', pointu et ''tokos'', accouchement. Il faut attendre 1953 pour que l’étasunien Vincent du Vigneaud la synthétise (ce qui lui vaut le prix Nobel 1955). On a ainsi découvert que l’utérus possède des récepteurs d’ocytocine qui se développent au fur et à mesure de l’avancement de la grossesse (le médecin Claude-Émile Tourné utilisait l’expression «'' imbibition gravidique'' » ou « ''imprégnation hormonale de la grossesse'' »). Dans l’histoire évolutive on estime que l’ocytocine (OT) est apparue il y a environ 700 millions d’années. Elle existe chez la plupart des vertébrés et la totalité des mammifères sous une forme identique. L’OT est un neuropeptide de 9 acides aminés synthétisés par les cellules du contingent magnocellulaire du noyau paraventriculaire (NPV) et du noyau supra-optique (NSO) de l’hypothalamus. Les terminaisons de ces neurones se joignent aux parois des capillaires sanguins de la neurohypophyse, permettant ainsi à l’OT d’être libérée dans la circulation sanguine et d’agir en tant qu’hormone. D’autres structures que l’hypothalamus synthétisent de l’OT. Des neurones ocytocinergiques ont pu être identifiés dans différentes régions du cerveau comme le système limbique, le système olfactif, les noyaux gris centraux et le thalamus<ref name="ftn184">Synthèse et voies de libération de l’ocytocine (Lee & al., 2009 ; Boutet & al., 2004 ; Buchheim & al., 2009 ; Arpaillange, 2009 ; Matthiesen & al., 2001 ; Brett, 2001).</ref>. La synthèse de l’OT et l’excitabilité des neurones ocytocinergiques sont régulées en partie par des stéroïdes sexuels, dont la progestérone et les œstrogènes. Je dois beaucoup à Anthony Lane ''& al.'' (2013) pour la synthèse qui suit. En tant que neurohormone, elle dispose également d’une fonction de neurotransmetteur. Elle est en effet transmise dans d’autres structures du système nerveux central via le liquide céphalo-rachidien ainsi que par les projections axoniques des neurones du noyau paraventriculaire de l’hypothalamus Ces derniers envoient leurs projections vers les centres végétatifs de la formation réticulée, vers les aires cérébrales extrahypothalamiques (comme l’amygdale, l’hippocampe, le septum, le noyau acumbens, l’aire ventrale tegmale et le cortex frontal)<ref name="ftn185">Argiolas & Gessa 1990.</ref>, ainsi que vers des neurones de la moelle épinière et du tronc cérébral<ref name="ftn186">Purves, Augustine, Fitzpatrick, Hall, LaMantia, McNamara & Williams, 2005.</ref>. L’ocytocine est une hormone stockée mais pas produite, dans l'hypophyse postérieure. Les récepteurs de l'ocytocine sont présents dès les premiers mois de grossesse au niveau des cellules du myomètre mais sont inhibés. La levée de l'inhibition des récepteurs fait partie des mécanismes du déclenchement spontané de l'accouchement. Le myomètre est aussi sous l'effet utero-relaxant de la progestérone. Une baisse du taux sanguin de progestérone survient quelques jours avant le début de la parturition. L’OT entraîne au niveau des cellules musculaires de l’utérus la production de prostaglandines qui déclenche les mécanismes cellulaires de la contraction notamment par transfert calcique. Les prostaglandines sont aussi responsables du ramollissement du tissu conjonctif cervical rendant efficaces les contractions utérines au niveau du col. La connaissance de ces mécanismes a une conséquence pratique&nbsp;: l'utilisation de prostaglandines et non pas d'ocytocine pour les interruptions volontaires médicamenteuses de grossesse et les interruptions médicales de grossesse. La libération d’OT dans le système nerveux central et l’activation neuronale, ainsi que sa libération dans la circulation sanguine, peut être provoquée par des stimuli sexuels ou liés à la reproduction tels que le coït, la stimulation génitale et de la poitrine, des stimuli olfactifs, l’allaitement ou encore la parturition. Cette libération se produit également lors de stimulations non sexuelles tels le toilettage, les contacts avec la progéniture et les contacts tactiles (par exemple, les massages) (Campbell, 2008). Une fois libérée, l’OT se fixe sur des récepteurs qui lui sont propres. À l’heure actuelle, un seul type de récepteur spécifique à l’OT a pu être découvert. Il s’agit des récepteurs ocytocinergiques (OTR, récpeteurs d’OT). Ces OTR sont distribués dans des aires cérébrales variées (par exemple, l’amygdale, l’hippocampe, le septum, le noyau accumbens, l’aire ventrale tegmale …) (Landgraff & Neumann, 2004). Toutefois, la distribution et la régulation des OTR dans le cerveau varient fortement selon les espèces (Insel, Young, & Wang, 1997). Ceci explique pourquoi, malgré de nombreuses similitudes observées, il est hasardeux d’inférer que l’effet observé dans une espèce (c’est-à-dire le rat) se retrouvera dans une autre (c’est-à-dire l’humain). Chez l’être humain, au niveau périphérique, ces OTR se retrouvent principalement dans les voies digestives (Monstein, Grahn, Truedsson, & Ohlsson, 2004), les reins, le cœur, le thymus et le pancréas (Kiss & Mikkelsen, 2005). Il existe cependant une différence entre les sexes. En effet, chez les «&nbsp;femmes&nbsp;», les OTR sont distribués principalement sur les parois musculaires lisses de l’utérus ainsi qu’au niveau des mamelons (Kimura, Tanizawa, Mori, Brownstein & Okayama, 1992). Chez les «&nbsp;hommes&nbsp;», nous retrouvons des OTR dans le corps caverneux et dans l’épididyme du pénis (Vignozzi ''& al.'', 2004). Depuis maintenant plus de deux décennies, de nombreux psychologues et psychiatres se sont intéressés à l’OT, faisant de celle-ci l’hormone dont les effets psychologiques sont les mieux connus. Ces recherches ont permis de mettre en avant l’implication de l’OT dans les processus d’attachement (reste à regarder de près les critères de jugement utilisés pour jauger l'attachement<ref>Ditzen ''& al.'', 2009&nbsp;; De Dreu''& al.'', 2010&nbsp;; Feldman, Weller, Zagoory-Sharon, & Levine, 2007&nbsp;; Gordon, Zagoory-Sharon, Leckman, & Feldman, 2010&nbsp;; Van Ijzendoorn & Bakermans-Kranenburg, 2011</ref>). * La recherche de contact social&nbsp;: es études menées chez les non-humains (Insel & Shapiro, 1992 ; Carter, Grippo, Pournajafi-Nazarloo, Ruscio, & Porges 2008) et chez les humains (Taylor ''& al.'', 2006) montrent que l’ocytocine augmente la recherche de contact social, facilitant par là même l’initiation de la relation. Chez l’humain, cet effet passe par un double processus : l’OT augmente la confiance en soi (Cardoso et ses collaborateurs (2011) Guastella, Howard, Dadds, Mitchell et Carson (2009)), tout en augmentant parallèlement l’attractivité et la confiance inspirée par autrui. De récentes études (Kéri & Benedek, 2009 ; Perry''& al.'', 2010) montrent que l’OT permet à l’individu de mieux discriminer les mouvements typiquement humains (c’est-à-dire une silhouette humaine en mouvement). En effet, les participants qui ont reçu de l’OT (par rapport à un groupe contrôle) parviennent à repérer avec plus de précision les stimuli pictographiques représentant un mouvement biologique parmi une série de stimuli neutres (cercles, formes abstraites…). Ces études suggèrent donc que l’OT orienterait spécifiquement la perception de l’individu vers des stimuli socialement pertinents et faciliterait la reconnaissance des membres de notre espèce. * Les comportements tendres et de support social / le stress. Le taux d’OT est positivement corrélé avec le nombre de contacts physiques (du type «&nbsp;câlin&nbsp;») reçus (Light, Grewen, & Amico, 2004) ainsi qu’avec la qualité du support social en général (Grewen, Girdler, Amico, & Light, 2005). Lorsqu’une personne se retrouve face à une situation socialement stressante, telle une présentation en public, l’administration exogène d’OT ou, de manière plus écologique, l’augmentation du taux d’OT résultant du support social ou du comportement tendre dispensé par le partenaire ou par un proche inhibera l’axe hypothalamo-hypophysosurrénalien, bien connu pour son implication dans le stress. L’individu ressentira donc moins d’anxiété et aura une meilleure auto-évaluation de sa performance (Heinrichs, Baumgartner, Kirschbaum, & Ehlert, 2003). <span style="color:#000000;">suppression des stéroïdes sexuels et le potentiel de provoquer des symptômes dépressifs ou anxieux<ref name="ftn187">Ebner N.C., Horta M., Lin T., Feifel D., Fischer H., Cohen R.A. Oxytocin modulates meta-mood as a function of age and sex. Front. Aging Neurosci. Sep. 2015;7:175. doi:&nbsp;10.3389/fnagi.2015.00175 Becker M., Weinberger T., Chandy A., Schmukler S. Depression during pregnancy and postpartum. Curr. Psychiatr. Rep. Mar. 2016;18(3):32. doi:&nbsp;10.1007/s11920-016-0664-7. Cardaillac C., Rua C., Simon E.G., El-Hage W. [Oxytocin and postpartum depression] J. Gynecol. Obstet. Biol. Reprod. Oct. 2016;45(8):786–795. doi:&nbsp;10.1016/j.jgyn.2016.05.002</ref>. </span>Le comportement du partenaire ayant stimulé la production et la libération de l’OT sera vécu comme positif par l’individu-cible car il sera assimilé à l’effet anxiolytique ressenti. Ceci augmente la probabilité que le précédent comportement du partenaire soit de nouveau sollicité par l’individu-cible, favorisant ainsi la consolidation de la relation. * La relation de couple&nbsp;: l’OT favorise les interactions positives entre partenaires, et en particulier lors de conflits (Ditzen ''& al.'', 2009). En effet, lorsque l’on induit expérimentalement un conflit de couple (en leur demander de discuter de leurs divergences en matière d’éducation, de finances, ou de sorties par exemple), les couples ayant reçu de l’OT exogène présentent un ratio de comportements positifs/négatifs plus favorable durant la discussion que les couples ayant reçu un placebo. Augmentation des comportements positifs et une diminution des comportements négatifs chez les sujets sous OT. Cet effet est particulièrement remarquable car on sait par ailleurs que le ratio comportements positifs/comportements négatifs est un prédicteur de la qualité et de la longévité des relations (Gottman, 1994). Dès lors, les comportements tendres entre partenaires, producteurs d’OT endogène, favorisent les comportements positifs au sein du couple et, par la même occasion, maintiennent la relation entre les partenaires (Holt-Lunstad, Birmingham, & Light, 2008). * La reconnaissance de visages (Savaskan, Ehrhard, Schultz, Walter, & Schachinger, 2008&nbsp;; Rimmele, Hediger, Heinrichs, & Klaver, 2009, Guastella, Mitchell & Matthews, 2008), * La discrimination et la reconnaissance des émotions (c’est-à-dire Shamay-Tsoory ''& al.'', 2009&nbsp;; Van Ijzendoorn & Bakermans-Kranenburg, 2011) Domes et ses collaborateurs (Domes, Heinrichs, Michel & Herpertz, 2007) ont montré que les individus sous OT lisaient mieux les émotions dans le regard de leur interlocuteur que les individus sous placebo. * L’inférence de l’état mental d’autrui (Domes, Heinrichs, Michel, Berger & Herpertz, 2007). * Le traitement des indices sociaux positifs (Guastella, Mitchell & Dadds, 2008). * La confiance (Zak PJ ''& al.'' 2004<ref name="ftn188">Kurzban R, Matzner WT. “The Neurobiology of Trust,” Annals of the New York Academy of Sciences. 2004;1032:224–227.</ref> Kosfeld, Heinrichs, Zak, Fischbacher, & Fehr, 2005&nbsp;; Zak PJ & al. 2005<ref name="ftn189">Zak PJ, Kurzban R, Matzner WT. “Oxytocin is Associated with Human Trustworthiness,” Hormones and Behavior. 2005;48:522–527.</ref> Morhenn VB & al. 2008<ref name="ftn190">Morhenn VB, Park JW, Piper E, Zak PJ. “Monetary Sacrifice Among Strangers is Mediated by Endogenous Oxytocin Release after Physical Contact” Evolution and Human Behavior. 2008;29:375–383.</ref> Baumgartner, Heinrichs, Volanthen, Fischbacher, & Fehr, 2008, Mikolajczak, Pinon, Lane, de Timary, & Luminet, 2010&nbsp;; Mikolajczak, Gross ''& al.,'' 2010). La molécule semble activer la réciprocité, et la générosité (Zak, Stanton, & Ahmadi, 2007). * La régulation des relations intergroupes (De Dreu ''& al.'', 2010&nbsp;; De Dreu, Greer, Van Kleef, Shalvi, & Handgraaf, 2011). Les recherches tendent à montrer que l’OT jouerait un rôle prépondérant dans son inscription dans le monde social, tant en facilitant l’initiation des relations qu’en consolidant celles-ci (Kendrick, 2000). Les espèces grégaires ont d’ailleurs plus de récepteurs à l’ocytocine que les espèces solitaires (Insel & Shapiro, 1992). * L’apparition du comportement « maternel&nbsp;» (Pedersen & ''al.'' 1979)<ref name="ftn191">Pedersen C.A., Prange A.J. Induction of maternal behavior in virgin rats after intracerebroventricular administration of oxytocin. Proc. Natl. Acad. Sci. Unit. States Am. Dec. 1979;76(12):6661–6665. doi:&nbsp;10.1073/pnas.76.12.6661.</ref>. * Augmenter l'activité parasympathique<ref name="ftn192">Washio H., Takeshita D., Sakata S. Parasympathetic nervous activity is associated with oxytocin in multiparous, but not primiparous, women during the perinatal period. Clin. Exp. Pharmacol. Physiol. Jun. 2020;47(6):955–965. doi:&nbsp;10.1111/1440-1681.13267. Gamer M., Büchel C. Oxytocin specifically enhances valence-dependent parasympathetic responses. Psychoneuroendocrinology. Jan. 2012;37(1):87–93. doi:&nbsp;10.1016/j.psyneuen.2011.05.007.</ref> * Coordonner les réponses adaptatives à la peur et au stress, à l’instar de l’agressivité envers les intrus<ref name="ftn193">Les références principales sont&nbsp;: - McQuaid R.J., McInnis O.A., Paric A., Al-Yawer F., Matheson K., Anisman H. Relations between plasma oxytocin and cortisol: the stress buffering role of social support. Neurobiol. Stress. Jun. 2016;3:52–60. doi: 10.1016/j.ynstr.2016.01.001. - Cox E.Q., Stuebe A., Pearson B., Grewen K., Rubinow D., Meltzer-Brody S. Oxytocin and HPA stress axis reactivity in postpartum women. Psychoneuroendocrinology. May 2015;55:164–172. doi: 10.1016/j.psyneuen.2015.02.009 <span style="background-color:transparent;">(je n’ai lu que les résumés).</span> - Janeček M., Dabrowska J. Oxytocin facilitates adaptive fear and attenuates anxiety responses in animal models and human studies - potential interaction with the corticotropin releasing factor (CRF) system in the bed nucleus of the stria terminalis (BNST) Cell Tissue Res. Jan. 2019;375(1):143–172. doi:10.1007/s00441-018-2889-8.92. - Debiec J. Peptides of love and fear: vasopressin and oxytocin modulate the integration of information in the amygdala. BioEssays News Rev. Mol. Cell. Dev. Biol. Sep. 2005;27(9):869–873. doi: 10.1002/bies.20301.</ref>. Je recommande la revue de littérature «&nbsp;''Psychoendocrinologie sociale de l’ocytocine : revue d’une littérature en pleine expansion''&nbsp;» d’Anthony Lane, Olivier Luminet et Moïra Mikolajczak<ref name="ftn194">Dans L’Année psychologique 2013/2 (Vol. 113), pp. 255 à 285.</ref>. Ces études, qui mettent en évidence l’implication de l’OT dans la modulation des processus sociaux, ont rapidement valu à l’OT des appellations telles que «&nbsp;l’hormone de l’amour&nbsp;», «&nbsp;l’hormone de l’attachement&nbsp;», ou encore «&nbsp;la grande facilitatrice de vie&nbsp;» (''Oxytocin, the great facilitator&nbsp;of life'', Lee, Macbeth, Pagani & Young, 2009), ce qui procède d’une simplification grossière tant les choses sont complexes. Cela a abouti à une commercialisation un peu spéciale de l’OT. Bien que l’utilisation de l’OT de synthèse (c’est-à-dire Syntocinon, Novartis, Bâle, Suisse), dans le cadre d’une clinique obstétrique, soit ancienne et courante, certains laboratoires parapharmaceutiques (comme www.verolabs.com) ont développé des produits à base d’OT (par ex., un parfum à l’OT) destinés au grand public, afin qu’il puisse bénéficier de ses «&nbsp;vertus&nbsp;» socialisantes, ce qui n’est pas stupide&nbsp;: Paul Zak a montré qu’en faisant inhaler de l’OT par le nez à des sujets cela augmente leurs comportements sociaux<ref name="ftn195">Trois «&nbsp;gros&nbsp;» articles montrent ça&nbsp;: Zak PJ, Stanton AA, Ahmadi S. Oxytocin increases generosity in humans. Public Library of Science ONE. 2007;2(11) Kosfeld M, Heinrichs M, Zak PJ, Fischbacher U, Fehr E. “Oxytocin Increases Trust in Humans,” Nature. 2005;435(2):673–676. et Zak PJ, Barraza JA. “The Neurobiology of Collective Action,” Frontiers in Neuroscience. 2013;7:211. doi: 10.3389/fnins.2013.00211.</ref>. Mais attention&nbsp;! Comme l’écrit Zak lui-même, c’est plus compliqué que ça : <blockquote>«&nbsp;Les études qui infusent uniquement de l'ocytocine aux participants, puis font des affirmations sur le comportement humain, sont suspectes. Cette approche n'identifie pas ce que le cerveau lui-même fait pendant les interactions sociales, y compris la promotion neurochimique et l'inhibition de la synthèse de l'ocytocine et les relations dose-réponse entre l'ocytocine et le comportement. La question clé est de savoir si le cerveau produit sa propre ocytocine pendant le comportement étudié ; si tel est le cas, la relation causale entre l'ocytocine et un comportement particulier peut être démontrée via une étude de perfusion. Mais l'inverse n'est pas vrai : injecter de l'ocytocine ou n'importe quel médicament dans le cerveau et observer un changement de comportement ne signifie pas que c'est ainsi que fonctionne le cerveau, cela signifie simplement qu'un médicament a changé de comportement, comme le font de nombreux médicaments. Mes études complètent le cercle causal en mesurant ce que le cerveau fait naturellement puis en intervenant pharmacologiquement dans ce système pour montrer que le comportement peut être provoqué.&nbsp;»</blockquote>Zak le résume d’ailleurs par une sorte de règle d’or&nbsp;: <blockquote>«&nbsp;si vous me traitez bien, dans la plupart des cas, mon cerveau synthétisera de l'ocytocine et cela me motivera à bien vous traiter en retour.&nbsp;»</blockquote>Je pense qu’il vaudrait mieux l’appeler l’hormone de l’attachement social que l’hormone de l’amour, ou comme Zak l’a fait, la «&nbsp;molécule morale&nbsp;» car d’autres auteurs (comme Molly Crockett, dans son talk ''Beware of Neuro-bunk'', 2012<ref name="ftn196">https://www.gatescambridge.org/about/news/beware-of-neuro-bunk/.</ref>) ont montré que l’OT induit aussi des préjugés aux dépends d’autres groupes, et même des diminutions de coopération '''''Dans la grossesse&nbsp;proprement dite&nbsp;?''''' Des études ont mis en avant que le lien unissant l’OT durant la grossesse et la qualité du lien d’attachement subséquent opérait par la représentation mentale, chez la mère, de la future relation. Le taux d’OT plasmatique présent durant la grossesse aurait ainsi comme propriété de préparer le comportement maternel après la naissance. Les mères qui présentent un taux d’OT élevé en début de grossesse et/ou une augmentation du taux d’OT entre le premier et le troisième trimestres (Feldman ''& al.,'' 2007&nbsp;; Levine, Zagoory-Sharon, Feldman, & Weller 2007) développeraient des «&nbsp;schèmes cognitifs&nbsp;» facilitant la mise en place de représentations mentales du lien mère-enfant (exemple&nbsp;: projection de la future relation) et des comportements associés (toucher du ventre, vocalisation à l’attention du bébé …). Ces représentations mentales précoces favoriseraient l’émergence de comportements maternels typiques ou adéquats dès le début de la période postpartum (contacts oculaires accrus, vocalisations «&nbsp;maternantes&nbsp;», affects positifs, contacts physiques affectueux, pensées affiliatives, surveillance accrue de l’enfant …) et donc favoriseraient le lien d’attachement. Ces études montrent donc que, durant la grossesse, l’OT induirait un type d’attachement préliminaire à l’attachement mère-enfant&nbsp;: l’attachement fœtal. Sans pour autant prétendre que l’OT déterminerait la qualité et l’adéquation des soins prodigués par la future mère ou du lien d’attachement, ces études suggèrent que l’impact de l’OT durant la grossesse, faciliterait l’initiation de la relation mère-enfant. Des études d’imagerie cérébrale (Bartels & Zeki, 2004) ont permis d’identifier différentes zones cérébrales activées par l’&nbsp;« amour maternel&nbsp;». Les résultats montrent qu’une zone s’active particulièrement chez les mères lorsqu’on leur présente des photographies de leurs enfants. Il s’agit de la substance grise périaqueducale, riche en OTR (Lambert & Lotstra, 2005). Il n’est donc pas surprenant de trouver un lien entre OT et amour maternel. Des études ont montré que le taux d’OT en début de grossesse (Feldman ''& al.'' 2007) ou la variation de taux d’OT entre le premier et le troisième trimestres de la grossesse (augmentation du taux plasmatique d’OT entre le début et la fin de la grossesse) (Levine ''& al.'', 2007) prédisaient la qualité de l’attachement avec le nouveau-né. Certaines études (Heinrichs ''& al.'', 2001 ; Neumann, 2008 ; Riem ''& al.'', 2011) montrent en outre que l’OT libérée par les comportements maternels primaires, tels l’allaitement du nourrisson ou le contact tactile avec la progéniture, inhibe l’axe hypothalamo-hypophyso-surrénal. Cette inhibition a pour effet de réduire le stress, l’anxiété et le dégoût, ce qui place la mère dans un état d’esprit serein et calme, propice au développement de la relation d’attachement avec l’enfant. Lorsque l’on s’intéresse aux premiers mois de la relation parentale, on remarque que l’OT plasmatique reste stable, tant chez la mère que chez le père. Plus le taux plasmatique d’OT est élevé, plus les manifestations d’attachement sont présentes (Gordon & al., 2010). Chez la mère, ces manifestations prendront la forme de contacts « affectueux » (vocalisations maternantes, contacts physiques affectueux …), alors que chez le père, elles seront de type « stimulant » (contacts tactiles, présentation d’objet dans le jeu …) (Feldman, Gordon, Schneiderman, Weisman, & Zagoory-Sharon, 2010). Une étude uniquement basée sur les comportements paternels (Naber, van Ijzendoorn, Deschamps, van Engeland, & Bakermans-Kranenburg, 2010) a permis de montrer que l’administration d’OT de synthèse à de jeunes pères augmente la réactivité et la patience, et diminue l’hostilité durant la période de jeu avec l’enfant. Si le taux d’ocytocine influence la relation parent-enfant, l’inverse est vrai également. Une étude a montré que les interactions parents-enfant augmentent en retour le taux d’OT plasmatique chez les deux parents (Feldman ''& al.'', 2010). Cette élévation se produit uniquement lorsque le parent entre dans une interaction prototypique de son sexe (de type contacts « affectueux » et chez la mère et de type « stimulation » chez le père), et ce, quel que soit le sexe de l’enfant<ref name="ftn197">L’essentiel vient de Psychoendocrinologie sociale de l’ocytocine : revue d’une littérature en pleine expansion, Anthony Lane, Olivier Luminet, Moïra Mikolajczak, Dans L’Année psychologique 2013/2 (Vol. 113), pages 255 à 285 https://www.cairn.info/revue-l-annee-psychologique1-2013-2-page-255.htm#pa38</ref>. A en lire Azure D. Grant, la stimulation du cervix (col de l’utérus) propre à la phase de travail a pour conséquence d’accroître la production d’OT dans l’hypophyse postérieure et de sa libération subséquente (Gimpl & Fahrenholz, 2001&nbsp;; Russell, Leng, & Douglas, 2003). Parallèlement, durant la phase de travail, la sensibilité des récepteurs ocytocinérgiques (OTR) situés dans les muscles lisses de l’utérus (Kimura ''& al.'', 1992) s’accroît et leur densité augmente, pouvant atteindre un nombre 200 fois plus élevé par rapport à celui d’un utérus non gravide (Fuchs & Fuchs, 1984). Ces deux actions combinées permettent * les contract<span style="color:#000000;">ions utérines qui favorisent la sortie du nouveau-né,</span> * <span style="color:#000000;">facilitent l'involution de l'utérus<ref name="ftn198">Sulistiana M.P., Marfuah D., Mutiar A., Nurhayati N. KnE Life Sci.; Mar. 2021. The Effect of Oxytocin and Endorphin Massage to Uterine Involution in Post-Partum Mothers: A Literature Review; pp. 680–688.</ref></span>, * la délivrance du placenta, * et le repositionnement de l’utérus après l’accouchement. <div style="color:#000000;">Ces effets facilitateurs permettent de prévenir et de réguler les hémorragies associées aux parturitions difficiles<ref name="ftn199">Mitchell, Fang, & Wong, 1998. Arrowsmith S., Wray S. Oxytocin: its mechanism of action and receptor signalling in the myometrium. J. Neuroendocrinol. 2014;26(6):356–369. doi:&nbsp;10.1111/jne.12154.<div style="color:#000000;">Et Uvnäs Moberg K., et al. Maternal plasma levels of oxytocin during breastfeeding-A systematic review. PLoS One. 2020;15(8):e0235806. doi:&nbsp;10.1371/journal.pone.0235806.</div></ref>. Azure D. Grant indique que la connexion nerveuse et hormonale du placenta est supprimée et remplacée par des signaux endocriniens, autonomes et émotionnels provenant de l'allaitement intermittent, du toucher et d'autres entrées sensorielles. Malgré la séparation physique, les mères et les nourrissons peuvent maintenir un degré élevé de coordination comportementale, émotionnelle et physiologique, come le montrent les travaux de Bell (2020)<ref name="ftn200">Bell M.A. Mother-child behavioral and physiological synchrony. Adv. Child Dev. Behav. 2020;58:163–188. doi:&nbsp;10.1016/bs.acdb.2020.01.006.</ref>. </div> '''''Ocytocine & allaitement'''''<div style="color:#000000;">Parallèlement à son action utérine, l’OT est également connue pour son effet sur l’allaitement. Bien que n’agissant pas sur la production de lait (qui dépend d’autres hormones&nbsp;: les oestrogènes et la prolactine), l’OT permet l’éjection de celui-ci en favorisant la sécrétion de prolactine,il coordonne la lactation avec l'éjection du lait<ref name="ftn201">Ott & Scott, 1911&nbsp;; Sala, Luther, Arballo, & Cordero Funes, 1974&nbsp;; McNeilly, Robinson, Houston & Howie, 1983&nbsp;; Kent, Kennaugh & Hartmann, 2003, Uvnäs-Moberg & Petersson, 2005.</ref>.</div>La production d’OT étant dépendante, entre autre, de stimuli sensoriels (Campbell, 2008), l’hypophyse postérieure libère cette dernière dans la circulation sanguine lorsque le nourrisson enclenche le processus de tétée en stimulant tactilement le mamelon. L’OT ainsi libérée se fixe sur les OTR, situés dans les glandes mammaires. Cette fixation engendre une contraction des cellules myoépithéliales entourant les acini remplis de lait, provoquant ainsi la propulsion du lait vers les canaux galactophores correspondants. L’OT poursuit son action en permettant, une nouvelle fois, la contraction des fibres musculaires entourant ces canaux, afin d’acheminer le lait jusqu’au mamelon où il sera éjecté (Prime ''& al.'', 2009). Il est à noter que le taux d’OT plasmatique augmenterait uniquement durant la phase de nourrissage. Cette variation serait donc transitoire et disparaîtrait entre deux allaitements (Feldman''& al.'', 2007). Anne-Lise Saive, Nicole Guédeney écrivent&nbsp;: «&nbsp;A la naissance, le nouveau-né adopte un comportement particulier au contact de la poitrine de sa mère. Il l’explore avec ses mains et effectue des mouvements de massage du mamelon et de succion pour préparer la 1re tétée. Ces mouvements augmentent de manière importante le taux d’OT dans le sang chez la mère (Macdonald ''& al.'', 2010). Il a été montré qu’en favorisant les contacts mère-enfant dès la naissance et en continu, on améliore l’attachement mère-enfant (au sens de ''bonding'' ou attachement maternel). Le pic d’OT observé dans le 1er quart d’heure après l’accouchement chez la mère expliquerait la période critique de formation du lien de ''bonding'' (ou attachement maternel) (Insel ''& al.'', 2001 ; Guedeney ''& al.'', 2008). De plus, la succion du mamelon, la parturition, la vue d’un être aimé, le stress, ''etc''. sont autant de signaux déclencheurs de la libération d’OT dans le sang (Matthiesen ''& al.'', 2001 ; Swain ''& al.'', 2007).&nbsp;» Est-il vrai que lorsque le processus de l’accouchement est perturbé, le risque est plus grand que les hormones ne soient pas secrétées de manière optimale et que cela ait un effet sur le sentiment de la mère pour son bébé ? (pense ne pas avoir « d’instinct » maternel, ne ressent pas d’amour immédiat pour ce bébé, ne sait pas comment se comporter avec ce bébé, ne sent pas que c’est le sien). Je ne sais même pas si une étude pourrait permettre d’évaluer correctement ça sans facteurs confondants. Mais le présupposé qu’un accouchement non-perturbé, dont le processus s’est déroulé de manière la moins interventionniste « possible », favorise l’attachement, ne paraît pas hors-sol. D’autant que c’est très prégnant chez pas mal de mammifères : chez les brebis et les primates, l’allaitement augmente la concentration de β-endorphines, ce qui favorise l’acceptation par la mère de son petit. De plus, l’injection d’un antagoniste, la naloxone, altère l’émergence d’un comportement maternant. Il y a une étude, dont j’ai égaré la référence qui a montré les effets de la séparation de poulains et de leur mère à la naissance : ils montraient des signes de mal-être (tremblements, agitation) et à plus long terme étaient moins sociables et plus agressifs. ''Note''&nbsp;: Davis & Pascali-Bonaro (2010) : «&nbsp;''les comportements d’attachement des brebis en travail placées sous péridurale sont considérablement réduits par rapport à la normale, ou même absents''.&nbsp;»<ref name=":0" /> (p. 39, ref donnée&nbsp;: Krehbiel ''& al.,'' Peridural anaesthesia. Physiology and Behaviour 1982). Elles ajoutent que les brebis non gravides préparées avec un cocktail de progestérone et d’œstrogènes avant de recevoir une stimulation vaginale par vibrateur s’occupent d’agneaux nouveaux-nés comme s’ils étaient les leurs. Ceci suggérerait que la stimulation vaginale induit l’attachement<ref>Keverne & al, Vaginal stimulation sheep, Science 219, 1983</ref>. '''''Orgasme&nbsp;?''''' Lisons Davis & Pascali-Bonaro (2010, pp. 39-40) : <blockquote>«&nbsp;Comme le bébé descend, les récepteurs d’étirement du vagin induisent un nouveau flux d’ocytocine dans le corps de la mère. (.) Le plexus nerveux hypogastrique et pelvien, ainsi que le nerf vagal, sont tous trois éminemment stimulés, exactement comme dans la physiologie de l’excitation sexuelle. Ajoutez à cela la bouffée d’ocytocine et le potentiel orgasmique de ce moment devient très clair&nbsp;».</blockquote>Les références données sont : Barry Komisaruk, Giorgio Sansone Neural pathways mediating vaginal function: The vagus nerves and spinal cord oxytocin<ref>Barry Komisaruk, Giorgio Sansone Neural pathways mediating vaginal function: The vagus nerves and spinal cord oxytocin, August 2003 Scandinavian Journal of Psychology 44(3):241-50 DOI: 10.1111/1467-9450.00341.</ref>. Je l'ai lu. on peut y lire que :<blockquote>«&nbsp;L'autostimulation vaginale ou cervicale chez la femme produit une analgésie puissante. Cette analgésie est plus forte si l' autostimulation est agréable, et encore plus forte si elle induit l' orgasme. De ces études chez les femmes, nous concluons définitivement que, contrairement à d'autres formes d'analgésie induite par la stimulation qui sont des réponses compensatoires à une stimulation sensorielle douloureuse, l'analgésie induite par l'autostimulation vaginale ou cervicale est différente - plus la stimulation est agréable. est perçue comme étant, plus l'analgésie est perçue comme telle&nbsp;».</blockquote>Davis & Pascali-Bonaro (2010), toujours, p. 39 :<blockquote>«&nbsp;Selon la sage-femme Jean Sutton, un rôle clef est joué par le losange de Michaelis (…) Cette zone doit s’ouvrir considérablement lors de la 2<sup>e</sup> phase, augmentant les dimensions avant-arrière du pelvis de plusieurs centimètres&nbsp;! Et si la femme se penche en avant, l’arrière de la tête du bébé entre en contact avec son point G, déclenchant non seulement l’ouverture physique, mais aussi le relâchement orgasmique&nbsp;».</blockquote>A l'appui de cela, elles donnent Sutton, J. (2000), ''Birth without active pushing and a physiological second stage of labour''<ref>Sutton, J. (2000), Birth without active pushing and a physiological second stage of labour. The practising midwife, 3 4, 32-4.</ref>. J’ai laissé malheureusement en jachère ce point '''''Les battements de cœur de deux amants durant l’accouchement se synchronisent-ils&nbsp;?''''' '''''Les battements de cœur de deux amants durant l’accouchement se synchronisent-ils&nbsp;?''''' Il est parfois dit que les battements de cœur de deux amants durant l’accouchement se synchronisent à cause d’elle (toujours Davis & Pascali-Bonaro (2010) p. 25) mais j’ai des doutes car je ne trouve pas de preuve. Je pense qu’il s’agit d’une mécompréhension&nbsp;: l’équipe de Marco Thiel a montré que la mère et son bébé à naître synchronisent leurs rythmes cardiaque, mais uniquement lorsque la mère respire de manière rythmique. Il n’est pas impossible, si je comprends bien Ivanov (2009)<ref name="ftn202">Maternal–fetal heartbeat phase synchronization Proc Natl Acad Sci US A. 18 août 2009 ; 106(33): 13641–13642.</ref>, que les stimuli acoustiques de la pulsation des vaisseaux jouent aussi un rôle. Quant aux amants, c’est encore plus douteux&nbsp;: même chez des co-dormeurs, ça ne marche pas tout le temps, et quand ça marche, il semble que ce soit dû aux vibrations balistocardiographiques, en gros les vibrations transmises par le matelas (donc très dépendantes de la qualité du matelas), comme l’ont montré les Coréens Yonn & el 2019<ref name="ftn203">Yonn & al Human Heart Rhythms Synchronize While Co-sleeping, Front. Physiol., Vol 10, 11 March 2019.</ref>. '''''En sécrète-on quand on est amoureux&nbsp;?''''' De ce que j’ai lu, il semble bien que oui, en particulier durant la période «&nbsp;romantique&nbsp;»&nbsp;! (Schneidermann ''& al''. 2012<ref name="ftn204">Schneiderman I, Zagoory-Sharon O, Leckman JF, Feldman R. Oxytocin during the initial stages of romantic attachment: relations to couples' interactive reciprocity. Psychoneuroendocrinology. 2012 Aug;37(8):1277-85. doi: 10.1016/j.psyneuen.2011.12.021. Epub 2012 Jan 26. PMID: 22281209; PMCID: PMC3936960.</ref>) '''''En sécrète-on quand on regarde des scènes impliquant l’&nbsp;« amour&nbsp;» au sens large&nbsp;?''''' De ce que j’ai compulsé, on ne peut pas dire cela. J’ai regardé les études de l’équipe de Zak&nbsp;: dans une série de tests utilisant des vidéos, en particulier des vidéos poignantes avec des enfants mourants, elle a découvert que des récits convaincants provoquent la libération d'ocytocine et ont le pouvoir d'affecter nos attitudes, nos croyances et nos comportements ultérieurs dans une certaine mesure<ref name="ftn205">Zak PJ. Why inspiring stories make us react: the neuroscience of narrative. Cerebrum. 2015 Feb 2;2015:2. PMID: 26034526; PMCID: PMC4445577.</ref>. Dans une expérience de Speck ''& al.,'' 2019, on a constaté que les taux de base d’OT chez des patients atteints de schizophrénie était bas, mais la sécrétion d’OT était bien plus haute devant des films pour enfants émouvants<ref name="ftn206">Speck LG, Schöner J, Bermpohl F, Heinz A, Gallinat J, Majic T, Montag C. Endogenous oxytocin response to film scenes of attachment and loss is pronounced in schizophrenia. Soc Cogn Affect Neurosci. 2019 Jan 4;14(1):109-117. doi: 10.1093/scan/nsy110. PMID: 30481342; PMCID: PMC6318471.</ref> '''''L’ocytocine naturelle est elle pulsatile&nbsp;?''''' Au contraire d'autres hormones, l'ocytocine ne bénéficie pas d'un dispositif régulateur qui permettrait de limiter sa production. Il semble au contraire que l'ocytocine active des processus qui fonctionnent en « cascade », entraînant des pics importants et une production sur un mode « pulsatif ». '''''Est-ce un point de différence notable avec l’OT De synthèse&nbsp;?''''' Prenant en compte le caractère pulsatile de la sécrétion d’ocytocine au cours du travail, des auteurs ont étudié l’action d’une perfusion d’ocytocine administrée de manière pulsatile pour l’augmentation du travail. Tribe & al. ont montré en 2012 dans un essai contrôlé randomisé portant sur 502 patientes en travail spontané, que l’administration pulsatile d’ocytocine (pulses de 2 mUI administrés en 10 secondes toutes les 6 minutes, avec augmentation par deux de la dose toutes les 30 minutes) n’apportait pas de différence, comparée à un protocole classique d’administration de l’ocytocine (débit initial de 2 mUI/min, avec augmentation de 2 mUI/min toutes les 15 minutes)<ref name="ftn207">Tribe RM, Crawshaw SE, Seed P, Shennan AH, Baker PN. Pulsatile versus continuous administration of oxytocin for induction and augmentation of labor: two randomized controlled trials. Am. J. Obstet. Gynecol. Mars 2012;206(3):230.e1‑ 8.</ref>. Une étude récente menée par l'équipe de Kerstin Uvnäs-Moberg, en Suède, montre que la durée moyenne d'allaitement au sein est supérieure chez les femmes qui ont bénéficié de production pulsative d'ocytocine naturelle pendant leur accouchement<ref name="ftn208">Kerstin Uvnäs‐Moberg, Ann-Marie Widström, Sigbritt Werner et Ann-Sofie Matthiesen, « Oxytocin and Prolactin Levels in Breast-Feeding Women. Correlation with milk Yield and Duration of Breast-feeding », Acta Obstetricia et Gynecologica Scandinavica, vol. 69, no 4,‎ 1990, pp. 301–306 ISSN 1600-0412, DOI 10.3109/00016349009036151.</ref>. D’ailleurs, la succion du nourrisson au niveau du mamelon est relayée par les nerfs rachidiens jusqu'à l' hypothalamus, et cette stimulation amène les neurones qui fabriquent l'ocytocine à déclencher des potentiels d'action en rafales intermittentes; ces bouffées entraînent la sécrétion d'impulsions d'ocytocine à partir des terminaisons nerveuses neuro-sécrétoires de l'hypophyse. '''Y a-t-il un lien entre l'ocytocine et les ondes cérébrales ''théta''&nbsp;?''' C'est ce qu'affirment Davis et Pascali-Bonaro (2010) p. 25. J’ai encore des doutes, déjà parce que «&nbsp;ondes ''théta'' », ce n’est pas clair. Dans la littérature sur les EEG, dans les années 1920, des lettres grecques telles que alpha, bêta, thêta et gamma ont été utilisées pour classer les ondes tombant dans des plages de fréquences spécifiques, « ''théta'' » signifiant généralement une plage d'environ 4 à 7 cycles par seconde (Hz). Or, dans les années 1930-1950, un modèle d'oscillation rythmique très fort a été découvert dans l' hippocampe des chats et des lapins (Green & Arduini, 1954). Chez ces espèces, les oscillations de l'hippocampe tombaient principalement dans la gamme de fréquences de 4 à 6 Hz, elles étaient donc appelées oscillations « thêta ». Plus tard, des oscillations hippocampiques du même type ont été observées chez le rat ; cependant, la fréquence des oscillations EEG de l'hippocampe du rat était en moyenne d'environ 8 Hz et tombait rarement en dessous de 6 Hz. Ainsi, l'oscillation EEG de l'hippocampe du rat n'aurait pas dû, à proprement parler, être appelée rythme thêta. Cependant, le terme « thêta » était déjà devenu si fortement associé aux oscillations de l'hippocampe qu'il continuait à être utilisé même pour les rats. Au fil des ans, cette association est devenue plus forte que l'association d'origine avec une gamme de fréquences spécifique, mais la signification d'origine persiste également. Ainsi, « thêta » peut signifier l'une ou l'autre de deux choses&nbsp;: * Un type spécifique d'oscillation régulière observé dans l'hippocampe et plusieurs autres régions cérébrales qui y sont connectées. * Des oscillations EEG dans la gamme de fréquences de 4 à 7 Hz, quel que soit l'endroit du cerveau où elles se produisent ou quelle que soit leur signification fonctionnelle. J’ai demandé au neurologue Laurent Vercueil, qui m’a répondu&nbsp;:<blockquote>«&nbsp;<span style="color:#000000;">A ma connaissance il n'y a pas d’activité cérébrale spécifique de l'accouchement. Ce qui est vrai par contre c'est que l'hyperventilation (qu'on utilise au cours des EEG) provoque un ralentissement de l'électrogenèse, d'abord thêta puis, si on continue malgré l'inconfort (ce qu'on ressent lorsqu'on souffle sans discontinuer sur un foyer, ou en remplissant un ballon), delta. Mais c'est sans rapport avec l'accouchement lui-même&nbsp;».</span></blockquote> == L’ocytocine de synthèse == Davis, Pascali-Bonaro 2010 (pp. 27-28) écrivent de manière très assertive :<blockquote>« Le synto bloque la production d’OT. Il n’engendre ni amour ni réaction d’attachement parce que le cerveau n’aà pas de récepteurs adaptés. La péridurale perturbe aussi la production d’OT (…) en engourdissant les récepteurs d’étirement du vagin qui noirmalement réagissent à la pression de la tête du bébé. Le synto réduit les quantités d’une autre hormone : la prostaglandine F2. Et voilà le cercle vicieux classique : des contractions anormalement fortes, induites par le Syntho causent une douleur exacerbée par les effets anti-extatiques du médicament, menant à une péridurale, une activité utérine amoindrie et la nécessité d’administrer d’avantage [sic] de Syntho ! (..)</blockquote>Après du Vigneaud, on a pensé qu’on allait maintenant détenir la clé du déclenchement opportun du travail et pallier ce qui apparaissait comme l’une des plus grandes problématiques de l’enfantement : son imprévisibilité. il apparut plus avantageux à la majorité des praticiens de déclencher la réaction, et ainsi influer en amont sur le déroulement des événements, que de se laisser surprendre à toute heure du jour ou de la nuit. Le premier obstétricien à envisager l’usage de l’ocytocine aux fins de déclenchement du travail, Charles B. Reed, en 1920, s’exprimait en ces termes :<blockquote>« Whether or not the maturity of the child be generally accepted as a satisfactory and legitimate basis for briging on the labor, at all events our ability to produce the delivery at will is an important addition to our obstetric armamentarium. »<ref>''in'' Block, 2007, p. 39.</ref></blockquote>avec une métaphore guerrière (agressivité, enceinte fortifiée, projectile, ''etc.'') que dénonce à juste titre Stéphanie St-Amant dans sa thèse de doctorat (2013)<ref>St-Amant S., DÉCONSTRUIRE L’ACCOUCHEMENT : ÉPISTÉMOLOGIE DE LA NAISSANCE, ENTRE EXPÉRIENCE FÉMININE, PHÉNOMÈNE BIOLOGIQUE ET PRAXIS TECHNOMÉDICALE <nowiki>https://www.academia.edu/5700272/Th%C3%A8se_de_doctorat_D%C3%89CONSTRUIRE_L_ACCOUCHEMENT_%C3%89PIST%C3%89MOLOGIE_DE_LA_NAISSANCE_ENTRE_EXP%C3%89RIENCE_F%C3%89MININE_PH%C3%89NOM%C3%88NE_BIOLOGIQUE_ET_PRAXIS_TECHNOM%C3%89DICALE</nowiki> fdeL</ref>.<blockquote>« Si l’ocytocine de synthèse a grandement facilité l’entreprise de détermination du moment opportun (aux yeux du praticien) du déclenchement de l’accouchement et propulsé la procédure au rang de routine en raison de son taux élevé de succès, elle ne fut pas la seule méthode employée et encore moins la première. Bien que la connaissance de substances favorables au déclenchement de l’accouchement (ergot de seigle, huile de ricin) remonte à des temps immémoriaux, l’idée de faire naître l’enfant prématurément germa dans les années 1800 pour les cas de bassins difformes, afin d’éviter une symphyséotomie ou la césarienne, ou pour les cas de pré-éclampsie et éclampsie (désordre hypertensif dangereux causé par la grossesse et qui demeure encore largement incompris). Par la suite, toutes sortes d’expérimentations ont été menées aux XIXe et XXe siècles : dilatation mécanique du col utérin avec des objets divers, des ballons ou en y suspendant des poids, dilatation manuelle, lavements, jeûnes, injection de lipides par intraveineuse, d’air ou d’acide carbonique dans l’utérus. On risqua même l’électricité dans les années 1800.. De nos jours, une panoplie de méthodes est à disposition. Bien sûr, en tête de liste figure l’injection d’hormones exogènes par intraveineuse, tentée d’ordinaire sur un « col favorable », c’est-à-dire mou, en partie effacé. Si tel n’est pas le cas, on a d’abord recours aux méthodes de dilatation mécanique ou, plus rarement, manuelle, mais d’ordinaire à l’application locale d’un gel pour faire « mûrir » le col, composé de prostaglandines provenant du sperme porcin. Pour les plus holistiques,on « prescrit » à l’occasion l’activité coïtale en fin de grossesse en raison des propriétés reconnues aux prostaglandines séminales. On a aussi découvert l’action redoutable d’un médicament, le misoprostol (Cytotec), dont l’utilisation reste extrêmement controversée – le produit n’ayant jamais été commercialisé pour cet usage par le fabricant – et qui est associée à de graves complications ». (St Amant 2015<ref>Nait-on encore ? Réflexions sur la production médicale de l’accouchement, Recherches familiales 2015/1 (N°12) pp 9-25</ref>)</blockquote> St-Amant écrit: <blockquote> « On tenta d’abord d’injecter aux femmes des extraits pituitaires animaux, vantant les avantages de la substance sur les forceps en invoquant l’habituel critère de rapidité : « Throw away your forceps and use Pituitrin! », scandait la publicité. Cependant, les premiers résultats demeurèrent hasardeux et plusieurs cas de Pituitrin shock (choc anaphylactique, tétanie puis atonie utérine, rupture utérine, hypoxie fœtale) refroidirent les ardeurs. En 1928, le Pitocin fut commercialisé. Il fallut attendre les années 1950 pour qu’une machine soit inventée permettant un contrôle fiable de l’administration d’ocytocine de synthèse par intraveineuse, invention qui valut à Vincent du Vigneaud le Prix Nobel de chimie en 1955. À l’instar des critiques féministes des années 1980 (Martin, 1987 ; Corea, 1984; Oakley, 1984), Jennifer Block rappelle qu’on peut voir dans cet engouement pour le contrôle du travail une « extension de l’industrialisation » décrite par Barbara Bridgman Perkins : « Il y a un lien direct entre l’essor des chaînes de montage – de production de masse – et celui de la naissance standardisée, mécanisée. La pituitrine elle-même « doit sa disponibilité commerciale à la centralisation de l’industrie de l’abattage. Une livre d’extrait séché devint le lucratif dérivé des hypophyses de douze mille jeunes bovins. La chaîne de production des abattoirs participa ainsi à l’émergence d’une obstétrique à la chaîne ». </blockquote>Ironiquement, même Joseph DeLee (1940) s’était élevé contre l’utilisation routinière des ocytocines de synthèse dans le dernier article publié de son vivant. Il encensait l’avancée scientifique, mais considérait que ces nouveaux outils, tout comme sa méthode, devaient être réservés aux rares spécialistes. Les raisons invoquées : 1) les nombreux effets secondaires et dangers des ocytociques ; 2) la non-approbation par les autorités pharmacologiques des différents dérivés commercialisés70 (il dénonçait au passage l’appétit des manufacturiers ayant flairé la bonne affaire de ce marché de 40 millions de naissances par an dans le monde à l’époque) ; et 3) le dérèglement de l’équilibre hormonal ainsi occasionné : <blockquote>«'' I have observed quite a number of their results, experienced many abnormally rapid labors, and learned that a streamlined labor can be as safe as a streamlined parachute''. »</blockquote>St-Amant (p. 156) : « En partie en contradiction avec ses propos des années 1920 (le ton tranche avec ses écrits des années 1915-1920 cités précédemment), il énonce maintenant que la lenteur garantit la sécurité du moulage habituel du crâne du bébé, allant même jusqu’à préconiser de cesser les usuelles injonctions aux efforts expulsifs (« Poussez! Poussez! Poussez! »<ref>Il évoque ici les expériences faites en ce sens par un certain Rawlins à Londres dans les années 1830, ce qui montre que ne date pas d’hier la construction de l’accouchement comme une épreuve sportive (et non un phénomène involontaire), qui demande force et endurance... et peut être échouée. (note de S. St-Amant).</ref>). Le DeLee tardif est étonnamment en phase avec la compréhension actuelle de la physiologie de la parturition : c’est l’utérus, muscle involontaire, qui expulse le bébé, sans besoin d’y ajouter l’effort volontaire (de Gasquet, Odent, et, bien plus tôt, les travaux à la fin des années 1950 de l’obstétricienne anglaise Constance L. Beynon<ref>Retracés dans Block (2007), pp. 24-25.</ref>). Cependant, il n’hésitait pas à imputer au passage l’engouement pour les stimulants utérins aux demandes déraisonnables des femmes pour un travail expéditif – plus qu’à la convenance des praticiens bien qu’il condamne tout à fait ce motif – vanté dans les journaux et magazines par des « auteures hystériques ».. Encore une fois : la faute des femmes !<blockquote>On sait que dès le milieu des années 1950 dans un hôpital de New York desservant une clientèle aisée, l’ocytocine de synthèse était déjà utilisée chez 50 % des parturientes. Début des années 2000, on estimait (d’après observation directe) que plus de 80 % des femmes au Québec en recevaient à un moment où un autre de l’accouchement (Brabant, 2001, p. 301); quoique les taux « officiels » soient largement inférieurs (40,6 % pour l’année 2006-2007 [Chalmers ''& al.'', 2009]). Listening to Mothers II faisait état d’une stimulation hormonale du travail à hauteur de 57 % (Sakala et Corry, 2008). Cependant, il s’agit d’un sondage effectué auprès des femmes et on sait que l’administration de Pitocin ou de Syntocinon (de ses noms commerciaux) via l’intraveineuse déjà installée de routine aux parturientes (l’exception est très rare) n’est pas toujours explicitement signalée à celles-ci; elles n’ont donc pas toujours conscience d’en avoir reçu. Il est notoire que plusieurs établissements ont des taux de stimulation de l’ordre de 90 %. À titre d’exemple, dans le documentaire de Ricki Lake ''The Business of Being Born'' (2008), des images tournées dans un service d’obstétrique new-yorkais montrent que la quasi-totalité des dossiers de parturientes affiche la mention « Pit » (signifiant « sous Pitocin »), tel qu’on peut le voir sur le tableau de suivi des patientes en travail au poste des infirmières. Ainsi, dès l’administration d’ocytocine de synthèse par perfusion, « le travail n’est alors plus contrôlé en interne par le cerveau reptilien, mais en externe par les soignant3 », ironise l’auteure du blogue BOOB (« Bêtisier officiel de l’obstétrique »). Block, quant à elle, emploie l’image de la chaîne stéréo dont on augmente ou diminue le volume à loisir : médecins et infirmières ont le contrôle du bouton. L’usage de l’ocytocine est de toute façon rendu nécessaire par la péridurale, laquelle ralentit la fréquence ou diminue l’intensité des contractions; et réciproquement, l’ocytocine artificielle rendant les contractions plus fréquentes, longues et douloureuses, son administration va de pair avec une demande accrue de péridurale (Dès les débuts de l’application du premier protocole d’administration routinière d’ocytocine de synthèse (protocole O’Driscoll), la demande de péridurale augmenta rapidement à 12 % (étude citée dans Block, 2007, p. 20)). En outre, selon Katherine Rice Simpson, chercheuse en soins infirmiers agissant comme experte auprès des tribunaux, la mauvaise gestion du Pitocin serait la principale cause des poursuites en responsabilité professionnelle et des dommages-intérêts octroyés (Block, 2007, p. 14). Enfin – soulignons-le –, une importante étude de l’Institut national de la recherche médicale (INSERM) en France vient tout juste de confirmer les doutes de nombreux et nombreuses citoyens-nes et intervenants-es en périnatalité, identifiant l’administration d’ocytocine pendant le travail comme facteur indépendant de risque d’hémorragies postpartum graves, de façon proportionnelle à la dose administrée (Belghiti ''& al.'', 2011). À titre de complément d’information, on pourra lire ce dossier en ligne portant sur l’historique du questionnement et des travaux sur les causes des hémorragies de la délivrance : CIANE.net, « Dossier : Hémorragies du post-partum »<ref>en ligne : <http://ciane.net/Ciane/DossierHPP>.</ref>. Il faut savoir que cette étude de l’INSERM a été commandée pour répondre aux demandes répétées des groupes d’usagers-ères chapeautés par le CIANE qui la réclamait depuis 2004, : en clair, le risque d’hémorragie est presque doublé dès que les ocytociques sont administrés, et multiplié par 5,7 lorsqu’il est injecté à hautes doses (soit 10 % des accouchements). »</blockquote>Je n’ai pas vérifié encore cette partie. Il y a beaucoup de questions à traiter avec cette OT de synthèse – je n’ai pas eu le temps de bien les aborder Odent écrit par exemple (2013) [3] :<blockquote>« Il existe (..) des raisons théoriques pour tester l'hypothèse selon laquelle l'incidence croissante des difficultés d'allaitement et l'arrêt fréquent de l'allaitement plus tôt que souhaité sont liés à l'utilisation d'ocytocine synthétique pendant le travail. Il y a déjà eu quelques études qui tendent à soutenir cette hypothèse ».</blockquote> Mais Odent a la prudence de préciser que dans les panels d’enfants étudiés (à Malaga, Espagne) : <blockquote>« Les effets possibles de l'ocytocine de synthèse sur la qualité et la durée de l'allaitement ne peuvent être facilement dissociés des effets d'autres composants de l'assistance pharmacologique pendant le travail, notamment le fentanyl péridural ».</blockquote>Il recommande, à juste titre à mon avis, de mener de telles études dans les pays émergents (par exemple la Chine et le Brésil) où l'ocytocine synthétique est largement utilisée alors qu'il n'y a pas de services de péridurale. '''''Y a-t-il un lien causal entre OT de synthèse et dépression post-partum ?''''' '''''Y a-t-il un lien causal entre OT de synthèse et dépression post-partum ?''''' Cellui qui affirme ça le fait sans preuve (et cellui qui dit l’inverse aussi) : une récente étude de 2020 a tenté de creuser le sujet et a échoué par manque d’études. « Nous ne sommes pas en mesure de tirer des conclusions concernant la relation entre l'ocytocine synthétique intraveineuse et la dépression post-partum sur la base des preuves actuelles en raison de l'hétérogénéité et du petit nombre d'études »[4] Plus récent encore, le travail de Rashidi ''& al.'' (2022)[5] dont je tire ces passages<blockquote>« Pour l'induction et l'accélération du travail, l’OT de synthèse est généralement administrée de manière continue et progressive jusqu'à l'obtention des contractions souhaitées. La durée totale de la perfusion intraveineuse pourrait prendre environ de 20 min à 48 h. Les régimes OT varient d'un pays à l'autre, même d'un hôpital à l'autre. Un régime typique peut commencer à une dose de 2 mU/minute (milli unités internationales par minute) et la dose augmente toutes les 15 min par paliers de 4 mU/minute jusqu'à ce que les contractions souhaitées soient atteintes ou qu'une dose maximale prédéfinie soit atteinte. (…) L'utilisation d'ocytocine [synthétique] (10 unités internationales [UI], intramusculaire ou intraveineuse) est recommandée pour la prévention de l'hémorragie post-partum pour toutes les naissances (Organisation mondiale de la santé, 2020). Cette nouvelle recommandation de l'OMS signifie que bientôt presque toutes les femmes en travail dans le monde pourraient être exposées à l'une ou l'autre forme de synOT, y compris la carbétocine, un analogue de synOT thermostable et à longue durée d'action qui peut être utilisé lorsque le transport de stockage dans la chaîne du froid pour les analogues synOT sensibles à la chaleur tels que Syntocinon n'est pas réalisable (Widmer ''& al.'', 2018). La teneur totale en OT endogène stockée dans l'hypophyse postérieure chez l’humain est estimée à environ 14 UI (28 µg) (Heller et Zaimis, 1949). Bien que l'administration de synOT puisse réduire le taux d'hémorragie post-partum - malgré plusieurs effets secondaires possibles, notamment l'hypertension post-partum, la douleur et le retour à l'hôpital en raison d'un saignement (Begley ''& al.'', 2019) -, elle pourrait augmenter les niveaux plasmatiques d'OT à des niveaux supraphysiologiques. Les effets des augmentations spectaculaires des niveaux d'OT dans la périphérie sur le système nerveux central sont encore peu étudiés. Comme on le sait, les concentrations endogènes d'OT augmentent à la fois au niveau central et périphérique par le contact peau à peau immédiat et l'allaitement après la naissance. Cette augmentation exogène des niveaux d'OT dans la périphérie pourrait à son tour diminuer la durée de la troisième phase du travail (Karimi ''& al.'', 2019) et réduire le risque d'hémorragie post-partum. En gardant à l'esprit que des contractions utérines insuffisantes (atonie utérine) sont la cause la plus fréquente d'hémorragie post-partum, l'exposition prolongée et continue de l'utérus à la synOT pour l'induction et/ou l'augmentation du travail peut entraîner une atonie utérine (Oyelese et Ananth, 2010) via la désensibilisation des cellules sensibles à l'OT dans le myomètre (Phaneuf ''& al.'', 2000). »</blockquote>A la question de savoir si l’OT de synthèse entraîne des contractions plus violentes : Je dirais oui, puisque c’est justement l’objectif. Mais plus violentes que sans OT de synthèse, donc c’est relatif. Est-ce que ce sont ces pics accrus qui impliquent que les gens demandent la péridurale ? Là encore, dur à dire. Le problème Cité dans McKenzie et Montgommery 2021[6] : Une étude britannique (Farrar & al., 2010 ) a révélé que 93 % des ''obstétriciens'' et 73 % des sages-femmes employaient « toujours ou habituellement » une prise en charge active au troisième stade du travail. Cela soulève des questions sur la fréquence à laquelle les sages-femmes et les étudiants assistent à des troisièmes étapes physiologiques non perturbées. Cette étude a capturé la diversité des expériences des femmes en ce qui concerne l'accouchement de leur placenta. == L’adrénaline == L'adrénaline, également connue sous le nom d'épinéphrine, est une hormone et un médicament qui est impliqué dans la régulation des fonctions viscérales (par exemple, la respiration). Elle fait partie des catécholamines. L'adrénaline est normalement produite par les glandes surrénales et par un petit nombre de neurones du bulbe rachidien. Elle joue un rôle essentiel dans la réponse de combat ou de fuite en augmentant le flux sanguin vers les muscles, le débit cardiaque en agissant sur le nœud sinusal (dans l’atrium droit du coeur), en dilatant des pupilles et en augmentant le niveau de sucre dans le sang. Pour ce faire, il se lie aux récepteurs alpha et bêta. On le trouve chez de nombreux animaux, y compris les humains, et certains organismes unicellulaires. Il a également été isolé de la plante ''Scoparia dulcis'' trouvée dans le nord du Vietnam. Des extraits de la glande surrénale ont été obtenus pour la première fois par le physiologiste polonais Napoléon Cybulski en 1895. Ces extraits, qu'il appelait nadnerczyna (adrénaline &nbsp;»), contenaient de l'adrénaline et d'autres catécholamines<ref name="ftn215">Skalski JH, Kuch J (April 2006). "Polish thread in the history of circulatory physiology". Journal of Physiology and Pharmacology. 57 (Suppl 1): 5–41. PMID 16766800.</ref>. L'ophtalmologiste américain William H. Bates a découvert l'utilisation de l'adrénaline pour les chirurgies oculaires avant le 20 avril 1896<ref name="ftn216">Bates WH (16 May 1896). "The Use of Extract of Suprarenal Capsule in the Eye". New York Medical Journal: 647–650. Retrieved 7 March 2015. "Read before the Section in Ophthalmology of the New York Academy of Medicine, 20 April 1896".</ref>. C’est en 1901 que le chimiste japonais Jōkichi Takamine a produit un extrait purifié des glandes surrénales de moutons et de bœufs<ref name="ftn217">Takamine J (1901). The isolation of the active principle of the suprarenal gland. The Journal of Physiology. Great Britain: Cambridge University Press. pp. xxix–xxx.</ref>, parallèlement à Thomas Aldrich. Le brevet ont tous les deux obtenu le brevet, qui a été déposé par Parke, Davis & Co aux États-Unis. Le nom britannique approuvé et ''le terme de la pharmacopée européenne'' pour ce médicament est donc ''l'adrénaline''. Cependant, le pharmacologue John Jacob Abel avait déjà préparé un extrait de glandes surrénales dès 1897, en parallèle à Otto von Fürth (ils étaient tous taquet!) et il a inventé le nom ''d'épinéphrine'' pour le décrire (du grec ancien ἐπῐ́ (''epí''), sur, et νεφρός (''nephrós)'', rein ). Pensant à tort que l'extrait d'Abel était le même que celui de Takamine l'épinéphrine est devenue le nom générique aux États-Unis, tandis que les professionnels de santé et scientifiques européens utilisent préférentiellement le terme ''adrénaline.'' L'adrénaline a été synthétisée pour la première fois en laboratoire par Friedrich Stolz et Henry Drysdale Dakin, indépendamment, en 1904. En 1906, Dale (encore lui) émet l'hypothèse de deux types de récepteur cellulaire à l'adrénaline : la stimulation des uns a un effet «&nbsp;excitant&nbsp;» et inversement celle des autres un effet «&nbsp;relaxant&nbsp;». Il faut attendre 1948 pour qu’Alquist confirme l'hypothèse de Dale et nomme ces récepteurs α et β. '''''L’adrénaline bouche-t-elle les récepteurs à ocytocine et diminue l’efficacité des contractions ?''''' '''''L’adrénaline bouche-t-elle les récepteurs à ocytocine et diminue l’efficacité des contractions ?''''' De ce que je comprends, le récepteur à ocytocine, appelé OXTR fait partie de la superfamille des récepteurs couplés à une protéine Gq de classe I (ou A) (de type rhodopsine) est est classé A6. La fixation de l’ocytocine sur ces récepteurs amène l’activation de phospholipase C conduisant à une augmentation de la concentration intracellulaire de calcium. Les récepteurs adrénergiques donc de l’adrénaline sont aussi couplés aux protéines G. Mais il y a maints sous-types de récepteurs. L’adrénaline a une affinité égale pour les deux groupes de récepteurs α et β, qui ont 9 sous-types. Faute de temps et de compétence, je ne parviens pas à savoir si l’adrénaline peut venir «&nbsp;boucher&nbsp;» les récepteurs à ocytocine. Je présume que ce sont deux sollicitations qui n’ont pas besoin des mêmes récepteurs pour entrer en compétition. '''''Est-il exact que l’adrénaline est secrétée quand on a peur et qu’on est stressé·e&nbsp;?''''' Oui, par réponse surrénomédullaire. Faire de l’exercice aussi stimule la sécrétion d’adrénaline. Avoir froid, ou rencontrer des inconnus, de ce que je comprends, ne fait pas secréter en soi de l’adrénaline, mais déclenche une inquiétude qui elle, la provoque. '''''Secrète-t-on de l’adrénaline si quelqu’un·e d’autre dans la pièce secrète de l’adrénaline&nbsp;?''''' Je ne trouve pas de papier sur ça, mais il me semble bien plus plausible que, quelqu’un secrétant de l’adrénaline ayant des comportements assez typiques, nous y soyons non-consciemment sensibles, et donc recevions notre lot d’inquiétude, qui … ''etc''. St Amant résume ainsi (j’indique des&nbsp;? quand ça me parait fumeux ou douteux) :<blockquote>«&nbsp;On sait que (?) chez toutes les femelles mammifères, la stimulation de l’activité néocorticale (?) est antagoniste des fonctions réflexes dont fait partie l’accouchement (?) (le phénomène d’inhibition est encore plus important chez les grandes primates et chez l’humaine étant donné la grosseur et le développement de leur néocortex).&nbsp;»</blockquote>Ca ne commence pas très bien (''cf''. précédemment)<blockquote>«&nbsp;Ceux et celles qui assistent la femme en travail devraient donc s’assurer de préserver celle-ci des principaux stimuli de l’activité néocorticale qui sont : le langage, la lumière vive, la sensation d’être observée, le stress et la peur. Le seul fait d’être observée suscite la gêne, laquelle déclenche une réaction de type « fight or flight » et la production de catécholamines (?) ce qui empêche le relâchement et la dilatation du col utérin (un sphincter), un acquis de l’évolution qui permet de fuir un éventuel danger (Buckley, 2004a, 2004b; Odent, 2001b; Uvnäs Moberg, 2003). Comme le dit la sage-femme Ina May Gaskin : « ''Our sphincters are shy!'' » (Citation tirée du documentaire ''Orgasmic Birth'' (2009), réalisé par Debra Pascali-Bonaro)&nbsp;». (pp. 144-145).</blockquote>Quand la mère ou ceux qui l’assistent ont peur, décharge de catécholamines, dont la plus connue est l’adrénaline, qui contracte les muscles circulaires de l’utérus : douleur + circulation diminuée (Davis & Pascali-Bonaro, 2010, p. 26). Je ne reviens pas sur sur la question des sphincters qui n’en sont pas. Walter 2021 écrit&nbsp;:<blockquote>«&nbsp;Il a été démontré que le stress et la libération d'hormones qui en résulte, par exemple le cortisol, sont un facteur majeur affectant tous les aspects de l'accouchement, de la lactation et du développement du lien mère-enfant, mais le lien direct entre ces observations comportementales et leurs bases hormonales est majoritairement méconnu.&nbsp;»</blockquote> '''Quelques questions à traiter en suspens, posées par Sarah Duflon'''<blockquote>« Il y a une importante sécrétion d’adrénaline juste avant l’expulsion, quand le col est dilaté, qui correspond à la phase dite « de désespérance » ou la « putain de phase » au Québec, phase pendant laquelle les femmes ont souvent un comportement surprenant, de cris, de pleurs, disant qu’elles n’y arriveront pas, qu’elles vont mourir, etc… certaines mordent même la sage-femme ou tapent dans un mur. C’est le plus souvent à ce moment-là que les femmes ou les personnes qui les accompagnent vont demander une péridurale. Ce shoot d’adrénaline est un choc pour la femme et la sensation de peur due à l’adrénaline se traduit en une trop forte douleur, mais ce comportement est de bon présage, il indique l’arrivée soudaine du bébé. Ce shoot d’adrénaline est là pour (''note : rien n’est « pour » en biologie'') faciliter une expulsion rapide et donner l’énergie à la femme de pouvoir se lever et fuir avec son bébé si besoin ». </blockquote>Dans une étude, il a été montré qu’un taux plasmatique élevé d’épinéphrine était associé avec une diminution de l’activité utérine et un allongement de la durée du travail. De plus, la durée du travail serait corrélée à l’échelle d’anxiété utilisée dans cette étude de Lederman ''& al.'' "''Anxiety and epinephrine in multiparous women in labor: Relationship to duration of labor and fetal heart rate pattern"''<ref>Lederman RP, Lederman E, Work B Jr, McCann DS. Anxiety and epinephrine in multiparous women in labor: relationship to duration of labor and fetal heart rate pattern. Am J Obstet Gynecol. 1985 Dec 15;153(8):870-7. doi: 10.1016/0002-9378(85)90692-1. PMID: 4073158.</ref>. L’utérus serait sensible aux agonistes bêta-adrénergiques comme l’épinéphrine. On retrouve également dans cette étude l’association entre taux plasmatique d’épinéphrine et activité utérine / durée du travail.<div style="color:#000000;">Voici un bloc que je lis qui me parait regorger de documentation, des mêmes auteurices : Lederman, R. P., Lederman, E., Work, B. A., & McCann, D. S. (1978)<ref>Lederman, R. P., Lederman, E., Work, B. A., & McCann, D. S. (1978).&nbsp;The relationship of maternal anxiety, plasma catecholamines, and plasma cortisol to progress in labor. American Journal of Obstetrics and Gynecology, 132(5), 495–500.&nbsp;doi:10.1016/0002-9378(78)90742-1.</ref>. Je n'ai même pas dépouillé les refs indiquées, par manque de temps.</div><blockquote>«&nbsp;Vannuccini ''& al.''<ref>https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B18</ref> ont postulé que l'ocytocine joue un rôle important mais non critique au début de l'accouchement. Néanmoins, il a été démontré que le nombre de récepteurs utérins à l'ocytocine augmente jusqu'à 200 fois vers la fin de la gestation ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B5 5,] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B27 27] ), en raison de l'augmentation du rapport œstrogène/progestérone, qui neutralise l'inhibition de l'OXTR médiée par la progestérone. production dans le myomètre. La densité des récepteurs aux prostaglandines augmente parallèlement à la densité d'OXTR ainsi qu'à la synthèse d'enzymes responsables de la contraction du myomètre ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B28 28] ). Au début du travail, les œstrogènes synthétisés dans le placenta stimulent la synthèse locale d'ocytocine dans l'amnios, le chorion et la caduque ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B26 26] ), mise en évidence par la présence d'ARNm d'ocytocine ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B10 10] ). Cette synthèse locale est indépendante de la sécrétion endocrine dans l'hypothalamus, ce qui explique pourquoi l'ocytocine a été détectée localement dans les cellules mais pas dans les échantillons sanguins (29) [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B29 et] pourquoi aucune augmentation de la concentration plasmatique sanguine de l'ocytocine pendant la grossesse et le début de l'accouchement chez la femme a été signalé ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B30 30] ). Cette paracrine produite par l'ocytocine dans l'amnios agit ''via'' un mécanisme direct et indirect pour médier les contractions utérines. Indirectement, il stimule la synthèse des prostaglandines E 2 et F 2α, qui à leur tour déclenchent des contractions utérines, entraînant une augmentation de la densité d'OXTR et contribuant à la formation de jonctions lacunaires entre les cellules musculaires lisses de l'utérus (18 [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B18 )]. Directement, il active les canaux Ca 2+ dans les cellules musculaires lisses, entraînant une libération de Ca 2+ du réticulum sarcoplasmique qui initie le cycle de contraction musculaire ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B20 20] ). Avant le début des contractions utérines, un processus de type inflammation de l'amnios et du chorion, caractérisé par une augmentation des cytokines, des chimiokines, ainsi que des prostaglandines E 2 et F 2α, a été observé. Ces processus provoquent des modifications biochimiques des membranes fœtales et la maturation du col de l'utérus, déclenchant la parturition ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B31 31] ). L'activation inflammatoire est également causée par l'action directe de l'ocytocine sur la libération de cytokines ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B32 32] ). Au cours de la parturition humaine, la quantité mesurable d'ocytocine dans le plasma sanguin augmente&nbsp;: elle double pendant la phase latente de dilatation et augmente encore jusqu'au deuxième stade du travail ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B33 33] ). La sécrétion pulsatile d'ocytocine par la neurohypophyse augmente en amplitude et en fréquence pendant l'accouchement, atteignant un maximum de trois impulsions dans les dix minutes peu avant l'accouchement ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B34 34] ). Ces impulsions d'ocytocine sont déclenchées par des signaux dans le SNC et par la pression exercée par le fœtus sur les mécanorécepteurs du col de l'utérus et des parois vaginales ''via'' une boucle de rétroaction positive, appelée réflexe de Ferguson. D'après des recherches sur des rongeurs, nous savons que des signaux neuronaux intenses et apparaissant rythmiquement ont été enregistrés dans le PVN et le SON dans l'hypothalamus, qui reçoivent leur entrée des neurones sensoriels du col de l'utérus et du vagin (35 [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B35 )]. Cette activité rythmique dans l'hypothalamus conduit à la libération pulsatoire d'ocytocine dans le cerveau et dans la circulation sanguine ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/figure/f1/ Figure 1] ) ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B36 36,] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B37 37] ). Lorsque la pression exercée sur le col de l'utérus par le fœtus atteint un maximum, c'est-à-dire pendant la phase d'expulsion fœtale et peu après la naissance, la concentration d'ocytocine augmente de 3 à 4 fois par rapport au début du travail ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B33 33,] [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B34 34] ). Chez le rat, il a été démontré qu'un circuit neuronal hypothalamique dépendant des opioïdes empêche un dépassement des niveaux d'ocytocine ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B38 38] ). Une étude de Goodfellow et al. ([https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8578887/#B39 39] ) ont constaté que chez les femmes recevant une analgésie péridurale, la concentration sanguine d'ocytocine est réduite, probablement parce que les anesthésiques et les opioïdes administrés empêchent la transmission des signaux neuronaux afférents. On discute actuellement du fait que c'est la raison pour laquelle plus l'analgésie péridurale est administrée longtemps, plus le taux d'accouchements non spontanés et l'utilisation d'ocytocine synthétique sont élevés&nbsp;».</blockquote>J'aurais aimé également compulser l'étude de 2016-17 de Garcia-Lausin ''& al.''<ref name="ftn218"><div style="margin-left:0.598cm;margin-right:0cm;">Garcia-Lausin L, Perez-Botella M, Duran X, Mamblona-Vicente MF, Gutierrez-Martin MJ, Gómez de Enterria-Cuesta E, Escuriet R. Relation between Length of Exposure to Epidural Analgesia during Labour and Birth Mode. Int J Environ Res Public Health. 2019 Aug 15;16(16):2928. doi: 10.3390/ijerph16162928. PMID: 31443209; PMCID: PMC6720813.</div></ref>, de même que Walter ''& al.'' (2021)<ref>Walter MH, Abele H, Plappert CF. The Role of Oxytocin and the Effect of Stress During Childbirth: Neurobiological Basics and Implications for Mother and Child. Front Endocrinol (Lausanne). 2021 Oct 27;12:742236. doi: 10.3389/fendo.2021.742236. PMID: 34777247; PMCID: PMC8578887.</ref>, où j'ai cru lire que l'intervention médicale pendant l'accouchement au moyen d'une césarienne d'urgence et/ou d'une analgésie péridurale a également un effet négatif sur l'initiation de l'allaitement après la naissance en réduisant les taux d'ocytocine et de prolactine. <references /> fyq2zf70lx59x78xkdjgrdhqpqdz3cs Fonctionnement d'un ordinateur/Exemples de microarchitectures CPU : le cas du x86 0 82608 746347 746061 2025-07-08T18:37:24Z Mewtow 31375 /* Les microarchitectures Core, Sandy Bridge and Ivy Bridge */ 746347 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'adder flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour deux modifications majeures : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. La taille des différentes structures, comme les stations de réservation ou le ROB, a aussi augmenté. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement. Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. La taille des stations de réservation, du ''Loop Stream Detector'' et du ROB, a augmenté, comme à chaque nouvelle micro-architecture, et les autres structures du processeur sont aussi dans ce cas. Pour le reste, rien ne change si ce n'est la prédiction de branchement et quelques détails mineurs. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> bg8queo5rcriylg7qf1uomjx00xgntf 746348 746347 2025-07-08T18:53:10Z Mewtow 31375 /* Les processeurs superscalaires Intel */ 746348 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Core, Sandy Bridge and Ivy Bridge=== Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour deux modifications majeures : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, les décodeurs sont bien moins utilisés. La majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. ===La microarchitecture Skylake=== L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===La microarchitecture Ice Lake=== ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> 4k1f64402dnqmkwvsj5r6io20lfuv69 746349 746348 2025-07-08T18:54:17Z Mewtow 31375 /* Les processeurs superscalaires Intel */ 746349 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Core, Sandy Bridge and Ivy Bridge=== Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour deux modifications majeures : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, les décodeurs sont bien moins utilisés. La majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. ===La microarchitecture Skylake=== L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===La microarchitecture Ice Lake=== ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> mv909wmh3yoqbfsl475mxk2vqbx5h9p 746350 746349 2025-07-08T18:55:16Z Mewtow 31375 /* Les microarchitectures Core, Sandy Bridge and Ivy Bridge */ 746350 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour deux modifications majeures : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, les décodeurs sont bien moins utilisés. La majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. ===La microarchitecture Skylake=== L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===La microarchitecture Ice Lake=== ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> rty8xdjhaqmfsyhqpbhroy9ejwu5cue 746351 746350 2025-07-08T18:55:35Z Mewtow 31375 /* La microarchitecture Skylake */ 746351 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour deux modifications majeures : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, les décodeurs sont bien moins utilisés. La majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===La microarchitecture Ice Lake=== ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> om9c3t0y66qho1jimptrhf7ngu1jsqj 746352 746351 2025-07-08T18:55:45Z Mewtow 31375 /* Les microarchitectures Sandy Bridge and Ivy Bridge */ 746352 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour deux modifications majeures : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, les décodeurs sont bien moins utilisés. La majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. ===La microarchitecture Ice Lake=== ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> 7xhvhoxmkx0xcwxl4b1by7p2umz9ntg 746353 746352 2025-07-08T19:00:38Z Mewtow 31375 /* La microarchitecture Ice Lake */ 746353 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour deux modifications majeures : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, les décodeurs sont bien moins utilisés. La majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> 0rxgjbl2ce12xhs67xeuhkmwmhac5mu 746354 746353 2025-07-08T19:07:17Z Mewtow 31375 /* Les microarchitectures Sandy Bridge and Ivy Bridge */ 746354 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit deux grandes modifications : le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Voyons maintenant quelles sont les micro-architectures qui implémentent ces deux optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> dhxxm1w9omqumwdj3t7g8h7w9vo72z3 746356 746354 2025-07-08T19:16:12Z Mewtow 31375 /* Les microarchitectures Sandy Bridge and Ivy Bridge */ 746356 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit quelques grandes modifications : le passage à un renommage à banc de registre physique, l'ajout d'un cache de micro-opérations (et d'un ''Loop Stream Detector''). L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Le cache de micro-opérations est complété avec un ''Loop Stream Detector'', placé après le cache en question. Les décodeurs et le cache de micro-opérations alimentent une file de micro-opérations, située juste avant l'étage de renommage de registres. La file de micro-opérations sert en quelque sorte de tampon entre l'étage de "décodage" et celui de renommage. Le 'Loop Stream Detector'' utilise cette file de micro-opérations comme d'un cache lorsqu'une boucle est détectée. Les micro-opérations de la boucle sont lue depuis la file de micro-opérations, pour être envoyée au renommeur de registres. L'avantage est que le cache de micro-opérations et/ou les décodeurs sont mis en pause et clock-gatés lorsqu'une boucle s'exécute, ce qui réduit la consommation du processeur. Le ''Loop Stream Detector'' et le cache de micro-opération ont globalement le même effet : désactiver tout ce qui est avant, le ''Loop Stream Detector'' appliquant cette méthode au cache de micro-opération lui-même.. Voyons maintenant quelles sont les micro-architectures qui implémentent ces optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> 5r2j8mki27onowm8kvmj5goazeqolld 746357 746356 2025-07-08T19:16:25Z Mewtow 31375 /* Les microarchitectures Sandy Bridge and Ivy Bridge */ 746357 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit quelques grandes modifications : le passage à un renommage à banc de registre physique, l'ajout d'un cache de micro-opérations (et d'un ''Loop Stream Detector''). L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Le cache de micro-opérations est complété avec un ''Loop Stream Detector'', placé après le cache en question. Les décodeurs et le cache de micro-opérations alimentent une file de micro-opérations, située juste avant l'étage de renommage de registres. La file de micro-opérations sert en quelque sorte de tampon entre l'étage de "décodage" et celui de renommage. Le ''Loop Stream Detector'' utilise cette file de micro-opérations comme d'un cache lorsqu'une boucle est détectée. Les micro-opérations de la boucle sont lue depuis la file de micro-opérations, pour être envoyée au renommeur de registres. L'avantage est que le cache de micro-opérations et/ou les décodeurs sont mis en pause et clock-gatés lorsqu'une boucle s'exécute, ce qui réduit la consommation du processeur. Le ''Loop Stream Detector'' et le cache de micro-opération ont globalement le même effet : désactiver tout ce qui est avant, le ''Loop Stream Detector'' appliquant cette méthode au cache de micro-opération lui-même.. Voyons maintenant quelles sont les micro-architectures qui implémentent ces optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> 1yhp5ay8fcon7nt8w5nw1obktbd5j35 746358 746357 2025-07-08T19:19:18Z Mewtow 31375 /* Les microarchitectures Sandy Bridge and Ivy Bridge */ 746358 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit quelques grandes modifications : le passage à un renommage à banc de registre physique, l'ajout d'un cache de micro-opérations (et d'un ''Loop Stream Detector''). L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Le cache de micro-opérations est complété avec un ''Loop Stream Detector'', placé après le cache en question. Les décodeurs et le cache de micro-opérations alimentent une file de micro-opérations, située juste avant l'étage de renommage de registres. La file de micro-opérations sert en quelque sorte de tampon entre l'étage de "décodage" et celui de renommage. Le ''Loop Stream Detector'' utilise cette file de micro-opérations comme d'un cache lorsqu'une boucle est détectée. Les micro-opérations de la boucle sont lue depuis la file de micro-opérations, pour être envoyée au renommeur de registres. L'avantage est que le cache de micro-opérations et/ou les décodeurs sont mis en pause et clock-gatés lorsqu'une boucle s'exécute, ce qui réduit la consommation du processeur. Le ''Loop Stream Detector'' et le cache de micro-opération ont globalement le même effet : désactiver tout ce qui est avant, le ''Loop Stream Detector'' appliquant cette méthode au cache de micro-opération lui-même.. Voyons maintenant quelles sont les micro-architectures qui implémentent ces optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===Les microarchitectures récentes d'Intel=== Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. ===La microarchitecture Golden Cove=== La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> i2qct5iiib5g580bkib6c2t48cf9bn0 746359 746358 2025-07-08T19:19:24Z Mewtow 31375 /* La microarchitecture Golden Cove */ 746359 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit quelques grandes modifications : le passage à un renommage à banc de registre physique, l'ajout d'un cache de micro-opérations (et d'un ''Loop Stream Detector''). L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Le cache de micro-opérations est complété avec un ''Loop Stream Detector'', placé après le cache en question. Les décodeurs et le cache de micro-opérations alimentent une file de micro-opérations, située juste avant l'étage de renommage de registres. La file de micro-opérations sert en quelque sorte de tampon entre l'étage de "décodage" et celui de renommage. Le ''Loop Stream Detector'' utilise cette file de micro-opérations comme d'un cache lorsqu'une boucle est détectée. Les micro-opérations de la boucle sont lue depuis la file de micro-opérations, pour être envoyée au renommeur de registres. L'avantage est que le cache de micro-opérations et/ou les décodeurs sont mis en pause et clock-gatés lorsqu'une boucle s'exécute, ce qui réduit la consommation du processeur. Le ''Loop Stream Detector'' et le cache de micro-opération ont globalement le même effet : désactiver tout ce qui est avant, le ''Loop Stream Detector'' appliquant cette méthode au cache de micro-opération lui-même.. Voyons maintenant quelles sont les micro-architectures qui implémentent ces optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===Les microarchitectures récentes d'Intel=== Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage peut paraitre surprenante. Cependant, la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. Quand près de 80% des micro-opérations exécutées sont lues depuis ce cache, améliorer ce qu'il y a avant est peu utile, surtout au vu cu cout en circuit d'un décodeur supplémentaire. De même, les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seule changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> nialyb6izm25rn37gdzql3k6mh1qhyv 746360 746359 2025-07-08T19:20:01Z Mewtow 31375 /* Les microarchitectures récentes d'Intel */ 746360 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] A chaque nouvelle génération, la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en ^tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit quelques grandes modifications : le passage à un renommage à banc de registre physique, l'ajout d'un cache de micro-opérations (et d'un ''Loop Stream Detector''). L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Le cache de micro-opérations est complété avec un ''Loop Stream Detector'', placé après le cache en question. Les décodeurs et le cache de micro-opérations alimentent une file de micro-opérations, située juste avant l'étage de renommage de registres. La file de micro-opérations sert en quelque sorte de tampon entre l'étage de "décodage" et celui de renommage. Le ''Loop Stream Detector'' utilise cette file de micro-opérations comme d'un cache lorsqu'une boucle est détectée. Les micro-opérations de la boucle sont lue depuis la file de micro-opérations, pour être envoyée au renommeur de registres. L'avantage est que le cache de micro-opérations et/ou les décodeurs sont mis en pause et clock-gatés lorsqu'une boucle s'exécute, ce qui réduit la consommation du processeur. Le ''Loop Stream Detector'' et le cache de micro-opération ont globalement le même effet : désactiver tout ce qui est avant, le ''Loop Stream Detector'' appliquant cette méthode au cache de micro-opération lui-même.. Voyons maintenant quelles sont les micro-architectures qui implémentent ces optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===Les microarchitectures récentes d'Intel=== Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage s'explique encore une fois par la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> lw6lj4agzbjfbk27adqcaa5xcbwfvbn 746361 746360 2025-07-08T19:21:18Z Mewtow 31375 /* Les processeurs superscalaires Intel */ 746361 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake. Le système tick-tock a alors été abandonné. Deux microarchitectures ont alors suivi : Ice Lake, puis Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] Les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seul changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. Un autre changement est l'introduction du cache de micro-opération, sur lequel nous reviendrons en détail. Pour le reste, les changements à chaque nouvelle génération sont assez mineurs : la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit quelques grandes modifications : le passage à un renommage à banc de registre physique, l'ajout d'un cache de micro-opérations (et d'un ''Loop Stream Detector''). L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Le cache de micro-opérations est complété avec un ''Loop Stream Detector'', placé après le cache en question. Les décodeurs et le cache de micro-opérations alimentent une file de micro-opérations, située juste avant l'étage de renommage de registres. La file de micro-opérations sert en quelque sorte de tampon entre l'étage de "décodage" et celui de renommage. Le ''Loop Stream Detector'' utilise cette file de micro-opérations comme d'un cache lorsqu'une boucle est détectée. Les micro-opérations de la boucle sont lue depuis la file de micro-opérations, pour être envoyée au renommeur de registres. L'avantage est que le cache de micro-opérations et/ou les décodeurs sont mis en pause et clock-gatés lorsqu'une boucle s'exécute, ce qui réduit la consommation du processeur. Le ''Loop Stream Detector'' et le cache de micro-opération ont globalement le même effet : désactiver tout ce qui est avant, le ''Loop Stream Detector'' appliquant cette méthode au cache de micro-opération lui-même.. Voyons maintenant quelles sont les micro-architectures qui implémentent ces optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===Les microarchitectures récentes d'Intel=== Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage s'explique encore une fois par la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> g7seb7qz8sfkvkh8tmhjmvna3dkumez 746362 746361 2025-07-08T19:21:53Z Mewtow 31375 /* Les processeurs superscalaires Intel */ 746362 wikitext text/x-wiki Dans ce chapitre, nous allons étudier des exemples de processeurs superscalaires que vous avez peut-être eu dans un ancien ordinateur. Nous allons étudier les processeurs x86 des PC, et précisément les architectures à haute performances, avec de l'exécution dans le désordre, de la superscalarité, de la prédiction de branchement, et autres optimisations de ce genre. Précisément, tous les processeurs que nous allons voir maintenant sont des processeurs superscalaires. La raison est que l'exécution dans le désordre est arrivé après la superscalarité. De fait, ce n'est pas pour rien si ce chapitre se situe après le chapitre sur les processeurs superscalaires. ==Le jeu d'instruction x86 pose des problèmes pour la superscalarité== Une difficulté de l'architecture x86 est qu'il s'agit d'une architecture CISC, avec tous les défauts que ça implique. Un jeu d'instruction CISC a en effet de nombreuses propriétés qui collent mal avec l'émission multiple, avec la '''superscalarité'''. Il y en a plusieurs, certaines impactent le chargement des instructions, d'autres leur décodage, d'autres l'exécution, etc. Premièrement, les instructions sont de longueur variable, entre 1 et 15 octets, ce qui complique leur chargement et leur décodage. En pratique, les processeurs chargent un bloc de 32 à 64 octets, et découpent celui-ci en plusieurs instructions. La conséquence est que l'usage d'instructions trop longues peut poser problème. Imaginez qu'un processeur charge un bloc de 16 octets et que celui-ci ne contienne qu'une seule instruction : on ne profite pas de la superscalarité. Deuxièmement, une partie des instructions est microcodée, faute de mieux. Et cela pose de sérieux challenges pour l'implémentation des décodeurs. Dupliquer le microcode demanderait trop de transistors, ce qui fait que ce n'est pas fait. A la place, il n'y a qu'un seul microcode, ce qui fait que l'on ne peut pas décoder plusieurs instructions microcodées en même temps. Il est cependant possible de profiter de la superscalarité, en décodant une instruction microcodée en parallèle d'autres instructions non-microcodées. Et heureusement, ce cas est de loin le plus fréquent, il est rare que plusieurs instructions microcodées se suivent. Troisièmement, la présence d'instructions ''load-up'', qui lisent un opérande en mémoire, peut poser problème, mais est aussi source d'optimisations assez intéressantes. En théorie, une instruction ''load-op'' est décodée en deux micro-opération : une pour lire d'opérande en RAM, l'autre pour faire l'opération arithmétique. Rien de compliqué à cela, il faut juste tenir compte du fait que certaines instructions sont décodées en plusieurs micro-opérations. Sur les processeurs RISC, une instruction correspond globalement à une seule micro-opération, sauf éventuellement pour quelques instructions complexes. Mais sur les CPU CISC, la présence d'instructions ''load-up'' fait que beaucoup d'instructions sont décodées en deux micro-opérations. Sauf que les processeurs x86 modernes optimisent la gestion des instructions ''load-up''. Nous verrons que les premiers processeurs Atom géraient des micro-opérations de type ''load-up'', directement dans le chemin de données ! D'autres processeurs retardent le décodage réel des instructions ''load-up''' assez loin dans le pipeline. En clair, une instruction ''load-op'' est décodée en une seule "macro-opération", qui est une sorte de vraie/fausse micro-opération. Elle parcourt le pipeline jusqu'à arriver aux fenêtres d'instruction situées en amont des ALU et de l'unité mémoire. C'est là que la macro-opération est scindées en deux micro-opérations, exécutées l'une après l'autre. L'avantage est qu'une macro-opération ne prend qu'une seule entrée dans le tampon de ré-ordonnancement, la fenêtre d'instruction, la file de micro-opération, et les autres structures similaires. En comparaison, décoder une instruction ''load-up'' directement en deux micro-opérations en sortie du décodeurs utiliserait deux entrées. Intel comme AMD décrivent cette optimisation comme étant de la '''micro-fusion''', sous-entendu de la fusion de deux micro-opérations. ==Les processeurs x86 superscalaires sans exécution dans le désordre== Pour commencer, nous allons voir deux cas de processeurs superscalaires qui ne gèrent pas l'exécution dans le désordre. L'apparition de la superscalarité s'est faite sur le processeur Intel Pentium 1, et a été conservée sur tous les processeurs Intel qui ont suivi. Le successeur du Pentium a intégré l'exécution dans le désordre. Mais n'allez pas croire que nous n'allons voir que le Pentium dans cette section. En effet, un autre processeur est dans ce cas : les processeurs Atom première génération. Les processeurs Atom sont des processeurs basse consommation produits et conçus par Intel. La toute première microarchitecture Atom était la microarchitecture Bonnell, une architecture superscalaire double émission, sans exécution dans le désordre. Les microarchitectures Atom suivante ont intégré l'exécution dans le désordre, ce qui fait qu'on n'en parlera pas dans cette section. ===Le Pentium 1/MMX et les pipelines U/V=== Le processeur Pentium d'Intel avait un pipeline de 5 étages : un étage de chargement/prédiction de branchement, deux étages de décodage, un étage d'exécution et un dernier étage pour l'écriture dans les registres. Le Pentium 1 était un processeur à double émission, qui disposait de deux pipelines nommés U et V. Chose peu courante, les deux pipelines n'étaient pas identiques. Le pipeline U pouvait exécuter toutes les instructions, mais le pipeline V était beaucoup plus limité. Par exemple, seul le pipeline U peut faire des calculs flottants, le pipeline V ne fait que des calculs entiers et des branchements. Les deux pipelines disposaient d'une unité de calcul entière identiques dans les deux pipelines. Le pipeline U incorporait un circuit multiplieur/diviseur et un ''barrel shifter'' pour les décalages/rotations. Les deux pipelines avaient chacun uen unité de calcul d'adresse, mais elle n'étaient pas identique : celle du pipeline V ne gérait que l’instruction LEA, celle du pipeline U gérait tous les calculs d'adresse. L'unité flottante était sur le port d'émission du pipeline U, idem pour l'unité de calcul vectoriel MMX sur le Pentium MMX. {|class="wikitable" |- ! Pipeline U ! Pipeline V |- | colspan="2" | ALU simple (une par pipeline) |- | Multiplieur/diviseur | |- | ''Barrel Shifter'' | |- | AGU complexe | AGU simple (opération LEA) |- | FPU | |- | Unité SIMD | |} Les deux ALU géraient les opérations bit à bit, les additions et soustractions, et les comparaisons (qui sont des soustractions déguisées). En conséquence, les instructions suivantes étaient exécutables dans les deux pipelines, ce qui fait qu'on pouvait en faire deux en même temps : * l'instruction MOV, dépend du mode d'adressage ; * les instructions de gestion de la pile PUSH et POP, dépend du mode d'adressage ; * Les instructions arithmétiques INC, DEC, ADD, SUB ; * l'instruction de comparaison CMP ; * les instructions bit à bit AND, OR, XOR ; * l'instruction de calcul d'adresse LEA ; * l'instruction NOP, qui ne fait rien. Les instructions suivantes sont exécutables seulement dans le pipeline U : les calculs d'adresse autres que LEA, les décalages et rotations, la multiplication et la division, les opérations flottantes. Il faut noter qu'il y a cependant quelques restrictions. Par exemple, si le pipeline U exécute une multiplication ou une division, le processeur ne peut pas exécuter une opération dans le pipeline V en parallèle. Dans le même genre, les branchements sont exécutables dans les deux pipelines, mais on ne peut exécuter une autre opération en parallèle qu'à la condition que le branchement soit exécuté dans le pipeline V. [[File:Intel Pentium arch.svg|centre|vignette|upright=2.5|Microarchitecture de l'Intel Pentium MMX. On voit que certaines unités de calcul sont dupliquées.]] ===Les processeurs Atom d'Intel, de microarchitecture Bonnell=== L'architecture de l'Atom première génération est assez simple. Son pipeline faisait 16 étages, ce qui est beaucoup. Le cache d'instruction permet de lire 8 octets par cycle, qui sont placés dans une file d'instruction. La file d'instruction est alors reliée à deux décodeurs, ce qui permet de décoder deux instructions en même temps. Le fait que les décodeurs lisent les instructions depuis une file d'instruction fait que les deux instructions décodées ne sont pas forcément consécutives en mémoire RAM. Par exemple, l'Atom peut décoder un branchement prédit comme pris, suivi par l'instruction de destination du branchement. Les deux instructions ont été chargées dans la file d'instruction et sont consécutifs dedans, alors qu'elles ne sont pas consécutives en mémoire RAM. Les décodeurs sont assez différents de ceux observés sur les autres processeurs superscalaires. La majorité des instructions x86 sont décodées en une seule micro-opération, y compris les instructions ''load-up''. Le microcode n'est utilisé que pour une extrême minorité d'instructions et est à part des deux décodeurs précédents. L'avantage est que cela permet d'utiliser au mieux la file de micro-opération, qui est de petite taille. Mais surtout, cela permet de grandement réduire la consommation du processeur, au détriment de ses performances. Pour avoir un décodage rapide, malgré des instructions complexes, le processeur recourt à la technique du pré-décodage, qui prédécode les instructions lors de leur chargement dans le cache d'instruction. Le prédécodage lui-même prend deux cycles, là où une lecture dans le L1 d'instruction en prend 3. les défauts de cache d'instruction sont donc plus longs de deux cycles. Mais l'avantage du prédécodage est que la consommation d'énergie est diminuée. Prenez une instruction exécutée plusieurs fois, dans une boucle. Au lieu de décoder intégralement une instruction à chaque fois qu'on l'exécute, on la prédécode une fois, seul le reste du décodage est fait à chaque exécution. D'où un gain d'énergie assez intéressant. Les deux décodeurs alimentent une file de micro-opérations de petite taille : 32 µops maximum, 16 par ''thread'' si le ''multithreading'' matériel est activé. La file de micro-opérations a deux ports d'émission, ce qui permet d'émettre au maximum 2 µops par cycle. Les conditions pour cela sont cependant drastiques. Les deux instructions ne doivent pas avoir de dépendances de registres, à quelques exceptions près liées au registre d'état. Le multithreading matériel doit aussi être désactivé. Les deux instructions doivent aller chacun dans un port différent, et cela tient en compte du fait que les deux ports sont reliés à des unités de calcul fort différentes. Le tout est illustré ci-dessous. Les deux ports ont chacun une ALU simple dédiée, capable de faire des additions/soustractions, des opérations bit à bit et des copies entre registres. Mais ils ont aussi des opérations qui leur sont spécifiques. La séparation entre les deux pipelines est assez complexe. Il ne s'agit pas du cas simple avec un pipeline entier et un pipeline flottant séparés. En réalité, il y a deux pipelines, chacun capables de faire des opérations entières et flottantes, mais pas les mêmes opérations. Le premier port permet d’exécuter des opérations entières simples, une addition flottante, des comparaisons/branchements, ou une instruction de calcul d'adresse LEA. Le second port/pipeline est, quant à lui, conçu pour exécuter les instruction ''load-up'' nativement, en une seule micro-opération. Il contient toute la machinerie pour faire les accès mémoire, notamment des unités de calcul d'adresse et un cache L1 de données. A la suite du cache, se trouvent une ALU entière simple, un ''barrel shifter'', et un circuit multiplieur/diviseur. Le circuit multiplieur/diviseur est utilisé à la fois pour les opérations flottantes et entières. [[File:Intel Atom Microarchitecture.png|centre|vignette|upright=2.5|Intel Atom Microarchitecture]] Cette organisation difficile à comprendre est en réalité très efficace, très économe en circuit, tout en gardant une performance intéressante. Les instructions simples, ADD/SUB/bitwise sont supportées dans les deux pipelines. Il faut dire que ce sont des opérations courantes qu'il vaut mieux optimiser au mieux. Le processeur peut donc émettre deux opérations simples et fréquentes en même temps, ce qui augmente les performances. Les opérations plus complexes, à savoir les multiplications/divisions/décalages/rotations/manipulations de bit sont supportées dans un seul pipeline. La raison est qu'il est rare que de telles opérations soient consécutives, et qu'il n'est donc pas utile d'optimiser pour cette situation. Si les deux pipelines devaient supporter ces opérations, cela demanderait de dupliquer les circuits multiplieurs/diviseur, ce qui aurait un cout en circuit important pour un gain en performance assez faible. Le processeur étant sans exécution dans le désordre, ses instructions doivent écrire dans les registres dans l'ordre du programme. En conséquence, certaines instructions doivent être retardées, leur émission doit attendre que les conditions soient adéquates. Et cela pose problème avec les opérations flottantes, vu qu'elles prennent pas mal de cycles pour s'exécuter. Imaginez qu'une instruction flottante de 10 cycles soit suivie par une instruction entière. En théorie, on doit retarder l'émission de l'instruction entière de 9 cycles pour éviter tout problèmes. Le cout en performance est donc assez important. En théorie, les instructions entières et flottantes écrivant dans des registres séparés, ce qui fait que l'on pourrait éxecuter instructions entières et flottantes dans le désordre. Sauf pour les instructions de copie entre registres entier et flottants, mais laissons-les de côté. Le problème est qu'une instruction flottante peut parfois lever une exception, par exemple en cas de division par zéro, ou pour certains calculs précis. Si une exception est levée, alors l'instruction flottante est annulée, de même que toutes les instructions qui suivent, y compris les opérations entières. Ce n'est pas un problème si le processeur gère nativement les exceptions précises, par exemple avec un tampon de ré-ordonnancement. Mais l'Atom étant un processeur sans exécution dans le désordre, les instructions entières devraient être mises en attente tant qu'une instruction flottante est en cours d'exécution. Heureusement, l'Atom d'Intel a trouvé une parade. La technique, appelée ''Safe Instruction Recognition'' par Intel, est décrite dans le brevet US00525721.6A. L'idée est de tester les opérandes flottantes, pour détecter les combinaisons d'opérandes à problème, dont l'addition/multiplication peut lever une exception. Si des opérandes à problème sont détectées, on stoppe l'émission de nouvelles instructions en parallèle de l'instruction flottante et l'unité d'émission émet des bulles de pipeline tant que l'instruction flottante est en cours. Sinon, l'émission multiple fonctionne. La technique permet ainsi de ne pas écrire dans les registres entiers/flottants dans l'ordre du programme : une instruction entière peut être autorisée à s'exécuter même si elle écrit dans un registre entier avant qu'une instruction flottante délivre son résultat. ==Les processeurs superscalaires Intel== Après avoir vu deux exemples de processeurs superscalaires sans exécution dans le désordre, nous allons aux processeurs avec exécution dans le désordre. Et nous allons commencer par les processeurs d'Intel. Les processeurs d'AMD seront vus dans une section à part, à la suite de celle-ci. Un point important est que les microarchitectures d'Intel ont évolué au cours du temps. Et le moins qu'on puisse dire est qu'elles sont nombreuses, ce qui est assez normal quand on sait que le Pentium est sorti en 1993, soit il y a plusieurs décennies. Les micro-architectures que nous allons voir suivent celle du Pentium, appelée '''micro-architecture P5'''. Le Pentium 2 et le Pentium 3 utilisaient l''''architecture P6''' et ses nombreuses variantes. Il introduit une exécution dans le désordre simple, avec une fenêtre d'instruction centralisée, avec renommage dans le désordre dans le ROB (tampon de ré-ordonnancement). Le pipeline passe de 5 étage sur le Pentium à 14 ! Elle a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas la même. Le Pentium 4 a représenté une rupture en termes de microarchitecture. Elle n'avait plus rien à voir avec l'architecture des Pentium 2 et 3. Elle introduisait de nombreuses nouveautés architecturales qui étaient très innovantes. Par exemple, il introduisait le renommage avec un banc de registre physique, qui a été utilisé sur tous les processeurs Intel suivants. Mais la plupart de ces innovations étaient en réalité de fausses bonnes idées, ou du moins des idées difficiles à exploiter. Par exemple, le système de pipeline à ''replay'' n'a été utilisé que sur le Pentium 4 et aucun autre processeur ne l'a implémenté. La microarchitecture du Pentium 4 a été déclinée en plusieurs versions, dont les finesses de gravure n'étaient pas les mêmes. Le Pentium 4 a été un échec, il est rapidement apparu que cette microarchitecture était mal conçue et devait être remplacée. Pour cela, les ingénieurs d'Intel ont repris l'architecture P6 et l'ont améliorée fortement, pour donner l'architecture Core. A partir de ce moment, les microarchitectures ont suivi un motif assez simple, appelé modèle '''tick-tock'''. Chaque microarchitecture était déclinée en deux versions, la seconde ayant une finesse de gravure réduite. La micro-architecture suivante reprenait la finesse de gravure de la précédente, dans sa seconde version. L'architecture Core a laissé la place à l'architecture Nehalem, puis Sandy Bridge, puis Haswell, puis Skylake, puis Ice Lake, et Golden Cove. [[File:IntelProcessorRoadmap-fr.svg|centre|vignette|upright=3|IntelProcessorRoadmap-fr]] Les processeurs Intel ont conservé une fenêtre d'instruction centralisée, alors qu'AMD utilise une autre méthode, comme nous allons le voir dans ce qui suit. Le seul changement notable est le passage à un renommage dans le ROB à un renommage à banc de registre physique. Mais c'est aussi une modification qu'AMD a fait, celle-ci étant clairement une bonne idée pour toutes les micro-architectures avec un budget en transistor suffisant. Un autre changement est l'introduction du cache de micro-opération, sur lequel nous reviendrons en détail. Pour le reste, les changements à chaque nouvelle génération sont assez mineurs : la prédiction de branchement est améliorée, la taille des stations de réservation et du ROB augmente, idem avec les autres structures liées à l'exécution dans le désordre. Il est intéressant de garder cela en tête, car une bonne partie des améliorations de chaque micro-architecture proviendra de là. ===La microarchitecture P6 du Pentium 2/3=== La microachitecture suivant le Pentium, nommée '''microarchitecture P6''', était une microarchitecture plus élaborée. C'était un processeur triple émission, soit une instruction de plus que la double émission du Pentium 1. Il s'agissait du premier processeur à exécution dans le désordre de la marque, avec une implémentation basée sur des stations de réservation et un renommage de registre dans le ROB, commandé par une table d'alias. Le pipeline faisait 14 à 12 étages, dont le détail du pipeline : * Prédiction de branchement, deux cycles ; * Chargement des instructions, trois cycles ; * Décodage de l'instruction, deux cycles ; * Renommage de registre, un cycle ; * Copie des opérandes dans le tampon de ré-ordonnancement (lié au renommage de registre dans le ROB) ; * Dispath dans ou depuis la station de réservation. * Exécution de l'instruction ; * Ecriture du résultat dans le ROB ; * Ecriture dans le banc de registre physique. Les instructions sont chargées par blocs de 16 octets, avec un système de fusion de blocs pour gérer les instructions à cheval sur deux blocs. Lors d'un branchement, deux blocs doivent être chargés si l'instruction de destination n'est pas alignée sur 16 octets et cela cause un délai de un cycle d'horloge. Le décodage des instructions x86 était géré par plusieurs décodeurs. Il y avait trois décodeurs : deux décodeurs simples, et un décodeur complexe. Les décodeurs simples décodaient les instructions les plus fréquentes, mais aussi les plus simples, qui étaient décodées en une seule micro-opération. Les instructions CISC complexes étaient gérées uniquement par le décodeur complexe, basé sur un microcode, qui pouvait fournir jusqu'à 4 micro-opérations par cycle. Le tout est résumé avec la règle 4-1-1. La toute première instruction chargée depuis la file d'instruction va dans le premier décodeur simple. Si jamais le décodeur ne peut pas décoder l'instruction, l'instruction est redirigée dans un autre décodeur, avec un délai d'un cycle d'horloge. Les stations de réservations étaient regroupées dans une structure centralisée, en sortie de l'unité de renommage. Elles avaient 5 ports d'émission, qui étaient sous-utilisés en pratique. Niveau ALU, on trouve deux ALUs entières, une flottante, une unité pour les instructions SSE et autres, et trois unités pour les accès mémoire (regroupées en une seule unité dans le schéma ci-dessous). Les unités mémoire regroupent une unité de calcul d'adresse pour les lectures, une autre pour les écritures, et une unité pour la gestion des données à écrire. Les unités de calcul d'adresse sont des additionneurs à 4 opérandes, complétement différents des ALU entières. Les ALU entières sont deux unités asymétriques : une ALU simple, et une ALU complexe incorporant un multiplieur. Les deux peuvent exécuter des opérations d'addition, soustraction, comparaison, etc. [[File:P6 func diag.png|centre|vignette|upright=2|P6 func diag]] Les premiers Pentium 2 n'avaient pas de cache L2 dans le processeur, celui-ci était sur la carte mère. Mais il a été intégré dans le processeur sur la seconde version du Pentium 3, la version Coppermine. Si on omet la parenthèse du Pentium 4, les microarchitectures Intel qui ont suivies se sont basées sur l'architecture P6 et l'ont améliorée graduellement. Il s'agit là d'un point important : il n'y a pas eu de grosse modifications pendant facilement une à deux décennies. Aussi, nous allons zapper le Pentium 4 pour poursuivre sur l'architecture Core et ses dérivées. ===La microarchitecture Core=== La '''microarchitecture Core''' fait suite au Pentium 4, mais reprend en fait beaucoup d’éléments du Pentium 2 et 3. Elle utilise la station de réservation unique avec renommage dans le ROB, provenant du Pentium 2/3. Elle supporte aussi les optimisations des opérations ''load-up'', avec notamment un support des macro-opérations mentionnées plus haut. Les améliorations sont assez diverses, mais aussi assez mineures. * Le processeur incorpore un cache L2, en plus des caches L1 déjà présents auparavant. * La prédiction de branchement a été améliorée avec notamment l'ajout d'une ''Fetch Input Queue''. * L'architecture Core passe à la quadruple émission, soit une instruction de plus que sur le Pentium 2 et 3. Pour cela, un quatrième décodeur est ajouté, il s'agit d'un décodeur simple qui ne fournit qu'une seule micro-opération en sortie. * Un ''stack engine'' et un ''Loop Stream Detector'' ont été ajoutés, ainsi que le support de la macro-fusion qui fusionne une instruction de test et le branchement qui suit en une seule micro-opération. * Les techniques de désambiguïsation mémoire sont implémentées sur cette micro-architecture. Il y a quelques modifications au niveau de l'unité de chargement. La file d'instruction a toujours ce système de fusion de blocs, sauf que les branchements ne causent plus de délai d'un cycle lors du chargement. La file d'instruction est suivie par un circuit de prédécodage qui détermine la taille des instructions et leurs frontières, avant de mémoriser le tout dans une file de 40 instructions. La station de réservation dispose de 6 ports d'émission, mais on devrait plutôt dire 5. Sur les 5, il y en a deux pour les accès mémoire : un pour les lectures, un autre pour les écritures. Les trois ports d'émission restant sont connectés aux unités de calcul. Les unités entières et flottantes sont réparties de manière à ce que chaque port d'émission soit relié à une unité entière et une flottante, au minimum. Ce faisant, le processeur peut émettre trois opérations flottantes, trois opérations entières, un mix d'opérations entières et flottantes. Il y a un additionneur et un multiplieur flottants, sur des ports différents. Tous les ports sont reliés à une ALU simple. Le multiplieur entier est relié au second port d'émission, celui sur lequel se trouve l'additionneur flottant. [[Image:Intel Core2 arch.svg|centre|vignette|upright=2|Intel Core microarchitecture]] ===Les microarchitectures Sandy Bridge and Ivy Bridge=== Les micro-architectures suivant la micro-architecture Core ont introduit quelques grandes modifications : le passage à un renommage à banc de registre physique, l'ajout d'un cache de micro-opérations (et d'un ''Loop Stream Detector''). L'ajout du cache de micro-opérations est un gros changement, particulièrement avec le jeu d’instruction x86. Le décodage des instructions est lent, couteux en énergie. Mais avec l'introduction du cache de micro-opération, la majorité des micro-opérations est non pas décodée, mais lue depuis le cache de micro-opérations. Les décodeurs décodent les instructions pas encore exécutées, mais les exécutions suivantes sont lues depuis le cache de micro-opérations. Et vu la grande présence de boucles, le cache de micro-opérations est l'alimentation principale du pipeline. Les décodeurs servent surtout à alimenter le cache de micro-opérations, parfois décoder quelques instructions isolées exécutées de-dehors de boucles, pas plus. Concrètement, ils servent pour 10 à 20% des micro-opérations exécutées. Intel a d'ailleurs reflété ce fait dans sa terminologie. Intel distingue deux voies de chargement : le ''legacy pipeline'' et le cache de micro-opérations. L'unité de chargement et les décodeurs sont regroupés dans la voie du ''legacy pipeline''. Le cache de micro-opérations est complété avec un ''Loop Stream Detector'', placé après le cache en question. Les décodeurs et le cache de micro-opérations alimentent une file de micro-opérations, située juste avant l'étage de renommage de registres. La file de micro-opérations sert en quelque sorte de tampon entre l'étage de "décodage" et celui de renommage. Le ''Loop Stream Detector'' utilise cette file de micro-opérations comme d'un cache lorsqu'une boucle est détectée. Les micro-opérations de la boucle sont lue depuis la file de micro-opérations, pour être envoyée au renommeur de registres. L'avantage est que le cache de micro-opérations et/ou les décodeurs sont mis en pause et clock-gatés lorsqu'une boucle s'exécute, ce qui réduit la consommation du processeur. Le ''Loop Stream Detector'' et le cache de micro-opération ont globalement le même effet : désactiver tout ce qui est avant, le ''Loop Stream Detector'' appliquant cette méthode au cache de micro-opération lui-même.. Voyons maintenant quelles sont les micro-architectures qui implémentent ces optimisations. Les microarchitectures '''Sandy Bridge''' and '''Ivy Bridge''' sont similaires à l'architecture Core, si ce n'est pour le passage à un renommage à banc de registre physique, et l'ajout d'un cache de micro-opérations. Le nombre de ports d'émission passe à 7, avec 4 pour les instructions arithmétiques (flottantes comme entière), 2 pour les lectures, et un pour les écritures (en fait deux, avec un pour le calcul d'adresse, l'autre pour la donnée à écrire). Pour le reste, rien ne change si ce n'est la prédiction de branchement Les architectures '''Haswell''' et '''Broadwell''' ont ajouté quelques unités de calcul, élargit la sortie du cache de micro-opérations. Un port d'émission pour opération entières a été ajouté, de même qu'un port pour les accès mémoire. Le processeur passe donc à 8 ports d'émission, ce qui permet d'émettre jusqu'à 8 micro-opérations, à condition que le cache de micro-opération suive. Pour le reste, le processeur est similaire aux architectures précédentes, si ce n'est que certaines structures grossissent. L'architecture '''Skylake''' réorganise les unités de calcul et les ports d'émission pour gagner en efficacité. Pour le reste, les améliorations sont mineures. A la rigueur, l'unité de renommage de registre ajoute des optimisations comme l'élimination des MOV, les idiomes liés aux opérations avec zéro, etc. ===Les microarchitectures récentes d'Intel=== Les architectures '''Ice Lake''' et '''Tiger Lake''' passent de quadruple émission à la pentuple émission. Par contre, le processeur utilise toujours 4 décodeurs. Mais les micro-opérations étant émises depuis le cache de micro-opérations, ce n'est pas un problème pour la pentuple émission. Le processeur peut parfaitement émettre 5 micro-opérations en même temps, si elles sont lues depuis le cache de micro-opérations. Là encore, on voit à quel point le cache de micro-opération découple ce qu'il y avant de ce qu'il y a après. La microarchitecture Golden Cove, la plus récente, altère les décodeurs et l'unité de chargement. Sur toutes les générations précédentes, on reste sur une unité de chargement qui charge 16 octets à la fois et il y a toujours 4 décodeurs identiques aux générations précédentes. Golden Cove passe à 6 décodeurs simples, et double la taille du chargement qui passe à 32 octets. Une telle stagnation sur les unités de chargement et de décodage s'explique encore une fois par la présence du cache de micro-opération fait que ce n'est pas trop un problème. Tout ce qui précède le cache de micro-opérations n'a pas de raison d'évoluer, car ce cache est très puissant. ===La microarchitecture Netburst du Pentium 4=== La microarchitecture Netburst, utilisée sur le Pentium 4, utilisait un pipeline à 20 étage, augmenté à 32 sur une révision ultérieure. Il a existé quatre révisions de l'architecture : Willamette (180 nm), Northwood (130 nm), Prescott (90 nm) et Cedar Mill (65 nm). Les deux premières avaient un pipeline de 20 étages, les deux suivants avaient 32 étages ! Le grand nombre d'étages permettait d'avoir une fréquence très élevée, l'impact des mauvaises prédictions était catastrophique. Pour compenser, l'unité de prédiction de branchement était une des plus évoluées pour l'époque. Il dispose d'un cache de trace et a été le seul processeur commercial à en utiliser un, même chose pour le système de pipeline à ''replay''. Fait amusant, les ALU entières étaient cadencées à une fréquence double de celle du processeur. Niveau décodeurs, on retrouve le décodeur lent à base de microcode présent sur les anciennes versions, couplé à un décodeur simple. Le renommage de registres se fait avec un banc de registres physiques avec une table d'alias. Le Pentium 4 a scindé la fenêtre d'instruction unique du Pentium 3 en deux : une file pour les accès mémoire, l'autre pour les autres opérations. Il s'agit bel et bien de deux files d'instructions, pas de fenêtres d'instruction ni de stations de réservation. [[File:Architettura Pentium 4.png|centre|vignette|upright=3|Microarchitecture du Pentium 4.]] ==Un étude des microarchitectures superscalaires x86 d'AMD== Les architectures Intel ont évolué progressivement, sans grandes cassure. Il y a une continuité presque initerrompue entre l'architecture du Pentium 2 et les architectures modernes. Intel a fait des améliorations mineures à chaque nouvelle micro-architecture, si on omet le passage à un renommage à banc de registre physique et l'ajout du cache de micro-opération. A l'opposé, les architectures AMD ont eu de nombreuses cassures dans la continuité où AMD a revu sa copie de fond en comble. Étudier ces architectures demande de voir trois choses séparément : le ''front-end'' qui regroupe l'unité de chargement et les décodeurs, le ''back-end'' qui gère l'exécution dans le désordre et les unités de calcul, et le sous-système mémoire avec les caches et la ''Load Store Queue''. Leur étude sera plus ou moins séparée dans ce qui suit, pour chaque classe d'architecture. ===La première génération de CPU AMD : les architectures K5, K6, K7, K8 et K10=== La première génération de processeurs AMD est celle des architectures K5, K6, K7, K8 et K10. Il n'y a pas de K9, qui a été abandonné en cours de développement. Les processeurs K5 et K6 portent ce nom au niveau commercial. Par contre, les processeurs d'architecture K7 sont aussi connus sous le nom d''''AMD Athlon''', les AMD K8 sont connus sous le nom d''''AMD Athlon 64''', et les architecture K10 sont appelées les '''AMD Phenom'''. Comme le nom l'indique, l'architecture K8 a introduit le 64 bits chez les processeurs AMD. Elles ont une architecture assez similaire pour ce qui est du chargement et des caches. Toutes disposent d'au minimum un cache L1 d'instruction et d'un cache L1 de données. Le K5 n'avait que ces caches, mais un cache L2 a été ajouté avec le K7, puis un L3 avec le K10. L'AMD K5 avait une TLB unique, mais les processeurs suivants avaient une TLB pour le L1 d'instruction et une autre pour le L1 de données. Idem pour le cache L2, avec deux TLB : une pour les données, une pour les instructions. Les caches L1/L2 sont de type exclusifs, à savoir que les données dans le L1 ne sont pas recopiées dans le L2. Le cache L2 est précisément un cache de victime, qui mémorise les données/instructions, évincées des caches L1 lors du remplacement des lignes de cache. L'introduction du cache L2 a entrainé l'ajout de deux TLB de second niveau : une L2 TLB pour les données et une autre pour les instructions. Les architectures K8 et K10 ont ajouté un cache L3, avec un accès indirect à travers l'interface avec le bus. : L'AMD K7 originel, aussi appelée Athlon classique, n'avait pas de cache L2, mais celui-ci était placé sur la carte mère et fonctionnait à une fréquence moitié moindre de celle du CPU. L'Athlon Thunderbird, puis l'Athlon XP, ont intégré le cache L2 dans le processeur. {|class="wikitable" |- ! Architecture AMD ! colspan="5" | Caches |- | rowspan="2" | K5 | L1 instruction || L1 données || colspan="3" | |- | colspan="2" | TLB unique || colspan="3" | |- | colspan="4" | |- | rowspan="2" | K6 | L1 instruction || L1 données || colspan="3" | L2 unifié |- | TLB L1 instruction || TLB L1 données || colspan="3" | |- | colspan="6" | |- | rowspan="2" | K7, K8 | L1 instruction || L1 données || colspan="2" | L2 unifié || |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |- | colspan="6" | |- | rowspan="2" | K10 | L1 instruction || L1 données || colspan="2" | L2 unifié || L3 |- | TLB L1 instruction || TLB L1 données || TLB L2 instruction || TLB L2 données || |} Fait important, les architectures K5 à K10 utilisent la technique du '''prédécodage''', où les instructions sont partiellement décodées avant d'entrer dans le cache d'instruction. Le prédécodage facilite grandement le travail des décodeurs d'instruction proprement dit. Par contre, le prédécodage prend de la place dans le cache L1 d'instruction, une partie de sa capacité est utilisé pour mémoriser les informations prédécodées. C'est donc un compromis entre taille du cache et taille/rapidité des décodeurs d'instruction. Sur les architectures K5 et K6, le prédécodage précise, pour chaque octet, si c'est le début ou la fin d'une instruction, si c'est un octet d'opcode, en combien de micro-opérations sera décodée l'instruction, etc. A partir de l'AMD K7, le prédécodage reconnait les branchements inconditionnels. Lorsqu'un branchement inconditionnel est pré-décodé, le pré-décodage tient compte du branchement et continue le pré-décodage des instructions à partir de la destination du branchement. Le système de prédécodage est abandonnée à partir de l'architecture Bulldozer, qui suit l'architecture K10. La prédiction de branchement de ces CPU tire partie de ce système de pré-décodage, à savoir que les prédictions de branchement sont partiellement mémorisées dans les lignes de cache du L1 d'instruction. Par exemple, l'AMD K5 se passe de ''Branch Target Buffer'' grâce à cela. Si une ligne de cache contient un branchement, elle mémorise l'adresse de destination de ce branchement, en plus des bits de pré-décodage. Si il y a plusieurs branchements dans une ligne de cache, c'est l'adresse de destination du premier branchement pris dans cette ligne de cache qui est mémoirsée. Un défaut de cette approche est que si le branchement n'est pas dans le L1 d'instruction, aucune prédiction de branchement ne peut être faite et le préchargement ne peut pas fonctionner. C'est une limitation que n'ont pas les BTB découplées du cache L1 : elles peuvent prédire un branchement qui a été évincé dans le L2 ou le L3, tant que l'entrée associée est dans le BTB. Les prédictions peuvent même servir à précharger les instructions utiles. [[File:Comparaison du chargement de l'AMD K5 et K6.png|centre|vignette|upright=2|Comparaison du chargement de l'AMD K5 et K6]] Au niveau du décodage, on trouve de nombreuses différences entre les premières architectures AMD. L'AMD K5 contient 4 décodeurs hybrides, afin de décoder 4 instructions par cycles. Le K5 a quatre décodeurs simples couplés à 4 décodeurs complexes avec chacun un accès au micro-code. Une instruction peut donc passer par a donc deux voies de décodage : un décodage rapide et simple pour les instructions simples, un décodage lent et passant par le microcode pour les instructions complexes. Pour décoder 4 instructions, les deux voies sont dupliquées en 4 exemplaires, ce qui a un cout en circuits non-négligeable. L'AMD K6 utilise moins de décodeurs et ne peut que décoder deux instructions à la fois maximum. Par contre, il fournit en sortie 4 micro-opérations. Il intègre pour cela deux décodeurs simples, un décodeur complexe et un décodeur micro-codé. Un décodeur simple transforme une instruction simple en une ou deux micro-opérations. Il est possible d'utiliser les deux décodeurs simples en même temps, afin de fournir 4 micro-opérations en sortie du décodeur. Les deux autres décodent une instruction complexe en 1 à 4 micro-opérations. Si jamais la ou les deux instructions sont décodées en 1, 2 ou 3 micro-opérations, les micro-opérations manquantes pour atteindre 4 sont remplies par des NOPs. Pour le K7 et au-delà, le processeur dispose de décodeurs séparées pour les instructions micro-codées de celles qui ne le sont pas. Le processeur peut décoder jusqu’à 3 instructions par cycle. Le décodage d'une instruction microcodée ne peut pas se faire en parallèle du décodage non-microcodé. C'est soit le décodeur microcodé qui est utilisé, soit les décodeurs câblés, pas les deux en même temps. Le décodage d'une instruction prend 4 cycles. Les instructions non-microcodées sont décodées en une seule micro-opération, à un détail près : le CPU optimise la prise en charge des instructions ''load-up''. La différence entre le K6 et le K7 s'explique par des optimisations des instructions ''load-up''. Sur le K6, les instructions ''load-up'' sont décodées en deux micro-opération : la lecture en RAM, l'opération proprement dite. Mais sur le K7, une instruction ''load-up'' est décodée en une seule micro-opération. En conséquence, les décodeurs simples sont fortement simplifiés et le décodeur complexe disparait au profit d'un microcode unique. [[File:Décodage sur le K5 et le K5.png|centre|vignette|upright=3|Décodage sur le K5 et le K5]] ====Les microarchitectures K5 et K6 d'AMD==== Les deux premières architectures étaient les architectures K5 et K6, l'architecture K6 ayant été déclinée en quatre versions, nommées K6-1, K6-2, et K-3, avec une version K6-3 bis. Elles sont regroupées ensemble car elles ont beaucoup de points communs. Par exemple, tout ce qui a trait au chargement et au cache était similaire, de même que les unités de calcul. Les deux architectures avaient n'avaient pas de cache L2 et devaient se contenter d'un cache L1 d'instruction et d'un cache L1 de données. L'AMD K5 incorpore une TLB unique, alors que le K6 utilise des TLB séparées pour le cache d'instruction et le cache de données. Une différence entre l'architecture K5 et K6 est que la première utilise des caches normaux, alors que la seconde utilise des ''sector caches''. Les deux architectures disposaient des unités de calcul suivantes : deux ALU entières, une FPU, deux unités LOAD/STORE pour les accès mémoire, une unité de branchement et une ou plusieurs unités SIMD. Une organisation classique, donc. Pour les unités entières, il y avait deux ALU simples, un ''barrel shifter'' et un diviseur. Il n'y a pas d'erreur, le processeur incorpore un circuit diviseur, mais pas de circuit multiplieur. La raison est que la multiplication est réalisée par la FPU ! En effet, le multiplieur flottant de la FPU intègre un multiplieur entier pour multiplier les mantisses, qui est utilisé pour les multiplications entières. La même technique a été utilisée sur l'Atom, comme vu plus haut. Le tout était alimenté par deux ports d'émission, appelés ports X et Y. Sur l'architecture K5, le ''barrel shifter'' et le diviseur sont des ports différents. {|class="wikitable" |+ AMD K5 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | ''Barrel Shifter'' | Diviseur |} Sur l'architecture K6, le ''barrel shifter'' et le diviseur sont sur le même port. {|class="wikitable" |+ AMD K6 |- ! Port X ! Port Y |- | ALU simple | ALU simple |- | | ''Barrel Shifter'' |- | | Diviseur |} Niveau unités mémoire, le K5 avait deux unités LOAD/STORE, chacune capable de faire lecture et écriture. Par contre, la ''store queue'' n'a qu'un seul port d'entrée, ce qui fait que le processeur peut seulement accepter une écriture par cycle. Le processeur peut donc émettre soit deux lectures simultanées, soit une lecture accompagnée d'une écriture. Impossible d'émettre deux écritures simultanées, ce qui est de toute façon très rare. L'architecture K6 utilise quant à elle une unité LOAD pour les lectures et une unité STORE pour les écritures. Ce qui permet de faire une lecture et une écriture par cycle, pas autre chose. Niveau unités SIMD, l'architecture K7 n'avait qu'une seule unité SIMD, placée sur le port d'émission X. L'architecture K8 ajouta une seconde unité SIMD, sur l'autre port d'émission entier. De plus, trois ALU SIMD ont été ajoutées : un décaleur MMX, une unité 3DNow!, une unité mixte MMX/3DNow. Elles sont reliées aux deux ports d'émission entier X et Y ! Elles ne sont pas représentées ci-dessous, par souci de simplicité. [[File:Unité de calcul des processeurs AMD K5 et K6.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K5 et K6. les unités sur la même colonnes sont reliées au même port d'émission.]] Si les unités de calcul et le chargement sont globalement les mêmes, les deux architectures se différencient sur l'exécution dans le désordre. L'AMD K5 utilise du renommage de registre dans le ROB avec des stations de réservation. Par contre, l'AMD K6 utilise une fenêtre d'instruction centralisée. De plus, son renommage de registre se fait avec un banc de registre physique. L'architecture AMD K5 utilisait de deux stations de réservation par unité de calcul, sauf pour les deux unités mémoire partageaient une station de réservation unique (deux fois plus grande). Les stations de réservation sont cependant mal nommées, vu que ce sont en réalité des mémoire FIFO. Une micro-opération n'est émise que si elle est la plus ancienne dans la FIFO/station de réservation. Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le tampon de ré-ordonnancement faisait seulement 16 instructions. [[File:AMD K5.jpg|centre|vignette|upright=3|AMDK5 Diagramme.]] L'architecture K6 remplace les stations de réservations par une fenêtre d'instruction centralisée. Les 4 micro-opérations renommées sont écrites dans la fenêtre d'instruction par groupe de 4, NOP de ''padding'' inclus. La fenêtre d'instruction centralisé contient 24 micro-opérations, groupées en 6 groupes de 4 micro-opérations, avec potentiellement des NOP dedans suivant le résultat du décodage. L'avantage est que l'implémentation de la fenêtre d'instruction est simple. La fenêtre d'instruction centralisée permettait d'émettre 6 micro-opérations en même temps (une par unité de calcul/mémoire). Le renommage de registres se faisait dans le tampon de ré-ordonnancement, il n'y avait pas encore de banc de registre physique. Le processeur utilisait un renommage avec un banc de registre physique. Le banc de registre physique pour les entiers contenait 48 registres, dont 24 étaient des registres architecturaux et 24 étaient des registres renommés. Sur les 24 registres architecturaux, 16 avaient une fonction de ''scratchpad'' que les ''datasheets'' d'AMD ne détaillent pas, les 8 restants étaient les registres généraux EAX, EBX, etc. [[File:AMD K6 Little foot & Modl 6.png|centre|vignette|upright=3|AMD K6 original.]] ====Les microarchitectures K7, K8 et K10 d'AMD==== Les microarchitectures suivantes sont les architectures K7, K8 et K10. Les architectures K7, K8 et K10 sont assez similaires. La différence principale entre le K7 et le K8 est le support du 64 bits. Les apports du K10 sont la présence d'un cache L3, d'une unité de calcul supplémentaire et d'améliorations de la prédiction de branchement. La taille de certains caches a été augmentée, de même que la largeur de certaines interconnexions/bus. A partir du K7, le CPU optimise la prise en charge des instructions ''load-up''. Les instructions ''load-op'' sont appelées des macro-opérations dans la terminologie d'AMD, et aussi d'Intel. L'idée est que les instructions ''load-up'' sont décodées en micro-opérations intermédiaires. Elles sont propagées dans le pipeline comme étant une seule micro-opération, jusqu'à l'étage d'émission. Lors de l'émission, les instructions ''load-up'' sont scindées en deux micro-opérations : la lecture de l'opérande, puis l'opération proprement dite. Faire ainsi économise des ressources et optimise le remplissage du tampon de ré-ordonnancement, des fenêtres d'instructions, des stations de réservation, etc. Le tampon de réordonnancement est combiné avec divers circuits en charge de l'exécution dans le désordre, dans ce qui s'appelle l'''instruction control unit''. Il contient de 72 à, 84 instructions, qui sont regroupées en groupes de 3. Là encore, comme pour le K5 et le K6, le tampon de réordonnancement tient compte de la sortie des décodeurs. Les décodeurs fournissent toujours trois micro-opérations par cycle, quitte à remplir les vides par des NOP. Le tampon de réordonnancement reçoit les micro-opérations, NOP inclus, par groupes de 3, et est structuré autour de ces triplets de micro-opération, y compris en interne. Les architectures K7, K8 et K10 ont des unités de calcul très similaires. Concrètement, il y a trois ALU entières, trois unités de calcul d'adresse, et une FPU. Le processeur incorpore, aussi un multiplieur entier, relié sur le port d'émission de la première ALU. La FPU regroupe un additionneur flottant, un multiplieur flottant, et une troisième unité LOAD/STORE pour les lectures/écritures pour les nombres flottants. L'architecture K8 ajoute une unité de manipulation de bit, la K10 un diviseur entier. [[File:Unité de calcul des processeurs AMD K7, K8 et K10.png|centre|vignette|upright=2|Unité de calcul des processeurs AMD K7, K8 et K10]] Par contre, la manière d'alimenter ces ALU en micro-opérations varie un petit peu entre les architectures K7, K8 et K10. Il y a cependant quelques constantes entre les trois. La première est qu'il y a une fenêtre d'instruction séparée pour les flottants, de 36 à 42 entrées, avec renommage de registre. La fenêtre d'instruction flottante a trois ports d'émission : un pour l'additionneur flottant, un autre pour le multiplieur, et un troisième pour la troisième unité flottante qui s'occupe du reste. La seconde est que chaque ALU entière est couplée avec une unité de calcul d'adresse. Par contre, la méthode de couplage varie d'un processeur à l'autre. L'architecture K7 des processeurs Athlon utilisait le renommage de registre, mais seulement pour les registres flottants, pas pour les registres entiers. Elle avait deux fenêtres d'instruction : une pour les opérations flottantes, une autre pour les instructions entières et les accès mémoire. La fenêtre d'instruction entière pouvait émettre trois micro-opérations en même temps : trois micro-opérations entières, trois micro-opération mémoire. La fenêtre d'instruction entière contenait 5 à 6 groupes de 3 macro-opérations. Vous noterez que j'ai parlé de macro-opérations et pas de micro-opérations, car les instructions ''load-up'' sont considérées comme une seule "micro-opération" dans la fenêtre d'instruction entière. Et cela se marie bien avec une fenêtre d'instruction unique partagée entre pipeline entier et pipeline mémoire. Une macro-opération était scindée en deux micro-opérations : une micro-opération mémoire et une micro-opération entière. Il est donc avantageux de regrouper unités mémoire et unités entières à la même fenêtre d'instruction pour ce faire. La ''Load-Store Queue'' peut mémoriser 44 lectures/écritures, avec cependant une petite nuance. Parmi les 44 lectures/écritures, 12 sont réservées au cache L1 et 32 le sont pour le cache L2. En réalité, il y a deux ''LSQ'', une pour le cache L1 qui fait 12 entrées, une seconde pour le L2 qui fait 32 entrées. [[File:Athlon arch.png|centre|vignette|upright=3|Microarchitecture K7 d'AMD.]] Les architectures K8 et K10 utilisent le renommage de registres pour tous les registres, entiers comme flottants. Par contre, le renommage de registre n'est pas réalisé de la même manière pour les registres entiers et flottants. Les registres entiers sont renommés dans le tampon de ré-ordonnancement, comme c'était le cas sur les architectures Intel avant le Pentium 4. Par contre, les registres flottants sont renommés grâce à un banc de registre physique. Le K8 est donc un processeur au renommage hybride, qui utilise les deux solutions de renommage principales. Niveau micro-opérations entières, la station de réservation unique de 15 micro-opérations est remplacée par trois stations de réservations, une par ALU entière, de 8 micro-opérations chacune. Chaque station de réservation entière alimente une unité de calcul entière et une unité de calcul d'adresse. Le multiplieur est relié à la première station de réservation, sur le même port d'émission que l'ALU. Les stations de réservation sont nommées des ''schedulers'' dans les schémas qui suivent. [[File:AMD Grayhound microarchitecture.png|centre|vignette|upright=3|Microarchitecture K8 et K10 d'AMD.]] La microarchitecture K10 a été déclinée en plusieurs versions, nommées Grayhound, Grayhound+ et Husky, Husky étant une architecture gravée en 32 nm dédiée aux processeurs A-3000. L'architecture Grayhound a plus de cache et un ROB plus grand, la Husky est quand à elle un peu plus différente. Elle n'a pas de cache L3, contrairement aux autres architectures K10, ce qui simplifie fortement son sous-système mémoire. Par contre, les fenêtres d'instructions/stations de réservation et le ROB sont plus grands, pareil pour les files dans l'unité mémoire. Une ALU pour les divisions entières a aussi été ajoutée. [[File:AMD Husky microarchitecture.png|centre|vignette|upright=3|AMD Husky microarchitecture]] Pour résumer, les architectures K7, K8 et K10 séparent les pipelines entiers et flottants : trois pipelines entiers avec chacun son unité de calcul, et un pipeline flottant avec plusieurs unités de calcul. Les raisons à cela sont assez diverses. Disons que dupliquer des ALU entières simples prend peu de transistors, là où les gros circuits comme le multiplieur ou la FPU ne sont pas dupliqués. Et cela a un autre avantage : le renommage, ''dispatch'' et l'émission sont plus simples. Les pipelines entiers ont une exécution dans le désordre peu complexe, grâce au grand nombre d'unités de calcul, ce qui fait que le pipeline entier est de seulement 15 cycles au total (chargement et décodage inclus). A l'opposé, la FPU est alimentée par une exécution dans le désordre très complexe, avec banc de registre physique et beaucoup de ressources, mais au prix d'un pipeline flottant plus long de 3 cycles, soit 18 cycles au total. ===Les microarchitectures ZEN d'AMD=== Viennent ensuite les '''microarchitectures Bulldozer''', avec trois révisions ultérieures nommées Piledriver, Steamroller et Excavator. Mais du fait de l'utilisation de techniques de multithreading matériel que nous n'avons pas encore abordé, nous ne pouvons pas en parler ici. Les microarchitectures suivantes sont les '''architectures ZEN 1/2/3/4/5'''. Elles se ressemblent beaucoup, chacune accumulant les améliorations des précédentes. Mais le cœur de l'architecture reste plus ou moins le même. En passant à la suivante, le nombre de registre virtuel augmente, le ''branch target buffer'' augmente en taille, le ROB et les files d'attente grossissent, les caches de micro-opération aussi, les caches grossissent, etc. Une optimisation intéressante est l'ajout d'un cache de micro-opération, qui améliore grandement les performances du ''front-end'', notamment pour les boucles. La microarchitecture Zen 1 est illustrée ci-dessous. Comme on le voit, les registres flottants ont une unité de renommage séparée de celle pour les entiers, mais les deux utilisent du renommage à banc de registre physique. Il y a par contre une différence au niveau des fenêtres d'instruction, notées ''scheduler'' dans le schéma. Pour ce qui est des unités de calcul flottantes, il y a une fenêtre unifiée qui alimente quatre ALU, grâce à 4 ports d'émission. Mais pour les ALU entières, il y a une fenêtre d'instruction par ALU, avec un seul port d'émission connecté à une seule ALU. La raison de ce choix est que les opérations flottantes ont un nombre de cycle plus élevé, sans compter que les codes flottants mélangent bien additions et multiplication. Une fois décodées, les instructions sont placées dans une première file de micro-opérations om elles attendent, puis sont dispatchées soit dans le pipeline entier, soit dans le pipeline flottant. les micro-opérations entières sont insérées dans une fenêtre d'instruction directement, alors que les micro-opérations flottantes doivent patienter dans une seconde file de micro-opérations. La raison est que les micro-opérations flottantes ayant une grande latence, trop d'instructions flottantes consécutives pourraient bloquer le pipeline flottant, sa fenêtre d'instruction étant pleine. Le pipeline flottant étant bloqué, la première file de micro-opérations serait bloquée et on ne pourrait plus émettre de micro-opérations entières. Pour éviter cela, une solution serait d'agrandir la file de micro-opérations, mais cela la rendrait plus lente et se ferait donc au détriment de la fréquence d'horloge. Alors une solution a été d'ajouter une seconde file de micro-opérations, au lieu d'agrandir la première. [[File:Zen microarchitecture.svg|centre|vignette|upright=3|Microarchitecture Zen 1 d'AMD.]] Le passage à la microarchitecture n'a pas causé de grands changements. Le Zen 2 a ajouté une unité de calcul d'adresse, ce qui fait qu'on passe à 4 ALU, 3 AGU et 4 FPU. La fenêtre d'instruction flottante reste la même. Par contre, les fenêtres d'instruction entières changent un peu. Ou plutot devrais-je dire les fenêtres d'instruction mémoire. En effet, le Zen 2 fusionne les fenêtres d'instructions liées aux AGU en une seule fenêtre d'instruction deux fois plus grosse. Le Zen 5 a ajouté deux autres ALU entières et une unité de calcul d'adresse (6 ALU / 4 AGU) <noinclude> {{NavChapitre | book=Fonctionnement d'un ordinateur | prev=Les processeurs superscalaires | prevText=Les processeurs superscalaires | next=Les processeurs VLIW et EPIC | nextText=Les processeurs VLIW et EPIC }} </noinclude> g34ibg4el6tc9gajnto3ioxthb71h1d Mathc matrices/06v 0 82654 746334 2025-07-08T12:24:02Z Xhungab 23827 news 746334 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00a.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00a.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R3 #define CA C3 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[6] ={1, 6, 2, 3, 3, 5 }; double ab[RA*(CA+Cb)]={ /* x**2 x**1 x**0 y */ +1, +1, +1, +6, +4, +2, +1, +3, +9, +3, +1, +5, }; double **XY = ca_A_mR(xy,i_mR(R3,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**2 + bx + c (x**0 = 1) \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**2 x**1 x**0 y\n"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); stop(); clrscrn(); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**2 %+.2fx %+.2f\n\n" ,x[R1][C1],x[R2][C1],x[R3][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**2 + bx + c (x**0 = 1) that passes through the points. x y +1 +6 +2 +3 +3 +5 Using the given points, we obtain this matrix. x**2 x**1 x**0 y +1.00 +1.00 +1.00 +6.00 +4.00 +2.00 +1.00 +3.00 +9.00 +3.00 +1.00 +5.00 Press return to continue. Q : +0.1010 +0.7184 +0.6882 +0.4041 +0.6025 -0.6882 +0.9091 -0.3476 +0.2294 R : +9.8995 +3.6365 +1.4142 -0.0000 +0.8806 +0.9733 +0.0000 +0.0000 +0.2294 Q_T : +1.0102e-01 +4.0406e-01 +9.0914e-01 +7.1841e-01 +6.0254e-01 -3.4762e-01 +6.8825e-01 -6.8825e-01 +2.2942e-01 invR : +1.0102e-01 -4.1714e-01 +1.1471e+00 +0.0000e+00 +1.1355e+00 -4.8177e+00 -0.0000e+00 -0.0000e+00 +4.3589e+00 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : +2.50 -10.50 +14.00 The coefficients a, b, c of the curve are : y = +2.50x**2 -10.50x +14.00 Press return to continue. </syntaxhighlight> {{AutoCat}} 7pd74y4829nlb81cqqhy1gawhiebl3q Mathc matrices/06w 0 82655 746335 2025-07-08T12:26:37Z Xhungab 23827 news 746335 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00b.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00b.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R3 #define CA C3 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[6] ={1, -9, 2, 8, 3, -8, }; double ab[RA*(CA+Cb)]={ /* x**2 x**1 x**0 y */ +1, +1, +1, -9, +4, +2, +1, +8, +9, +3, +1, -8, }; double **XY = ca_A_mR(xy,i_mR(R3,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**2 + bx + c (x**0 = 1) \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**2 x**1 x**0 y\n"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**2 %+.2fx %+.2f\n\n" ,x[R1][C1],x[R2][C1],x[R3][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**2 + bx + c (x**0 = 1) that passes through the points. x y +1 -9 +2 +8 +3 -8 Using the given points, we obtain this matrix. x**2 x**1 x**0 y +1.00 +1.00 +1.00 -9.00 +4.00 +2.00 +1.00 +8.00 +9.00 +3.00 +1.00 -8.00 Press return to continue. Q : +0.1010 +0.7184 +0.6882 +0.4041 +0.6025 -0.6882 +0.9091 -0.3476 +0.2294 R : +9.8995 +3.6365 +1.4142 -0.0000 +0.8806 +0.9733 +0.0000 +0.0000 +0.2294 Q_T : +1.0102e-01 +4.0406e-01 +9.0914e-01 +7.1841e-01 +6.0254e-01 -3.4762e-01 +6.8825e-01 -6.8825e-01 +2.2942e-01 invR : +1.0102e-01 -4.1714e-01 +1.1471e+00 +0.0000e+00 +1.1355e+00 -4.8177e+00 -0.0000e+00 -0.0000e+00 +4.3589e+00 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : -16.50 +66.50 -59.00 The coefficients a, b, c of the curve are : y = -16.50x**2 +66.50x -59.00 Press return to continue. </syntaxhighlight> {{AutoCat}} 0rq8of8cvxa8m42qp174108agfkoa7l Mathc matrices/06x 0 82656 746337 2025-07-08T12:49:19Z Xhungab 23827 Page créée avec « [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00c.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* --------------------------... » 746337 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00c.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R4 #define CA C4 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[8] ={ -5, -3, -2, 0, 2, 3, 3, -2 }; double ab[RA*(CA+Cb)]={ /* x**3 x**2 x**1 x**0 y */ -125, +25, -5, +1, -3, -8, +4, -2, +1, +0, +8, +4, +2, +1, +3, +27, +9, +3, +1, -2, }; double **XY = ca_A_mR(xy,i_mR(R4,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**3 + bx**2 + cx + d \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**3 x**2 x**1 x**0 y\n"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); stop(); clrscrn(); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**3 %+.2fx**2 %+.2fx %+.2f\n\n" ,x[R1][C1],x[R2][C1],x[R3][C1],x[R4][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**3 + bx**2 + cx + d qui passe par ces quatre points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] En utilisant les points nous obtenons la matrice : x**3 x**2 x**1 x**0 y x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**3 x**2 x 1 y x[1]**3 x[1]**2 x[1] 1 y[1] x[1]**3 x[2]**2 x[2] 1 y[2] x[1]**3 x[3]**2 x[3] 1 y[3] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**3 + bx**2 + cx + d that passes through the points. x y -5 -3 -2 +0 +2 +3 +3 -2 Using the given points, we obtain this matrix. x**3 x**2 x**1 x**0 y -125.00 +25.00 -5.00 +1.00 -3.00 -8.00 +4.00 -2.00 +1.00 +0.00 +8.00 +4.00 +2.00 +1.00 +3.00 +27.00 +9.00 +3.00 +1.00 -2.00 Press return to continue. Q : -0.9737 +0.2054 +0.0819 -0.0556 -0.0623 +0.1700 -0.9033 +0.3889 +0.0623 +0.3529 +0.4209 +0.8333 +0.2103 +0.8969 -0.0131 -0.3889 R : +128.3822 -22.4486 +5.7485 -0.7633 +0.0000 +15.2990 +2.0292 +1.6252 -0.0000 -0.0000 +2.1995 -0.4136 -0.0000 +0.0000 -0.0000 +0.7778 Press return to continue. Q_T : -9.7365e-01 -6.2314e-02 +6.2314e-02 +2.1031e-01 +2.0543e-01 +1.7002e-01 +3.5289e-01 +8.9686e-01 +8.1914e-02 -9.0331e-01 +4.2088e-01 -1.3124e-02 -5.5556e-02 +3.8889e-01 +8.3333e-01 -3.8889e-01 invR : +7.7892e-03 +1.1429e-02 -3.0902e-02 -3.2672e-02 +0.0000e+00 +6.5364e-02 -6.0304e-02 -1.6865e-01 -0.0000e+00 -0.0000e+00 +4.5466e-01 +2.4180e-01 -0.0000e+00 -0.0000e+00 -0.0000e+00 +1.2857e+00 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : -0.14 -0.73 +1.31 +4.43 The coefficients a, b, c of the curve are : y = -0.14x**3 -0.73x**2 +1.31x +4.43 Press return to continue. </syntaxhighlight> {{AutoCat}} 60v913eubj9wgjyhu4ta6vu93jszy1m 746338 746337 2025-07-08T12:51:51Z Xhungab 23827 746338 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00c.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R4 #define CA C4 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[8] ={ -5, -3, -2, 0, 2, 3, 3, -2 }; double ab[RA*(CA+Cb)]={ /* x**3 x**2 x**1 x**0 y */ -125, +25, -5, +1, -3, -8, +4, -2, +1, +0, +8, +4, +2, +1, +3, +27, +9, +3, +1, -2, }; double **XY = ca_A_mR(xy,i_mR(R4,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**3 + bx**2 + cx + d \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**3 x**2 x**1 x**0 y\n"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); stop(); clrscrn(); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**3 %+.2fx**2 %+.2fx %+.2f\n\n" ,x[R1][C1],x[R2][C1],x[R3][C1],x[R4][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**3 + bx**2 + cx + d qui passe par ces quatre points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] En utilisant les points nous obtenons la matrice : x**3 x**2 x**1 x**0 y x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] Que nous pouvons écrire : x**3 x**2 x 1 y x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**3 x[4]**2 x[4] 1 y[4] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**3 + bx**2 + cx + d that passes through the points. x y -5 -3 -2 +0 +2 +3 +3 -2 Using the given points, we obtain this matrix. x**3 x**2 x**1 x**0 y -125.00 +25.00 -5.00 +1.00 -3.00 -8.00 +4.00 -2.00 +1.00 +0.00 +8.00 +4.00 +2.00 +1.00 +3.00 +27.00 +9.00 +3.00 +1.00 -2.00 Press return to continue. Q : -0.9737 +0.2054 +0.0819 -0.0556 -0.0623 +0.1700 -0.9033 +0.3889 +0.0623 +0.3529 +0.4209 +0.8333 +0.2103 +0.8969 -0.0131 -0.3889 R : +128.3822 -22.4486 +5.7485 -0.7633 +0.0000 +15.2990 +2.0292 +1.6252 -0.0000 -0.0000 +2.1995 -0.4136 -0.0000 +0.0000 -0.0000 +0.7778 Press return to continue. Q_T : -9.7365e-01 -6.2314e-02 +6.2314e-02 +2.1031e-01 +2.0543e-01 +1.7002e-01 +3.5289e-01 +8.9686e-01 +8.1914e-02 -9.0331e-01 +4.2088e-01 -1.3124e-02 -5.5556e-02 +3.8889e-01 +8.3333e-01 -3.8889e-01 invR : +7.7892e-03 +1.1429e-02 -3.0902e-02 -3.2672e-02 +0.0000e+00 +6.5364e-02 -6.0304e-02 -1.6865e-01 -0.0000e+00 -0.0000e+00 +4.5466e-01 +2.4180e-01 -0.0000e+00 -0.0000e+00 -0.0000e+00 +1.2857e+00 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : -0.14 -0.73 +1.31 +4.43 The coefficients a, b, c of the curve are : y = -0.14x**3 -0.73x**2 +1.31x +4.43 Press return to continue. </syntaxhighlight> {{AutoCat}} 1rz6s0y0rkjyuwegvz8lc3f5yted7el Mathc matrices/06y 0 82657 746339 2025-07-08T12:54:55Z Xhungab 23827 news 746339 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00d.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00d.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R4 #define CA C4 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[8] ={ -5, -8, -2, 8, 2, -8, 5, 8 }; double ab[RA*(CA+Cb)]={ /* x**3 x**2 x**1 x**0 y */ -125, +25, -5, +1, -8, -8, +4, -2, +1, +8, +8, +4, +2, +1, -8, +125, +25, +5, +1, +8, }; double **XY = ca_A_mR(xy,i_mR(R4,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**3 + bx**2 + cx + d \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**3 x**2 x**1 x**0 y\n"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); stop(); clrscrn(); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**3 %+.2fx \n\n" ,x[R1][C1],x[R3][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**3 + bx**2 + cx + d qui passe par ces quatre points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] En utilisant les points nous obtenons la matrice : x**3 x**2 x**1 x**0 y x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] Que nous pouvons écrire : x**3 x**2 x 1 y x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**3 x[4]**2 x[4] 1 y[4] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**3 + bx**2 + cx + d that passes through the points. x y -5 -8 -2 +8 +2 -8 +5 +8 Using the given points, we obtain this matrix. x**3 x**2 x**1 x**0 y -125.00 +25.00 -5.00 +1.00 -8.00 -8.00 +4.00 -2.00 +1.00 +8.00 +8.00 +4.00 +2.00 +1.00 -8.00 +125.00 +25.00 +5.00 +1.00 +8.00 Press return to continue. Q : -0.7057 +0.6982 +0.0452 -0.1117 -0.0452 +0.1117 -0.7057 +0.6982 +0.0452 +0.1117 +0.7057 +0.6982 +0.7057 +0.6982 -0.0452 -0.1117 R : +177.1384 +0.0000 +7.2373 +0.0000 +0.0000 +35.8050 +0.0000 +1.6199 -0.0000 +0.0000 +2.3710 +0.0000 -0.0000 +0.0000 +0.0000 +1.1730 Press return to continue. Q_T : -7.0566e-01 -4.5162e-02 +4.5162e-02 +7.0566e-01 +6.9823e-01 +1.1172e-01 +1.1172e-01 +6.9823e-01 +4.5162e-02 -7.0566e-01 +7.0566e-01 -4.5162e-02 -1.1172e-01 +6.9823e-01 +6.9823e-01 -1.1172e-01 invR : +5.6453e-03 +0.0000e+00 -1.7232e-02 +0.0000e+00 +0.0000e+00 +2.7929e-02 +0.0000e+00 -3.8569e-02 -0.0000e+00 -0.0000e+00 +4.2176e-01 -0.0000e+00 -0.0000e+00 -0.0000e+00 -0.0000e+00 +8.5250e-01 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : +0.27 +0.00 -5.07 +0.00 The coefficients a, b, c of the curve are : y = +0.27x**3 -5.07x Press return to continue. </syntaxhighlight> {{AutoCat}} hukrmq827h9i31x27i1pdbmkl1f5f6h Mathc matrices/06z 0 82658 746341 2025-07-08T13:24:21Z Xhungab 23827 news 746341 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00e.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00e.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[10] ={ 1, -5, 2, 8, 3, -7, 4, 1, 5, -4 }; double ab[RA*(CA+Cb)]={ /* x**4 x**3 x**2 x**1 x**0 y */ +1, +1, +1, +1, +1, -5, +16, +8, +4, +2, +1, +8, +81, +27, +9, +3, +1, -7, +256, +64, +16, +4, +1, +1, +625, +125, +25, +5, +1, -4, }; double **XY = ca_A_mR(xy,i_mR(R5,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**4 + bx**3 + cx**2 + dx + e \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**4 x**3 x**2 x**1 x**0 y"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); stop(); clrscrn(); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**4 %+.2fx**3 %+.2fx**2 %+.2fx %+.2f\n\n" ,x[R1][C1],x[R2][C1],x[R3][C1],x[R4][C1],x[R5][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**4 + bx**3 + cx**2 + dx + e qui passe par ces cinq points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] x[5], y[5] En utilisant les points nous obtenons la matrice : x**4 x**3 x**2 x**1 x**0 y x[1]**4 x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**4 x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**4 x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**4 x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] x[5]**4 x[5]**3 x[5]**2 x[5]**1 x[5]**0 y[5] Que nous pouvons écrire : x**4 x**3 x**2 x 1 y x[1]**4 x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**4 x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**4 x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**4 x[4]**3 x[4]**2 x[4] 1 y[4] x[5]**4 x[5]**3 x[5]**2 x[5] 1 y[5] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**4 + bx**3 + cx**2 + dx + e that passes through the points. x y +1 -5 +2 +8 +3 -7 +4 +1 +5 -4 Using the given points, we obtain this matrix. x**4 x**3 x**2 x**1 x**0 y +1.00 +1.00 +1.00 +1.00 +1.00 -5.00 +16.00 +8.00 +4.00 +2.00 +1.00 +8.00 +81.00 +27.00 +9.00 +3.00 +1.00 -7.00 +256.00 +64.00 +16.00 +4.00 +1.00 +1.00 +625.00 +125.00 +25.00 +5.00 +1.00 -4.00 Press return to continue. Q : +0.0015 +0.0485 +0.4216 +0.8487 +0.3156 +0.0235 +0.2856 +0.7083 -0.1335 -0.6312 +0.1190 +0.6174 +0.2365 -0.3877 +0.6312 +0.3762 +0.6420 -0.4915 +0.3242 -0.3156 +0.9185 -0.3504 +0.1519 -0.0805 +0.0631 R : +680.4256 +142.3006 +30.1502 +6.5033 +1.4388 +0.0000 +16.2950 +8.2602 +3.2880 +1.2431 -0.0000 -0.0000 +1.3158 +1.3410 +1.0268 +0.0000 +0.0000 +0.0000 +0.3128 +0.5711 -0.0000 -0.0000 -0.0000 -0.0000 +0.0631 Press return to continue. Q_T : +1.4697e-03 +2.3515e-02 +1.1904e-01 +3.7624e-01 +9.1854e-01 +4.8534e-02 +2.8560e-01 +6.1737e-01 +6.4201e-01 -3.5037e-01 +4.2165e-01 +7.0827e-01 +2.3651e-01 -4.9150e-01 +1.5186e-01 +8.4868e-01 -1.3354e-01 -3.8774e-01 +3.2419e-01 -8.0475e-02 +3.1560e-01 -6.3119e-01 +6.3119e-01 -3.1560e-01 +6.3119e-02 invR : +1.4697e-03 -1.2834e-02 +4.6895e-02 -9.6700e-02 +3.3138e-01 +0.0000e+00 +6.1368e-02 -3.8527e-01 +1.0067e+00 -4.0502e+00 -0.0000e+00 -0.0000e+00 +7.6002e-01 -3.2586e+00 +1.7121e+01 +0.0000e+00 +0.0000e+00 +0.0000e+00 +3.1973e+00 -2.8930e+01 -0.0000e+00 -0.0000e+00 -0.0000e+00 +0.0000e+00 +1.5843e+01 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : -3.63 +44.75 -191.87 +329.75 -184.00 The coefficients a, b, c of the curve are : y = -3.63x**4 +44.75x**3 -191.87x**2 +329.75x -184.00 Press return to continue. </syntaxhighlight> {{AutoCat}} mxh412yyqypao4u6yvy9wox8i3qhprz Mathc matrices/070 0 82659 746342 2025-07-08T13:29:10Z Xhungab 23827 news 746342 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00e.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00f.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[10] ={ 1, -2, 2, -2, 3, 3, 4, -9, 5, 4, }; double ab[RA*(CA+Cb)]={ /* x**4 x**3 x**2 x**1 x**0 y */ +1, +1, +1, +1, +1, -2, +16, +8, +4, +2, +1, -2, +81, +27, +9, +3, +1, +3, +256, +64, +16, +4, +1, -9, +625, +125, +25, +5, +1, +4, }; double **XY = ca_A_mR(xy,i_mR(R5,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**4 + bx**3 + cx**2 + dx + e \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**4 x**3 x**2 x**1 x**0 y"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); stop(); clrscrn(); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**4 %+.2fx**3 %+.2fx**2 %+.2fx %+.2f\n\n" ,x[R1][C1],x[R2][C1],x[R3][C1],x[R4][C1],x[R5][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**4 + bx**3 + cx**2 + dx + e qui passe par ces cinq points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] x[5], y[5] En utilisant les points nous obtenons la matrice : x**4 x**3 x**2 x**1 x**0 y x[1]**4 x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**4 x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**4 x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**4 x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] x[5]**4 x[5]**3 x[5]**2 x[5]**1 x[5]**0 y[5] Que nous pouvons écrire : x**4 x**3 x**2 x 1 y x[1]**4 x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**4 x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**4 x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**4 x[4]**3 x[4]**2 x[4] 1 y[4] x[5]**4 x[5]**3 x[5]**2 x[5] 1 y[5] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**4 + bx**3 + cx**2 + dx + e that passes through the points. x y +1 -2 +2 -2 +3 +3 +4 -9 +5 +4 Using the given points, we obtain this matrix. x**4 x**3 x**2 x**1 x**0 y +1.00 +1.00 +1.00 +1.00 +1.00 -2.00 +16.00 +8.00 +4.00 +2.00 +1.00 -2.00 +81.00 +27.00 +9.00 +3.00 +1.00 +3.00 +256.00 +64.00 +16.00 +4.00 +1.00 -9.00 +625.00 +125.00 +25.00 +5.00 +1.00 +4.00 Press return to continue. Q : +0.0015 +0.0485 +0.4216 +0.8487 +0.3156 +0.0235 +0.2856 +0.7083 -0.1335 -0.6312 +0.1190 +0.6174 +0.2365 -0.3877 +0.6312 +0.3762 +0.6420 -0.4915 +0.3242 -0.3156 +0.9185 -0.3504 +0.1519 -0.0805 +0.0631 R : +680.4256 +142.3006 +30.1502 +6.5033 +1.4388 +0.0000 +16.2950 +8.2602 +3.2880 +1.2431 -0.0000 -0.0000 +1.3158 +1.3410 +1.0268 +0.0000 +0.0000 +0.0000 +0.3128 +0.5711 -0.0000 -0.0000 -0.0000 -0.0000 +0.0631 Press return to continue. Q_T : +1.4697e-03 +2.3515e-02 +1.1904e-01 +3.7624e-01 +9.1854e-01 +4.8534e-02 +2.8560e-01 +6.1737e-01 +6.4201e-01 -3.5037e-01 +4.2165e-01 +7.0827e-01 +2.3651e-01 -4.9150e-01 +1.5186e-01 +8.4868e-01 -1.3354e-01 -3.8774e-01 +3.2419e-01 -8.0475e-02 +3.1560e-01 -6.3119e-01 +6.3119e-01 -3.1560e-01 +6.3119e-02 invR : +1.4697e-03 -1.2834e-02 +4.6895e-02 -9.6700e-02 +3.3138e-01 +0.0000e+00 +6.1368e-02 -3.8527e-01 +1.0067e+00 -4.0502e+00 -0.0000e+00 -0.0000e+00 +7.6002e-01 -3.2586e+00 +1.7121e+01 +0.0000e+00 +0.0000e+00 +0.0000e+00 +3.1973e+00 -2.8930e+01 -0.0000e+00 -0.0000e+00 -0.0000e+00 +0.0000e+00 +1.5843e+01 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : +2.67 -30.33 +117.83 -181.17 +89.00 The coefficients a, b, c of the curve are : y = +2.67x**4 -30.33x**3 +117.83x**2 -181.17x +89.00 Press return to continue. </syntaxhighlight> {{AutoCat}} 8a7d9a5by8xnn7kg1drb9j9ml353ato 746343 746342 2025-07-08T13:29:23Z Xhungab 23827 746343 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00f.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00f.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 #define Cb C1 /* ------------------------------------ */ /* ------------------------------------ */ void fun(void) { double xy[10] ={ 1, -2, 2, -2, 3, 3, 4, -9, 5, 4, }; double ab[RA*(CA+Cb)]={ /* x**4 x**3 x**2 x**1 x**0 y */ +1, +1, +1, +1, +1, -2, +16, +8, +4, +2, +1, -2, +81, +27, +9, +3, +1, +3, +256, +64, +16, +4, +1, -9, +625, +125, +25, +5, +1, +4, }; double **XY = ca_A_mR(xy,i_mR(R5,C2)); double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(RA,CA,Cb)); double **A = c_Ab_A_mR(Ab,i_mR(RA,CA)); double **b = c_Ab_b_mR(Ab,i_mR(RA,Cb)); double **Q = i_mR(RA,CA); double **R = i_mR(CA,CA); double **invR = i_mR(CA,CA); double **Q_T = i_mR(CA,RA); double **invR_Q_T = i_mR(CA,RA); double **x = i_mR(CA,Cb); // x = invR * Q_T * b clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c of the curve \n\n"); printf(" y = ax**4 + bx**3 + cx**2 + dx + e \n\n"); printf(" that passes through the points. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); printf(" Using the given points, we obtain this matrix.\n"); printf(" x**4 x**3 x**2 x**1 x**0 y"); p_mR(Ab,S7,P2,C6); stop(); clrscrn(); QR_mR(A,Q,R); printf(" Q :"); p_mR(Q,S10,P4,C6); printf(" R :"); p_mR(R,S10,P4,C6); stop(); clrscrn(); transpose_mR(Q,Q_T); printf(" Q_T :"); pE_mR(Q_T,S12,P4,C6); inv_mR(R,invR); printf(" invR :"); pE_mR(invR,S12,P4,C6); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); mul_mR(invR,Q_T,invR_Q_T); mul_mR(invR_Q_T,b,x); printf(" x = invR * Q_T * b :"); p_mR(x,S10,P2,C6); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**4 %+.2fx**3 %+.2fx**2 %+.2fx %+.2f\n\n" ,x[R1][C1],x[R2][C1],x[R3][C1],x[R4][C1],x[R5][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Ab); f_mR(Q); f_mR(Q_T); f_mR(R); f_mR(invR); f_mR(invR_Q_T); f_mR(x); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**4 + bx**3 + cx**2 + dx + e qui passe par ces cinq points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] x[5], y[5] En utilisant les points nous obtenons la matrice : x**4 x**3 x**2 x**1 x**0 y x[1]**4 x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**4 x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**4 x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**4 x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] x[5]**4 x[5]**3 x[5]**2 x[5]**1 x[5]**0 y[5] Que nous pouvons écrire : x**4 x**3 x**2 x 1 y x[1]**4 x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**4 x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**4 x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**4 x[4]**3 x[4]**2 x[4] 1 y[4] x[5]**4 x[5]**3 x[5]**2 x[5] 1 y[5] Utilisons la fonction QR_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c of the curve y = ax**4 + bx**3 + cx**2 + dx + e that passes through the points. x y +1 -2 +2 -2 +3 +3 +4 -9 +5 +4 Using the given points, we obtain this matrix. x**4 x**3 x**2 x**1 x**0 y +1.00 +1.00 +1.00 +1.00 +1.00 -2.00 +16.00 +8.00 +4.00 +2.00 +1.00 -2.00 +81.00 +27.00 +9.00 +3.00 +1.00 +3.00 +256.00 +64.00 +16.00 +4.00 +1.00 -9.00 +625.00 +125.00 +25.00 +5.00 +1.00 +4.00 Press return to continue. Q : +0.0015 +0.0485 +0.4216 +0.8487 +0.3156 +0.0235 +0.2856 +0.7083 -0.1335 -0.6312 +0.1190 +0.6174 +0.2365 -0.3877 +0.6312 +0.3762 +0.6420 -0.4915 +0.3242 -0.3156 +0.9185 -0.3504 +0.1519 -0.0805 +0.0631 R : +680.4256 +142.3006 +30.1502 +6.5033 +1.4388 +0.0000 +16.2950 +8.2602 +3.2880 +1.2431 -0.0000 -0.0000 +1.3158 +1.3410 +1.0268 +0.0000 +0.0000 +0.0000 +0.3128 +0.5711 -0.0000 -0.0000 -0.0000 -0.0000 +0.0631 Press return to continue. Q_T : +1.4697e-03 +2.3515e-02 +1.1904e-01 +3.7624e-01 +9.1854e-01 +4.8534e-02 +2.8560e-01 +6.1737e-01 +6.4201e-01 -3.5037e-01 +4.2165e-01 +7.0827e-01 +2.3651e-01 -4.9150e-01 +1.5186e-01 +8.4868e-01 -1.3354e-01 -3.8774e-01 +3.2419e-01 -8.0475e-02 +3.1560e-01 -6.3119e-01 +6.3119e-01 -3.1560e-01 +6.3119e-02 invR : +1.4697e-03 -1.2834e-02 +4.6895e-02 -9.6700e-02 +3.3138e-01 +0.0000e+00 +6.1368e-02 -3.8527e-01 +1.0067e+00 -4.0502e+00 -0.0000e+00 -0.0000e+00 +7.6002e-01 -3.2586e+00 +1.7121e+01 +0.0000e+00 +0.0000e+00 +0.0000e+00 +3.1973e+00 -2.8930e+01 -0.0000e+00 -0.0000e+00 -0.0000e+00 +0.0000e+00 +1.5843e+01 Press return to continue. Solving this system yields a unique least squares solution, namely x = invR * Q_T * b : +2.67 -30.33 +117.83 -181.17 +89.00 The coefficients a, b, c of the curve are : y = +2.67x**4 -30.33x**3 +117.83x**2 -181.17x +89.00 Press return to continue. </syntaxhighlight> {{AutoCat}} ncdv046guwdpkc7q1is198j1rk7ps1l Mathc matrices/071 0 82660 746364 2025-07-08T22:29:27Z Xhungab 23827 news 746364 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26c| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00a.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00a.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-2 /* ------------------------------------ */ void fun(void) { double xy[6] ={ 1, -2, 2, -3, 3, 6 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1.00, +0.00, +0.00, +0.00, +0.00, +0.00, +1.00, +0.00, +0.00, +0.00, +1.00, +4.00, +1.00, -2.00, +1.00, +4.00, +9.00, +2.00, -3.00, +1.00, +9.00, +36.00, +3.00, +6.00, +1.00 }; double tb[RA*C1]={ /* = 0 */ +1.00, +1.00, +0.00, +0.00, +0.00 }; double **XY = ca_A_mR(xy,i_mR(R3,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, of a circle \n\n"); printf(" ax**2 + ay**2 + bx + cy + d = 0 \n\n"); printf(" that passes through these three XY. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); stop(); clrscrn(); printf(" Using the given XY, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Pinv = V * invS_T * U_T "); p_mR(Pinv,S10,P4,C10); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, of a circle ax**2 + ay**2 + bx + cy + d = 0 that passes through these three XY. x y +1 -2 +2 -3 +3 +6 Press return to continue. Using the given XY, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +1.00 +4.00 +1.00 -2.00 +1.00 +4.00 +9.00 +2.00 -3.00 +1.00 +9.00 +36.00 +3.00 +6.00 +1.00 b : +1.00 +1.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 +5.4042e-11 +9.1213e-12 -6.6832e-12 -7.8143e-13 -1.7705e-11 +1.0000e+00 -1.1338e-11 +7.5043e-12 +1.2205e-13 -3.2000e+00 -7.2000e+00 -9.0000e-01 +8.0000e-01 +1.0000e-01 -2.0000e-01 -2.2000e+00 +1.0000e-01 -2.0000e-01 +1.0000e-01 +1.8000e+00 -1.2000e+00 +2.1000e+00 -1.2000e+00 +1.0000e-01 Press return to continue. Pinv = V * invS_T * U_T +1.0000 +0.0000 +0.0000 -0.0000 -0.0000 -0.0000 +1.0000 -0.0000 +0.0000 +0.0000 -3.2000 -7.2000 -0.9000 +0.8000 +0.1000 -0.2000 -2.2000 +0.1000 -0.2000 +0.1000 +1.8000 -1.2000 +2.1000 -1.2000 +0.1000 x = Pinv * b +1.0000 +1.0000 -10.4000 -2.4000 +0.6000 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 +1.00y**2 -10.40x -2.40y +0.60 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} fcz3r2ohr91wjl4n7joyr81jxttu1g1 Mathc matrices/072 0 82661 746365 2025-07-08T22:33:31Z Xhungab 23827 news 746365 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26c| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00b.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00b.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-2 /* ------------------------------------ */ void fun(void) { double xy[6] ={ 1, -1, 2, -9, 3, -8 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1, +0, +0, +0, +0, +0, +1, +0, +0, +0, +1, +1, +1, -1, +1, +4, +81, +2, -9, +1, +9, +64, +3, -8, +1, }; double tb[RA*C1]={ /* = 0 */ +1, +1, +0, +0, +0, }; double **XY = ca_A_mR(xy,i_mR(R3,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, of a circle \n\n"); printf(" ax**2 + ay**2 + bx + cy + d = 0 \n\n"); printf(" that passes through these three XY. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); stop(); clrscrn(); printf(" Using the given XY, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Pinv = V * invS_T * U_T "); p_mR(Pinv,S10,P4,C10); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, of a circle ax**2 + ay**2 + bx + cy + d = 0 that passes through these three XY. x y +1 -1 +2 -9 +3 -8 Press return to continue. Using the given XY, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +1.00 +1.00 +1.00 -1.00 +1.00 +4.00 +81.00 +2.00 -9.00 +1.00 +9.00 +64.00 +3.00 -8.00 +1.00 b : +1.00 +1.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 +9.7165e-09 -4.4193e-09 -3.6790e-09 +4.5744e-09 +1.8872e-07 +1.0000e+00 +3.1730e-08 +2.7938e-08 -3.6322e-08 -4.7778e+00 +6.2222e+00 -1.1111e-01 -7.7778e-01 +8.8889e-01 -2.2222e-01 +1.0778e+01 +1.1111e-01 -2.2222e-01 +1.1111e-01 +3.5556e+00 +3.5556e+00 +1.2222e+00 +5.5556e-01 -7.7778e-01 Press return to continue. Pinv = V * invS_T * U_T +1.0000 +0.0000 -0.0000 -0.0000 +0.0000 +0.0000 +1.0000 +0.0000 +0.0000 -0.0000 -4.7778 +6.2222 -0.1111 -0.7778 +0.8889 -0.2222 +10.7778 +0.1111 -0.2222 +0.1111 +3.5556 +3.5556 +1.2222 +0.5556 -0.7778 x = Pinv * b +1.0000 +1.0000 +1.4444 +10.5556 +7.1111 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 +1.00y**2 +1.44x +10.56y +7.11 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} 55vnbwxt1neewn1h06t7vndyww06jpv Mathc matrices/073 0 82662 746366 2025-07-08T22:35:59Z Xhungab 23827 news 746366 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26c| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00c.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-2 /* ------------------------------------ */ void fun(void) { double xy[6] ={ 1, 10, 2, 1, 3, -10 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1, +0, +0, +0, +0, +0, +1, +0, +0, +0, +1, +100, +1, +10, +1, +4, +1, +2, +1, +1, +9, +100, +3, -10, +1, }; double tb[RA*C1]={ /* = 0 */ +1, +1, +0, +0, +0, }; double **XY = ca_A_mR(xy,i_mR(R3,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, of a circle \n\n"); printf(" ax**2 + ay**2 + bx + cy + d = 0 \n\n"); printf(" that passes through these three XY. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); stop(); clrscrn(); printf(" Using the given XY, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Pinv = V * invS_T * U_T "); p_mR(Pinv,S10,P4,C10); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, of a circle ax**2 + ay**2 + bx + cy + d = 0 that passes through these three XY. x y +1 +10 +2 +1 +3 -10 Press return to continue. Using the given XY, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +1.00 +100.00 +1.00 +10.00 +1.00 +4.00 +1.00 +2.00 +1.00 +1.00 +9.00 +100.00 +3.00 -10.00 +1.00 b : +1.00 +1.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 +1.7254e-09 +3.6743e-12 -6.3020e-10 -1.3827e-11 -2.1077e-10 +1.0000e+00 -2.4611e-12 +3.9388e-11 +2.1562e-12 +6.0000e+00 +9.9000e+02 -5.5000e+00 +1.0000e+01 -4.5000e+00 +1.0000e+00 +9.9000e+01 -5.0000e-01 +1.0000e+00 -5.0000e-01 -1.7000e+01 -2.0800e+03 +1.1500e+01 -2.0000e+01 +9.5000e+00 Press return to continue. Pinv = V * invS_T * U_T +1.0000 +0.0000 +0.0000 -0.0000 -0.0000 -0.0000 +1.0000 -0.0000 +0.0000 +0.0000 +6.0000 +990.0000 -5.5000 +10.0000 -4.5000 +1.0000 +99.0000 -0.5000 +1.0000 -0.5000 -17.0000 -2080.0000 +11.5000 -20.0000 +9.5000 x = Pinv * b +1.0000 +1.0000 +996.0000 +100.0000 -2097.0000 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 +1.00y**2 +996.00x +100.00y -2097.00 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} iyh8stxfpndb24gttjkwm6od78zfrrk Mathc matrices/074 0 82663 746367 2025-07-08T22:40:40Z Xhungab 23827 news 746367 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26c| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00d.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00d.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-2 /* ------------------------------------ */ void fun(void) { double xy[6] ={ 10, 10, -5, 1, 7, -10 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1, +0, +0, +0, +0, +0, +1, +0, +0, +0, +100, +100, +10, +10, +1, +25, +1, -5, +1, +1, +49, +100, +7, -10, +1, }; double tb[RA*C1]={ /* = 0 */ +1, +1, +0, +0, +0, }; double **XY = ca_A_mR(xy,i_mR(R3,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, of a circle \n\n"); printf(" ax**2 + ay**2 + bx + cy + d = 0 \n\n"); printf(" that passes through these three XY. \n\n"); printf(" x y"); p_mR(XY,S5,P0,C6); stop(); clrscrn(); printf(" Using the given XY, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Pinv = V * invS_T * U_T "); p_mR(Pinv,S10,P4,C10); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(A); f_mR(b); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Calculons les coefficients a, b, c, d d'un cercle, ax**2 + ay**2 + bx + cy + d = 0 Qui passe par ces trois points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) En utilisant ces trois points nous avons cette matrice. (a)x**2 (a)y**2 (b)x (c)y (d) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Ce système a trois lignes et quatre inconnues. Il est homogène, donc il a une infinité de solution. Pour trouver une solution j'ai choisi que a = 1. Nous obtenons cette matrice. (a)x**2 (a)y**2 1 0 0 0 0 1 0 1 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 Il suffit de resoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, of a circle ax**2 + ay**2 + bx + cy + d = 0 that passes through these three XY. x y +10 +10 -5 +1 +7 -10 Press return to continue. Using the given XY, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +0.00 +0.00 +100.00 +100.00 +10.00 +10.00 +1.00 +25.00 +1.00 -5.00 +1.00 +1.00 +49.00 +100.00 +7.00 -10.00 +1.00 b : +1.00 +1.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 -2.0747e-10 +8.7796e-13 +3.3409e-12 +1.1642e-12 +2.4431e-10 +1.0000e+00 -9.3712e-13 -3.4447e-12 -1.3169e-12 -3.8132e+00 -7.2527e+00 +4.0293e-02 -7.3260e-02 +3.2967e-02 -1.9780e+00 +1.0879e+00 +4.3956e-02 +1.0989e-02 -5.4945e-02 -4.2088e+01 -3.8352e+01 +1.5751e-01 +6.2271e-01 +2.1978e-01 Press return to continue. Pinv = V * invS_T * U_T +1.0000 -0.0000 +0.0000 +0.0000 +0.0000 +0.0000 +1.0000 -0.0000 -0.0000 -0.0000 -3.8132 -7.2527 +0.0403 -0.0733 +0.0330 -1.9780 +1.0879 +0.0440 +0.0110 -0.0549 -42.0879 -38.3516 +0.1575 +0.6227 +0.2198 x = Pinv * b +1.0000 +1.0000 -11.0659 -0.8901 -80.4396 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 +1.00y**2 -11.07x -0.89y -80.44 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} dpby2ml2zszf18xs79b2camw3lzu337 Mathc matrices/075 0 82664 746374 2025-07-09T09:04:39Z Xhungab 23827 news 746374 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26b| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00a.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00a.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double xy[8] ={ 1, 0, 2, 3, 3, 4, 4, 0 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1.00, +0.00, +0.00, +0.00, +0.00, +1.00, +0.00, +1.00, +0.00, +1.00, +4.00, +9.00, +2.00, +3.00, +1.00, +9.00, +16.00, +3.00, +4.00, +1.00, +16.00, +0.00, +4.00, +0.00, +1.00 }; double tb[RA*C1]={ /* = 0 */ +1.00, +0.00, +0.00, +0.00, +0.00, }; double **XY = ca_A_mR(xy,i_mR(R4,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, e, of the curve \n\n"); printf(" ax**2 + by**2 + cx + dy + e = 0 \n\n"); printf(" that passes through these four points.\n\n"); printf(" x y"); p_mR(XY,S10,P0,C6); stop(); clrscrn(); printf(" Using the given points, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, e, of the curve ax**2 + by**2 + cx + dy + e = 0 that passes through these four points. x y +1 +0 +2 +3 +3 +4 +4 +0 Press return to continue. Using the given points, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +1.00 +0.00 +1.00 +0.00 +1.00 +4.00 +9.00 +2.00 +3.00 +1.00 +9.00 +16.00 +3.00 +4.00 +1.00 +16.00 +0.00 +4.00 +0.00 +1.00 b : +1.00 +0.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 +4.2688e-14 -5.9459e-14 +3.4212e-14 -6.0507e-15 -1.6667e-01 +1.3889e-01 -3.3333e-01 +2.5000e-01 -5.5556e-02 -5.0000e+00 -3.3333e-01 +2.7142e-13 -1.5601e-13 +3.3333e-01 +1.1667e+00 -6.3889e-01 +1.3333e+00 -7.5000e-01 +5.5556e-02 +4.0000e+00 +1.3333e+00 -1.3500e-13 +7.7716e-14 -3.3333e-01 Press return to continue. Solving this system yields a unique least squares solution, namely x = Pinv * b +1.0000 -0.1667 -5.0000 +1.1667 +4.0000 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 -0.17y**2 -5.00x +1.17y +4.00 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} o4ubq0qv1rietz5qfxsakvvyziq4t0x Mathc matrices/076 0 82665 746375 2025-07-09T09:07:32Z Xhungab 23827 news 746375 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26b| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00c.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double xy[8] ={ 1, -8, 2, 2, 3, 1, 4, 2 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1, +0, +0, +0, +0, +1, +64, +1, -8, +1, +4, +4, +2, +2, +1, +9, +1, +3, +1, +1, +16, +4, +4, +2, +1, }; double tb[RA*C1]={ /* = 0 */ +1, +0, +0, +0, +0 }; double **XY = ca_A_mR(xy,i_mR(R4,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, e, of the curve \n\n"); printf(" ax**2 + by**2 + cx + dy + e = 0 \n\n"); printf(" that passes through these four points.\n\n"); printf(" x y"); p_mR(XY,S10,P0,C6); stop(); clrscrn(); printf(" Using the given points, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, e, of the curve ax**2 + by**2 + cx + dy + e = 0 that passes through these four points. x y +1 -8 +2 +2 +3 +1 +4 +2 Press return to continue. Using the given points, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +1.00 +64.00 +1.00 -8.00 +1.00 +4.00 +4.00 +2.00 +2.00 +1.00 +9.00 +1.00 +3.00 +1.00 +1.00 +16.00 +4.00 +4.00 +2.00 +1.00 b : +1.00 +0.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 +1.1983e-15 -2.5951e-15 +4.9571e-14 -2.9560e-14 -1.4444e-01 +1.1111e-02 +3.8889e-02 -1.1111e-01 +6.1111e-02 -6.0000e+00 -1.0143e-14 -5.0000e-01 -4.2810e-13 +5.0000e-01 -5.6667e-01 -3.3333e-02 +3.8333e-01 -6.6667e-01 +3.1667e-01 +9.7111e+00 +2.2222e-02 +1.0778e+00 +1.7778e+00 -1.8778e+00 Press return to continue. Solving this system yields a unique least squares solution, namely x = Pinv * b +1.0000 -0.1444 -6.0000 -0.5667 +9.7111 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 -0.14y**2 -6.00x -0.57y +9.71 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} odjem6fgvszyl9fbg4kaat14e5h2vqw Mathc matrices/077 0 82666 746376 2025-07-09T09:15:57Z Xhungab 23827 news 746376 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26b| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00d.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00d.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double xy[8] ={ 1, 4, 2, 5, 3, -7, 4, 5 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1, +0, +0, +0, +0, +1, +16, +1, +4, +1, +4, +25, +2, +5, +1, +9, +49, +3, -7, +1, +16, +25, +4, +5, +1, }; double tb[RA*C1]={ /* = 0 */ +1, +0, +0, +0, +0 }; double **XY = ca_A_mR(xy,i_mR(R4,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, e, of the curve \n\n"); printf(" ax**2 + by**2 + cx + dy + e = 0 \n\n"); printf(" that passes through these four points.\n\n"); printf(" x y"); p_mR(XY,S10,P0,C6); stop(); clrscrn(); printf(" Using the given points, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, e, of the curve ax**2 + by**2 + cx + dy + e = 0 that passes through these four points. x y +1 +4 +2 +5 +3 -7 +4 +5 Press return to continue. Using the given points, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +1.00 +16.00 +1.00 +4.00 +1.00 +4.00 +25.00 +2.00 +5.00 +1.00 +9.00 +49.00 +3.00 -7.00 +1.00 +16.00 +25.00 +4.00 +5.00 +1.00 b : +1.00 +0.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 +9.8734e-11 -8.1187e-11 +4.7280e-12 +8.7404e-12 +2.8030e-01 -9.0909e-02 +1.3258e-01 +7.5758e-03 -4.9242e-02 -6.0000e+00 -6.1187e-10 -5.0000e-01 -2.9365e-11 +5.0000e-01 +4.7727e-01 -1.8182e-01 +3.0682e-01 -6.8182e-02 -5.6818e-02 -1.3939e+00 +3.1818e+00 -2.8485e+00 +1.5152e-01 +5.1515e-01 Press return to continue. Solving this system yields a unique least squares solution, namely x = Pinv * b +1.0000 +0.2803 -6.0000 +0.4773 -1.3939 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 +0.28y**2 -6.00x +0.48y -1.39 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} objc5v5lmjpxkbv7ds17giaevoqk7zj Mathc matrices/078 0 82667 746377 2025-07-09T09:20:24Z Xhungab 23827 news 746377 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26b| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00e.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00e.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double xy[8] ={ 1, 2, 2, -8, 3, -8, 4, -3 }; double tA[RA*CA]={ /* x**2 y**2 x y e */ +1, +0, +0, +0, +0, +1, +4, +1, +2, +1, +4, +64, +2, -8, +1, +9, +64, +3, -8, +1, +16, +9, +4, -3, +1, }; double tb[RA*C1]={ /* = 0 */ +1, +0, +0, +0, +0 }; double **XY = ca_A_mR(xy,i_mR(R4,C2)); double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf("\n"); printf(" Find the coefficients a, b, c, d, e, of the curve \n\n"); printf(" ax**2 + by**2 + cx + dy + e = 0 \n\n"); printf(" that passes through these four points.\n\n"); printf(" x y"); p_mR(XY,S10,P0,C6); stop(); clrscrn(); printf(" Using the given points, we obtain this matrix.\n"); printf(" (a = 1. This is my choice)\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" Solving this system yields a unique\n" " least squares solution, namely \n\n"); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The coefficients a, b, c, d, e, of the curve are : \n\n" " %+.2fx**2 %+.2fy**2 %+.2fx %+.2fy %+.2f = 0\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(XY); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> Trouver les coefficients a, b, c, d, e du conique, ax**2 + by**2 + cx + dy + e = 0 qui passe par ces quatre points. (x[1],y[1]) (x[2],y[2]) (x[3],y[3]) (x[4],y[4]) En utilisant les quatre points nous obtenons la matrice. (a)x**2 (b)y**2 (c)x (d)y (e) = 0 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Ce système à quatre lignes et cinq inconnus (a, b, c, d, e). C'est un système homogène, il a donc une infinité de solution. Pour trouver une solution j'ai choisi de poser que a = 1. Nous avons donc cinq lignes et cinq inconnus. 1 0 0 0 0 1 x[1]**2 y[1]**2 x[1] y[1] 1 0 x[2]**2 y[2]**2 x[2] y[2] 1 0 x[3]**2 y[3]**2 x[3] y[3] 1 0 x[4]**2 y[4]**2 x[4] y[4] 1 0 Il suffit maintenant de résoudre le système. '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Find the coefficients a, b, c, d, e, of the curve ax**2 + by**2 + cx + dy + e = 0 that passes through these four points. x y +1 +2 +2 -8 +3 -8 +4 -3 Press return to continue. Using the given points, we obtain this matrix. (a = 1. This is my choice) A : +1.00 +0.00 +0.00 +0.00 +0.00 +1.00 +4.00 +1.00 +2.00 +1.00 +4.00 +64.00 +2.00 -8.00 +1.00 +9.00 +64.00 +3.00 -8.00 +1.00 +16.00 +9.00 +4.00 -3.00 +1.00 b : +1.00 +0.00 +0.00 +0.00 +0.00 Pinv = V * invS_T * U_T +1.0000e+00 +8.4318e-12 +5.5131e-11 -5.7896e-11 +1.5745e-11 +4.0000e-02 +2.0000e-02 -8.0000e-02 +1.0000e-01 -4.0000e-02 -5.0000e+00 -3.7921e-11 -1.0000e+00 +1.0000e+00 -7.7166e-11 +4.0000e-02 +2.2000e-01 -6.8000e-01 +7.0000e-01 -2.4000e-01 +3.7600e+00 +4.8000e-01 +2.6800e+00 -2.8000e+00 +6.4000e-01 Press return to continue. Solving this system yields a unique least squares solution, namely x = Pinv * b +1.0000 +0.0400 -5.0000 +0.0400 +3.7600 The coefficients a, b, c, d, e, of the curve are : +1.00x**2 +0.04y**2 -5.00x +0.04y +3.76 = 0 Press return to continue. </syntaxhighlight> {{AutoCat}} kysbau8v9kr7az9s1sx7ggbtsg7icxu Mathc matrices/079 0 82668 746382 2025-07-09T10:24:07Z Xhungab 23827 news 746382 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00e.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c01e.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-2 /* ------------------------------------ */ void fun(void) { double tA[RA*CA]={ /* x**4 x**3 x**2 x**1 x**0 */ 1, 1., 1., 1., 1., 16., 8., 4., 2., 1, 81., 27., 9., 3., 1, 256., 64., 16., 4., 1, 625., 125., 25., 5., 1, }; double tb[RA*C1]={ /* y */ -5., 8., -7., 1., -4. }; double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf(" Fitting a linear Curve to Data :\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); stop(); clrscrn(); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The Quartic equation Curve to Data : \n\n" " s = %+.3ft**4 %+.3ft**3 %+.3f*t**2 %+.3ft %+.3f\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**4 + bx**3 + cx**2 + dx + e qui passe par ces cinq points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] x[5], y[5] En utilisant les points nous obtenons la matrice : x**4 x**3 x**2 x**1 x**0 y x[1]**4 x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**4 x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**4 x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**4 x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] x[5]**4 x[5]**3 x[5]**2 x[5]**1 x[5]**0 y[5] Que nous pouvons écrire : x**4 x**3 x**2 x 1 y x[1]**4 x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**4 x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**4 x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**4 x[4]**3 x[4]**2 x[4] 1 y[4] x[5]**4 x[5]**3 x[5]**2 x[5] 1 y[5] Utilisons la fonction Pinv_Rn_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Fitting a linear Curve to Data : A : +1.00 +1.00 +1.00 +1.00 +1.00 +16.00 +8.00 +4.00 +2.00 +1.00 +81.00 +27.00 +9.00 +3.00 +1.00 +256.00 +64.00 +16.00 +4.00 +1.00 +625.00 +125.00 +25.00 +5.00 +1.00 b : -5.00 +8.00 -7.00 +1.00 -4.00 Press return to continue. Pinv = V * invS_T * U_T +4.1667e-02 -1.6667e-01 +2.5000e-01 -1.6667e-01 +4.1667e-02 -5.8333e-01 +2.1667e+00 -3.0000e+00 +1.8333e+00 -4.1667e-01 +2.9583e+00 -9.8333e+00 +1.2250e+01 -6.8333e+00 +1.4583e+00 -6.4167e+00 +1.7833e+01 -1.9500e+01 +1.0167e+01 -2.0833e+00 +5.0000e+00 -1.0000e+01 +1.0000e+01 -5.0000e+00 +1.0000e+00 x = Pinv * b -3.6250 +44.7500 -191.8750 +329.7500 -184.0000 The Quartic equation Curve to Data : s = -3.625t**4 +44.750t**3 -191.875*t**2 +329.750t -184.000 Press return to continue. </syntaxhighlight> {{AutoCat}} erl1svx0jlka3mtzcu5vdlptnbokk2h Mathc matrices/07a 0 82669 746383 2025-07-09T10:27:09Z Xhungab 23827 news 746383 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00f.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c01f.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R5 #define CA C5 /* ------------------------------------ */ #define FACTOR_E +1.E-2 /* ------------------------------------ */ void fun(void) { double tA[RA*CA]={ /* x**4 x**3 x**2 x**1 x**0 */ +1, +1, +1, +1, +1, +16, +8, +4, +2, +1, +81, +27, +9, +3, +1, +256, +64, +16, +4, +1, +625, +125, +25, +5, +1, }; double tb[RA*C1]={ /* y */ -2, -2, 3, -9, 4, }; double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf(" Fitting a linear Curve to Data :\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); stop(); clrscrn(); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf(" The Quartic equation Curve to Data : \n\n" " s = %+.3ft**4 %+.3ft**3 %+.3f*t**2 %+.3ft %+.3f\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1], Pinvb[R4][C1],Pinvb[R5][C1]); stop(); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**4 + bx**3 + cx**2 + dx + e qui passe par ces cinq points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] x[5], y[5] En utilisant les points nous obtenons la matrice : x**4 x**3 x**2 x**1 x**0 y x[1]**4 x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**4 x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**4 x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**4 x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] x[5]**4 x[5]**3 x[5]**2 x[5]**1 x[5]**0 y[5] Que nous pouvons écrire : x**4 x**3 x**2 x 1 y x[1]**4 x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**4 x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**4 x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**4 x[4]**3 x[4]**2 x[4] 1 y[4] x[5]**4 x[5]**3 x[5]**2 x[5] 1 y[5] Utilisons la fonction Pinv_Rn_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Fitting a linear Curve to Data : A : +1.00 +1.00 +1.00 +1.00 +1.00 +16.00 +8.00 +4.00 +2.00 +1.00 +81.00 +27.00 +9.00 +3.00 +1.00 +256.00 +64.00 +16.00 +4.00 +1.00 +625.00 +125.00 +25.00 +5.00 +1.00 b : -2.00 -2.00 +3.00 -9.00 +4.00 Press return to continue. Pinv = V * invS_T * U_T +4.1667e-02 -1.6667e-01 +2.5000e-01 -1.6667e-01 +4.1667e-02 -5.8333e-01 +2.1667e+00 -3.0000e+00 +1.8333e+00 -4.1667e-01 +2.9583e+00 -9.8333e+00 +1.2250e+01 -6.8333e+00 +1.4583e+00 -6.4167e+00 +1.7833e+01 -1.9500e+01 +1.0167e+01 -2.0833e+00 +5.0000e+00 -1.0000e+01 +1.0000e+01 -5.0000e+00 +1.0000e+00 x = Pinv * b +2.6667 -30.3333 +117.8333 -181.1666 +89.0000 The Quartic equation Curve to Data : s = +2.667t**4 -30.333t**3 +117.833*t**2 -181.167t +89.000 Press return to continue. </syntaxhighlight> {{AutoCat}} drue5zzasffyvjey49u125ycxfg0zym Mathc matrices/07b 0 82670 746385 2025-07-09T10:39:22Z Xhungab 23827 news 746385 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00c.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c01c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R4 #define CA C4 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double tA[RA*CA]={ /* x**3 x**2 x**1 x**0 */ -125, +25, -5, +1, -8, +4, -2, +1, +8, +4, +2, +1, +27, +9, +3, +1, }; double tb[RA*C1]={ /* y */ -3.00 , +0.00, +3.00, -2.00, }; double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf(" Fitting a linear Curve to Data :\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P2,C10); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**3 %+.2fx**2 %+.2fx %+.2f\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1],Pinvb[R4][C1]); stop(); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**3 + bx**2 + cx + d qui passe par ces quatre points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] En utilisant les points nous obtenons la matrice : x**3 x**2 x**1 x**0 y x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] Que nous pouvons écrire : x**3 x**2 x 1 y x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**3 x[4]**2 x[4] 1 y[4] Utilisons la fonction Pinv_Rn_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Fitting a linear Curve to Data : A : -125.00 +25.00 -5.00 +1.00 -8.00 +4.00 -2.00 +1.00 +8.00 +4.00 +2.00 +1.00 +27.00 +9.00 +3.00 +1.00 b : -3.00 +0.00 +3.00 -2.00 Pinv = V * invS_T * U_T -5.9524e-03 +1.6667e-02 -3.5714e-02 +2.5000e-02 +1.7857e-02 +1.0408e-15 -1.4286e-01 +1.2500e-01 +2.3810e-02 -3.1667e-01 +3.9286e-01 -1.0000e-01 -7.1429e-02 +5.0000e-01 +1.0714e+00 -5.0000e-01 Press return to continue. x = Pinv * b -0.14 -0.73 +1.31 +4.43 The coefficients a, b, c of the curve are : y = -0.14x**3 -0.73x**2 +1.31x +4.43 Press return to continue. </syntaxhighlight> {{AutoCat}} s3a6i8vjy9fzp6d9xssk89u9rye9tgw 746386 746385 2025-07-09T10:39:38Z Xhungab 23827 746386 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00c.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00c.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R4 #define CA C4 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double tA[RA*CA]={ /* x**3 x**2 x**1 x**0 */ -125, +25, -5, +1, -8, +4, -2, +1, +8, +4, +2, +1, +27, +9, +3, +1, }; double tb[RA*C1]={ /* y */ -3.00 , +0.00, +3.00, -2.00, }; double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf(" Fitting a linear Curve to Data :\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P2,C10); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**3 %+.2fx**2 %+.2fx %+.2f\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1],Pinvb[R4][C1]); stop(); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**3 + bx**2 + cx + d qui passe par ces quatre points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] En utilisant les points nous obtenons la matrice : x**3 x**2 x**1 x**0 y x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] Que nous pouvons écrire : x**3 x**2 x 1 y x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**3 x[4]**2 x[4] 1 y[4] Utilisons la fonction Pinv_Rn_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Fitting a linear Curve to Data : A : -125.00 +25.00 -5.00 +1.00 -8.00 +4.00 -2.00 +1.00 +8.00 +4.00 +2.00 +1.00 +27.00 +9.00 +3.00 +1.00 b : -3.00 +0.00 +3.00 -2.00 Pinv = V * invS_T * U_T -5.9524e-03 +1.6667e-02 -3.5714e-02 +2.5000e-02 +1.7857e-02 +1.0408e-15 -1.4286e-01 +1.2500e-01 +2.3810e-02 -3.1667e-01 +3.9286e-01 -1.0000e-01 -7.1429e-02 +5.0000e-01 +1.0714e+00 -5.0000e-01 Press return to continue. x = Pinv * b -0.14 -0.73 +1.31 +4.43 The coefficients a, b, c of the curve are : y = -0.14x**3 -0.73x**2 +1.31x +4.43 Press return to continue. </syntaxhighlight> {{AutoCat}} 89bmp8hs3px1m3w2j7paijrjp5q62hd Mathc matrices/07c 0 82671 746387 2025-07-09T10:43:15Z Xhungab 23827 news 746387 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00d.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00d.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R4 #define CA C4 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double tA[RA*CA]={ /* x**3 x**2 x**1 x**0 */ -125, +25, -5, +1, -8, +4, -2, +1, +8, +4, +2, +1, +125, +25, +5, +1, }; double tb[RA*C1]={ /* y */ -8, +8, -8, +8, }; double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf(" Fitting a linear Curve to Data :\n\n"); printf(" A :"); p_mR(A,S10,P2,C7); printf(" b :"); p_mR(b,S10,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P2,C10); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**3 %+.2fx \n\n" ,Pinvb[R1][C1],Pinvb[R3][C1]); stop(); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**3 + bx**2 + cx + d qui passe par ces quatre points. x[1], y[1] x[2], y[2] x[3], y[3] x[4], y[4] En utilisant les points nous obtenons la matrice : x**3 x**2 x**1 x**0 y x[1]**3 x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**3 x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**3 x[3]**2 x[3]**1 x[3]**0 y[3] x[4]**3 x[4]**2 x[4]**1 x[4]**0 y[4] Que nous pouvons écrire : x**3 x**2 x 1 y x[1]**3 x[1]**2 x[1] 1 y[1] x[2]**3 x[2]**2 x[2] 1 y[2] x[3]**3 x[3]**2 x[3] 1 y[3] x[4]**3 x[4]**2 x[4] 1 y[4] Utilisons la fonction Pinv_Rn_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Fitting a linear Curve to Data : A : -125.00 +25.00 -5.00 +1.00 -8.00 +4.00 -2.00 +1.00 +8.00 +4.00 +2.00 +1.00 +125.00 +25.00 +5.00 +1.00 b : -8.00 +8.00 -8.00 +8.00 Pinv = V * invS_T * U_T -4.7619e-03 +1.1905e-02 -1.1905e-02 +4.7619e-03 +2.3810e-02 -2.3810e-02 -2.3810e-02 +2.3810e-02 +1.9048e-02 -2.9762e-01 +2.9762e-01 -1.9048e-02 -9.5238e-02 +5.9524e-01 +5.9524e-01 -9.5238e-02 Press return to continue. x = Pinv * b +0.27 +0.00 -5.07 -0.00 The coefficients a, b, c of the curve are : y = +0.27x**3 -5.07x Press return to continue. </syntaxhighlight> {{AutoCat}} dvjzcu11f6a9sriicg14uoxqfruuf99 Mathc matrices/07d 0 82672 746389 2025-07-09T11:22:12Z Xhungab 23827 news 746389 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00a.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00a.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R3 #define CA C3 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double tA[RA*CA]={ /* x**0 x**1 x**2 */ +1, +1, +1, +4, +2, +1, +9, +3, +1, }; double tb[RA*C1]={ /* y */ 6, 3, 5 }; double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf(" Fitting a linear Curve to Data :\n\n"); printf(" A :"); p_mR(A,S5,P2,C7); printf(" b :"); p_mR(b,S5,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**2 %+.2fx %+.2f\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1]); stop(); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction Pinv_Rn_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Fitting a linear Curve to Data : A : +1.00 +1.00 +1.00 +4.00 +2.00 +1.00 +9.00 +3.00 +1.00 b : +6.00 +3.00 +5.00 Pinv = V * invS_T * U_T +5.0000e-01 -1.0000e+00 +5.0000e-01 -2.5000e+00 +4.0000e+00 -1.5000e+00 +3.0000e+00 -3.0000e+00 +1.0000e+00 Press return to continue. x = Pinv * b +2.5000 -10.5000 +14.0000 The coefficients a, b, c of the curve are : y = +2.50x**2 -10.50x +14.00 Press return to continue. </syntaxhighlight> {{AutoCat}} suwvhuy5rjd5kzoakuelg9yb94xq2is Mathc matrices/07e 0 82673 746390 2025-07-09T11:25:09Z Xhungab 23827 news 746390 wikitext text/x-wiki [[Catégorie:Mathc matrices (livre)]] [[Mathc matrices/26a| '''Application''']] Installer et compiler ces fichiers dans votre répertoire de travail. {{Fichier|c00b.c|largeur=70%|info=|icon=Crystal128-source-c.svg}} <syntaxhighlight lang="c"> /* ------------------------------------ */ /* Save as : c00b.c */ /* ------------------------------------ */ #include "v_a.h" /* ------------------------------------ */ /* ------------------------------------ */ #define RA R3 #define CA C3 /* ------------------------------------ */ #define FACTOR_E +1.E-0 /* ------------------------------------ */ void fun(void) { double tA[RA*CA]={ /* x**0 x**1 x**2 */ +1, +1, +1, +4, +2, +1, +9, +3, +1, }; double tb[RA*C1]={ /* y */ -9, +8, -8 }; double **A = ca_A_mR(tA,i_mR(RA,CA)); double **b = ca_A_mR(tb,i_mR(RA,C1)); double **Pinv = i_mR(CA,RA); double **Pinvb = i_mR(CA,C1); clrscrn(); printf(" Fitting a linear Curve to Data :\n\n"); printf(" A :"); p_mR(A,S5,P2,C7); printf(" b :"); p_mR(b,S5,P2,C7); printf(" Pinv = V * invS_T * U_T "); Pinv_Rn_mR(A,Pinv,FACTOR_E); pE_mR(Pinv,S12,P4,C10); stop(); clrscrn(); printf(" x = Pinv * b "); mul_mR(Pinv,b,Pinvb); p_mR(Pinvb,S10,P4,C10); printf("\n The coefficients a, b, c of the curve are : \n\n" " y = %+.2fx**2 %+.2fx %+.2f\n\n" ,Pinvb[R1][C1],Pinvb[R2][C1],Pinvb[R3][C1]); stop(); f_mR(b); f_mR(A); f_mR(Pinv); f_mR(Pinvb); } /* ------------------------------------ */ int main(void) { fun(); return 0; } /* ------------------------------------ */ /* ------------------------------------ */ </syntaxhighlight> '''Présentation :''' <syntaxhighlight lang="c"> Calculons les coefficients d'un polynôme. y = ax**2 + bx + c qui passe par ces trois points. x[1], y[1] x[2], y[2] x[3], y[3] En utilisant les points nous obtenons la matrice : x**2 x**1 x**0 y x[1]**2 x[1]**1 x[1]**0 y[1] x[2]**2 x[2]**1 x[2]**0 y[2] x[3]**2 x[3]**1 x[3]**0 y[3] Que nous pouvons écrire : x**2 x 1 y x[1]**2 x[1] 1 y[1] x[2]**2 x[2] 1 y[2] x[3]**2 x[3] 1 y[3] Utilisons la fonction Pinv_Rn_mR(); pour résoudre le système qui va nous donner les coefficients a,b,c </syntaxhighlight> '''Exemple de sortie écran :''' <syntaxhighlight lang="c"> Fitting a linear Curve to Data : A : +1.00 +1.00 +1.00 +4.00 +2.00 +1.00 +9.00 +3.00 +1.00 b : -9.00 +8.00 -8.00 Pinv = V * invS_T * U_T +5.0000e-01 -1.0000e+00 +5.0000e-01 -2.5000e+00 +4.0000e+00 -1.5000e+00 +3.0000e+00 -3.0000e+00 +1.0000e+00 Press return to continue. x = Pinv * b -16.5000 +66.5000 -59.0000 The coefficients a, b, c of the curve are : y = -16.50x**2 +66.50x -59.00 Press return to continue. </syntaxhighlight> {{AutoCat}} qg4va8f0219nidw6rh8y61plam9tvwp