ASC-Curs01

26
Arhitectura Sistemelor de Calcul – Curs 1 Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoare www.acs.pub.ro curs.cs.pub.ro

Transcript of ASC-Curs01

  • Arhitectura Sistemelor de Calcul Curs 1Universitatea Politehnica Bucuresti Facultatea de Automatica si Calculatoarewww.acs.pub.rocurs.cs.pub.ro

    *

    CuprinsIntroducere & Sumar al CursuluiBibliografieMotivatieUn pic de recapitulare (si structurare) a unor lucruri cunoscute:Masina von Neumann elemente de bazaUALUCmdMemoriaSubsistemul I/E

    *

    Notarea la SSCNotarea5 puncte laborator5 puncte examenLaborator4p = pentru 5 teme (0.8 puncte pe fiecare tema)1p = activitate la laborator (prezenta + IC)1p = tema de bonusExamen4p = teorie1p = problema

    *

    Un scurt sumar al cursuluiIntro & RecapitulareNivelul structural de descriere a sitemelor numerice PMS (Processor Memory Switches)Ierarhia de memorii, localitatea datelor, cacheComutatoare ierarhice & neierarhiceStructuri de calcul cu prelucrare paralela taxonomiiConcurenta vs. ParalelismStructura SIMD: Set de instructiuniOrganizarea datelorIntercalarea perfecta si conectarea inversa

    *

    Un scurt sumar al cursului (2)Masina Blitzen, Arhitectura CellArhitecturi MIMD CaracteristiciArhitectura Cm*Comunicarea intra- si inter-clusterInterconectarea in sisteme cu resurse multiple permutari elementareRetele de comutareIerarhiceDeltaPerformantele retelelorStil de programare, debugging, profiling, optimizareTop 500, Benchamrking & the current Top 10

    *

    BibliografieStructura si Arhitectura Sistemelor Numerice; T. Moisa, N. Tapus 1999Introduction to Parallel Computing: Design & Analysis of Algorithms; V. Kumar, A. Grama, A. Gupta, G. Karypis; Addison Wesley; 2nd edition 2003The Sourcebook of Parallel Computing; J. Dongarra, I. Foster, W. Grapp, K. Kennedy; Morgan Kaufmann 2002Computer Architecture: A Quantitative Approach; J. Hennesy, D.A. Patterson; Morgan Kaufmann; 3rd Edition 2002Advanced Computer Architecture: Parallelism, Scalability, Programmability; K. Hwang; McGraw-Hill 1992Parallel Computer Architecture: A Hardware/Software Approach; D.Culler, J.P. Singh, A. Gupta; Morgan Kaufmann 1998Introduction to Computing Systems: From bits & gates to C & beyond; Yale N. Patt, Sanjay J. Patel; McGraw-Hill 2003.www.top500.org

    *

    MotivatieA first course in Computing for ALL Engineering Students Yale Patt, The University of Texas at Austin (USA)Ce este un computer pentru un inginer (necalculatorist)? Un instrument pentru a rezolva probleme (Matlab)Prelucrarea algoritmilorPrelucrarea numerelorUn procesor ce controleaza un sistem (avion, fabrica, fluxul traficului, monitor de inima)Senzori/IntrariActuatori/IesiriFunctiiStariYale Patt, U of T at Austin

    *

    Educatia inginereascaCe trebuie sa stie un inginer?Sa foloseasca unelteleSa proiecteze si sa dezvolte/realizeze sistemulPentru aceasta trebuie sa invete:Cum functioneaza calculatoareleCum sunt reprezentate numereleCum functioneaza un algoritm pe un computerCum se ajunge de la senzori/intrari prin programe la actuatori/iesiriCeea ce nu este (neaparat) necesar in (acest) curs:Excel, Word, Web browsing, Invatare pe de rostYale Patt, U of T at Austin

    *

    Ingineri vs. ProblemeProblem solving is programming Dr. Nick Tredennick (Microprocessor Report, 3 Mai 2004)Inginerii au rezolvat mereu probleme asta este treaba lor!Inginerii NU descriu problemele lor unor matematicieni, si asteapta de la acestia o ecuatie care sa specifice problemaSe asteapta ca inginerii sa poata sa descrie singuri problemele lor in mod matematicIn cazurile in care se apeleaza la serviciile unui matematician, trebuie sa ne asiguram ca dialogul este coerent si util ambii utilizeaza un limbaj comun!Yale Patt, U of T at Austin

    *

    Ingineri vs. ProgramatoriProblemele de astazi sunt in mare majoritate rezolvate de programePutem sa incredintam rezolvarea problemei unui om care nu stie nimic despre tehnologia utilizata in rezolvarea problemei?Trebuie sa ne asteptam ca inginerul sa poata descrie problema in mod algoritmic?In cazul in care apelam la serviciile unui programator trebuie sa ne asiguram ca exista un dialog coerent si util intre inginer si programator?Yale Patt, U of T at Austin

    *

    Intro in ComputingDe ce este acesta un subiect esential pentru TOTI inginerii si necesita mai mult decat o prezentare punctuala a unor tehnici de programare?Competente de baza fizica/analiza/electronicaUtilizeaza instrumentul si proiecteaza procesorul ce-l vei folosiEngineering is about DesignStudentii pot intelege mai bine lucrurile intr-o abordare bottom-upEngineering is about Tradeoffs (Totul se plateste)Sunt multe exemple in programare: iterativ vs. recursivEngineering is about State exemple multiple in HW si SWNecesitatea unei activitati creative pentru studentiStudentii programeaza de la 0; depaneaza si ruleaza programeInginerii doresc sisteme deterministiceTotul trebuie sa functioneze corectYale Patt, U of T at Austin

    *

    Programarea in Limbajul XDe ce aceasta abordare e gresita?Abordarea este aproape totdeauna top-downSe ajunge la memorare in loc de intelegereEfectele memorariiStudents dont ever get it!Daca nu au memorat tot, nu realizeaza greselile pe care le facCookbook educationNu ofera nici o intuitie asupra uneltele importanteNu ofera nici o intuitie in modul de interactionare intre procesor si restul sistemuluiNu ofera nici o intuitie asupra tradeoff-urilor si starilor sistemului

    Yale Patt, U of T at Austin

    *

    Ce este important?Design-ul trebuie sa fie Top-downEducatia/invatarea trebuie sa fie Bottom-up pentru a facilita intelegereaAbstractizarea este vitala, dar nu Bottom-up, ci motivata Bottom-upPentru a proiecta bine un sistem, mai intai intelege componentele acestuia!Mergi de la concret catre abstractTraverseaza si intelege nivelele intermediareMemorarea NU este intelgereStudentii lucreaza mai bine in grupuriYale Patt, U of T at Austin

    *

    Sistem de CalculFormat din mai multe blocuri functionale:Elemente de procesare PElemente de memorare MElemente de interconectare de tip magistrala LUnitati de comanda KOperatori de date DSwitch-uri de interconectare STerminale - T

    *

    Masina von NeumannJohn von Neumann (1903 1957)Structura cu acces secventialCPUMemorie (Instructiuni & Date)Ex: EDVAC (1945) binarThere's no sense in being precise when you don't even know what you're talking about. In mathematics you don't understand things. You just get used to them. It would appear that we have reached the limits of what it is possible to achieve with computer technology, although one should be careful with such statements, as they tend to sound pretty silly in 5 years. (Said in 1949)

    *

    Arhitectura masinii von NeumannMUCmdUALRGInterfataIEPIInterfataOEPOFlux DateFlux Cmd/StariUCPUCMBSC

    *

    Aplicatii

    Lb. Nivel Inalt

    Asamblor

    SO

    BIOS

    Componentele ArhitecturiiUCP = {RG, UAL, UCmd} = Unitatea Centrala de PrelucrareUC = {UCP, M} = Unitatea CentralaMB = {UC, I/E} = Masina de BazaSC = {MB, EP, Software de Baza} = Sistem de CalculMBSoftware de Baza

    *

    Evolutia Elementelor din MB UALUAL: in virgula fixa si virgula mobilaFormatul general al instructiunilor

    Evolutia spre SIMD (masini vectoriale)UAL multipleFiecare element are o prelucrare dedicataRezultatele sunt predate etajului adiacentOp UAL: +, -, *, /, ^, %, Shiftari, etcIn timp UAL-ul s-a extins catre coprocesorul matematicUALOp1Op2Rez

    *

    Unitatea de Comanda UCmdRealizeaza citirea, interpretarea si executia instructiunilor masinaLegata de: Setul de instructiuniIntructiuni Universale; Ciclu variabilRISC cu ciclu fixComplex CISC emularea unei masini intermediareCodificarea instructiunilor0 adrese1 adresa2 adrese3 adreseModurile de adresare peste 12 la ora actuala CodOp Adr Op1 Adr Op2CodOp Adr Op1CodOp

    *

    MemoriaOraganizare fizicaPermanente: ROM/PROM/EPROM/EEPROM/FLASHVolatile: RAM/SRAM (statice)/ DRAM (dinamice)Organizare logicaIerarhica pe 3 niveleRapida dar cu capacitate limitata = CacheDe lucru, mai lenta, cu capacitate mai mare = RAMMemorii virtuale lente dar cu capacitate foarte mareFunctionala: RAM LIFORAM FIFO

    *

    Subsistemul I/EAsigura transferul datelor intre UC si mediul externInterfetele I/E asiguraO adaptare electrica intre EP si UCPSincronizarea temporala intre EP si UCP (ordine de marime diferenta) printr-un cuvant de stareTransfer de date intre EP si UC:Transfer programatAcces direct la memorieCanal de intrare/iesireCalculator de intrare/iesire (Front End Computer)

    *

    Transfer ProgramatUCP-ul se ocupa de fiecare caracter in parteDriver-ul se ocupa de transferul datelor I/OSincronizarea se poate facePrin citirea ciclica a starii (busy waiting)UCP asteapta dupa EP si ajunge sa lucreze la viteza EP-uluiDriver-ul citeste si intrerupe cuvintele de date/stare/comandaPrin intreruperiSe dau ordine EP si se continua prelucrarileCand se termina se genereaza o intrerupereUCP-ul nu se adapteaza la viteza EP-uluiMUCPInterfata I/EEPDriverSistem de Intreruperi

    *

    Acces Direct la Memorie prin DMAAsigura transferul de date intre EP si M fara interventia UCPDialogul intre UCP si DMA are loc doar la initiere & incheiereDialogul se face prin transfer programat (Intreruperi)Initiere: UCP DMA: adrese date, sensul (R/W), adresa EPLa orice eroare DMA cheama UCP-ulUCP-ul nu poate initia un alt transfer pana nu s-a incheiat cel curentArbitrarea conflictului de acces la M al UCP/DMA se face prinFurt de cicluRafalaMUCPInterfata I/EEPDMASI

    *

    Canal de I/ECanalul I/E e un procesor specializat ce asigura transferul intre EP si M fara interventia UCPDialogul UCP EP se face printr-un program de canal (din M se da doar adresa de inceput a programului)UCP poate inlantui mai multe programe de canal = mai multe transferuri de blocuri de date (mai bine ca la DMA)Canalul aduce informatia necesara transferului in registrele proprii prin DMA (acces direct)Canalul reincearca transferul in caz de eroareMUCPInterfata I/EEPCanal I/ESIProgram de Canal

    *

    Calculator de I/EIn cazul calculatorului de I/E, SC poate avea toate facilitatile de mai sus:DMACanal I/ETransfer programatAcest mecanism este util pentru a nu irosi timpul unui procesor (sau calculator foarte puternicOfera datele rapid si eficient pentru prelucrareEste folosit des in sistemele multiprocesorSCCalculator I/EUtilizatorUtilizatorUtilizator

    *

    NextQ & A?Next time:Nivelul Structural de Descriere al Sistemelor Numerice PMS (Processor Memory Switches)ProcesoareMemorieComutatoareLegaturiUnitati de ComandaProcesoare de I/EOperator de dateTerminalComutatoare Ierarhice

    ****Obiectul de studiu: organizarea si interconectarea componentelor sistemelor de calcul*Cateva cuvinte despre Grid: resurse (de calcul) puse in comun pentru a rezolva probleme de interes generalComputerul este util sa fie transparent pt utilizator: el ofera resurse. Inginerii fac acest lucru posibil prin infrastructura & programare

    ***Operatiile sunt intre Registrii-Registii; Registrii-Memorii sau Memorii-Registrii;NU intre Memorii-Memorii!**- Desen pe tabla cu UCmd (una singura) pentru mai multe UAL-uri cu mai multe Memorii**EPROM: capacitati pe care le incarcam sau nu peste o anumita limitaEEPROM: operatia de stergere se face tot electricFLASH: pastreaza continutul si la oprirea tensiunii; nu trebuie nimic special pt a o programa si sterge; e insa f scumpa (50$/2K)DRAM: bazata pe o capacitate care in timp se descarca -> trebuie refresh pt a reincarca capacitatile cu energie (la fiecare 200ns pt 16Kb) -> nu faci mem liniara! Cu RAS/CAS se face refresh pe toata linia -> 15micros; La mem mari (16Mb) pt R/W organizare matriceala, si pt refresh o organizare dreptunghiulara (desen simplu)Discutia despre ierarhiile de memorii si felul in care diferentele de viteza au un impact asupra modului de programare***Furt de ciclu: cate un ciclu din cand in candRafala: CPU CPU CPU, DMA DMA DMADMA-ul are prioritate (e implementat HW)**In HPC un computer este intotdeauna folosit ca front-end

    *