Architecture des circuits Architecture des ordinateurs Protopoly Florent de Dinechin avecdesfiguresde R.Bergasse,N.Bonifas,N.Brunie,P.Boutillier, A.Derouet-Jourdan,J.Detrey,A.Friggeri,M.Feurgard,B.Grenet,F.Givors, T.Jolivet,C.Keller,E.Lassalle,P.E.Meunier, P.Robert,G.Salagnac,O.Schwander,T.Risset,P.Vannier versiondu10octobre2022 2 Table des matières 1 Introduction 9 1.1 Deslivressérieux,parcequecepoly,bon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Historiqueducalculmécanique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Objectifsducours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 Laconceptiond’ASResthiérarchique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5 Quelquesordresdegrandeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5.1 L’universestnotreterraindejeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.5.2 Latechnologieen2018 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5.3 Calculcontrestockageetdéplacementdedonnées . . . . . . . . . . . . . . . . . . . 16 1.5.4 YapasquelesPCdanslavie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 I L’informationetcommentonlatraite 19 2 Coderl’information 21 2.1 Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.1 Informationetmedium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.2 Informationanalogique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.3 Informationnumérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.4 Coderletemps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2 Coderdesnombresentiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.1 Numérationdepositionpourlesentiersnaturels . . . . . . . . . . . . . . . . . . . 22 2.2.2 Parenthèsepratique:superpositiondescodages . . . . . . . . . . . . . . . . . . . . 23 2.2.3 Codagedesentiersrelatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.4 Etpourallerplusloin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3 Coderdutexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.4 Coderlesimagesetlessons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.5 Codesdétecteursd’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.6 Codescorrecteursd’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.7 Compressiond’information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.8 LesQR-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 Transformerl’information:circuitscombinatoires 27 3.1 Algèbrebooléenne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.1.1 Définitionsetnotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.1.2 Expressionbooléenne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.1.3 Dualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.4 Quelquespropriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.5 Universalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.6 Fonctionsbooléennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2 Circuitslogiquesetcircuitscombinatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.1 Signauxlogique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.2 Circuitslogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.3 Portesdebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.4 Circuitscombinatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.5 Constructionbottom-updecircuitscombinatoires . . . . . . . . . . . . . . . . . . . 30 3.2.6 Constructiontop-downdecircuitscombinatoires . . . . . . . . . . . . . . . . . . . 31 3.2.7 Métriquesd’uncircuitcombinatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3 Quelquesconstructionsalgorithmiquesdecircuitscombinatoires . . . . . . . . . . . . . . 32 3 4 TABLEDESMATIÈRES 3.3.1 Lesportesdebaseàdeuxentrées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.3.2 Lemultiplexeur,abstractiondusi-alors-sinon . . . . . . . . . . . . . . . . . . . . . 32 3.3.3 Lemultiplexeurd’ordrek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3.4 Pourlecalculsurlesentiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.4 D’unefonctionbooléenneàuncircuitcombinatoire . . . . . . . . . . . . . . . . . . . . . . 36 3.4.1 Parlesformescanoniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.4.2 Parlesarbresdedécisionbinaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.5 Application:constructiondescircuitsarithmétiquesdebase . . . . . . . . . . . . . . . . . 37 3.5.1 Addition/soustractionbinaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.2 Multiplicationbinaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.3 Divisionbinaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.7 Annexetechnologiquecontingente:lescircuitsCMOS . . . . . . . . . . . . . . . . . . . . 38 3.7.1 Transistorsetprocessusdefabrication . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.7.2 Portesdebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.7.3 Vitesse,surfaceetconsommation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4 Memoriserl’information 41 4.1 Vueabstraitedesorganesdemémorisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.1 Leregistreoumémoireponctuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.2 Mémoiresadressables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.1.3 Mémoiresàaccèsséquentiel:pilesetfiles . . . . . . . . . . . . . . . . . . . . . . . . 42 4.1.4 Mémoiresadressablesparlecontenu . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2 Constructiondesmémoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2.1 Leverrou(latch)etleregistre(Flip-Flop) . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2.2 Autrestechnologiesdepointmémoire . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.3 Mémoireadressable,premièresolution . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2.4 Mémoireadressable,secondesolution . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.5 Piles,files,etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.2.6 Disques(*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.3 Uneloifondamentaledeconservationdesemmerdements . . . . . . . . . . . . . . . . . . 48 5 Circuitsséquentielssynchrones 49 5.1 Quelquesexemplesdecircuitsséquentiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2 Restrictionauxcircuitsséquentielssynchrones . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.3 Correctionetperformance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6 Automates 53 6.1 Unexemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 6.2 Définitionformelled’unautomatesynchrone . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.2.1 États,transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.2.2 Définitionenextensiondesfonctionsdetransitionetdesortie . . . . . . . . . . . . 55 6.2.3 Correctionetcomplétuded’unautomatesynchrone . . . . . . . . . . . . . . . . . . 55 6.3 Synthèsed’unautomatesynchrone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.3.1 L’approximationtemporelleréaliséeparl’automatesynchrone . . . . . . . . . . . 57 6.3.2 Optimisationd’unautomatesynchrone . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.4 Comprendrelescircuitsséquentielscommedesautomates . . . . . . . . . . . . . . . . . . 57 6.4.1 LanormeJTAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.4.2 Equivalencedecircuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 6.5 Conclusion:l’ingéniériedesautomates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 7 Transmettre 61 7.1 Medium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.2 Liaisonpointapoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.2.1 Sérieouparallèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.2.2 Protocoles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.3 Bustroisétats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7.4 Réseauxengraphes(*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.4.1 Lestopologiesetleursmétriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.4.2 Routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 TABLEDESMATIÈRES 5 7.4.3 Typesdecommunication:pointàpoint,diffusion,multicast . . . . . . . . . . . . . 67 7.5 Exemplesdetopologiesderéseau(*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.5.1 LetéléphoneàPapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.5.2 L’internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.5.3 FPGAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.5.4 Lebushypertransport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.5.5 Machinesparallèles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 II Machinesuniverselles 69 8 Jeuxd’instruction 71 8.1 Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8.2 Vocabulaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 8.3 Travauxpratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 8.3.1 Lejeud’instructiondevotrePC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 8.3.2 Lejeud’instructiondevotretéléphoneportable . . . . . . . . . . . . . . . . . . . . 73 8.4 Instructionsetarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 8.5 Quedéfinitl’ISA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 8.5.1 Typesdedonnéesnatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 8.5.2 Instructionsdecalcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 8.5.3 Instructionsd’accèsmémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 8.5.4 Instructionsdecontrôledeflot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 8.5.5 Lesinterruptionsetl’atomicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 8.5.6 Autresinstructionssystème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 8.5.7 QuelquesISA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 8.6 Codagedesinstructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 8.7 AdéquationISA-architecturephysique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 8.8 Unpeudepoésie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9 Constructiond’unprocesseurRISC 83 9.1 Unjeud’instructionRISCpasterriblemaisàlamode . . . . . . . . . . . . . . . . . . . . . 83 9.2 Plandemasse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.3 Constructiondel’automatedecommande . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 10 Exécutionparallèle 87 10.1 Pipelined’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 10.2 Exploitationduparallélismed’instruction:exécutionsuperscalaire . . . . . . . . . . . . . 90 10.2.1 Architecturesuperscalaire(*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 10.2.2 VLIWousuperscalaire(*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 10.3 Deuxjeuxd’instructionsVLIWrécents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.3.1 IA64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.3.2 KalrayK1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10.4 Exploitationduparallélismedeprocessus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 10.4.1 Échangedemessagesversuspartagedemémoire . . . . . . . . . . . . . . . . . . . 94 10.4.2 Modèledeprogrammation:threadversusprocess. . . . . . . . . . . . . . . . . . . 94 10.4.3 Grandeuretmisèredelamémoirepartagée. . . . . . . . . . . . . . . . . . . . . . . 95 10.4.4 Architecture:Multifilature(multithreading) . . . . . . . . . . . . . . . . . . . . . . . 95 10.4.5 Architecture:processeursmulticoeurs . . . . . . . . . . . . . . . . . . . . . . . . . . 95 10.5 Mécanismesarchitecturauxpourl’exclusionmutuelle . . . . . . . . . . . . . . . . . . . . . 96 10.6 Conclusion:parallélismepartout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 10.6.1 Taxonomie1:laclassificationdeFlynn . . . . . . . . . . . . . . . . . . . . . . . . . 96 10.6.2 Taxonomie2:laclassificationdeRaina . . . . . . . . . . . . . . . . . . . . . . . . . 96 11 Interfacesd’entrée/sorties 99 6 TABLEDESMATIÈRES 12 Dulangageauprocesseur(*) 101 12.1 Introduction:langagesinterprétés,langagescompilés,processeursvirtuels . . . . . . . . 101 12.2 L’arrière-cuisineducompilateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 12.2.1 Variablesetexpressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 12.2.2 Désucragedesopérationsdecontrôledeflot . . . . . . . . . . . . . . . . . . . . . . 102 12.2.3 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 12.2.4 Chaînesdecaractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 12.2.5 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 12.3 Applicationbinaryinterface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 12.3.1 Procéduresetcompilationséparée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 12.3.2 Récursivitéetpile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 12.3.3 Variableslocalesetpassagedevaleurssurlapile . . . . . . . . . . . . . . . . . . . 107 12.3.4 Visionglobaledelamémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 12.3.5 Sauvegardedesregistres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 12.3.6 Enrésumé:l’enregistrementd’activation . . . . . . . . . . . . . . . . . . . . . . . . 108 12.3.7 Enrésumé:codeàgénérerparlecompilateur . . . . . . . . . . . . . . . . . . . . . 109 12.4 Compilationdeslangagesobjets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 13 Hiérarchiemémoire 111 13.1 Mémoirecache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 13.1.1 Principesdelocalité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 13.1.2 Scratchpadversuscache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 13.1.3 Cachehitetcachemiss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 13.1.4 Hiérarchiemémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 13.1.5 Constructiond’uncache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 13.1.6 Statistiquesetoptimisationdescaches(*) . . . . . . . . . . . . . . . . . . . . . . . . 114 13.1.7 Entrelecacheetlamémoirephysique(*) . . . . . . . . . . . . . . . . . . . . . . . . 114 13.1.8 Lescachesdansunmulticœuràmémoirepartagée(*) . . . . . . . . . . . . . . . . . 115 13.2 Mémoirevirtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 13.2.1 Vuegénérale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 13.2.2 Avantagesdelamémoirevirtuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 13.2.3 Aspectsarchitecturaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 13.2.4 Dansledétail:tabledespages(*) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 13.2.5 Cached’adressesvirtuellesoucached’adressesphysiques?(*) . . . . . . . . . . . 118 13.3 Unemémoirevirtuelle+cacheminimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 13.3.1 Instructionsspécifiquesàlagestionmémoire . . . . . . . . . . . . . . . . . . . . . . 118 14 Conclusion:verslesystèmed’exploitation(*) 119 14.1 Lerôledel’OS(dupointdevued’unprofd’archi) . . . . . . . . . . . . . . . . . . . . . . . 119 14.2 Multiutilisateuroumultitâche,entoutcasmultiprocessus . . . . . . . . . . . . . . . . . . 120 14.2.1 Partagedutemps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 14.2.2 Partagedesentrées/sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 14.2.3 Partagedesressourcesd’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 III Annexes 123 A Rudimentsdecomplexité 125 A.1 Lesfonctions2netlog n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 2 A.2 Raisonneràlalouche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 B VHDL,unlangagepourlasynthèsedecircuits 127 B.1 Flotdesynthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 B.2 Décrireuncircuitparunlangage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 B.2.1 Descriptiondecircuit̸=programmation . . . . . . . . . . . . . . . . . . . . . . . . 128 B.2.2 Maisaufait,quelleestlasémantiqued’uncircuitnumérique? . . . . . . . . . . . . 128 B.2.3 Descriptioncomportementaleoudescriptionstructurelle . . . . . . . . . . . . . . . 128 B.2.4 VHDLsynthéthisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 B.3 LelangageVHDLparl’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 B.3.1 Entités,architecturesetcomposants . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 B.3.2 Variables,paramètres,signauxetports . . . . . . . . . . . . . . . . . . . . . . . . . 129 TABLEDESMATIÈRES 7 B.3.3 Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 B.3.4 Typesdebase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 B.3.5 Concurrentstatement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 B.3.6 Processes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 B.3.7 Générationdecircuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 C Anatomied’unUnix 137 C.1 Appelssystèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 C.2 Processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 C.3 Signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 C.4 Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 C.5 Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 D Systèmesdefichiers 141 D.1 L’abstractiondufichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 D.2 Implémentationd’unsystèmedefichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 D.2.1 Allocationcontigue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 D.2.2 OrganisationenFAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 D.2.3 I-nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 D.2.4 Tailledesblocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 D.2.5 Gestiondesblocslibres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 D.3 Cohérenceetfiabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 D.4 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 D.5 Cequejezappe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 E Leréseau 145 E.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 E.1.1 Besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 E.1.2 Architectureglobale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 E.1.3 Enrésumé:lesdéfuntescouchesOSI . . . . . . . . . . . . . . . . . . . . . . . . . . 146 E.2 Lescouchesdel’internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 E.2.1 IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 E.2.2 Routage(commutationdepaquets) . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 E.2.3 UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 E.2.4 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 (*)àpeinesurvoléencours,l’examenneporterapasdessus,maisjevousencourageàlelire. 8 TABLEDESMATIÈRES Chapitre 1 Introduction L’informatiquec’estlasciencedutraitementdel’information. Unordinateurestunemachineuniverselledetraitementdel’information.Universelleveutdire:quipeut réalisertoutetransformationd’informationréalisable1 Cecoursvavousapprendrecequ’estunordinateuretcommentonleconstruit. 1.1 Des livres sérieux, parce que ce poly, bon. LebouquinderéférencedesupportdececoursestComputerOrganization&Design,thehardware/- softwareinterface,dePattersonetHennessy(quionteuleprixTuringen2017).Auxdernièresnouvelles ilsensontàla5èmeédition,etderrièreilyadeséditionspourdifférentsprocesseurs.Celuiàlamode c’estlaversionRISC-V(sortien2018). Desmêmesauteursmaisdansledésordre,ComputerArchitecture:AQuantitativeApproach,6ème édition(pourunecertainevaleurde6)estplusavancé:ilparledel’optimisationdesparamètresd’un processeur.Ilyaeudestraductionsenfrancaisdevieilleséditions.Attention,celivreétaitbiendansses premièreséditions,puisilagrossi,estdevenuillisible,enfinils’estallégéduprécédentetestredevenu lisible–maispointu. Plusvieux,maistrèsbien,ilyaaussiStructuredComputerOrganization,parAndrewTanenbaum, quijecroiss’estarrêtéen2005àla5èmeédition.IlexisteenfrançaisaussisousletitreArchitecturede l’Ordinateur. IlyaaussiComputerArchitectureandOrganisationdeMurdoccaetHeuring,ainsiqueComputer OrganizationandArchitecturedeWilliamStallings(11èmeéditionen2019,notrerecord),tousdeux trèsbien,d’ailleursilsontlemêmetitre. Parenthèseculturelle Lemot“Organisation”danslestitresdebouquinsci-dessusdécritlecommentde laconstructiond’unordi.Lemot“Architecture”décritlequoi,saufchezHennessyetPattersonquiutilisent lemot“Design”.Page73onretrouveralemotArchitectureaveccesensprécisdansletermeInstructionSet Architecture. Cettenuanceestlourdementexpliquéedanslespremièrespagesdes3bouquinsci-dessusquiontcommetitre “ComputerXandY”.Malheureusement,votreprofatendanceàutiliserleterme“Architecture”àlafoispour ComputerArchitectureetComputerOrganization.Iln’estpasleseul. 1. Ilexistedescalculsnonréalisables,etdescalculsnonréalisablesentempsraisonnable.C’estpasquecen’estpasimportant, maisonnes’yintéressepasdanscecours. 9 10 CHAPITRE1. INTRODUCTION 1.2 Historique du calcul mécanique néolithique Invention du système de numération unaire, de l’addition et de la soustraction (des moutons).Carenlatin,calculusc’estunpetitcaillou. antiquité Systèmesdenumérationplusévolués: systèmesalphabétiques (Égypte,Grèce,Chine): chaquesymboleaunevaleurnumériquefixeetindépendantedesaposition.Despiècesde monnaie,quoi.Leschiffresromainssontunmélangedeunaireetd’alphabétique. systèmesàposition (Babylone,Inde,Mayas): c’estlapositionduchiffredanslenombrequidonnesapuissancedelabase. Lesbasesutiliséessontlabase10(Égypte,Inde,Chine),labase20(Mayas),labase60(Sumer, Babylone),... Cesinventionssontguidéesparlanécessitédefairedescalculs Essayezdoncdedécrirel’algodemultiplicationenchiffresromains... Parcontrelabase60c’est bienpratique,pourquoi? ≈-1000 Inventionducalculateurdepoche(l’abaqueouboulier)enChine. +1202 Legénialsystèmedenumérationindo-arabearriveenEuropeparl’Espagne. 1623 Sir Francis Bacon (Angleterre) décrit le codage des nombres dans le système binaire qu’il a inventédanssajeunesse. 1623 WilhelmSchickard(Tübingen)inventelaroueàchiffresquipermetdepropagerlesretenues. 1624 Ilconstruitlapremièrecalculette“occidentale” 1645 BlaisePascalenfabriqueunemieuxquipeutpropagerlesretenuessurlesgrandsnombres. 1672 GottfriedWilhelmLeibnizconstruitunemachineàcalculer4opérations 1679 Leibnizencoredéveloppel’arithmétiquebinaire(DeProgressioneDyadica)maissansl’idéeque celapourraitserviràquelquechose. 1728 Premièreutilisationconnuedescartesperforées(Falcon?) 1741 JacquesdeVaucansoninventelamémoiredeprogrammedanslecontextedesmétiersàtisser.Il utilisedesrouleauxdefer-blancperforés. 1792 ClaudeChappeestleprécurseurdelacouverture5GentapissantlaFranced’antennes-relais utiliséespourlestélécommunicationssansfil. 1808 JosephMarieJacquardutiliseducartonperforé,c’estmoinscherquelefer-blanc. Surtout,ilestLyonnais. 1822 CharlesBabbageselancedanssadifferenceengine,quisertàcalculerdespolynômes. 1833 Karl Friedrich Gauß et Wilhelm Weber, à Göttingen, sont les précurseurs de l’internet en s’envoyantàdistancesurunfilélectriquedutextecodéparungenredecodeMorse. 1833 Babbagelaissetombercarilaunemeilleuridée,l’analyticalengine,programmableparcartes perforées,inconstruisibleaveclesmoyensdel’époque. 1843 AdaLovelaceinvente(pourlamachinedeBabbage)lelangagedeprogrammation.Parailleurs elle suggère que de telles machines peuvent être utilisées aussi pour manipuler du texte ou composerdelamusique.Onpeutdoncaffirmerqu’elleestlaprécurseuseàlafoisdeWordetde lamusiquetechno. 1854 GeorgesBoole(Angleterre)metenplacelalogiquemathématiquedésormaisditebooléenne. 1854 ChristopherL.Sholes(USA):premièremachineàécrireutilisable. 1928 Ackermannmontrequ’ilyadesfonctionsentièresquinepeuventêtrecalculéesparunnombre finideboucles(alorsqu’onn’apasencoreinventélaboucle). 1900-1935 Développementsenélectronique:tubecathodique,tubeàvide3électrodes,enregistrement sursupportmagnétique. 1936 Thèsed’AlanM.Turingsurunemachineabstraiteuniverselle.Débutdelathéoriedelacalcula- bilité. 1936 KonradZuse(Allemagne)construitlepremiercalculateurbinaire(Z1:mécanique,Z2:àrelais) 1937 JohnV.Atanasoff(USA)al’idéed’utiliserlebinairepourdescalculateurs.
Description: