+ All Categories
Home > Documents > MIU_2011_2

MIU_2011_2

Date post: 07-Jul-2015
Category:
Upload: mmihmmih2003
View: 195 times
Download: 0 times
Share this document with a friend

of 242

Transcript

ARHITECTURAMICROPROCESOARELOR ARHITECTURAMICROPROCESOARELORCristianAVRAM [email protected] n arhitectura microprocesoarelor cu explicarea noiunilorprivind :Setul deinstruciuni;Aritmetica n procesor istructuracii dedate;Calea decontrol;Memorie dedateimemorie deprogram;Structurile detip pipeline;Semnalele deinterfaare alemicroprocesorului;Sistemul dentreruperi.Familiarizarea culimbajul deasamblare irealizareaunorprogramesimpleOBIECTIVECURS OBIECTIVECURS3 Unmicroprocesoresteounitatecentraldeprelucrare(UCP)integratntrunsingurchip Esteparteintegrantatutrorcalculatoarelorisistemelordecalculactuale Uncalculator esteomain deprelucrare automat a datelor cefuncioneaz subcontrolul unei listede instruciuni (program)stocate n memoria principal acalculatorului. Uncalculator este ocombinaiederesursefizice(hardware)iprograme(software) Uncalculator conine:UCP+Memorie+I/O Microprocesorulesteentitateafizicmenitsinterpretezeisexecutecomenzileexistentenprogramuldestinatuneiaplicaii.CEESTEUNMICROPROCESOR? CEESTEUNMICROPROCESOR?4 Unsistem decalcul reprezint omain automat destinat prelucrrii informaiilor(n3faze) transformareainformaiei(semnale)ntrunformatcompatibilcuunitateadecalcul; prelucrareainternadatelor; transformareadatelorfurnizatensemnalenecesareaplicaiei. Pentruaasiguraflexibilitateasistemuluidecalculcele3faze vorfiasiguratedeelementediferite:uncalculator+periferice. Organizare calculator: UCP(ci dedateicontrol) Memoria principal Interfee sausistemul deintrareieire (legtura cu dispozitivele externe periferice) Perifericele calculatorului includ Dispozitive deintrare (tastatur,mouse,memorii secundare) Dispozitive deieire (display,difuzoare,memorii secundare, imprimant)ORGANIZAREAUNUISISTEMDECALCUL ORGANIZAREAUNUISISTEMDECALCUL5 Intern,uncalculator prelucreaz maimulte fluxuri deinformaie : datele numerice iinstruciunile programului. Dupmodul deprelucrare al acestor fluxuri informaionale calculatoarele sepotclasifica n: mainidetipSISD (SingleInstructionSingleData) arhitecturisecveniale (vonNeumann,Harvard); arhitecturiparalelecu2saumaimulteuniticentraleceprelucreazsimultanmaimultefluxurideinformaie:mainiSIMD (SingleInstructionMultipleData)iMIMD (MultipleInstructionMultipleData).FLUXURI FLUXURIINFORMA INFORMAf fIONALE IONALE6 Microprocesoarele suntutilizatengeneralpentruaplicaiidenaltperforman deprocesare. SuntutilizatecaUCPpentrucalculatoaredeuzgeneral(GPC) MicroprocesoarelenecesitexternmemorieiinterfeeIO MicroprocesoarelesuntutilizatenPCuri,staiidelucru,servere,undecompatibilitateasoftware,performana,generalitateaiflexibilitateasuntimportante. Microprocesor=FlexibilitateFLUXURI FLUXURIINFORMA INFORMAf fIONALE IONALE Microcontrollerele suntproiectatepentruaseobineodimensiuneredusachipului,micorareacosturiloriincludereadespaiudememorieiIOpechip. Microcontrollerelesuntadeseaspecializatepeaplicaii ndaunaflexibilitii. Unmicrocontrollerconinepeunacelaichip:UCP,Memorie,IO Microcontroller=SpecializareMICROPROCESOARE MICROPROCESOARE8 Dezvoltarearapidndomeniusebazeazpedoucaracteristiciprincipale: dezvoltareatehnologieisemiconductoareutilizatlaconstruciamicroprocesoarelor inovaiinorganizareaiproiectareacalculatoarelor Anii1960 calculatoaremari.Aplicaiiletipiceincludeauprocesridedatenafaceriicalculetiinifice Anii1970 apariia minicalculatorului: laboratoaretiinifice, utilizatori multipli care partajeazresurseledelaterminaleindependente microprocesorul:mbuntirintehnologiacircuitelorintegrate,costredus,produciennumrmare,rspndirenmulteaplicaiidecalculnumeric Generalizarea limbajelor de programare de nivel nalt (HLL) + translatoare a nlturatnevoiacompatibilitiiprogramelorlaniveldecodobiect Creareadesistemedeoperarestandardizate,independentedeproductor,careausczutcosturileiriscuriledeutilizareanoilorarhitecturiSCURTISTORIC SCURTISTORIC9 Anii1980:apariiaarhitecturilorRISC(ReducedInstructionSetComputer). MainileRISCaupermisdezvoltareaparalelismuluilaniveldeinstruciune(iniialprinpipeliningiarapoiprinlansareamultipldeinstruciuni)iutilizareamemoriilorcache. Apariia calculatoarelor desktop construite pe bazde microprocesor (personalcomputers,workstations). Anii1990:rspndirealegturiiInternetiatehnicilorWorldWideWeb dispozitivedecalculportabil(PDA,notebook)electronicdigitaldelargconsumSCURTISTORIC SCURTISTORIC10 1971 Primulmicroprocesorproiectatpentruaplicaiidecontrol(Intel4004,2300tranzistoare). 8biisecvenial:Intel8080(1974),MotorolaMC6800(1974),ZilogZ80(1976) Microcontrollere: P6502(1975bazatpeMC6800,Hobbycomputers:Commodore,Apple,Ataris),Intel8048(1976 familiaIntelMCS48),Intel8051 16bii: Intel8086(1978), MotorolaMC68000(1979) anii80:instructionpipelining,cache 1980 InteliAPX43232bii;1984 MotorolaMC68020,32bii,pipelinecu5etaje;1987 ZilogZ280,16bii;1990 Intel80960 RISC PowerPC604(95),Pentium(94):arhitecturisuperscalare,execuiebazatpemaimulteunitipipelineimaimulteunitiaritmeticeMICROPROCESOARE MICROPROCESOARE11 anii90: 1995 Intel133MHzPentium 1996 IntelPentiumII 1999 IntelPentiumIIIla500MHz RISC Multiprocesoare SoC(SystemonChip) VLIW(verylargeinstructionword)uncompilatorplanificinstruciunile(static) spredeosebiredeplanificareadinamicdelaprocesoarelesuperscalare Dincencemaimultefunciiimplementatehardware:acceleratoaregrafice,extensiideinstruciuniMMX SistemeEmbedded 90%dinmicroprocesoareleprodusenprezent:microcontrollere,DSP,procesoaremedia,procesoaregrafice,procesoaredecomunicaiietc.MICROPROCESOARE MICROPROCESOARE12 Frecvenedeceasmaimaride2GHz Procesoaredeputeremic(aplicaiimobile) Microarhitecturisuperscalare(maimulteinstruciunilansatenparalel) SIMD(SingleInstructionStreamMultipleDataStream):operaiisimilareefectuatenparalelpeseturidiferitededate FunciideprelucrareDSP:MMX,3D,grafic,sunet Nucleeprocesormultiplepeunchip Memoriecachepe23niveluri ............................MICROPROCESOARE MICROPROCESOARE secolulXXI secolulXXI13Piaamicroprocesoarelorsadezvoltatpetreidireciimari: Desktop Exemple:PC,staiidelucru Metrici:laten(graficisistemdeIO) ServerefurnizeazserviciidefiiereicalculExemple:serverWeb,serverbazdedate,serverLAN Metrici:throughput,fiabilitate,scalabilitate SistemeEmbedded(sistemecuprocesornglobat)Exemple:telefoncelular,PDA,cuptorcumicrounde,camervideodigitalMetrici:complexitate,putereredus,latenPiaaembeddedesteceamaimare! ProcesorEmbedded=Unprocesorprogramabilacruiinterfadeprogramarenuesteaccesibilutilizatoruluifinalicarerealizeazunsetrestrnsdefunciunidedicateaplicaieispecifice.MICROPROCESOARE MICROPROCESOARE secolulXXI secolulXXI14OPerformanaunuimicroprocesoredeterminatdecapacitateadeaprelucradate.Cretereacapacitiideprelucrareserealizeazpemaimulteci: Tehnologic densitateadeintegrare vitezadeprelucrareadatelor(frecvenadetact) reducereaputeriiconsumate(controluldimanicalconsumului,scdereafrevenei) vitezaicapacitateamemoriei+nlocuireaHDDcumemoriiexternepesiliciu Arhitectur pipeline ierarhizareamemoriei memoriacache (maimulteniveluridecacheninteriorulchipuluiprocesor) gamadereprezentareinternadatelor arhitecturasetuluisetuluideinstruciuni arhitecturmulticoreiarhitecturiparalele Firmware (softwarencorporat) gestiuneamemoriei mecanismemultitasking memoriavirtualPERFORMAN PERFORMANf fAMICROPROCESOARELOR AMICROPROCESOARELOR15DENSITATEADEINTEGRARE DENSITATEADEINTEGRARE Creterea numrului detranzistoare/chip PentiumIII 7,5milioaneCMOS0,18um PentiumIV 42demilioane procesoare actuale peste 1miliard detranzistoare/chip memorii peste 64512miliarde VitezadeprelucareadatelordepindedevitezadecomutaieatranzistoarelorHMOSdincompunereamicroprocesoarelor Vitezadecomutaieestedirectproporionalculimeaporiitranzistoarelor ncepndcuPentiumIIIseimplementeaztehnologia0,18mcualimentarela1,6Vccceeacepermitedepireabariereide1GHzpentrufrecvenadetact Din2002seimplementeaztehnologia0,13m(LGATE =70nm,HOXID=1,5nmcualimentarela1,3Vcc)folositlamicroprocesoareleactuale Cutoateacestea,estegreusseechivalezecretereanumruluidetranzistoare/chipcucretereaperformaneiprocesoarelorPERFORMAN PERFORMANf fAMICROPROCESOARELOR AMICROPROCESOARELOR16PERFORMAN PERFORMANf fAMICROPROCESOARELOR AMICROPROCESOARELORFRECVEN FRECVENf fADECEAS ADECEAS Cuctsuntmaimulteimpulsuri/secundcuattmaimareestenumruldeoperaiicesepoateexecuta Cuctfrecvenaestemaimarecuattcreteputereaconsumat(comutaie) Cretereafrecveneiimpunedecimijloacededisipareaclduriiprocesorului Procesoaremulticore(maimultenucleecelucreaznparalel) Intelacalculatcscdereacu20%afrecveneipentruunnucleuconducelascderealajumtateaputeriiconsumateidoarla13%pierdereadeperforman Dacsempartsarciniledeprelucrarentre2nucleecelucreazlaofrecvenredusla80%,seobineoperformanmaimarecu73%pentruaceeaiputereconsumat Dispareaclduriiestemaibun(dounodurinlocdeunul) Tendinaactual:oprireacreteriifrecveneideceas+arhitecturimulticore17PERFORMAN PERFORMANf fAMICROPROCESOARELOR AMICROPROCESOARELORPIPELINE PIPELINE Executareainstruciunilorsefacen45faze: citireinstruciune decodificareinstruciune citireoperanddinmemorie(dacesetcazul) fetch execuieinstruciune salvarerezultatenmemorie(dacestecazul) Oarhitecturpipeline presupuneimplementareaunorblocuristructuralecepermitexecuiasimultan,nparalel,atutroracestorfaze Seimplementeazncepndcumicroprocesoareleevoluate(Pentium);la8086execuiasefceapseudosecvenial(douunitifuncionalecepermitaducereainstruciunilordinmemorienavans prefetch) nprezentseutilizeazarhitecturiparaleleimulticore avansate18PERFORMAN PERFORMANf fAMICROPROCESOARELOR AMICROPROCESOARELORMEMORIACACHE MEMORIACACHE Memoriacacheesteozondememoriefoarterapidncaresememoreazinstruciuniidatecucaremicroprocesorulopereaznmodcurent ultimeleinstruciuniexecutate Aceastmemorielucreazfrstrideateptare,nritmulmicroprocesoruluifiinddeaproximativ10orimairapiddectmemoriaRAM Seorganizeazpeniveleierarhice: memoriacachelevel1 esteintegratnchipulprocesorului(aparela80x486,primulprocesorcapabilssuporteinterfeegraficedetipWindows) memoriacachelevel2 externmicroprocesorului,asigurinterfaacumemoriaRAM nprezentsedispunmaimulteniveluridecacheninteriorulprocesorului seimplementeazspaiidiferitedememoriecachepentruinstruciuniidate:Icache iDcache19PERFORMAN PERFORMANf fAMICROPROCESOARELOR AMICROPROCESOARELORREGISTRELEINTERNEALEMICROPROCESORULUI REGISTRELEINTERNEALEMICROPROCESORULUI Gamadereprezentareinternadateloresteuncriteriudecisivnmrireacapacitiideprelucrare Aceastacreteodatcumrirearegistrelorinternealemicroprocesoruluiiamagistraleiinternededate:80x386esteprimulmicroprocesorpe32debii Procesoareactuale:registreimagistralededatepe64debiisaumaimultCOMPLEXITATEASETULUIDEINSTRUC COMPLEXITATEASETULUIDEINSTRUCf fIUNI IUNI CISC(ComplexInstructionSetComputer) RISC(ReducedInstructionSetComputer)20PERFORMAN PERFORMANf fAMICROPROCESOARELOR AMICROPROCESOARELORFIRMWARE FIRMWARE SOFTWARE SOFTWARE NCORPORAT NCORPORAT Oaltdireciepentrucretereacapacitiideprelucrareamicroprocesoarelorestenglobareaderesursealesistemuluideoperaredirectnchip(ctmaimultsoftimplemetatninteriorulmicroprocesorului) Ex: modululdegestiuneamemoriei(MMU) implementareamecanismelormultitasking gestionareamemorieivirtualedirectdectrechip(la80x286gestiuneamemorieivirtualeerafcutdeSOpringrijaprogramatorului)21EVOLU EVOLUf fIAMICROPROCESOARELOR IAMICROPROCESOARELORDualcoreIA32Dual Dual core coreIA IA 32 32MadisonIA64Madison MadisonIA IA 64 64DeerfieldIA64Deerfield DeerfieldIA IA 64 64PerformanPerforman 02 02 00 00 01 01.25 .25 .18 .18 .13 .13 ...... 03 03ItaniumIA64Itanium ItaniumIA IA 64 64PentiumIII XeonPentium Pentium III III Xeon Xeon 98 98 99 99Pentium IIXeonTMProcessorPentium Pentium II IIXeon XeonTM TMProcessor ProcessorPentium IVPentium Pentium IV IVMcKinleyMcKinley McKinley800MHz 800MHz 1,5GHz 1,5GHz3GHz 3GHz450MHz 450MHz22MICROPROCESOARE(IERI MICROPROCESOARE(IERI AZI AZI MAINE) MAINE)An Clock(MHz)Tz/chip(x106)TehnologieRegistre/MemorieArhitectur ProcesoareIntel1978 10 16b/20M Scalar 80861985 32b/4G Scalar 803861993 66233 3,1/0,6um 32b/4G Pipeline Pentium1997 450 7/0,25 32b/4G Superpipeline,MMX PentiumII1989 32b/4G Scalar,FPUncorporat 804861995 200 5,5/0,35um 32b/4G SuperpipelineP6 PentiumPro1999 1000 8,2/0,25um 32b/4G Superpipeline,MMX PentiumIII2001 1500 42/0,18um 32b/4G NetBurst PentiumIV2004 3000 42/0,18um 64b/4G Hyperthreading PentiumIV2006 /0,13um 64b/70TB Multicore,hyperthreading Core2Duo2009 /0,13um 64bii/70TBNehalem,multicore (4) ihyperthreadingIntelI5,I7(8ML3)ARHITECTURADECALCULATOR ARHITECTURADECALCULATOR24ARHITECTURADECALCULATOR ARHITECTURADECALCULATORArhitecturadecalculatorinclude:1.Arhitecturasetuluideinstruc Arhitecturasetuluideinstruc iuni iuni ISA ISA (InstructionSetArchitecture) Interfantrehardwareisoftware. ISAincludetotcetrebuiescunoascunprogramatorpentruaprogramalanivelfizicmaina. ISApermitecadoumainidiferite(implementare,costuriiperformanediferite)srulezeaceleaiprograme.2.Implementare Implementare,cudoucomponente : Organizarea includeaspecteledenivelnaltaleproiectului,cumarfi :organizareasistemuluidememoriestructuramagistralelororganizareainternaUCPDoumainipotaveaorganizridiferite,daracelaiISA. Hardwaresereferlaaspectelespecificedeimplementarealemainii(proiectuldedetaliuallogicii,tehnologiasemiconductoareutilizat,tipuldecapsul,etc.)25ORGANIZAREAGENERALAUNUICALCULATORUNI ORGANIZAREAGENERALAUNUICALCULATORUNI PROCESOR PROCESOR26ORGANIZAREAGENERALAUNUICALCULATORUNI ORGANIZAREAGENERALAUNUICALCULATORUNI PROCESOR PROCESORFluxuldeinformaiiestecontrolatdeUCPpedouci: caledecontrol (creierulprocesorului).Semnaleledecontrolspunciidedate,memorieiisistemuluideintrare/ieirecesfac,conforminstruciunilorunuiprogram. calededate (muchiiprocesorului).Caleadedaterealizeazoperaiiaritmetice/logiceidetransfer27ORGANIZAREAGENERALAUNUIMICROPROCESOR ORGANIZAREAGENERALAUNUIMICROPROCESOR28MAGISTRALASISTEM MAGISTRALASISTEM Principaleleuniticomponentealesistemului(procesor,memorieprincipal,moduledeI/O)suntinterconectatepentruaschimbainformaiidedateicontrol Caleadecomunicarentredousaumaimulteunitiestenumitmagistral(bus) Magistralaconineliniielectricecaretransferinformaiacodificatnbinarprinintermediulunorsemnaleelectrice(niveluridetensiune) Omagistrallacaresuntconectateprincipalelecomponentealecalculatorului(procesor,memorieprincipal,moduledeI/O)estenumitmagistralsistem29MAGISTRALASISTEM MAGISTRALASISTEM Magistralaesteuncanaldecomunicarepartajatntimp:doarundispozitivpoatetransmitedatepemagistrallaunmomentdat.Pentrucacelelaltedispozitivesnualterezedatelevehiculate,toatedispozitivelesuntconectatelamagistralprinintermediulunorcircuite3state. Pentruanlturasuprancrcareacanaluluidecomunicaie,iacreteperformaneleacestuia,seconstruieteoierarhiedemaimultemagistraleinterconectate. Elementecheielaproiectareamagistralelor: arbitrare sincronizare lrgimeamagistralelor(numrdebiitransmiinparalel)30MAGISTRALASISTEM MAGISTRALASISTEM31IERARHIEDEMAGISTRALEMULTIPLE IERARHIEDEMAGISTRALEMULTIPLE Cuctsuntmaimultedispozitiveconectatelaomagistral,cuattmaimareestelungimea acesteia Cuctsuntmaimultedispozitiveconectatelaomagistral,cuattmaimarevafintrziereaproduslatransmisiadatelor Dispozitiveleconectatelaomagistralauvitezemultdiferitedefuncionare Comparaivitezaprocesorului(UCP)cuaunuiechipamentperiferic Magistralaunicconducelascdereavitezeimedii atransmiteriiinformaiilor32MAGISTRALEMULTIPLE MAGISTRALEMULTIPLEStructurtradiionaltipic33MAGISTRALEMULTIPLE MAGISTRALEMULTIPLEStructurdenaltperforman34MAGISTRALESINCRONE MAGISTRALESINCRONE MagistralelesincroneincludoliniedeCLOCK(controlatdeunoscilatorcucuar)ntreliniilemagistraleidecontrol.Frecvenetipicesunt:5,66,133,266,333,400,600,800MHz Toatetransferurilepemagistraldureazunnumrntregdeciclurideceas,numiteciclurimagistral. Avantaje: vitezamaredetransfer logicsuplimentarfoartesimpl Dezavantajulconstnfaptulcpentrutransferurilecaresarputeafacemairapiddectintervalulcorespunztorunuinumrntregdeciclurimagistral,protocolultrebuiepstrat(timpprestabilitdetransfer)35MAGISTRALEASINCRONE MAGISTRALEASINCRONE MultedispozitivedeI/Onupotaccepta/generadatelaoratmare(ex.unprocesorPentiumpoatefurnizauneiimprimantectevasutedemilioanedecaracterepesecundcenupotfiimprimatelaaceastvitez;tastaturafurnizeazdatelavitezadereacieuman;etc.) Calculatoareleaunevoiedeprotocoaledetransferdedatepentruanulimitavitezadeexecuielaceaadispozitivelorperiferice,lente:handshaking Implementareaacestuimecanismlanivelfizic: porturidestare iporturidecontrol ncomponenadispozitivelordeintrare/ieire controlleredentrerupere pentrutratareacererilordispozitiveloresterne36MAGISTRALEASINCRONE MAGISTRALEASINCRONE HANDSHAKING HANDSHAKING37TIPURIPRINCIPALEDEARHITECTURI TIPURIPRINCIPALEDEARHITECTURI ArhitecturavonNeumann osingurmemoriepentruinstruciuniidate ArhitecturaHarvard (DSP,MC) memoriiseparatepentruinstruciuniidate38ARHITECTURAVONNEUMANN(1945) ARHITECTURAVONNEUMANN(1945) Dateleiinstruciunile suntstocatenaceeaimemorieprincipal (conceptuldeprogramstocat); Coninutulmemorieiesteadresabillaniveldelocaie (fraseconsideraceinformaieestestocat:datesaucod); Instruciunile suntexecutatesecvenial (unacteunanordinealocaiilordememoriencaresuntstocate)cuexcepiafaptuluicndacestlucruesteprecizatexplicitncod. Calculatorulconineurmtoarelesubsisteme: unitatedecontrol unitatearitmeticilogic(ALU) sistemI/O memorie CalculatoarelecuarhitecturvonNeumannsuntcalculatoaredeuzgeneral.Elepotrezolvadiverseproblemenfunciedeprogramulexecutat39ARHITECTURAVONNEUMANN ARHITECTURAVONNEUMANN reprezentarestructural reprezentarestructuralarhitecturdeuzgeneralsecvenial40REPREZENTAREACICLULUIDEINSTRUC REPREZENTAREACICLULUIDEINSTRUCf fIUNE IUNE Pentrurulareaprogramului,UCPareofuncionarecicliclafiecareinstruciuneexecutat Circuiteleelectronicealeunuicalculatorrecunosciexecutdoarunsetlimitatdeinstruciunielementare,codificatenformbinar Instruciunilerecunoscutesuntrareorimaicomplicatedect: adundounumere verificdacunnumresteegalcuzero copiazdatedintrozonamemorieicalculatoruluinaltzon.41UNITATEADECONTROL(UC) UNITATEADECONTROL(UC) Unitateadecontrol(UC)estecreierulprocesorului UCcontroleazisincronizeaztoateelementeledininteriorulUCPiinterfeelectrecaleadedateextern.42UNITATEAARITMETIC UNITATEAARITMETICb bILOGIC ILOGIC(UAL)+REGISTRE (UAL)+REGISTRE Unitateaaritmeticilogic(ALU),realizeazoperaiilogice sauaritmetice cuoperanziiadresaideUC naintedeprelucrare,operanziisestocheazntrunsetderegistredeuzgeneral,folositecamemorietemporar RegistrelereprezintomemorielocalUCP,defoartemarevitez Setulderegistredeuzgeneralpoatefifolositnsipentrusalvareadiferitelorinformaiiprivindadresareamemorieiprincipale. nfunciederezultatuloperaiilorefectuate,ALUseteazanumiiindicatoridecondiii (indicatoridestare,fanioane,flaguri)43MEMORIAPRINCIPAL MEMORIAPRINCIPAL MemoriaprincipalservetelastocareadateloriinstruciunilorexcecutatedeUAL Stocareadateloriinstruciunilorsefacelalocaiidememorieconsecutiveadresabiledirect44SISTEMULDEINTRARE/IE SISTEMULDEINTRARE/IEb bIRE IRE SistemuldeI/Oconinelocaiiadresabile(porturi)princarecalculatorulfaceschimbdeinformaieculumeaextern.Sistemulconinecircuitepentrufunciile: schimbareformatdate(serial/paralel) stocaretemporardedate(latch) verificareacorectitudiniidatelortransferate sincronizarentreperifericiUCP(datoritdiferenelormaridevitezdefuncionare) logicdedecodificare45PERIFERICE PERIFERICE Dispozitive(periferice)deintrare recepioneazinformaiadinmediulextern(prindiverisenzori)subformdesemnaleelectriceiotransformcanaturfiziciformatdereprezentare compatibilitatecuniveluriledetensiunerecunoscutedecalculator(cavaloribinare). Dispozitive(periferice)deieire operaieinversdispozitivelordeintrare.Prelucreazdateledincalculatoriletransformninformaieacceptabilladispozitivuldeieire.46REPREZENTAREAFUNC REPREZENTAREAFUNCf fIONALAUNUICALCULATOR IONALAUNUICALCULATOR Uncalculatorpoatefidescrisiprinfunciile operaiilepecarelepuneladispoziiautilizatorului Circuiteleelectronicealeunuicalculatorrecunosciexecutdoarunsetlimitatdeinstruciunielementare,codificatenformbinar Instruciunilerecunoscutesuntrareorimaicomplicatedect: adundounumere verificdacunnumresteegalcuzero copiazdatedintrozonamemorieicalculatoruluinaltzon47LIMBAJULMA LIMBAJULMAb bIN IN LIMBAJULDEASAMBLARE/PROGRAMARE LIMBAJULDEASAMBLARE/PROGRAMARE Instruciunile elementare, recunoscute de un procesor formeazlimbajul main(codmain) alprocesorului Notaie:limbajL0 cecorespundemainiifiziceM0. ProgramatorulscrieprogramelesalentrunlimbajL1,formatdininstruciunisimbolice(succesiunidelitereicifre),maiapropiatdelimbajuluman PentruaputeaexecutaacestprogrampemainaM0 fiecareinstruciunedinL1 aprogramuluitrebuietranslatat ninstruciunidinlimbajulL0 DeexempluprogramatorulpoatescrienL1 instruciunea:addal,6iarprogramuldetranslatarevagenerasuccesiuneabinar,corespunztoareluiL0 :000001000000011048MA MAb bINIVIRTUALE INIVIRTUALE Funcional,sepoatespuneclimbajulL1corespundeuneimainivirtualeprogramabilenumitM1.Numeleacestuilimbajsimbolicdeprogramareestelimbajdeasamblare,iarprogramuldetranslatareestenumitasamblor. Translatarea: totprogramulscrisnL1estetransformatnprogramscrisnL0(executabil),iarprogramulnL1esteabandonat. programulnL0estencrcatnmemoriacalculatoruluiiexecutat Exempledeprogrametranslator:compilator,asamblor. Interpretorul esteunprogramnL0careruleazpeM0icarepreiainstruciunileprogramuluinL1capedatedeintrare. InterpretorulciteteidecodificfiecareinstruciunedinL1iapoitreceimediatlaexecuiaacesteia.Lainterpretarenusegenereazunprogramexecutabilcalatranslatare Limbajedeprogramaremaiapropiatedelimbajuluman:L2,L3,...(pentrumainivirtualeM2,M3,...) suntnumitelimbajedenivelnalt(C,C++).49CALCULATOR=SUCCESIUNEDEMA CALCULATOR=SUCCESIUNEDEMAb bINIVIRTUALE INIVIRTUALENiveluln:ProgramelenLnpotsfieinterpretatedeuninterpretorceruleazpeomaindenivelinferior,saupotsfietranslatatectrelimbajulmainaluneimainiinferioareNivelul2:ProgramelenL2potfiinterpretatedeuninterpretorceruleazpeomainM1sauM0saupotfitranslatatenL1sauL0Nivelul1:ProgramelenL1potfiinterpretatedeuninterpretorceruleazpeomainM0saupotfitranslatatenL0Nivelul0:ProgramelenL0potfiexecutatedirectdectrecircuiteleelectronicenumerice50IERARHIEDEMA IERARHIEDEMAb bINIVIRTUALELAUNGPCMICROPROGRAMAT INIVIRTUALELAUNGPCMICROPROGRAMAT51SOFTWARE SOFTWARE52NOTE NOTEUNITATEACENTRALDEPRELUCRARE UNITATEACENTRALDEPRELUCRARE(UCP) (UCP)54UNITATEACENTRALDEPRELUCRARE UNITATEACENTRALDEPRELUCRAREStructuraunitiicentraledeprelucrareCicluriledefuncionareaunuiprocesorUnitateaaritmeticilogic.StructurifuncionareUnitateadecontrol.CircuituldedecodificareisemneleledecontrolMagistraleleinternealeprocesoruluiExecuiainstruciunilorimecanismepipeline55FUNC FUNCf fIEPROCESOR IEPROCESOR UnitateaCentraldePrelucrare(UCP UCP)acalculatoruluinumericesteostructurdeprocesordeuzgeneral,cusetdeinstruciuni ncadrulunuisistemdecalcul,(micro)procesorulUCPareresponsabilitateageneraldeinterpretare interpretare i execu execu ie ie ainstruciunilorunuiprogram(secvendeinstruciunistocatnmemoriaprincipal) naccepiuneaclasic(vonNeumann)aunuisistemdecalcul,mainaconineosingurUCP.Unastfeldecalculatorestenumituniprocesor,pentrualdeosebidecalculatoarelemultiprocesor,careconindousaumaimulteUCP56COMPONENTELEUNUISISTEMDECALCUL COMPONENTELEUNUISISTEMDECALCUL Modelulclasicdecaclulator(vonNeumann)cuprinde: Unitateadecontrol(UC) Unitateaaritmeticilogic(UAL) Memoria(M) Dsipozitivedeintrare(DI) Dispozitivedeieire(DO)MUCDIDOUALDate de intrare + programDate de ieireUCP=UC+UALUnitatea central deprelucrare57STRUCTURAGENERALAUCP STRUCTURAGENERALAUCP Unitatea Unitatea de deComand Comand (UC) (UC) circuitlogicsecvenial responsabil pentru:Citirea instruciunilor dinmemorieDecodificarea instruciunilorGenerarea desemnale decontrolpentru execuia instruciunilor Unitatea Unitatea Aritmetico Aritmetico L Logic ogic (UAL) (UAL) circuitlogiccombinaional ceefectueaz operaiiaritmetice ilogice:Aritmetice:+,,/,*,mod,comparareLogice:bI,SAU,NU,Deplsari/rotaiistnga/dreapta Registre Registre Registre generale (RG):pentru pstrarea temporar adatelor Registre speciale (RS) : deadresare,destareicontrol58STRUCTURAGENERALAUCP STRUCTURAGENERALAUCPUCP UCPUnitatea de Control+Registre SpecialeRegistre GeneraleR1 RnMagistralasistemR2UAL UALIndicatoridecondiiiComenziinterneprocesoruluiComenziexterneInstruciuniisemnaledestareexterneIntraredate Ieiredate59EXECU EXECUf fIAINSTRUC IAINSTRUCf fIUNILOR IUNILOR UCPareofuncionareciclic fiecareinstruciuneesteexecutatntrosecvendeetape faze deexecuie: citire codinstruciune (instructionfetch IF IF) decodificare instruciune (instructiondecodingDec Dec) citire operand(operanzi)(datafetch DF DF) execuie operaie (executionEx Ex) scriere rezultat (writebackWB WB) Cicluri detransfer: ciclu decitire instruciune ciclu decitire operand(opional) ciclu descriere rezultat (opional)Cdurata unei instruciuni este determinat denumrul decicluri caretrebuie sseexecute60CICLURIDEFUNC CICLURIDEFUNCf fIONARE IONARE Cicluinstruc Cicluinstruc iune iune:Secvenadeoperaiinecesarepentruadresarea,aducereaiexecuiauneiinstruciuni. Uncicluinstruciuneconinemaimulteciclurimain Cicluma Cicluma in in:intervaluldetimpnecesarpentruterminareauneioperaiiintermediare(citirememorie,scrierememorie,citireportI/O,scriereI/O) Cicluldefetchinstruciune =primulciclumainaloricruicicluinstruciune Deobiceiunciclumainimplicuntransferalprocesoruluicuexteriorul UnciclumainconineunasaumaimultestriUCP(perioadedeceas) Stare Stare (timpdeciclualUCP) (timpdeciclualUCP) EstetimpulUCP(tUCP)necesarpentruexecutareauneioperaiielementareibinedefinite(esteinversulfrecveneilacarelucreazprocesorul) Ooperaieelementar(microoperaie)sereferdeobiceilauntransferntredouregistre StareaesteunitateadetimpdebazpentrumsurareadurateiactivitilorUCP tUCP =durata celei mai lungi cinUCP(suma intrzierilor produse ncircuitelecombinaionale carealctuiesc calea unui semnal)61FUNC FUNCf fIONAREACICLICAPROCESORULUI IONAREACICLICAPROCESORULUI62STRUCTURAUNEIUCPELEMENTARE STRUCTURAUNEIUCPELEMENTARE63FUNC FUNCf fIONAREAUNEIUCPELEMENTARE IONAREAUNEIUCPELEMENTARE64PERFEC PERFECf fIONAREAUCPELEMENTARE IONAREAUCPELEMENTAREPrincipaleletipurideextinderenorganizareaUCPelementarsunturmtoarele: Introducereaunorregistrespecialedestareicontrol: Registrudestare(registrudeindicatori) Indicatoriidestare(flags flags)potfitestaiprinprogram(deex.Saltcondiionat) Indicatoridecontrolsauregistredecontrol Introducereaunorregistresuplimentaredeadresare,pentrustocareimanipulare: Operanzi Informaiipentruadresare Adeseasefolosescregistrepentrumoduricomplexedeadresare(indexat,bazat,cubaziindex) Dacregistreleinterneauutilizaregeneral(stocare,adresare,operaiideprelucrareetc.)mainasespunecareorganizarepebazderegistredeuzgeneral65PERFEC PERFECf fIONAREAUCPELEMENTARE IONAREAUCPELEMENTARE Extindereafunciiloroferitedeunitateaaritmetic unitateaaritmetic : Operaiidenmulireimprirenvirgulfix Operaiicunumerenvirgulmobil(numerereale) Introducereadesuporthardware(logicplusregistredeadresarespecializate)pentruimplementareamemorieistiv memorieistiv : EsteostructurdedateaccesibilpeprincipiulLIFO(lastinfirstout) StivaimplementatnmemoriaprincipalecontrolatprinregistruldeadresarealUCPnumitStackPointer(SP)ceindicnpermanenadresavrfuluistivei Introducereafacilitilorpentruprelucrareaparalel prelucrareaparaleladousaumaimultorinstruciuni: Unitatedecontrolorganizatcaunpipelinecukniveluriceeacepermiteprelucrareaparalelakinstruciuniaflatendiferitefazedeexecuie Organizareaunitiiaritmeticecaoconductdeexecuie(pipelinearitmetic)cuketaje AdugareadekunitiALUpentruprelucrareanparaleladatelor66STRUCTURAUNEIUCPTIPICE STRUCTURAUNEIUCPTIPICE67SETTIPICDEINDICATORIDECONDI SETTIPICDEINDICATORIDECONDIf fII II Indicatoriidecondiiereprezintunsetdebistabilicealctuiescregistruldestarealprocesorului Suntsetai/resetaidectreUALnfunciederezultatulultimeioperaiiaritmeticesaulogiceefecutateisuntfolosiipentrucomandaexecuieiulterioareaprocesului SignFlag SF SF Semnrezultat ZeroFlag ZF ZF Rezultatnul(toibiiipe0) ParityFlag PF PF Numrpardebiipe1 OverflowFlag OF OF Depire! CarryFlag CF CF Transport AuxiliarzFlag AF AF Transportauxiliar68OVERFLOWFLAG OVERFLOWFLAG Pentrubituldesemndedoreteutilizareaaceleeaiecuaiicaipentruceilalibii69OVERFLOWFLAG OVERFLOWFLAG70NOTE NOTE71UNITATEACENTRALDEPRELUCRARE UNITATEACENTRALDEPRELUCRAREUNITATEAARITMETIC UNITATEAARITMETIC iLOGIC iLOGIC72UNITATEAARITMETICO UNITATEAARITMETICO LOGIC LOGIC Ac Ac Registruacumulator Registruacumulator pstreazunoperandirezultatuloperaiei R R Registrupentrualdoileaoperand RS RS registrudestare (FLAGS) (FLAGS) Codulopera Codulopera ieiestegeneratde ieiestegeneratdectreunitateadecontrol ctreunitateadecontrol i icomand comand iarerolulselec iarerolulselec iei ieicircuitelorlogicepentruexecu circuitelorlogicepentruexecu ia iaopera opera ieidesemnate iei desemnateRAcUALnnnnnCod OperaieRS73SUMATORPEUNBIT SUMATORPEUNBITCiCoAiBiSi Si= AiBiCi Co= Ai* Bi+ Ci* (AiBi)74SUMATORPEUNNBI SUMATORPEUNNBIf fI IEn-1Sn-1Bn-1An-1Cn-1Cn-2E1S1B1A1C1C0E0S0B0A0C-175OPERA OPERAf fIEDEADUNARECUOPERANZI IEDEADUNARECUOPERANZI N2REGISTRE N2REGISTREE0D0E1D1A1En-1Dn-1An-1A0B0B1Bn-1CKBAdCKAPas Operaie Comenzi1btergeregistrulAnscrieregistrulB D(operand)Ad =0,CKA =, CKB = (impuls 1L)2TransferB AnscrieregistrulB D(al2leaoperand)Ad =1,CKA =,CKB=3 A A+B Ad =1,CKA =,CKB=_(0L)76CIRCUITDEADUNARE CIRCUITDEADUNAREb bISCDERE ISCDERE NCOMPLEMENTFA NCOMPLEMENTFAf fDE DE2 2 Pentruoperaiadescdere,secomplementeazaldoileaoperandiseexecutoperaiadeadunareE0D0E1D1A1En-1Dn-1An-1A0B0B1Bn-1CLKBCLKAAd / ScC0C1Cn-177UNITATELOGICPE UNITATELOGICPE2BI 2BIf fI IMUX 4:1Ci-1Ai-1Codoperaie1Bi-1MUX 4:1CiAi1Bi78ALGORITMPENTRUOPERA ALGORITMPENTRUOPERAf fIADE IADE NMUL NMULf fIRE IRE1100 *12 *1010 1000001100000011001111000 = 78H = 12000000000Acumulator (AC)0 0000000 0Depl. dr.1 1100 Adunare0001100 0Produs parial000110 00Depl. dr.0 00011 000Depl. dr.1 1100 Adunare1111 000Produs final79IMPLEMENTAREAOPERA IMPLEMENTAREAOPERAf fIEIDE IEIDE NMUL NMULf fIE IEE (n+1)DispozitivdecomandDeplasareXQ0Q1Qn-1. . .B0B1Bn-1. . .BSA0A1An-1. . .ASQSYbtergereScriereScriereTestDeplasareScriere80ALGORITMDE ALGORITMDE NMUL NMULf fIRE IRE1. nscriere operanzii n registre B X, Q Y, terge acumulatorul A 02. Complementareoperanzidacsemnulestenegativ3. TestQ0 Q0 = 0, deplasare dreapta A i Q Q0 =1,adunareA=B+AideplasaredreaptaAiQ4. Serepetpasul3pncndYn1ajungenQ0.Dupultimaeventualadunarenusemaifacedeplasare5. AS =BS +QS6. ComplementarerezultatdacAS =181UNITATEACENTRALDEPRELUCRARE UNITATEACENTRALDEPRELUCRAREUNITATEAdeCOMAND UNITATEAdeCOMAND i iCONTROL CONTROL82UNITATEADECONTROL UNITATEADECONTROLUCGFCKRIDI + BCCPC (IP)RS(flags)ComenziAdresaInstruciuneEste creierul calculatorului ise compune din : Generatorul desemnaluluidetactCK Generatorul fazelordeexecuie GF Unitatea dedecodificare instruciuni (DI)iblocul decomand icontrol(BCC) interpreteazinstruciunile igenereazsemnalele decomand necesare pentruexecuia lor Registrul deinstruciuni RI pstreaz instruciunea curent ContoruldeprogramPC pstreaz adresa instruciunii urmtoare Registrul destareprogramRS83UNITATEADECONTROL UNITATEADECONTROLUnitateadecontrol(UC) genereazsemnaledecontrolctrecaleadedateRolulUCaunuimicroprocesorcerecunoateunsetdeinstruciuni,estesaducinstruciunile codificatebinardinmemoriaprincipal(externprocesorului)istransmitsemnaledecontrol ctrecaleadedateictrememorieisubsistemuldeI/O,nscopulexecutriiinstruciunilorSemnaleledecontrolselecteazlafiecaremomentfunciadeexecutatdectrecaleadedateiselecteaztraseulspecificaldatelorprinunitilefuncionaleConformsemnaleloremise,unitateadecontrol(UC)face,periodic,oreconfiguraredinpunctdevederelogicaunitiideprelucrare,astfelnctaceastasexecuteunsetimpusde(micro)operaii.84FUNC FUNCf fIILEPRINCIPALEALEUC IILEPRINCIPALEALEUC Secven Secven iereainstruc iereainstruc iunilor iunilor sereferlamanierancarecontrolulprocesoruluiestetransferatdelaoinstruciunelaalta,prinordineadegenerareaadreselorctrememoriaprincipalacalculatorului. Interpretareainstruc Interpretareainstruc iunilor iunilor sereferlamodulncareUCdecodificcodulfiecreiinstruciuniilamodalitateadegenerareasemnalelordecontrolctrecaleadedate,pentruacomandaexecuiainstruciunilor.85SECVEN SECVENf fIEREAINSTRUC IEREAINSTRUCf fIUNILOR IUNILOR Instruciunile sunt selectate pentru execuie n ordinea dictatde UC (secveniere)dupinterpretareacoduluiinstruciuniicurenteiasemnalelordereaciedinexterior Informaiedesecveniere=? Dacfiecareinstruciunearconineadresaurmtoareiinstruciunicetrebuieadusdinmemorie lungimemareacoduluiinstruciunii Celemaimulteinstruciunidintrunprogramauunsuccesorunic InstruciuneaIi arecaunicsuccesorinstruciuneaIi+1 Stocare Ii n locaia de adresA stocare Ii+1 n locaia de adresA+1 ceurmeazimediatdupA86SECVEN SECVENf fIEREAINSTRUC IEREAINSTRUCf fIUNILOR IUNILOR Adresa instruciunii urmtoare poate fi calculatprin incrementare ! Adresaestestocatntrunregistrunumrtordeadresealinstruciunilornumitcontordeprogram,notatpescurtPC Adresainstruciuniiurmtoaresecalculeazprinoperaia:PC PC+cundecreprezintnumruldecuvintedememoriepecaresentindeinstruciuneacurent Laramificare(instruciunidesalt,sautratareaevenimentelordentrerupere)adresaurmtaoreiinstruciuniesteneconsecutiv ncazuluneiramificri,registruldeadresarePCsencarcdirectcuadresalacaresefacesaltulPC X AdresaX esteconinutncodulinstruciuniideramifiare87INTERPRETAREAINSTRUC INTERPRETAREAINSTRUCf fIUNILOR IUNILOR FiecreiinstruciuniinterpretatedeUC,icorespundeosuccesiunedecomenziemisedeUC,conformalgoritmuluidoritdeproiectantulUC ComportareaUCdinpunctuldevederealsemnalelordecontrolgenerate(cafuncieicasuccesiunentimp)pentrucomandaoperaiilorsepoatedescrieprin: Tabeledetranziieastrilor Organigrame Limbajededescrierehardware Combinaiialemetodelordemaisus ExistdoumetodedeproiectareiimplementareaUC: Unitatedecontrolcablat Unitatedecontrolmicroprogramat88UNITATEADECONTROLCABLAT UNITATEADECONTROLCABLAT Unitateadecontrolcablat esteunautomatsecvenialproiectaticonstruitpentrugenerareaunuisetspecific introsecvenfix desemnaledecontrol Odatproiectat,algoritmuldecontrolnumaipoatefimodificatdectprinreproiectareantregiistructuri ImplementareasepoatefaceprinconstruciihardwaredetipPLA(programmedlogicarray) Avantaje aletehniciicablate: dimensiunimicialeUC vitezmaredeoperare Controlulcablatestefolositpentruprocesoarecarerecunoscun setregulatirelativredusdeinstruciuni (deobiceiinstruciunicuformatdelungimefix)implementareaunuisetcomplexdeinstruciuni(cala8086)estedificil89CONTROLULCABLAT CONTROLULCABLAT SCHEMBLOC SCHEMBLOC Unitateadecontrolcablatesteunautomatcecuprinde: registruldememorareastriicurente registruldeinstruciuni,carememoreazcoduloperaiei logicdecontrol(deobiceicombinaional)90UNITATEADECONTROLMICROPROGRAMAT UNITATEADECONTROLMICROPROGRAMAT Launitateadecontrolmicroprogramat semnaleledecontrolsuntinclusencuvintebinaresuccesive(microinstruciuni)stocatentromemoriedemarevitez,inclusanUC,numitmemoriedecontrol Implementareaalgoritmuluidecontrolsefaceprinprogramarea coninutuluimemorieidecontrol Fiecreiinstruciunirecunoscutedeprocesoricorespundeosecvendemicrooperaiigenerateprincitireauneisecvenedemicroinstruciunidinmemoriadecontrol(secvendemicroinstruciuninumitmicroprogram) Microprogrameleconinutenmemoriadecontrolformeazuninterpretor alsetuluideinstruciunirecunoscutdeprocesor91CONTROLULMICROPROGRAMAT CONTROLULMICROPROGRAMAT Fiecarebitdintromicroinstruciunereprezintocomandelementarcaremerge: Directlaoresurscomandat(registru,sauCLC),sau Esteprelucratmpreuncualteinformaii(pentrudecodificareisincronizare)pentrucaapoissecomanderesursafizic. Fiecarecoddeinstruciunecititidecodificatproducesaltullaoadresdinmemoriadecontrolundesegsetemicroprogramulasociatexecuieiaceleiinstruciuni Principaleleavantaje: setuldeinstruciunipoatefiuorschimbatprinschimbareamicroprogramelor dacestenevoie,permitemodificareadinamic(ntimpulrulriiprogramelor)asetuluideinstruciunirecunoscutdeUCprinrescriereamemorieidecontrol permitereducereacosturilorgeneraledeproiectareiconstrucieaUC reducereadimensiunilormicroprogramelor Dezavantajelemicrocodului: Vitezaredusdelucru,dependentdetehnologiaderealizareamemoriilor Gabaritulmare(suprafamareocupatpechip)92CONTROLULMICROPROGRAMAT CONTROLULMICROPROGRAMAT93UNITATEACENTRALDEPRELUCRARE UNITATEACENTRALDEPRELUCRAREMAGISTRALAINTERN MAGISTRALAINTERN. .SEMNALELEdeCONTROL SEMNALELEdeCONTROL94MAGISTRALEEXTERNE MAGISTRALEEXTERNE Magistraladedate Magistraladeadrese Magistraladecontrol95MAGISTRALADEADRESE MAGISTRALADEADRESE Liniideadres,cetransmitdoarsemnaledeieiredinmicroprocesor Esteomagistralunidirecional Liniiledepeaceastmagistralsefolosescpentruadresarealocaiilordememorieiaporturilordeintrareieire. IeirilePspremagistralaexterndeadresepottrecenstareadenaltimpedan(HiZ)laocerereextern,cndUCPcedeazcontrolulmagistralelorctrealtdispozitiv Deobiceivalorilebinarecelemaisemnificative(cupondereabinarmaxim)dinadressefolosescpentruselectareablocurilordememorie96LOGICDEADRESARE LOGICDEADRESAREb bIDECODIFICAREMEMORIE IDECODIFICAREMEMORIE97MAGISTRALADEDATE MAGISTRALADEDATE Lrgimeamagistraleidedateestedeobiceimultipludeoctet(d=8,16,32,64...) Celedliniialemagistraleidedatesuntbidirecionale Liniileauposibilitateadetrecerenstareadenaltimpedan(HiZ) MAGISTRALAINTERNaprocesoruluitrebuiestransfereDATE MAGISTRALAINTERNaprocesoruluitrebuiestransfereDATE iADRESE iADRESE Magistralamultiplexat Magistralamultiplexat ntimpimplementatlauneleuP pentrueconomiedepini Este folositatt ca magistralde adrese cti pentru transferul datelor nprimulciclumainalfiecreiinstruciunipemagistraladedatesepottransmiteinformaiideadressauinformaiidecontrol Laprocesorul8086piniaimagistraleidedatesuntmultiplexaipentruaseputeatransmiteiinformaiedeadres(adresvalidatdesemnaluldecontrolALE(AddressLatchEnable)carecomandstocareaadreseintrunregistruextern98MAGISTRALADECONTROL MAGISTRALADECONTROL1. Semnaledecontrolisincronizarepentrutransferuridedate cumemoriaidispozitiveledeI/O;2. Semnaledecontrolisincronizareacererilordecedareacontroluluimagistralelor;3. Semnaledecontrolisincronizarecuevenimenteexternecegenereazcereridentrerupere;4. Semnaleindicatoaredestare;5. Semnaleutilitare,cumarfireset,clock,alimentarecutensiune;6. Semnalediverse,specificetipurilordemicroprocesoareiscopuluipentrucareaufostproiectate.Deexemplu: intrritestabileprinsoftware intrripentrucomandaactivitiipascupasaUCP intrripentrusemnalizareaunorerori intrri/ieiripentrulucrulnsistemmultiprocesoretc.99SEMNALEDECONTROLPENTRUTRANSFERULDATELOR SEMNALEDECONTROLPENTRUTRANSFERULDATELOR Rol:permitprocesoruluicontrolulisincronizareatransferurilorpemagistraladedate,cumemoriaidispozitiveledeIO Setminim: RD ReaD citirededatedinmemorie/registruport WR WRite scrieredatenmemorie/registruport R/W Launelemicroprocesoareexistunsingursemnaldecontrolalsensuluidetransferaldatelorpemagistral(ceselecteazoperaiadoritfunciedenivelullogic) AS AddressStrobesemnaldevalidareaadreseiplasatpemagistraladeadrese READY SemnalprincarememoriasaudispozitivuldeI/Osemnaleazprocesoruluicpoatetrasmite/recepionadate100CICLUDEMAGISTRALTIPIC CICLUDEMAGISTRALTIPIC(CITIRE) (CITIRE) Cicluldemagistralesteunevenimentasincroncencepecuapariiaadresiuneilocaiidememorie(portI/O)urmatdeemitereaunorsemnaledecontrol Echipamentulselectatacceptdatadepemagistaladedate(cicludescriere)sauplaseazdatepemagistral(cicludecitire)CKAdresASRDREADYDateUCP MemorieRDASREADYADRDate101SEMNALEDECONTROLPENTRUTRANSFERURIDMA SEMNALEDECONTROLPENTRUTRANSFERURIDMA Problemacererii/cedriicontroluluimagistralei altedispozitivedetipmaster(alteprocesoare,controllere)ceauposibilitateadetransferaldatelordirectcumemoriaprincipal(transferDMA DirectMemoryAcces) Setminim: BR BusRequest cereredeaccesicontrolalmagistralelorsistemului BG BusGrantconfirmareacedriicontroluluimagistralelor nurmacedriicontroluluimagistralelor,UCPtreceieirilesalectremagistralelededate,adreseiopartedinceledecontrolnstaredenaltimpedan(HiZ) UCPprevzutcuaceastperechedesemnalesondeazdeobiceisemnaluldecerere,detipBR,lasfritulfiecruiciclumainicedeazcontrolulmagistralelorctmaicurndposibil,cuexcepiaunorcazurispecialencareoperaiilenupotfintrerupte ntrziereamaximcucareesteservitocereredeacceslacontrolulmagistralelorestedeciunciclumain ncazulmaimultorcererideacordareacontroluluimagistralelor,analizaprioritilorsefacedeobiceicuuncircuitdearbitrarecentralizatacererilordemagistral.102SEMNALEDESINCRONIZAREACERERILORDE SEMNALEDESINCRONIZAREACERERILORDE NTRERUPERE NTRERUPERE Semnaleleaurolulsincronizriievenimentelorexternecumicroprocesorul Cerereadentrerupereprovenitdinexteriorestedeobiceiocereredeserviciidinparteadispozitivelordeintrare/ieire Existdoutipuridecereridentreruperehardware(iniiateprinsemnalelectricdentrerupere): ntreruperimascabile ntreruperinemascabile Unsetminimdesemnalepentrumanevrareacererilordentreruperecuprinde: INT INTerrupt cereredentrerupere NMI NonMascableInterrupt cereredentreruperenemascabil INTA INTeruptAcknoledgeconfirmareaacceptriintreruperii103SEMNALEDEUTILITARE SEMNALEDEUTILITAREQ QRESET RESET SemnaluldetipRESETesteprezentlatoatemicroprocesoareleieladuceconinutulregistrelormicroprocesoruluintrostareprefixatprinproiectare naceaststarepredeterminatcontoruldeprogram(PC)seiniializeazlaovaloarefix(deobiceilazero),iarntreruperilemascabilesuntinvalidate Restartaremicroprocesor PoweronReset(Resetarelaalimentareacircuitului)Q QCLOCK CLOCK Semnaluldeceasarerolulsincronizriituturoroperaiilordinsistem Semnaluldeceasestefurnizatdeuncircuitdeceasspecialsincronizatcufrecvenaunuioscilatorcuquartz Laprocesoareleactuale,aceastfrecvenestemultiplicatdeunnumrdeori104CIRCUITULDECEAS CIRCUITULDECEAS Circuituldeceasintel8084 aparinndfamilieix86necesitconectareaexternaunuicristaldequartz(fQuartZ=14,28MHz)iareroluldeagenera: Semnaledesincronizare:CK(Clock) furnizatprocesorului(fCK=fQuartZ/3=4,76MHz)PCK(PeripheralClock) furnizatcircuitelorexterne(fPCK=fCK/2=2,38MHz) SemnaluldeRESET pt.iniializareaprocesorului(printruncircuittriggerSchmitt)respectivpoweronreset (deiniializareduppornireatensiuniidealimentaresemnaluldecomanddureazcelpuin50deperioadedetact) Semnalepentruinserareastrilordeasteptare ncicluldemagistralRDY1RDY2RES READYRESETCKPCKCKRESETREADYX1X28086 8284105UNITATEACENTRALDEPRELUCRARE UNITATEACENTRALDEPRELUCRAREPIPELINING PIPELININGPARALELISM PARALELISM nEXECU nEXECUf fIA IAINSTRUC INSTRUCf fIUNILORprinTEHNICIPIPELINE IUNILORprinTEHNICIPIPELINE106PIPELINE PIPELINE INT INTR RODUCERE ODUCERE Pipelining Pipeliningesteotehnicdeintroducereaparalelismuluinexecuiainstruciunilor Pipeline Pipeline =conductdeexecuie Serealizeazprinmprireacicluluideexecuiealuneiinstruciuninmaimultefazedeprelucrare,iarexecuiasefacenparalelpentrumaimulteinstruciunicareseaflnfazediferitedeprelucrare Fiecareetaj/segmentalconducteicompleteazopartedinoperaiilenecesarenexecuiainstruciunii Etajeleconducteisuntconectateunuldupcellaltpentruarealizaoband deexecuieainstruciunilor Tehnicadetippipelinepoatefiaplicatattpentruexecuiainstruciunilorctipentrucircuitelearitmeticedeprelucrare Pipelinearitmetic Pipelinedeinstruciuni107PRINCIPIULPIPELINING.CICLUMA PRINCIPIULPIPELINING.CICLUMAb bINALCONDUCTEI INALCONDUCTEI Tehnicapipelineconducelaoreducereatimpuluideexecu oreducereatimpuluideexecu iemediupentruo iemediupentruoinstruc instruc iune iune Timpulnecesarpentrudeplasareauneiinstruciunicuunetajninteriorulconducteiconstituieuncicluma cicluma inalconductei inalconductei Lungimeacicluluimainalinstruciuniiestedeterminatdetimpulcerutpentruprelucrareancelmailentsegmentdinconduct Unciclumainalconducteiesteegalcuunulsaumaimulteciclurideceasprocesor,darobiectivuloricreimainiceimplementeazaceasttehnicestesseajunglaomediedeoinstruciuneexecutatpecicludeceasprocesor Ceamaisimplcaledeanelegeprincipiulconducteiestesimaginmfiecareetajcafiindformatdintrunregistruurmatdeuncircuitcombinaionaldeprelucrare108CONDUCTCU CONDUCTCU4ETAJE 4ETAJE SCHEMDEPRINCIPIU SCHEMDEPRINCIPIU RegistrelestocheazdateledeintrarepentruCLCpeduratanecesarcasuboperaiacorespunztoaresegmentuluisfieterminatirezultatelesaparcorectlaieireacircuituluicombinaional Dacncrcarearegistrelorcudateledelaetajulanteriorsefacesincroncuunimpulsdeceas,perioadaceasuluitrebuiesfiesuficientdemareastfelcacelmailentdintreetajestermineprelucrarea109CONDUCTDEINSTRUC CONDUCTDEINSTRUCf fIUNI IUNIConsidermoconductdeinstruc conductdeinstruc iuni iuniformatdin5etaje: IF(InstructionFetch) IF(InstructionFetch) instruciuneaadresatprinregistrulcontorprogramPCesteadusdinmemorienregistruldeinstruciuni(RI)iarregistrulPCesteincrementatpentruaadresaurmtoareainstruciune ID(InstructionDecode) ID(InstructionDecode) instruciuneaestedecodificatiaroperanziisuntncrcainregistreledeintrarealeUAL EX(Execution) EX(Execution) executoperaiacurentiplaseazrezultatulnregistulacumulator(registruldeieireimplicit).Coninutulregistrelordepindedeoperaiaexecutat: operaiearitmetic/logic(registruregistru):rezultatulnregistrulAcc referinlamemorie(scriere/citire):regAccconineoadresefectivdememorie saltnprogram:UALcalculeazadresadesaltioplaseaznregistrulAcc110CONDUCTDEINSTRUC CONDUCTDEINSTRUCf fIUNI IUNI MA(MemoryAccess) MA(MemoryAccess) acceslamemorie(citire/scriere) operaiadecitirememorie:datelesuntcititedinmemoriedelaadresadinregistrulAcciplasatnregistrultemporardeintraredate operaiadescrierememorie:dateledinregistrultemporardeieiredatesunttransferatenmemoriadedate(Dcache) WB(WriteBack) WB(WriteBack) scriererezultatnregistreleprocesoruluiiseexecutncazuloperaiilorregistruregistru. operaieregistruregistru:coninutulregistruluideieirealUAL(Acc)estetransferatnregistrulrezultat(deex.unuldintreregistrelegeneralealeprocesorului)111CONDUCTDEINSTRUC CONDUCTDEINSTRUCf fIUNI IUNI Execu Execu iesecven iesecven ial ial suntnecesare5perioadedeceaspentruexecuiauneiinstruciuni Arhitecturiscalare Execu Execu iepipeline iepipeline ncazulideal,seexecutoinstruciunelafiecareperioaddeceas ArhitecturipipelineIF ID EX MAWBIF ID EX MAWBIF ID EX MAWBIF ID EX MAWBIF ID EX MAWBIF ID EX MAWBIF ID EX MAWBT1T2T3T4T5T6T7T8T9T10Instr.i1Instr.i2Instr.i3Instr.i4Instr.i5PerioadedeceasInstruciunea1 Instruciunea2CicluUCPcurent112CRE CREb bTEREA TEREA NVITEZ NVITEZ Conductcuketaje ininstruciuni deexecutatTCKtimpuldeciclualconducteik TCKtimpulnecesarpentruumplereaconducteiTP =(k+n1) TCKtimpultotalpentruexecuiacelorninstruciuni Pentruunprogramcuninstruciuni,frpipeline(cuexecuiesecvenial)timpulmediutotaldeexecuievafiegalcu:T=n TmediuTmediu timpmediunecesarpentruexecuiauneiinstruciuni Cretereanvitezdatoritfolosiriiconducteipoateficalculatcaraportntreceledouvaloridetimpconsiderndn>>k1 ipresupunndTmediu= k TCK Cretereanviteztindelanumruldeetajealconductei( ) mediu mediuCK CKnT TS= kk+n - 1xT T113ORGANIZAREACIIDEDATE ORGANIZAREACIIDEDATE NTR NTR UNPROCESORRISCELEMENTAR UNPROCESORRISCELEMENTARMain MemoryPipelineDecode &ControlALUD: Linii de datePC: Program CounterA: Linii de adresI-cache D-cacheD D A AInstructionFetchPCMMU MMURegisterFileMagistral RezultatMagistral Operand BMagistral Operand A114ARHITECTURPIPELINE ARHITECTURPIPELINEE EMUXPCMEMInstruciuniICACHEPCPCRIUALReg

In1UALReg

In2Registru

ImediatBlocREGISTREREGISTREDECMUXMUXU

A

LU

A

LUALReg

OutRegistru

CondiiiZero?+4MEMDateDCACHERegistru

DateRegistru

DateRegistru

RezultatMUXIF(FetchInstruciune) ID(Decodificare) EX(Execuie) MA(AccesMemorie) WBRegistre

IF/IDAdres

instruciuni

de

saltScriere n registruSelectoroperaieregreg/regmemAdresare

registre115SURSEDECONFLICT(HAZARD) SURSEDECONFLICT(HAZARD) Cretereanvitezegalcunumruldeetajealconductei(k)estedoarolimitteoretic,pentruc: pemsuracreteriinumruluideetajediferenelentreTmediu ikTCK semresc cuctcretenumruldeetajecuattmaigreuestesechilibrezetimpiideexecuiepefiecareetaj nplusaparproblemedecarenusainutcontnrelaiacalcul: salturilenprogram dependenadedateinterinstruciuni dependenaderesurselehardwareinterinstruciuni acesteelementecreeazceeacesenumetehazardulstructuriidetipconduct Sursedeconflict(hazard): Conflictederesurse hazardstructural Dependenadatelor hazarddedate Ramificrile hazarddecontrol116HAZARDULDEDATE HAZARDULDEDATE Dependenadatelor(hazarddedate) sereferlainstruciunicarefolosesccaoperanzirezultatealeinstruciuniloranterioaredinconduct instruciunileanterioarencnuaufostcompletexecutate rezultatulnuestedisponibil Hazarduldedatesenlturfieprin: metodehardware:multiplicarearegistrelor(bypass) metodesoftware:prinreordonareainstruciunilordinprogramIF ID EX WBIF ID EXIF ID EXIFmovAX,5movBX,AXsubCX,2monDX,CXWBWBID EX WBT1T2T3T4T5T6T7T8T9T10T11117HAZARDULDECONTROL HAZARDULDECONTROL Hazarddecontrol estecauzatdeinstruciuniledesaltnprogram(ramificri) stivatrebuiegolitirenceputprocesuldeexecuiealinstruciunilordelaadresadesalt metodelederezolvarencearcsmeninconductaplinlafiecareimpulsdeceas: prinprediciasalturilor prininstruciunidesaltntrziatIF ID EXIF EX WBID EX WBIF ID EX MAWBjeET1abbAX,BXsubCX,3ET1:mov[1234],AXT1T2T3T4T5T6T7T8. . .IDIF118HAZARDULSTRUCTURAL HAZARDULSTRUCTURAL Conflictederesurse(hazardstructural) produsedeaccesullaaceleairesursedindouetajediferitealeconductei Deexempluaccesulsimultanadouetajelamemoriaprincipal,unuldinaccesepentruaducereacoduluiuneiinstruciuni,iarcellaltpentruaccesareaoperanzilor Acesteconflicteserezolvprinmrireanumruluideunitifuncionale(deexempluUALmultiple)iprinutilizareadespaiiseparatedememoriepentrudateiinstruciuniIF ID EX MAWBmovAX,5mov[1234],AXT1T2T3T4T5IF ID EX WB119PIPELINEARITMETIC PIPELINEARITMETIC Exempludepipelinearitmeticpentruadunarea/scdereanvirgulmobilX=Ax2aY=Bx2b120ARHITECTURPIPELINE ARHITECTURPIPELINEE EMUXPCMEMInstruciuniICACHEPCPCRIUALReg

In1UALReg

In2Registru

ImediatBlocREGISTREREGISTREDECMUXMUXU

A

LU

A

LUALReg

OutRegistru

CondiiiZero?+4MEMDateDCACHERegistru

DateRegistru

DateRegistru

RezultatMUXIF(FetchInstruciune) ID(Decodificare) EX(Execuie) MA(AccesMemorie) WBRegistre

IF/IDAdres

instruciuni

de

saltScriere n registruSelectoroperaieregreg/regmemAdresare

registreARHITECTURADE ARHITECTURADEMICROPROCESO MICROPROCESOR R122ARHITECTURAMICROPROCESORULUI ARHITECTURAMICROPROCESORULUIArhitecturamicroprocesoruluiintel8086Registrelemicroproccesorului8086Cicluriledemagistral.SemnaleledecomandicontrolMagistralainternmultiplexatArhitecturievoluate.Paralelism123ARHITECTURAMICROPROCESORULUI ARHITECTURAMICROPROCESORULUIARHITECTURAMICROPROCESORULUI8086 ARHITECTURAMICROPROCESORULUI8086124MICROPROCESORULINTEL8086 MICROPROCESORULINTEL8086 caracteristiciprincipale caracteristiciprincipaleEmagistraladedatede16bii;Emagistraladeadresede20bii(1MBdememorieadresabildirect);Eadresaresegmentatamemoriei;E4registredeuzgeneralpe16biiadresabiledirectsaupeoctei;E4registredesegmentpe16bii;E2registreindexpe16bii;Eunsistemfoarteflexibildeadresareamemoriei(7moduri);Esistemdentreruperihardwareisoftware;Eposibilitateafuncionriinsistememultiprocesor;Eposibilitateaefecturiioperaiiloraritmetice(inclusivnmulireimprire)ioperaiilogice;Efrecvendetact6MHz.125ARHITECTURAINTEL8086 ARHITECTURAINTEL8086126 PINTEL8086 PINTEL8086 UNIT UNITf fIFUNC IFUNCf fIONALE IONALE Unitateadeexecuie (EU ExecutionUnit) Unitateadeinterfacumagistrala (BIU BusInterfaceUnit) BIUiEUopereaz asincroniformeaz unmecanismunitardeaduceresiexecuieauneiinstruciuni. Procesareaparalel acelordouunitifuncionaleasigur cretereavitezeidelucruamicroprocesorului prinsuprapunereaetapeideaducereauneiinstruciunidinmemorie(prefetch)cuetapadeexecuieainstruciuniiprecedente(magistralasistemesteutilizat maieficeint).127 Pi8086 Pi8086 UNITATEADEINTERFA UNITATEADEINTERFAf fCUMAGISTRALA CUMAGISTRALA Unitateadeinterfa Unitateadeinterfa cumagistrala cumagistrala (BIU BusInterfaceUnit) BIUexecuttoatecicluriledemagistral (READ,WRITE,INTA)fielacererea EUsaupentruumplereauneicozideinstruciuni (QFIFO) QFIFOesteomemoriedetipFirstInFirstOut cu6cuvinte (6registrex1octet) BIUexecutnoicicluriFETCH nintervalelectEUnusolicitmagistralamfiindposibiladucereanavans(prefetch)amax6octeidin programul executat dinlocaiidememorieadiacente(procesareserialaprogramului) Dac EUexecut oinstruciune cetransfer controlul programului spre onouadres,BIUreseteaz coada iorealimenteaz cu 6octeincepnd delaaceastnou adres Dac QFIFO esteplin iEUnusolicit transferuri pe magistral, apar cicluri nateptare (exemplu:T1T2T3T4TITI...TITIT1T2T3T4...TI=Idle State) BIUgenereazadresafizic pe 20debii128 Pi8086 Pi8086 UNITATEADEEXECU UNITATEADEEXECUf fIE IE Unitateadeexecu Unitateadeexecu ie ie (EU ExecutionUnit) EUobinecoduridelaBIU(ateaptdacQFIFOestevid doarncazulinstruciunilordesaltnprogram) EUdecodific iexecutinstruciunile,respectivproceseazdatelecuexcepiacalculelorcomplexeefectuatedecoprocesorulmatematici8087 EUlucreaz cuadreseidatepe8/16bii EUactualizeazflagurile (indicactoriidecondiie) EUcalculeazadreseleefective (pe16bii)aleoperanzilorconformmoduluideadresarespecificatncoduloperaieidininstruciune EUfurnizeazadreseleefectiveidatelectreBIU Execuiainstruciunilorarelabazprincipiulmicroprogramrii:toatecodurileoperaiilorcepotfiexecutatedeEUsuntmemoratentromemoriedetipROMdininteriorulUCP.129 Registreledeuzgeneral Registreledeuzgeneral (MainRegisters) RGsuntlocaii dememorie carestocheaz datele pe careEU leproceseaz launmomentdat itrebuie s fienconcordan cu magistrala intern aprocesorului(MDATE =k*RUCP). Ex.Pentium: busintern pe 64bii,reg. pe32bii Suntregistrepe16biiadresabiledirectsaupeoctet Registreindex pe16bii:SI(SourceIndex),DI(DestinationIndex),BP(BasePointer),SP (StackPointer) Registrulindicatorilordestare idecontrolalprocesului(decondiii) FLAGSREGISTRELEUNIT REGISTRELEUNITf fIIDEEXECU IIDEEXECUf fIE IE15 8 7 0AH AL AX (accumulator)BH BL BX (base)CH CL CX (counter)DH DL DX (data)130 Registredeuzgeneral Registredeuzgeneral (MainRegisters) (MainRegisters) AX operaiiaritmetice(),(/)pe16biiioperaiideI/Ope16biiAL aritmeticzecimalpe8biiiconversiidecodAH operaiiaritmetice()i(/)pe8bii; BX conversiidecodicaregistrudebazdeadrese (adresarebazat); CX operaiicuiruri,curoldecontordecicluri;CL deplasri(stnga,dreaptacuunnumrdepaidaidevaloarealuiCL); DX operaiiaritmetice(),(/)pe16biiicaregistrudeadresareindirectaporturilordeintrare ieire(I/O);REGISTRELEUNIT REGISTRELEUNITf fIIDEEXECU IIDEEXECUf fIE IE utilizri utilizri131 Registreindex Registreindex ipointer ipointer pe16bi pe16bi i i SP implicitntoateoperaiilecustiva(conineadresavrfuluistivei); BP implicitnoperaiilecustiva(conineadresadebazasegmentuluidestiv); SI operaiileasuprairurilordedate(specificadresasursei); DI operaiileasuprairurilordedate(specificadresadestinaiei). Registrelepointer(BP,SP)suntfolositepentruapstradeplasamentulrelativlabazaregistrelordesegmentnoperaiiledeacceslamemorie. SP(registrulindicatordestiv) estenpermanendecrementatfrinterveniaprogramului)iindicadresavrfuluistivei (ultimalocaiedememorieimplicatntrooperaiecustiva)relativlabazasegmentuluidestivREGISTRELEUNIT REGISTRELEUNITf fIIDEEXECU IIDEEXECUf fIE IE utilizri utilizri132FLAGSRegister FLAGSRegister Registruldestare Registruldestare CF CarryFlag depirearitmetic(transport) PF ParityFlag paritate(rezultatuloperaieiareunnumrpardebiisetai) AF AuxiliaryFlag transportntrebitul3i4 ZF ZeroFlag rezultatnullaultimaoperaiearitmeticsaulogic SF SignFlag bitdesemn(iavaloareaMSBlaoperaaiilecunumerecusemn) TF TripFlag TF=1determinUCPslucrezenmodulpascupas segenereazcteontrerupereinterndupfiecareinstruciune IF InterruptFlag mascpentrunteruperiexternemascabile(IF=1 validarentreuperi;IF=0 invalidarentreruperi) DF DirectionFlag indicdireciadeplasriiadreseilaoperaiilecuiruri(autodecrementarearegistrelorSI,DIdacDF=1respectivautoincrementareadacDF=0) OF OverflowFlag indicatordedepirearitmetic:sapierdutMSBalrezultatuluidatoritfaptuluicvaloareaacestuiaadepitcapacitateadereprezentarealocaieidestinaieREGISTRELEUNIT REGISTRELEUNITf fIIDEEXECU IIDEEXECUf fIE IE utilizri utilizri15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Bit- - - - O D I T S Z - A - P - C Flag133REGISTRELEUNIT REGISTRELEUNITf fII II DEINTERF DEINTERFA Af fCUMAGISTRALA CUMAGISTRALARegistresegment RegistresegmentCS CodeSegmentDS DataSegmentSS StackSegmentES ExtraSegmentRegistrulcontordeprogram RegistrulcontordeprogramIPInstructionPointerConineadresa relativ (offsetul)n segmentul decodcurent(relativ laCS) ainstruciuniicurenteBIUactualizeazvaloareanscrisnIPdupfiecareoperaiedefetchn cazul unei instruciuni desalt intersegment,IPestesalvat n vrful stivei (mpreun cu CS) iapoi ncrcat cuadresa relativ n segmentul decod ainstruciunii intRegistrepe16bii spaiudeadresarede64kBOfersuportpentruimplementareaunuispaiudememoriede1MBConinadreseledebazalesegmentelorlogicedecod,date,stiviextrasegmentDoar4segmenteactivelaunmomentdat134SEMNALELEEXTERNEALEMICROPROCESORULUIi8086 SEMNALELEEXTERNEALEMICROPROCESORULUIi8086135SEMNALELEEXTERNEALEMICROPROCESORULUIi8086 SEMNALELEEXTERNEALEMICROPROCESORULUIi8086136SEMNALELEEXTERNEALEMICROPROCESORULUIi8086 SEMNALELEEXTERNEALEMICROPROCESORULUIi8086137 CicluldemagistralalBIU esteunevenimentasincron cencepeodatcuapariiaadreseiuneilocaiidememoriesauaunuiportdeI/Ourmatdeunsemnaldecontroldecitire/scriere Echipamentulselectat(MEM/port)acceptdatadepemagistraladedatepeduratacicluluidescrieresauplaseazdatapemagistralntimpulcicluluidecitire. Laterminareacicluluidemagistralechipamentulrespectivmemoreazdatascirsprinintermediulunorcircuitedetiplatch buffere sau,ncazulcicluluidecitire,itrececircuiteledeieirenstaredenaltimpedan(HiZ) Microprocesorul8086foloseteaceeaimagistralinternpentrutransferuldateloriadreselor CircuiteledememoriesauporturiledeI/OaunevoiedeoadresstabilpetoatduratacicluluidemagistralCICLULDEMAGISTRALALBIU CICLULDEMAGISTRALALBIU138 Considermuncicluldemagistralde4perioadedetactT1T4cueventualelestrideateptare(Tw) Integritateadatelortransferatepemagistralainternamicroprocesoruluiimpunecaaceastasfiedemultiplexatntimppeduratacicluluidemagistral pedurataT1 informaiadeadresesteplasatpemagistraliarmicroprocesorulactiveazsemnalulALE carevaasiguramemorareaadreseincircuiteLATCH(ex.8282 neinversorsqu8283 inversor) CircuiteleLATCHaurorluldeameninepeliniilemagistraleideadreseneiveluridetensiunestabilepetoatduratacilculuidemagistralT1TwT4 (inclusivnperioadelencarepemagistraladeadrese/dateAD15AD0 vorfitransferatedate) Deasemenea,magistraladedateestebufferatprincircuite8286/8287pentruaevitacaunechipamentexternsacceseweaccidentaldatepemagistralamultiplexatiscompromitastfeladresapeperioadaT1MAGISTRALAMULTIPLEXATA MAGISTRALAMULTIPLEXATAu uP8086 P8086139CICLUDEMAGISTRAL CICLUDEMAGISTRAL ACCESMEMORIE(CITIRE/SCRIERE) ACCESMEMORIE(CITIRE/SCRIERE)140MAGISTRALADEADRESEDEMULTIPLEXAT MAGISTRALADEADRESEDEMULTIPLEXATb bIDEMAGISTRALADATEBUFFERAT IDEMAGISTRALADATEBUFFERAT8086AD15AD0ALEA19A16BHE8282/838282/838282/838282/838282/83DT/R DENENTENTAD15AD0Magistraladeadreseextern(20debii)Magistraladedateextern(16bii)A19A1641688884A19A16A15A8A7A0D15D8D7D0141 Procesor pe 16bii 16semnale dedate,24semnale deadres (spaiu deadresare 16MB) Moduri delucru:realiprotejatu uPi80286 Pi80286Unitatea deadresareUnitatea deinterfaareAmplif.dateMagistralaAmplif adreseexternControlmag.Unitatea deexecuieUnitatea deinstruciuniCoada Decod.deinstr. instr.142 Procesor pe 32bii,32semnale dedate,32semnale deadrese (spaiu deadresare4GB) Registre generale extinse la32bii 2registre segmentsuplimentare Modprotejat perfectatu uPi80386 Pi80386Unitatea de Unitatea desegmentare paginareUnitatea de Unitatea deexecuie interfaareUnitatea de Unitatea dedecodificare prenc.instr.143 Integreaz: procesor + coprocesor matematic(FPU FloatPointUnit) + unitateademanagementamemoriei(MMU MemoryManagementUnit) Faciliteaza utilizarea memoriei cache Perfectarea modului protejatu uPi80486 Pi80486Unitatea de Unitatea desegmentare paginareProcesorvirgul fix Unitate Unitatecache interf.Procesor mag.v.mobilDecodificare Prencrcareinstruciuni instruciuni144NOTE NOTE145ARHITECTURAMICROPROCESORULUI ARHITECTURAMICROPROCESORULUIARHITECTURIPENTIUM ARHITECTURIPENTIUM146 Dou linii deprocesare pipeline:UiV Magistrala extern dedatepe 64bii(deieste procesor pe 32bii) Versiuni: Pentium arhitectur cu2linii pipeline PentiumPro PentiumII arhitectur superscalar P6 PentiumIII PentiumIV arhitectur NetBurstu uPPENTIUM PPENTIUM147 PentiumPro Arhitectur superscalar P6 Execuie dinamic ainstruciunilor:Analiza fluxurilor dedatePredicia salturilorExecuia speculativ ainstruciunilor PentiumII Tehnologia MMX:Component pt.datemultimediaExecuie paralel tipSIMD57instruciuni noi MMX PentiumIII Tehnologia SSE2Executie paralel SIMDpt.operaiilenvirgulflotantPentru grafic 2D/3DMAGISTRALAMULTIPLEXATA MAGISTRALAMULTIPLEXATAu uP8086 P8086148 3 uniti autonome : Unitateadecitireidecodificareinstruciunicitetedinmemorieidecodific3instruciuni/perioadadeceasasigurprediciasalturilorprinintermediulunuiblocdememorareaadreselordesalt Unitateadedispecizareiexecuieprezintunitideexecuiespecifice:execuieoperaiicunumerentregiexecuieoperaiicunumerereale(nvirgulflotant FPU)execuiedatemultimedia(MMX) Unitateaderetragererefaceordineanormalarezultatelordupexexciaparalelainstruciunilorasigurinterfaacumemoriacachededatepentruscrierea/citireadatelorARHITECTURASUPERSCALARP ARHITECTURASUPERSCALARP6 6149 Noustandarddemagistral MagistralaP6 magistrala lucreaz n modsincron,cumemorarea semnalelor pe frontulcresctor alsemnalului deceas transferul dedateserealizeaz pe baz detranzacii caresepotdesfura nparalel exist suport pentru conectarea mai multor procesoare pe aceeai magistral sunt favorizate transferurile pe blocuri dedate exist implementate aunormecanisme dedetecie i corecie aerorilor exist suport pentru verificarea imeninerea consistenei memoriilor cache seutilizeaz otehnologie detransmitere asemnalelor caregaranteaznealterarea semnalelor chiar i lafrecvenemariARHITECTURASUPERSCALARP ARHITECTURASUPERSCALARP6 6150ARHITECTURASUPERSCALARP ARHITECTURASUPERSCALARP6 6Unitateade Unitateadeextragere extragere i idecodificare decodificareinstruc instruc iuni iuniL1ICacheL1DCacheUnitateadeinterfaareamagistralei(BIU)L2CacheUnitateade Unitateadedispecizare dispecizare i iexecu execu ie ieUnitateade Unitateaderetragere retragereRezervordeinstruciuniMagistrala sistemLoad Store FetchBlocul Bloculde deregistre registre151 Pentium PentiumIII III aparen1999la450MHz(tehnologie0.25microni) Katmai 2niveluricachede32kB versiuneaCoppermine tehnologie0.18um PentiumI PentiumIV V aparen2000subnumeledecodWillamette arhitecturpe32debiiceopereazlaofrecvendeceasde1,5MHz 42milioanedetranzistoarentehnologie0.18microni tehnologiehyper tehnologiehyper pipeline pipeline cu20deetaje(exceptndetajeleIFiID) cachenivel1de12kB memorieICachedetipTraceCache TraceCache(stocaredimanicainstruciunilor) cachenivel2de256kB versiuneaFoster(2001)laofrecvend2GHzprezintcachelevel3isuportDDRSDRAM versiuneaNorthwood ntehnologie0.13 tehnologie0.13u um m introducenoulsocket478PROCESOAREPENTIUM PROCESOAREPENTIUM152 implementareauneiarhitecturihyper hyper pipelinecu20 pipelinecu20 defazedeprocesarea defazedeprocesareainstruc instruc iunilor iunilor,dublufadevariantaP6 cre cre tereade4oriafrecven tereade4oriafrecven eimagistralei eimagistralei sistem,careastfelajungela400MHz 400MHz;prinutilizareatehnologiei"quadpump"seasiguroratdetransferde3,2Goctei/s dublareavitezeideexecu dublareavitezeideexecu iea ieaUAL UAL,ceeacepermiteefectuareaadouoperaiiaritmeticeilogicesimplepefiecareperioaddeceas;defaptunitateaaritmeticologiclucreazcuunsemnaldeceascarearefrecvenadublfadefrecvenaprocesorului utilizareauneimemoriicachedefoartemarevitez memoriicachedefoartemarevitez (eng.AdvancedTransferCache),carelaofrecvende2GHzasiguroratdetransferde64Goctei/s extindereatehnologieiMMX(eng.SSEStreamingSIMDExtension)prinadugareaa144instruciuniSIMDnoiiextinderealimiidatelorprelucratela128bii(16octeiprelucrainparalel) mbuntireacu30%arateidepredic 30%arateidepredic ie ie asalturilornspecialdatoritextinderiiferestreideanaliz;procesorulPentium4meninenliniadeexecuiepnla126deinstruciuniiutilizeaz4Kocteipentrumemorareaadreselordesalt(BTB BranchTargetBuffer)ARHITECTURANETBURST ARHITECTURANETBURST PENTIUMIV PENTIUMIV153ARHITECTURANETBURST ARHITECTURANETBURST PENTIUMIV PENTIUMIVL1ICache(TraceCache)BTB PrediciesalturiBIUDecodificactorAlocarereg.aliasL2CacheCozideateptaremicrooperaiiPlanificatoareRegistrepentruntregi RegistreFPUUAL UAL UAL UAL UAL UAL UAL UAL UGA UGA UGA UGA UAL UAL F F UAL UAL F FL1DCacheROMExtragere idecodificareinstruciuniPlanificare iexecuieinstruciuni154 Scop: reducerea timpului deexecuie sublimita impus detehnologie Dificultai: descompunerea problemei insecveneexecutabile inparalel sincronizarea ntre taskuri paralele Tipuri deparalelism: SISD singleinstructionsingledataarhitectur scalar (neparalel) SIMD singleinstructionmultipledataarhitectur cumai multe UALparalelism dedate MISD multipleinstructionsingledataarhitectur pipeline MIMD multipleinstructionmultipledataarhitectur paralel propriuzismai multe procesoare execut nparalel secvenediferite deprogramARHITECTURIPARALELE ARHITECTURIPARALELE155ARHITECTURIPARALELE ARHITECTURIPARALELE... MP C M...M...SIMISD MD... M...CCCCCCPPPPPPPI D156 A Arhitecturi rhitecturi func func ional ional paralele paralele DLP(DataLevelParallelism)paralelism lanivel dedate UALmultiple ILP(InstructionLevelParallelism)paralelism lanivel deinstruciuni:arhitecturi pipelineVLIW verylargeinstructionword TLP(ThreadLevelParallelism)paralelism lanivel defiredeexecuie/taskuri:arhitecturi multicorearhitecturi multiprocesorsupercalculatoare calculatoare paralele PLP(ProcessLevelParallelism)paralelism lanivel deprocese:arhitecturi paralele,sisteme distribuite,GRID,cloudARHITECTURIPARALELE ARHITECTURIPARALELE157 Memorie partajat SharedMemory: spaiu liniar si globaldeadrese variante:UMA UniformMemoryAccesstimp uniformdeacces lamemorieNUMA NonUniformMemoryAccesstimp deacces estefunciedeadresa dememorieCOMA CacheOnlyMemoryArchitectureSymmetricMultiprocessor: SharedMemory+SharedI/O Memorie privat PrivateMemory: multe adrese/memorii locale,privatepentru fiecare procesorORGANIZAREAMEMORIEI ORGANIZAREAMEMORIEI NARHITECTURILEPARALELE NARHITECTURILEPARALELE158 Toate procesoarele (P)auacces directlatoate modulele dememorie (M) Mecanism rapidisimplu decomunicaie Probleme potaprea laaccesul simultan lamediul decomunicaie (magistral)sau laacelaimodul dememorieARHITECTURICUMEMORIEPARTAJAT ARHITECTURICUMEMORIEPARTAJATPReea de interconectareMemorie...P P159COMUNICA COMUNICAf fIEPRINMEMORIAPARTAJAT IEPRINMEMORIAPARTAJATSpaiu virtual de adrese Spaiu fizic de adreseP3P2P1localcomunstoreloadSchimb de date i sincronizare prin operaiiLoad and Store OperationsX:X:X:160 Procesoarele auacces directnumai lamemoriile proprii (locale) Comunicaia ntre procesoare sefaceprin schimb demesajeARHITECTRACUMEMORIEPRIVAT ARHITECTRACUMEMORIEPRIVATReea de interconectare...MPMPMP161Schimb dedateisincronizare prin operaiiSend+ReceiveProcedura decomunicaie:construirea antetului (header)copierea datelor nbufferul emitentuluitransmiterea datelorcopierea datelor dinbufferul deintrare alreceptoruluiARHITECTRACUMEMORIEPRIVAT ARHITECTRACUMEMORIEPRIVATlocalx:localy:Procesor P Procesor QSend(x,Q) Rec(y,P)Rendez-vous162NOTE NOTEORGANIZAREAMEMORIEI ORGANIZAREAMEMORIEI164ORGANIZAREAMEMORIEIPRINCIPALE ORGANIZAREAMEMORIEIPRINCIPALESistemuldememorie.IerarhizareamemorieiProiectareamodulelordememorieMemoriinonvolatileimemoriivolatilecuaccesaleatorCeluledememorie.CircuitedememorieStructuramemorieiRAMstaticeidinamiceExempledeproiectareOrganizareamemorieiprincipaleConveniidestocareadatelornmemorieOrganizareadatelornmemorieialiniereavariabilelorSegmentareamemorieiAdresareamemorieinmodulrealAdresareamemorieinmodulprotejatOrganizareaioperareamemorieistivMemoriaCache165SISTEMULDEMEMORIE SISTEMULDEMEMORIE Dispozitiveledememorareauroluldeastoca informaianumeric(programe,dateiniiale,rezultateintermediareifinale)cuposibilitateacainformaianumericspoatfiaccesat printroadresa,pentruaficitit sauscris Sistemuldememoriealcalculatorului=dispozitiveledestocare ainformaiei+algoritmiidecontrolalmemoriei(implementaifiensoftwarefienhardware) Laproiectareaiconstruciaunuisistemdememorie,sefaceuncompromis,alcruiobiectivsseobin: ovitezdeaccesmedie ctmaimare ncondiiileunuicosttotalminim166SISTEMULDEMEMORIE SISTEMULDEMEMORIE principiiderealizare principiiderealizare Informaiastocatestedistribuit peovarietatededispozitivedememorie(dispozitivecuraportcost/performanicaracteristicifizicefoartediferite) Transferuldeinformaii ntrediferitelenivelurialememorieisedesfoartransparent pentruutilizator(sarcinasistemuluideoperare)prinmetodede alocaredinamic aspaiuluidisponibildememorie,pentruoutilizarectmaieficient. Realizareaconceptelormemorieivirtuale pentruaeliberaprogrameleutilizatordefunciaadministrriispaiuluidememorieipentruafaceprogramelerelativindependentedeconfiguraiadatamemorieifizice. Creterealrgimiideband asistemuluidememorieiasigurareaunormecanismedeprotecie167LOCALIZAREAREFERIN LOCALIZAREAREFERINf fELORLAMEMORIE ELORLAMEMORIE Lamajoritateaprogramelorrulatesemanifestlocalizareareferinelorlamemorie :Doaromicporiuneamemorieiesteaccesatlaunmomentdat. Localizareareferineloresteocaracteristicaprogramelorcesemanifestnceamaimareparteatimpuluilarulareaprogramelor. localizaretemporalareferinelor:dacprogramulfaceacceslaoceluldememorielamomentult,estefoarteprobabilcaprogramulsfacdinnouacceslaaceeaicelullamomentult+ localizarespaialareferinelor:daclamomentultprogramulfaceacceslaoceluldememoriedeadresX,estefoarteprobabilcalamomentult+programulsfacacceslaceluladeadresX+ nvirtutealocalizriireferinelor,sistemuldememoriepstreazcelemairecentaccesatedatenmemoriaceamairapid(MEMORIACACHE)168ORGANIZAREAIERARHICAMEMORIEI ORGANIZAREAIERARHICAMEMORIEIMemoriecacheL2UCP UCPRegistreinterneMemorieprincipalRAMMemorievirtualMemorieauxiliar(extern)HDDI/Ocapacitatecost, vitez de accesAcces direct Acces indirectMemoriecacheL1169ORGANIZAREAIERARHICAMEMORIEI ORGANIZAREAIERARHICAMEMORIEISistemeledememoriemultinivel,cuposibilitateadescrierecitiretrebuies satisfacdouproprietiprivindinformaiastocat: proprietatea de incluziune : informaiile care se gsesc pe un anumit nivel dememoriesevorgsiipeniveluldememorieinferior(M1c M2c ...c Mn) proprietateadecoeren : informaiaexistentlaoanumitadresnspaiul dememorietrebuiesfieaceeai,indiferentde niveluldememoriepecareseafl.170ORGANIZAREAIERARHICAMEMORIEI ORGANIZAREAIERARHICAMEMORIEIProprietateadeincluziune EsteposibilcaoinformaieexistentpenivelulMi+1snusegseascpenivelulMi,darsfieaccesat(cerut)penivelulidememorie.nacestcaz(evenimentulestenumit"wordmiss")cuvntulnecesarafiaccesattrebuieaduspeunniveldememoriesuperior(depeniveluli+1,peniveluli).ncazcontrarevenimentulsenumete"wordhit".Proprietateadecoeren Dacuncuvntestemodificatpeniveluli,atuncivatrebuimodificatipeniveluli+1ipetoatenivelurileinferioare. Coerenanivelurilordememoriesepoateobinefieprinpropagareavaloriimodificatespretoateniveleleinferioare("writethrough"),sauprinactualizareanivelurilorinferioarenmomentulnlocuiriiinformaieidepenivelulcurent("writeback").171ORGANIZAREAMEMORIEI ORGANIZAREAMEMORIEICIRCUITEDEMEMORIE CIRCUITEDEMEMORIESTRUCTUR STRUCTURb bINO INOf fIUNIPROIECTARE IUNIPROIECTARE172CIRCUITEDEMEMORIE CIRCUITEDEMEMORIE Celula dememorie Circuit digitalcarememoreaz unbit deinformaie (ex:bistabil JKMS,3TCell) Locaia dememorie (cuvnt dememorie) Setdecelule elementare dememorie careseacceseaz simultan Unitatea elementar deadresare (1,4,8,16,32bii) Fiecare locaie areasocitat oadres Circuitdememorie =Setdelocaiidememorie Capacitatea memoriei = numrul totaldelocaii(adrese)bk . . . b1 b0locaieliniicoloane0 1 2 . . c-1012..l-1Structurmatricial(k matrici)celul173TIPURIDECIRCUITEDEMEMORIE TIPURIDECIRCUITEDEMEMORIEQMemoriiROM(ReadOnlyMemory) menininformaiaidupdecuplareatensiuniidealimentare potfiprogramate(PROM,EPROM,EEPROM,Flash)QMemoriiRAM(RandomAccessMemory) MemoriiRAMstatice(SRAM) MemoriiRAMstatice(SRAM)setdecircuitebistabile(ex.JKMS)cepstreazinfrormaiapedurataalimentriicuenergiesuntconstruitederegulntehnologiebipolarsauunipolarsuntmemoriirapidedardecapacitatemic/unitatedecosticonsumridicatsuntrealizatecuadresareunisaubidimensional MemoriiRAMdinamice(DRAM) MemoriiRAMdinamice(DRAM)celuledememorie3T(tranzistoareCMOS)cepierdconinutulntimp(perioadadedescrcareacapacitiiGrilSursatranzistoruluiCMOS)vitezmediedarconsumredusdeenergiesicapacitimari/unitateadecostdensitatedeintegrareridicat174MEMORIANONVOLATILROM MEMORIANONVOLATILROM READONLYMEMORY READONLYMEMORYDECADRAmplificatoare date la citire si programareA0A1AnLogicadecontrolCSPROGOEDk Dk-1 D1 D0ADRDATEAdresa validaDate validetACCTCICLUtOEtCStOHCSOEWLDLTROMWLDLTPROMVcc~FWLDLT1EPROMPLT2175SRAMCUADRESAREUNIDIMENSIONAL SRAMCUADRESAREUNIDIMENSIONALIDk-1CSDCQDCQDCQDCQDCQDCQDCQDCQDCQID1ID0ODk-1OD1OD0R/WDECADRA0A1An-1176SRAMCUADRESAREBIDIMENSIONAL SRAMCUADRESAREBIDIMENSIONAL CircuitdememorieSRAM cudimensiunea8kB 13liniideadres(213=8k)partajatede2decodificatoaredeadres(DCDliniiiDCDcoloanemacestadinurmrealizatprintrunblocde8MUX/DMUX) celuleledememoriesuntbistabilicepastreazinformaiapeduratadealimentare177MEMORIARAMDINAMIC MEMORIARAMDINAMIC(DRAM) (DRAM) Celula elementara dememorie este uncondensator CMOScereineinformaiasubformasarciniielectricestocate Estevorbadecapacitateajonciuniigrilsurs Condensatorulsedescarc intimp pierdereainformaieiWL/RDLT3WL/WC CT1T2 Pentru apreveni pierderea sarcinii,informaia trebuie remprosptat dintimpn timp condensatoarele trebuierencrcate cuinformaia stocat anterior funcionare dinamic, ce presupunencrcarea periodic acondensatoarelorinterne 3cicluridefuncionare: cicluldecitire cicluldescriere ciclulderemprosptare178CARACTERISTICIDRAMCONVEN CARACTERISTICIDRAMCONVENf fIONAL IONAL Prezint cea mai maredensitate deintegrare dintre tehnologiile adecvate memorieiprincipale i totodat prezint cel mai mic costpe bit Matricea dememorie este ptrat (m m iar m =2n/21,unden estedimensiuneamagistraleideadrese) Sefolosete oschem deadresare bidimensional (DCDlinii i DCDcoloane MUX/DEMUX) Sefolosete multiplexarea biilor pentru adresele delinie i adresele decoloan.Adresa furnizat dispozitivului de memorie sefaceprintrunnumr delinii egal cujumtate dinnumrul totaldebii deadres numr mai mic de pini lacapsul* Deexemplu: pentru 222celule =4Mbit cumatrice de2048x 2048celule numrul depinideadres aicapsuleidmemorie este 11i nu 22 atenie:magistraladeadreseasistemuluirmnepe22debii179MEMORIARAMDINAMIC MEMORIARAMDINAMIC(DRAM) (DRAM)ASINCRON ASINCRONDECAdrlinieMUX / DMUX2n/2-1:1 / 1: 2n/2-1A0A1An/2-1DinRegistruadreslinieRegistruadrescoloan n/20 1 2 . . 2n/2-1012..2n/2-1n/2n/2RASCASDoutWEAmplificatoare R/W+Buffer I/O180CICLURILEDEACCESLAMEMORIADRAM CICLURILEDEACCESLAMEMORIADRAMAdrese AdreseRAS RASCAS CASWR WRDate DateAdr.Linie Adr.Linie Adr. Co Adr. Coloan loanDate DateAdr.Linie Adr.Linie Adr. Co Adr. Coloan loanDate DateT_ras T_ras- -cas casT_acces T_accesT_ciclu_citire T_ciclu_citireT_cas T_casT_ras T_ras- -cas casT_acces T_accesT_ciclu_scriere T_ciclu_scriereT_cas T_casAdrese AdreseRAS RASCAS CASWR WRAdr.Linie Adr.LinieT_ciclu_refresh T_ciclu_refresh Amplificatoarele R/W sunt circuite caregenereaz nivel logic0sau 1pornind delatensiunea depe condensatorul tranzistoruluiCMOS(celula)selectat Decte ori seselecteaz olinie,acelai circuitamplificator facei remprosptarea(renscriereatuturor condensatoarelor depe linia respectiv)181PROIECTAREAUNUIMODULDEMEMORIE PROIECTAREAUNUIMODULDEMEMORIE Structurageneralaunuimoduldememorie:AdreseDateSeleciiAmp.

adreseAmp.

dateMatricea decircuite dememorieCirc.decontrolDecSeleciemodulComenzi182CERIN CERINf fEDEPROIECTAREMODULSRAM EDEPROIECTAREMODULSRAM Tipulmemoriei :SRAM Capacitateamemoriei :1MB Organizareaintern :pe16biicuaccesdirectpeoctet Magistralafolosit :ISA24liniideadres16liniidedateSemnaledecomand:MRDC(citirememorie)iMWTC(scrierememorie) Circuitedememoriefolosite :64kB Aresadenceput :C00000hpentrumapareaspaiuluidememoriede1MBnspaiultotaldelocaiiadresabileprinmagistralaISA(16MB) Necesitateafolosiriiamplificatoarelordeadresidatesefacepentruasigurareanivelurilorcorectedetensiunepemagistrale183SUBMODULDEMEMORIEPE16BI SUBMODULDEMEMORIEPE16BIf fIACCESABILPEOCTET IACCESABILPEOCTET Pentruasepermiteaccesareamemorieipeocteticuvnt,fiecaresubmoduldememorieesterealizatdin2circuitedememoriede64kB(celedisponibile)folosindusedousemnaledeselecie: CSL ChipSelectLow CSH ChipSelectHigh SemnaleledeselecieoctetLow/HighseobindepeliniamagistraleideadresA0 iBHE(ByteHighEnable) Pentruadresarealocaiilordememoriedincircuitelede64kBsefolosesc15liniideadres(A1 ...A16):215=64k Prininterconectareamaimultorsubmoduledememoriesevaobineomatricedememoriededimensiueadorit Bloculdedecodificare trebuie s genereze semnale deselecie pentru submodule ipentru modulul dememorie luat cantreg;decodificarea sefacepe baza semnalelordeadres si decomand184SUBMODULULDEMEMORIEPE16BI SUBMODULULDEMEMORIEPE16BIf fI ID0D1D7D8D9D15MagistraladedateMagistraladeadreseA1 A16MWRCSiA0BHECSLiCSHiD0D1D7D8D9D15CSWRCSWRA0A1A15A0A1A15Submoduli128kB64Kx16bii64k*864k*8185CONSTRUIREAMATRICIIDEMEMORIEDE1MB CONSTRUIREAMATRICIIDEMEMORIEDE1MBA0- A1664K*1664K*1664K*16D0- D15BHE\CS0\MWR\CS1\CS7\512K*16=1M*8BHE\CS\MWR\BHE\CS\MWR\BHE\CS\MWR\186PROIECTAREAUNIT PROIECTAREAUNITf fIIDEDECODIFICARE IIDEDECODIFICAREb bICOMAND ICOMANDA A Q Q0 0B B Q Q1 1C C Q Q2 274LS138 74LS138(D (DCD CD) )E1 E1\ \E2 E2\ \ Q Q7 7E3 E3A23A22A21A20A19A18A17Adresa de nceput :C00000h(110000...0b)CS7\CS2\CS1\CS0\CS\MRD\MWR\Circuit de comand Circuit de comandDecodificator Decodificator187CERIN CERINf fEDEPROIECTAREMODULDRAM EDEPROIECTAREMODULDRAM Tipul memoriei : DRAM asincron Capacitateamemoriei :16MB Organizareaintern :pe16biicuposibilitateadresarepeoctet Caracteristicilemagistralei28liniideadres16liniidedateSemnaledecomand:MRDC(citirememorie),MWTC(scrierememorie)iRefresh(ptrenprosptare) Circuitedememoriefolosite :1MB Aresadenceput :D000000hpentrumapareaspaiuluidememoriede16MBnspaiultotaldelocaiiadresabileprinmagistral(256MB)188SUBMODULDEMEMORIEPE16BI SUBMODULDEMEMORIEPE16BIf fIACCESABILPEOCTET IACCESABILPEOCTET Proiectarea memoriilor dinamice este nprincipiu similar cuproiectarea memoriilorstatice,cuurmatoarele amendamente: trebuie s seadauge unmecanism deremprospatare periodic amemoriei adresele trebuie multiplexate (generarea secvential pe aceleaisemnale aadresei delinie si aadresei decoloan) trebuie s segenereze semnale devalidare aadresei delinie (RAS\ RowAddressSelect)iaadresei decoloan (CAS\ ColumnAddressSelect) selecia circuitelor sefacecusemnalele RAS\ si CAS\ Pentru circuitele RAMdinamice,multiplexarea ntimp aadreselor afost necesarpentru areducenumrul depini ai circuitului dememorie iimplicitadimensiuniiacesteia (datfiindcapacitatearelativmareamemoriilordinamice).Astfel,adresavafitransmiscircuituluidememoriesecvenialprinaciuneacelordoutipurisesemnaledeselecieRASiCAS Remprospatarea sefacesimultan lanivelul unei linii ntregi dinmatricea dememorie189SCHEMABLOCULUIDEMEMORIEDRAM SCHEMABLOCULUIDEMEMORIEDRAMCircuitdecontrolDECMUXADRAdrese linii/coloane Adrese linii/coloaneA A9 9 A A0 0Mag. de adrese A Mag. de adrese A27 27 A A0 0Mag. de date D Mag. de date D15 15 D D0 0Mag. de control Mag. de controlCircuitul deCircuitul de memorie memorieCAS0 CAS0CAS1 CAS1CAS7 CAS7RAS RASMW/R MW/RSubmodul121MBSubmodul221MBSubmodul721MBAdr_Sel Adr_SelA A20 20 A A1 1A A27 27 A A21 21D D15 15 D D0 0A A0 0A A0 0190SUBMODULULDEMEMORIEDE2MB SUBMODULULDEMEMORIEDE2MBA0 A0 D0 D0A1 A1 D1 D11M 1M 8biti 8bitiA9 A9 D7 D7CAS CAS\ \RAS RAS\ \WR WR\ \A0 A0 D0 D0A1 A1 D1 D11M 1M 8bit 8biti iA9 A9 D7 D7CAS CAS\ \RAS RAS\ \WR WR\ \D15 D15D9 D9D8 D8D7 D7D1 D1D0 D0RAS RAS\ \CASi CASi\ \BHE BHE\ \MWR MWR\ \A0 A0Adrese linii/coloane Adrese linii/coloaneA0 A0 9 9Magistrala deMagistrala de date dateSubmodulul i Submodulul i1M 1M 16bi 16bi i = 2Mo i = 2Mo191UNITATEADEDECODIFICARE UNITATEADEDECODIFICAREb bICOMAND ICOMANDA A Q Q0 0B B Q Q1 1C C Q Q2 274LS138 74LS138E1 E1\ \E2 E2\ \ Q Q7 7E3 E3A27 A27A26 A26A25 A25A24 A24A23 A23A22 A22A21 A21CAS7 CAS7\ \CAS2 CAS2\ \CAS1 CAS1\ \CAS0 CAS0\ \Refresh Refresh\ \MWR MWR\ \MRD MRD\ \Sel_Modul Sel_Modul\ \RAS RAS\ \CAS CAS\ \Adr_Sel Adr_SelCircuit de comand Circuit de comandDecodificator Decodificator + +Linie deLinie de ntrziere ntrziereAdresa de nceput :D000000h(110100...0b)Adr_Sel areroluldeaselectadepemagistraladedatesistemdecadalow/highcesevaconectapeintrriledeadresalecircuituluidememorie.Acestsemnaltrebuiespreceadsemnaluldeactivareaadreseidecoloan(CAS)192MODULULDEMULTIPLEXAREADRESE MODULULDEMULTIPLEXAREADRESEb bIAMPLIFICAREDATE IAMPLIFICAREDATE10 10 MUX2:1 MUX2:1AmpbufferAmpbufferAmpbufferS SA A10 10S SA2 A2S SA1 A1S SA A20 20S SA A1 12 2S SA A1 11 1I0 I0I1 I1Q QA A9 9A A1 1A A0 0SD7 SD7SD1 SD1SD0 SD0SD15 SD15SD9 SD9SD8 SD8 Adr_Sel Adr_SelD7 D7D1 D1D0 D0D15 D15D9 D9D8 D8S SA A0 0SBHE SBHE\ \MRDC MRDC\ \MWRC MWRC\ \A A0 0BHE BHE\ \MRD MRD\ \MWR MWR\ \MRD MRD\ \CS CS\ \193ORGANIZAREAMEMORIEI ORGANIZAREAMEMORIEIMEMORIAPRINCIPAL MEMORIAPRINCIPAL194ORGANIZAREALOGICAMEMORIEIPRINCIPALE ORGANIZAREALOGICAMEMORIEIPRINCIPALEORGANIZAREALOGICAMEMORIEIPRINCIPALE ORGANIZAREALOGICAMEMORIEIPRINCIPALE(MP) (MP)sereferla:ModalitateadestocareadateloriinstruciunilorAliniereainformaieinmemorieSegmentareamemorieiModuriledeaccesladateiinstruciuni195MEMORIAPRINCIPAL MEMORIAPRINCIPALMEMORIAPRINCIPAL MEMORIAPRINCIPAL esteunspaiudememoriecuaccesaleator(RAMRandomAccessMemory)adresabildirectdectremicroprocesor.Capacitatea acestuispaiudememorie (noctei)depindededimensiuneamagistraleideadrese :| || |2MAbitsMP bytes =Microprocesorul intel8086 Poateaccessadirect1MB (220)dememorielaadresele0 FFFFFh(MApe20debii) Memoriaesteadresabilpeoctet00000FFFFF1MB7 00000200003FFFFEFFFFD00001Memoriaprincipaloctet196LOCA LOCAf fIIDEMEMORIESPECIALE IIDEMEMORIESPECIALEMicroprocesorul intel8086dispunedeoseriedelocaiidememoriespecialesituatelaadresele0 07Fh(128octei)iFFFF0h FFFFFFh(16octei): Rezervatedefirmpentrudezvoltriulterioare Dedicate pentrunteruperi ipornireasistemuluidupreset TVI Tabelavectorilordenterupereconineadreselerutinelordetratareantreruperilor RESET Spaiudememoriececonineinstruciunileceseexecutlarepornireasistemuluiprincomandareset00000FFFFF7 0000140007FoctetFFFFCFFFFBFFFF000013TVIrezervatrezervatRESET128octei16octeiDisponibil197CONVEN CONVENf fIIDESTOCARE IIDESTOCAREb bIADRESAREAINFORMA IADRESAREAINFORMAf fIEI IEI NMP NMP Tipuridedatememorate: 8bii(octet/byte) 16bii(cuvnt/word) 32bii(doublesaupointeri) Stocareainformaiei(dateiinstruciuni)nmemoriesefacenlocaiiadiacentedememoriesituatelaadresesuccesive DupmodulncaresestocheaznmemoriaprincipalinformaiileMULTIOCTETexistdouconvenii: LittleEndian (conveniaIntel) BigEndian(conveniaMotorola)198CONVEN CONVENf fIIDESTOCARE IIDESTOCAREb bIADRESARE IADRESARE INFORMA INFORMAf fIEMULTI IEMULTI OCTET OCTETLittleEndian (conveniaIntel) Stocarea nmemoriesefacenordine,delaoctetulcelmaipuinsemnificativ(adresamic)ctreoctetulcelmaisemnificativstocatlaadresaceamaimare Adresarea informaieimultioctetsefaceprinlansareaadreseiceluimaipuinsemnificativoctetExempludestocarenmemorieaunuicuvntdublude32debii(valorilenumericeaufostscrienhexazecimal)3F455C01DatastocatncepnddelaadresaA este:3F045C01MemoriaprincipalA+3:A+2:A+1:A:CelmaipuinsemnificativoctetCelmaisemnificativoctet199SELEC SELECf fIAHARDWAREAMEMORIEI IAHARDWAREAMEMORIEICONSTRUIREAUNEIMEMORIIADRESABILEPEOCTET Omemoriedecapacitatemareimpunefolosireamaimultorblocuridememorieselectateprinintermediulunuidecodificatordeadres Exemplu:256kBdememoriecucircuitede64kB256k=218 18biipentrumagistraladeadrese200ADRESAREAMEMORIEIPECUVNT ADRESAREAMEMORIEIPECUVNTCONSTRUIREAUNEIMEMORIIADRESABILEPECUVNT128kB=2x64kB Mag.Date 16bii;Mag.Adrese 16bii201ALINIEREAINFORMA ALINIEREAINFORMAf fIEI IEI NMEMORIE NMEMORIE Legatdeconveniadestocarenmemorieainformaiilor(instruciuni,date,adrese)trebuiemenionatclaunelemicroprocesoareaccesullaobiectemaimaridectunoctetsepoatefacedoardacinformaiaesteALINIAT Aliniereainformaieiiancalculdoumrimi:dimensiuneaobiectuluistocat(DOB)idimensiuneamagistraleidedate(DMagDate) AliniereasereferlafaptulcaccesullaunobiectstocatnmemoriesefaceprinspecificareaadreseiA aprimuluioctetocupat,undeadresaArespectecuaia:A modulo DMagDate =0 Deexemplu,dacmagistraladedateestepe32debii(4octei),toateadreseledivizibilecu4desemneazlocaiidememoriealiniate,indiferentdedimensiuneaobiectuluistocat202ALINIEREAINFORMA ALINIEREAINFORMAf fIEI IEI NMEMORIE NMEMORIE203ALINIEREAINFORMA ALINIEREAINFORMAf fIEI IEI NMEMORIE NMEMORIE Lamicroprocesoareleactuale,asamblorulatribuieautomattuturordateloradresealiniate,indiferentdenumruldeocteiocupatdeacestea Avantaj:seminimizeaztimpuldeaccesladateledinmemorie Dezavantaj :risculdeocupareaunuispaiudememoriemaimaredectcelnecesar.OptimizareamemorieiocupaterevineprogramatoruluiEx. C ASMcharc; DBcfloatf; DDfspaiudememorieocupat 8octeispaiudememorieutil 5octei204ALINIEREAINFORMA ALINIEREAINFORMAf fIEI IEI NMEMORIE NMEMORIE i8086 i8086 Lamicroprocesoruli8086nuexistrestricii privindplasareadatelornmemorie(elepotfistocateoriundenmemorie,nlocaiialiniatesaunealiniate) Magistraladedatepe16biiAmodulo2=0pentruadreselepare(datealiniate) nfunciedeplasareadatelorlaadresepare(aliniate) sauimpare(nealiniate),UCPvaexecutaautomatnumruldeciclurinecesarpentrucitirea/scrierealor Avantaj :optimizareamemorieiocupate(stocaredensaprogramuluinmemorie).Acestlucruafostimpuslaprimelegeneraiidemicroprocesoaredatoritpreuluimarealmemorieidemarecapacitate Dezavantaj :UCPvaexecutaunnumrdubludecicluridemagistral pentruaccesulladatelenealiniate(stocatelaadreseimpare)205ALINIEREAINFORMA ALINIEREAINFORMAf fIEI IEI NMEMORIE NMEMORIE i8086 i8086.datavar1 db5var2 db7var3 dbAvar4 dw12Variabilavar4estenealiniatfiindstocatlaadresaimpar1FA13h(deplasament=3)Variabilstocatvar4Avar2var1AdresHEX1FA14h1FA13h1FA12h1FA11h1FA10h7 0MemoriaprincipalBazsegmentdedate0507410C00206ORGANIZAREAHARDWAREAMEMORIEI ORGANIZAREAHARDWAREAMEMORIEI I8086 I8086 Spaiuldememoriede1MBestedivizathardwaren2zonea512kB Cele2blocuripotfiselectateseparatsausimultanincarcpemagistraladedate(16bii)cteunoctet: lowerbank D7...D0 upperbank D15...D8 A19...A1 selecteazsimultanolocaiedememoriede1octetnlowerbankiupperbank A0 selecteazbankulinferior BHE selecteazbankulsuperiorBHE A0 Aciune0 0 ambii octei pe magistrala de date0 1 selecteaz octetul H (adres impar)1 0 selecteaz octetul L (adres par)1 1 niciun octet selectat207ORGANIZAREAHARDWAREAMEMORIEI ORGANIZAREAHARDWAREAMEMORIEI I8086 I8086BankH512kx8ADRDataCSBHED15: D8D7: D0A0BankL512kx8ADRDataCSD15: D0MagistraladedateMagistraladeadrese881619 19A19: A1208ACCESULLAOVARIABILWORDNEALINIAT ACCESULLAOVARIABILWORDNEALINIATBHED15: D8D7: D0A0D15: D0881619 19A19: A1000C2 000C3000C4XLXHCiclumagistral A19...A0 A0 BHE D15...D0HLLHi adresavariabileiXpemagistraladeadrese000C3hXLpeliniileD15...D0alemagistraleidedatei+1adresaesteincermentat000C4hXHpeliniileD7...D0alemagistraleidedate209SEGMENTAREAMEMORIEI SEGMENTAREAMEMORIEI i8086 i8086 20debiideadresechivaleazcu1MBmemorieadresabildarsetulderegistreinterne al microprocesoruluii8086estepe16bii putndcodificaadresendomeniul0h...FFFFhntrunspaiumaximde64kB Spaiuldememoriede1MBestemprit nsegmentede64kB,adresabilecuajutorulregistrelorpe16bii SEGMENTELEsuntunitilogicedememoriecontinu,independenteiadresabilenmodseparat Segmentelepotfiisuprapuse(potexistaoinfinitate)dartrebuieavutnvedereintegritateadatelorconinute Segmentelepotfiplasateoriundenmemoriecurespectarealocaiilordememoriespeciale210SEGMENTAREAMEMORIEI SEGMENTAREAMEMORIEI i8086 i8086 Segmentelesuntdefinitenmodunicprinadresadesegment(AS) adresadesegment(AS) unntregfrsemn,pe16bii,multiplude4,ceidentificadresabazeisegmentului(coninutnregistrulsegmentalmicrorprocesorului) Lai8086,BIUconine4registresegment(CS,DS,SS,ES)maxim4segmenteadresabilenmodcurent (segmentuldecod,date,stivaiextrasegmentuldedate)SegmentdedateSegmentdecodSegmentdestivExtrasegmentSSESDSCSUCPRAMRegistresegment211ADRESAEFECTIV ADRESAEFECTIV(AE) (AE) Lamicroprocesoarelecumemoriasegmentat,adresaefectiv(AE)rezultcaunntregfrsemn,pe16bii,cereprezintdeplasamentul(offsetul) adresarelativaoperanduluifadenceputulsegmentuluincareseafl AdresaefectivaoperanzilorinstruciunilorestecalculatdectreUnitateadeexecuie(EU) aUCP Instruciunile suntextrasedinsegmentuldecodiarAEestedatderegistrul IP(InstructionPointer)referiticaPC(ProgramCounter) Operaiilecustiv suntexecutatensegmentuldestivcurentiardeplasamentuledatderegistrulindicatordestivSP(StackPointer)212ADRESAFIZIC ADRESAFIZIC(AF) (AF) Adresafizic(AF)rezultcaunntregfrsemn,pe20debii,ceidentificnmodunicolocaiedememoriedinRAM AdresafizicaoperanzilordatelorestegeneratdectreUnitateadeinterfacumagistrala (BIU)aUCP Intel8086:Adresafizic(AF)seobinedinadresaefectiva(AE)lacareseadaugadresadesegment(AS)nmulitcu16,canecuaia:AF=ASx24+AE Cualtecuvinte,adresafizic(AF) seobineprindeplasareaadreseisegment(AS)cu4biisprestngaiadunareadeplasamentului(AE) nconcluzie,pentruadresareaunuioctetdememoriesefolosescdouentitipe16bii(oadressegmentconinutonligatoriuntrunregistrusegment)iundeplasament.Sevorbetedeadrese(pointeri)pe32debiideiadresafizicsecodificpe20debii213FORMAREAADRESEIFIZIC FORMAREAADRESEIFIZIC(AF) (AF) Oadrescompletestecodificatinternprintrun pointer pe 32debii SpecificareaunuipointerfolosetenotaiaSEGMENT:OFFSET(AS:AE) Ex: DS:5678 sau1234:5678AF=179B8hAS 0000AEAF19 43019 015 0Adr.efectiv(offset)Adr.segmentAdr.fizic1 2 3 4 05 6 7 81 7 9 B 8214ADRESAREAMEMORIEI ADRESAREAMEMORIEI MODULREAL MODULREAL1234RegistrulDS5678DeplasamentulSegmentuldedate64kBMemoriaprincipal12340179B8:2233F00000E