Microarhitecturi de procesare a informatiei

  • Published on
    11-Feb-2017

  • View
    223

  • Download
    6

Embed Size (px)

Transcript

<ul><li><p>PREFATA</p><p>Aceasta carte se constituie ntr-un efort de prezentare a unor aspecteaferente vastei problematici a microarhitecturilor de procesare ainformatiei, din cel putin trei puncte de vedere "intersectate": formativ,informativ si aplicativ. Consideram ca necesitatea unei asemenea carti esteimediata n contextul societatii informationale spre care ne ndreptam. nparticular pentru Romnia, cu att mai mult este de dorit o ntelegereprofunda a faptului ca - printre altele - o viata mai buna este posibila numaiprintr-o maturizare a domeniului "electronicii si calculatoarelor" si, nconsecinta, a cresterii complexitatii proiectelor ingineresti autohtone.Acesta este si mesajul esential al cartii noastre. Subliniem acest lucrupentru ca, din pacate, mai exista unele opinii care considera ca "aplicatiilehardware" performante nu mai sunt posibile n Romnia de azi, uitnd ca,daca singurele "output - uri" vizibile utilizatorului aplicatiei suntreprezentate de monitorul video sau de imprimanta, complexitateainginereasca este fatalmente extrem de limitata si ca urmare, beneficiulsocial, la fel. Iar apoi, nu este rau sa fie clar pentru toata lumea, faptul canici un algoritm sau program nu ruleaza prin eforturile magice ale vreunuidracusor fantomatic, chiar daca, vrnd - nevrnd, nociva disjunctie"hardware-software" ("tehnologie-concept") tine, cteodata, locul naturaleifuziuni. Ca si contra-balansare la acest gen de "opinii" pesimiste, subliniemfaptul ca tehnologiiile de proiectare automata n microelectronica ("EDATechniques") cu performante practic sincronizate cu nivelul mondial, suntaccesibile acum pe scara larga si la noi. Ele se constituie n suportultehnologic principal al arhitecturilor si aplicatiilor dedicate ("embedded"),att de necesare si diverse azi, cnd vorbim de informatica si electronica"domestica", personalizarea aplicatiilor, control automat si robotica etc.</p><p>Pe scurt, lucrarea este structurata astfel. n capitolul 1 se prezintaelementele esentiale ale arhitecturii microcontrolerelor - instrumenteimportante ale dezvoltarii de arhitecturi si aplicatii dedicate. Capitolele 2 si3 fac o trecere n revista a principalelor caracteristici hardware-softwareale actualei generatii de microprocesoare, de la ierarhizarea sistemului dememorie pna la optimizarea de cod. Capitolul 4 prezinta un studiu de cazaxat pe moderna arhitectura HSA (Hatfield Superscalar Architecture). Seprezinta aici, n premiera la noi n tara credem noi, principiile moderne aleoptimizarii statice de cod, pe baza unor exemple sugestive. La fel, capitolul</p></li><li><p>VI Microarhitecturi de procesare a informatiei</p><p>5 prezinta succint noua arhitectura Intel pe 64 de biti IA-64, al carui primprocesor comercial se va numi "Itanium". Capitolul 6 este unul "de forta",poate cel mai drag autorilor, n care, pe baza unei extrem de laborioasecercetari si cugetari bibliografice, s-a ncearcat predictionareacaracteristicilor hard-soft ale urmatoarei generatii arhitecturale demicroprocesoare comerciale. Marturisim acum ca, scriindu-l, ne-am"nfierbntat" copios, ncntati de rolul nostru temporar de prezicatori.Capitolul urmator, al 7-lea, are drept scop justificarea faptului caarhitectura calculatoarelor se constituie ntr-un domeniu viu si fascinant,posibil a fi investigat de fiecare dintre noi. Va recomandam sa-l cititi si apoisa ncercati sa va construiti propriul dvs. simulator, dedicat unei anumiteprobleme. n capitolul 8 am prezentat cteva aspecte privind arhitecturasistemelor multiprocesor, incluznd modelele de performanta si problemelede coerenta si sincronizare implicate. Capitolele 9 si 10 sunt dedicatepropunerii si rezolvarii de probleme. Consideram ca numai prinsolutionarea sistematica de probleme diverse si fecunde se poate aprofundao asemenea disciplina tehnica de vrf, prin excelenta aplicativa.</p><p>Modernitatea si caracterul pragmatic al lucrarii sunt ntarite prinacompanierea textului scris de un compact disc care contine aplicatii utile,servind ca suport concret pentru cei care vor dori sa treaca dincolo de osimpla informare. Pe CD-ul atasat se afla la dispozitia cititorului o multimede instrumente software originale, dezvoltate n mare parte de catre grupulnostru de cercetare, constituind tot attea posibilitati de investigareinteractiva a microarhitecturilor avansate. Asteptam cu interes sugestiile siobservatiile cititorilor, pentru care le multumim anticipat, pe adreselenoastre de e-mail: vintan@jupiter.sibiu.ro si aflorea@vectra.sibiu.ro.</p><p>Aceasta lucrare nu ar fi putut sa apara fara eforturile admirabile aled-lui prof.dr.ing. Gh. Toacse - initiatorului si contractorul programului decooperare academica TEMPUS JEP AC -13559/98 "RESUME", prin cares-a finantat aparitia cartii. i multumim domnului profesor si pe aceastacale pentru sprijinul acordat precum si pentru faptul de a ne fi transmis cteceva din viziunea sa profesionala care intergreaza att de firesc tehnologiacu arhitectura. Multumirile autorilor se ndreapta si asupra colegilor dinCatedra de Calculatoare a Facultatii de Inginerie din Sibiu, pentrumicroclimatul profesional propice scrierii acestei carti. n final ntreaganoastra gratitudine se cuvine familiilor noastre, pentru sprijinul generos pecare ni l-au acordat dintotdeauna. Le promitem ca pe viitorul apropiat vomncerca sa ne angajam mai putin n asemenea "proiecte" si le vom acordamai mult timp, spre bucuria noastra si a lor.</p><p>Sibiu, decembrie 2000 Autorii</p></li><li><p>CUPRINS</p><p>1. ARHITECTURA MICROCONTROLERELOR....................................................... 1</p><p>1.1. INTRODUCERE N PROBLEMATICA................................................................ 11.2. ARHITECTURA FAMILIEI 80C51....................................................................... 2</p><p>1.2.1. ORGANIZAREA MEMORIEI........................................................................... 21.2.2. MODURILE DE ADRESARE........................................................................... 91.2.3. TIPURI DE INSTRUCTIUNI ......................................................................... 101.2.4. ARHITECTURA INTERNA............................................................................ 17</p><p>1.3. STRUCTURA INTERFETELOR DE INTRARE / IESIRE................................... 271.4. MAGISTRALA DE INTERCONECTARE I2C ................................................. 341.5. MAGISTRALA ACCESS.BUS............................................................................ 421.6. PLACA DE DEZVOLTARE DB 51.................................................................. 48</p><p>2. ARHITECTURA MICROPROCESOARELOR ACTUALE.................................. 51</p><p>2.1. MODELUL DE MICROPROCESOR SCALAR RISC ......................................... 512.2. MICROARHITECTURI CU EXECUTII MULTIPLE ALE INSTRUCTIUNILOR572.3. OPTIMIZAREA PROGRAMELOR OBIECT. TEHNICI MODERNE DEPROCESARE............................................................................................................. 63</p><p>3. ARHITECTURA SISTEMULUI IERARHIZAT DE MEMORIE.......................... 67</p><p>3.1. MEMORII CACHE ............................................................................................. 673.2. MEMORIA VIRTUALA ..................................................................................... 90</p><p>4. O MICROARHITECTURA MODERNA REPREZENTATIVA: HSA.................. 99</p><p>4.1. INTRODUCERE ................................................................................................. 994.2. ARHITECTURA HSA. COMPONENTE PRINCIPALE. ................................... 1024.3. OPTIMIZAREA STATICA A PROGRAMELOR .............................................. 114</p><p>4.3.1. INTRODUCERE ......................................................................................... 1144.3.2. HSS N CONTEXTUL ACTUAL................................................................... 1154.3.3. MECANISMUL DE REORGANIZARE SI OPTIMIZARE.............................. 118</p><p>5. PROCESORUL IA-64: NTRE EVOLUTIE SI REVOLUTIE............................. 135</p><p>6. ARHITECTURA MICROPROCESOARELOR, NCOTRO ? ............................ 147</p><p>7. SIMULAREA UNEI MICROARHITECTURI AVANSATE................................ 181</p><p>7.1. INTRODUCERE ............................................................................................... 1817.2. PRINCIPIILE IMPLEMENTARII SOFTWARE ................................................ 184</p><p>7.2.1. INTERFATA CU UTILIZATORUL. CREAREA RESURSELOR..................... 1867.2.2. INTERFATA CU UTILIZATORUL. NUCLEUL FUNCTIONAL ALPROGRAMULUI. ................................................................................................. 195</p><p>8. ARHITECTURA SISTEMELOR MULTIPROCESOR ....................................... 205</p><p>8.1. DEFINIRI. CLASIFICARI................................................................................. 2058.2. ARHITECTURI CONSACRATE....................................................................... 2088.3. GRANULARITATE SI COMUNICARE ........................................................... 214</p></li><li><p>VIII Microarhitecturi de procesare a informatiei</p><p>8.4. MODELE ANALITICE DE ESTIMARE A PERFORMANTEI.......................... 2178.5. ARHITECTURA SISTEMULUI DE MEMORIE............................................... 222</p><p>8.5.1. DEFINIREA PROBLEMEI .......................................................................... 2228.5.2. PROTOCOALE DE ASIGURARE A COERENTEI CACHE-URILOR ........... 224</p><p>8.6. SINCRONIZAREA PROCESELOR .................................................................. 2288.6.1. ATOMIZARI SI SINCRONIZARI.................................................................. 231</p><p>8.7. CONSISTENTA VARIABILELOR PARTAJATE............................................. 2358.8. METODE DE INTERCONECTARE LA MAGISTRALE .................................. 2378.9. TRANSPUTERE N SMM ................................................................................ 2448.10. ELEMENTE PRIVIND IMPLEMENTAREA SISTEMULUI DE OPERARE... 251</p><p>9. PROBLEME PROPUSE SPRE REZOLVARE..................................................... 253</p><p>10. INDICATII DE SOLUTIONARE ........................................................................ 275</p><p>11. CE GASITI PE CD ? ............................................................................................ 299</p><p>11.1. SIMULAREA UNOR ARHITECTURI CU PARALELISM LA NIVELULINSTRUCTIUNII..................................................................................................... 29911.2. PROGRAME DIVERSE .................................................................................. 30511.3. DOCUMENTE ................................................................................................ 306</p><p>BIBLIOGRAFIE ........................................................................................................ 307</p></li><li><p>1. ARHITECTURA MICROCONTROLERELOR</p><p>1.1. INTRODUCERE N PROBLEMATICA</p><p>Capitolul de fata reprezinta o descriere a familiei de microcontrollerepe 8 biti, bazate pe arhitectura 80C51, realizate de firma PhilipsSemiconductors, precum si a altor componente furnizate de catre respectivulproducator. Un microcontroller este un microprocesor destinat n generalcontrolului unor procese industriale care contine memorii si diverse porturide I/O integrate pe acelasi cip. n continuare se vor prezenta modurile deadresare, setul de instructiuni, partajarea memoriei s.a. n cadrul familiei demicrocontrolle 80C51.</p><p>Microcontrollere derivate contin si o interfata seriala I2C (magistralade interconectare a circuitelor integrate), care permite conectarea cu usurintala peste alte 100 de componente integrate, sporind capacitatea sifunctionalitatea microsistemului realizat. Pentru aplicatii industriale siautomate, microcontrollerele sunt nsotite de alta o magistrala seriala decontrol (Control Area Network - CAN).</p><p>Familia de microcontrollere pe 16 biti, 90CXXX se bazeaza pearhitectura Motorola 68000. n timp ce microcontrollerele sunt pe 16 biti nexterior, n interior unitatea centrala a arhitecturii 68000 este pe 32 de biti.Acest fapt confera utilizatorului o putere de procesare mai mare, nconditiile cresterii necesitatilor de proiectare, trecnd de la microcontrollerepe 8 biti la cele pe 16 biti. Microcontrollerele pe 16 biti ai firmei PhilipsSemiconductors sunt compatibile software cu codul procesorului Motorola68000.</p></li><li><p>2 Microarhitecturi de procesare a informatiei</p><p>1.2. ARHITECTURA FAMILIEI 80C51</p><p>1.2.1. ORGANIZAREA MEMORIEI</p><p>Figura 1.1. Schema bloc a microprocesoarelor 80C51</p><p>Toate procesoarele 80C51 au spatii de adrese separate pentruinstructiuni si date implementnd deci o arhitectura de tip Harvard amemoriei (vezi figura 1.1). Accesarea zonei de date se face pe o magistralade 8 biti, data citita putnd fi rapid memorata si manipulata de catre registriipe 8 biti ai CPU. Memoria program este de tip ROM sau EPROM si poateavea capacitati de pna la 64ko. La dispozitivele 80C51, cei mai putinsemnificativi 4ko de memorie sunt implementati n cip. Memoria de dateeste de tip RAM. Cei mai putin semnificativi 128 octeti ai memoriei de datesunt implantati n cip, restul de pna la 64ko regasindu-se extern pe placa.</p><p>Memoria programFigura 1.2 ilustreaza harta memoriei program - partea cea mai putin</p><p>semnificativa. Dupa resetarea sistemului, CPU (unitatea centrala deprocesare) ncepe executia de la adresa 0000H, n conformitate cuinitializarea PC-ului. Primii trei octeti ai Memoriei Program pot codifica deexemplu, o instructiune de salt neconditionat (JUMP )</p></li><li><p>reprezentnd prima instructiune care se executa imediat dupa initializare. Defapt are loc un salt la adresa de nceput a programului monitor programce realizeaza verificarea configuratiei hardware a microsistemului, teste dememorie, interfata cu utilizatorul, etc.</p><p>Fiecarei ntreruperi i este asignata o locatie fixa n memoria program.ntreruperea determina CPU sa execute salt la locatia respectiva, undencepe executia rutinei de serviciu (tratare a ntreruperii). Zona de programaferenta rutinelor de tratare a ntreruperii se mparte n intervale de 8 octeti:0003H - pentru ntreruperea externa 0, 000BH - pentru circuitul Timer 0(numarator), 0013H - pentru ntreruperea externa 1, 001BH - pentrucircuitul Timer 1 etc. Daca o rutina de serviciu este suficient de scurta, eapoate fi inclusa n interiorul unui astfel de interval de 8 octeti. Rutinele mailungi de opt octeti vor folosi n general o instructiune de salt codificata pemaximum trei octeti pentru a nu altera zona aferenta unei alte ntreruperiactive.</p><p>Figura 1.2. Memoria program la procesoarele 80C51</p><p>Cei mai semnificativi 4 ko ai memoriei program pot fi implementatifie n cipul ROM intern fie n memoria ROM externa. Selectia se face princonectarea pinului EA la tensiunea de alimentare (Vcc) sau la masa (Vss).Daca EA este legat la Vcc, accesele de citire din zona de memorie programcuprinsa ntre 0000H si 0FFFH sunt directionate spre memoria ROM intern implementata. Accesele de citire din zona de memorie program de laadresa 1000H la FFFFH sunt ndreptate spre memoria ROM externa. Daca</p></li><li><p>4 Microarhitecturi de procesare a informatiei</p><p>EA se conecteaza la masa atunci toat...</p></li></ul>