ArquiteturadeComputadores Prof.AlexandroBaldassin 1osemestre/2017 FeedbackfromStudents • CaioCarnelozenviouumlinkparaumvídeoquefalaum poucosobreaevoluçãodacomputação • hEps://youtu.be/Bpas8YUlXTA • SeaindústriaautomobilísOcaOvesseavançadono mesmoritmoqueacomputação(LeideMoore),hoje teríamoscarrosandandonavelocidadedaluze custandoalgunscentavosdereais ArquiteturadeComputadores 2 PersonagemdaSemana VonNeumannmedal,1993 “Forsignificantdevelopmentsincomputer architecture,insigh_ulobservaOonson so`wareengineering,andforcomputer scienceeducaOonandprofessionalservice.” Turingaward,1999 “ForlandmarkcontribuOonstocomputer architecture,operaOngsystems,andso`ware engineering.” FrederickP.Brooks,Jr. (FredBrooks) ArquiteturadeComputadores 3 MICROARQUITETURA Conceitos Ciclodeexecuçãodeinstruções P&H4.1,4.2 H&H7.1 ArquiteturadeComputadores 4 Recordando… ISA(partevisívelao programador) Problema Raíz quadrada de N? Algoritmo Sequência de passos Software Programas Sistema Operacional Device drivers Arquitetura Instruções Registradores Microarquitetura Caminho de dados Controle Lógica Somadores Memórias Circuitos Portas AND e OR Dispositivos Transistores Diodos Física Elétrons ArquiteturadeComputadores 5 Recordando… Implementação específicadeumISA (hardware) Problema Raíz quadrada de N? Algoritmo Sequência de passos Software Programas Sistema Operacional Device drivers Arquitetura Instruções Registradores Microarquitetura Caminho de dados Controle Lógica Somadores Memórias Circuitos Portas AND e OR Dispositivos Transistores Diodos Física Elétrons ArquiteturadeComputadores 6 Comoumamáquinaprocessainstruções? • Oquesignificaprocessarumainstrução? E=estadoarquitetural(visívelaoprogramador) antesdainstruçãoserprocessada Processamentodainstrução E’=estadoarquitetural(visívelaoprogramador) depoisdainstruçãoserprocessada • Processamentodeumainstrução:transformaçãodeE emE’,deacordocomaespecificaçãodoISA ArquiteturadeComputadores 7 Processamentodeinstruções • OISAespecificaoqueE’deveser,dadoumainstruçãoe E – Podesermodeladocomoumamáquinadeestadofinita – DopontodevistadoISA,nãoháestadosintermediáriosentre EeE’ • MicroarquiteturaimplementacomoEétransformado emE’ – Hámuitasopções – Estadostemporários(invisíveisaoprogramador)podemser introduzidos ArquiteturadeComputadores 8 Ciclodeexecuçãodeinstrução • Emgeral,organizamosaexecuçãoemumasequência depassoscomumatodasinstruções • CincopassosclássicosemmáquinasRISC 1. 2. 3. 4. 5. Buscadainstrução(eincrementodePC) Decodificaçãodainstruçãoeleituradeoperandos Execução(lógica/aritméOca)oucálculodeendereço Acessoàmemória Escritaemregistrador • Nota:umainstruçãonãonecessariamentepassapor todososestágios ArquiteturadeComputadores 9 1.Buscadainstrução • Instruçãoébuscadanamemória – PCapontaparainstruçãoaserexecutada • NesteestágiotambémécomumincrementaroPCpara queestepossaapontarparapróximainstruçãoaser executada • Todasasinstruçõesrequeremestepasso ArquiteturadeComputadores 10 2.Decodificaçãodainstruçãoeleitura • Camposdainstruçãosãodecodificados(lembre-seque todainstruçãopossuiumformato) • MIPS 1. campoOPdeterminaOpodainstrução(R,IouJ)etamanho doscamposrestantes 2. dadossãolidosdosregistradoresnecessários add→lêdoisregistradores addi→lêumregistrador j→nenhumregistradorprecisaserlido ArquiteturadeComputadores 11 3.Execução • Aclassedainstruçãodeterminaoquedeveserfeito nesteestágio – emgeral,umaunidadearitméOcalógica(ALU)éusada • InstruçõesaritméOcaselógicas(add,or,slt,...) – ALUcomputaresultadodaoperação(executainstrução) • Einstruçõesdeleituraeescrita(lw,sw,...)? – ALUéusadaparacálculodoendereçoefeOvo ArquiteturadeComputadores 12 4.Acessoàmemória • SomenteinstruçõesdeleituraeescritaefeOvamente necessitamdesteestágio • Outrasinstruçõessimplesmentenãofazemnada • Instruçõesdeleitura – dadoconOdonoendereçodememóriacomputadonoestágio anteriorélido • Instruçõesdeescrita – dadoconOdonoregistradorfonteéescritonoendereçode memóriacomputadonoestágioanterior ArquiteturadeComputadores 13 5.Escritaemregistrador • Executadapelasinstruçõesqueprecisamescrever resultadodaoperaçãoemregistradordesOno • Exemplos – instruçõesaritméOcaselógicas – instruçãodeleitura • Equantoàsinstruçõesdedesvioeescritaemmemória? – nãonecessitamdesteestágio ArquiteturadeComputadores 14 Exemplodeexecução 0x012A4020 0x00 op 0x09 0x0A 0x08 0x00 0x20 rs rt rd shamt funct add Estágio1 $8,$9,$10 instruçãobuscada,PCincrementado Estágio2 decodificaeencontrainstruçãoADD,eentãolê registradores$9e$10 Estágio3 adicionaregistradoreslidosnoestágioanterior Estágio4 nãousado Estágio5 escreveresultadodoestágio3noregistrador$8 ArquiteturadeComputadores 15 Maisumexemplo… lw $3,16($1) Estágio1 instruçãobuscada,PCincrementado Estágio2 decodificaeencontrainstruçãoLW,eentãolêregistrador$1 Estágio3 adiciona16aoconteúdodoregistradorlidonoestágio anterior,calculandooendereçoefeOvodememória Estágio4 lêconteúdodamemórianoendereçocalculadonoestágio3 Estágio5 escreveconteúdolidonoestágio4noregistrador$3 ArquiteturadeComputadores 16 Componentesdeumprocessador • Caminhodedados – componenteresponsávelpelamanipulaçãodosdados (armazenamento,aritméOca,mulOplexação...) – compostodeblocosfuncionais • Unidadedecontrole – componenteresponsávelporinformaraocaminhodedadoso quenecessitaserfeito(comoexecutarumadeterminada instrução) – compostaporsinaisdecontrole ArquiteturadeComputadores 17 Comoprojetarumprocessador? 1. Analisarconjuntodeinstruções(ISA) – RegisterTransferLanguage(RTL)égeralmenteusada 2. Selecionaroscomponentesdocaminhodedadose estabelecerumametodologiadetemporização 3. Construirocaminhodedadosdeacordocomos requerimentos 4. Analisaraimplementaçãodecadainstruçãopara determinarossinaisdecontrolequerealizama transferênciadosdados 5. Construiraunidadedecontrole ArquiteturadeComputadores 18 ProjetodoprocessadorMIPS • VamosexploraralgumasimplementaçõesparaoMIPS, usandoumsubconjuntodeinstruções – add,sub,and,or,slt(Opo-R) – lw,sw(acessoàmemória) – beq(desviocondicional) • Primeiramente,construiremosocaminhodedados • Aseguir,projetaremosaunidadedecontrole ArquiteturadeComputadores 19 AnálisedoISA–RTL Paracadainstrução, analisaroscomponentes combinacionaise sequenciais(deestado) necessários ARTL(RegisterTransfer Language)éusada comoumaabreviação doqueaconteceno hardware ArquiteturadeComputadores 20 Seleçãodecomponentes • PC – Implícito->arquiteturaVonNeumann • Memória(instruçãoedados) • Bancoderegistradores(32) • ALU – Soma,subtração,AND,comparação,... • Outros – Hardwareparaestendersinal/zero – Hardwareparasomar4aoPC(usarALU?) – MulOplexadores(seleçãodedados) ArquiteturadeComputadores 21 PC(ProgramCounter) endereço próximainstrução endereço instruçãocorrente númerodebits ArquiteturadeComputadores 22 Memória Símbolo Significado A endereço RD dadolido WD dadoaserescrito WE controlaquandodadoemWDéescritoemA(0ou1) ArquiteturadeComputadores 23 Bancoderegistradores controlaquandodadoemWD3 éescritonoregistradordesOno(0ou1) registradoresfonte valoreslidosdos registradoresfonte registradordesOno dadoaserescritono registradordesOno ArquiteturadeComputadores 24 ALU(ArithmeOcLogicUnit) operação(controle) operandos resultado ArquiteturadeComputadores 25 MulOplexador seletor I1ouI2...ouIn ArquiteturadeComputadores 26 Temporização • Clockdeterminaquandoossinaisdecontroleterão efeito – metodologiasensívelàtransiçãodoclock(bordadesubida) • Implementaçõespossíveis: – Monociclo • todosestágiosexecutadosemumúnicociclodeclock – MulOciclo • cadaestágioexecutadoemumciclodeclock – Pipeline • mulOciclocomexecuçãosobrepostadasinstruções ArquiteturadeComputadores 27 IMPLEMENTAÇÃOMONOCICLO Caminhodedadosecontrole Análisedecompromissos P&H4.3,4.4 H&H7.3 ArquiteturadeComputadores 28 Implementaçãomonociclo • CiclodeclockdeveserlongosuficienteparapermiOra execuçãodetodososestágiosseminterrupção 1.buscadeinstrução 3.execução 2.decodificação 5.escritaregistrador 4.memória clock ArquiteturadeComputadores 29 Caminhodedados • Implementandoainstruçãolw Passo1 buscainstrução,incrementaPC Passo2 instruçãoLW→lêregistradorfonte Passo3 adicionaimediato(comsinalestendido)aoconteúdodo registradorlidonoestágioanterior,calculandooendereço Passo4 lêconteúdodoendereçodememóriacalculadonoestágio3 Passo5 escreveconteúdolidonoestágio4noregistradordesOno ArquiteturadeComputadores 30 Caminhodedados ArquiteturadeComputadores 31 Caminhodedados Passo1 buscainstrução,incrementaPC ArquiteturadeComputadores 32 Caminhodedados Passo1 buscainstrução,incrementaPC ArquiteturadeComputadores 33 Caminhodedados Passo2 instruçãoLW→lêregistradorfonte ArquiteturadeComputadores 34 Caminhodedados Passo2 instruçãoLW→lêregistradorfonte Nesteestágio,tambémdevemosestenderosinaldoimediatoparasoma comregistradorbasenopróximoestágio(cálculodoendereçoefe]vo) ArquiteturadeComputadores 35 Caminhodedados Passo3 adicionaimediato(comsinalestendido)aoconteúdodo registradorlidonoestágioanterior,calculandooendereço ArquiteturadeComputadores 36 Caminhodedados Passo4 lêconteúdodoendereçodememóriacalculadonoestágio3 ArquiteturadeComputadores 37 Caminhodedados Passo4 lêconteúdodoendereçodememóriacalculadonoestágio3 Passo5 escreveconteúdolidonoestágio4noregistradordes]no ArquiteturadeComputadores 38 Caminhodedados • Adicionarinstruçãosw – oqueprecisamosadicionarnocaminhodedados? – aoinvésdeescrevernoregistrador,escrevemosseuconteúdo namemória ArquiteturadeComputadores 39 Caminhodedados • ModificaçõesnecessáriasparainstruçõesdoOpoR ArquiteturadeComputadores 40 Caminhodedados • ModificaçõesnecessáriasparainstruçõesdoOpoR – osdoisoperandosdaALUsãoregistradores • muxéadicionadoparaselecionarentreRD2eSignImm ArquiteturadeComputadores 41 Caminhodedados • ModificaçõesnecessáriasparainstruçõesdoOpoR – resultadodaALUdeveserescritonoregistradordesOno • muxéadicionadoparaselecionarentreALUResulteReadData ArquiteturadeComputadores 42 Caminhodedados • ModificaçõesnecessáriasparainstruçõesdoOpoR – índicedoregistradordedesOnodependedainstrução • muxéadicionadoparaselecionarentrecamposRTeRD ArquiteturadeComputadores 43 Caminhodedados • Caminhodedadosatualsuportaasinstruções: – add,sub,or,and,stl – lw,sw • Necessárioaindaestendercaminhodedadospara suportarbeq beq$1,$2,label if(R[rs]==R[rt])then PC=PC+4+sign_ext(imm)<<2; else PC=PC+4 op rs 6bits 5bits ArquiteturadeComputadores rt 5bits imm 16bits 44 Caminhodedados • Alteraçãonocaminhodedadosparasuportara instruçãobeq ArquiteturadeComputadores 45 Caminhodedadosfinal ArquiteturadeComputadores 46 Unidadedecontrole • Unidadedecontroleemumprojetomonocicloéum circuitocombinacional • Determinarasentradasesaídasatravésdeumatabela verdade – entradas:camposopefunctdainstrução – saídas:sinalparamuxeseelementosdeestado • Parafacilitaroprojeto,ocontroledaALUéfatorado – qualtamanhodatabelaverdadesenãofatorarmos? ArquiteturadeComputadores 47 Unidadedecontrole • Fatoração ALUOp Significado 00 adicione(lw/sw) 01 subtraia(branch) 10 olhenocampofunct 11 nãousado ALUOp Funct ALUControl 00 X 010(add) X1 X 110(sub) 1X 100000 010(add) 1X 100010 110(sub) 1X 100100 000(and) 1X 100101 001(or) 1X 101010 111(slt) ArquiteturadeComputadores 48 Unidadedecontrole • Tabelaverdadedodecodificadorprincipal Instrução RegWrite RegDst ALUSrc Branch MemWrite MemtoReg ALUOp Opo-R 10 lw 00 sw 00 beq 01 • Comopreenchê-la? – ALUOp:olhartabelaanterior – outrossinais:olharcaminhodedadosparacadainstruçãoe determinarquandosinaldeveestaraOvo ArquiteturadeComputadores 49 Unidadedecontrole • Controle:instruçãoor 0 1 ArquiteturadeComputadores 0 50 Unidadedecontrole • Tabelaverdadedodecodificadorprincipal Instrução RegWrite RegDst ALUSrc Branch MemWrite Opo-R 1 1 0 0 0 0 10 lw 1 0 1 0 0 1 00 sw 0 X 1 0 1 X 00 beq 0 X 0 1 0 X 01 ArquiteturadeComputadores MemtoReg ALUOp 51 Microarquiteturamonociclo • Éumaboaideia/bomprojeto? • Quandoéumbomprojeto? • Quandoéummauprojeto? • Comoprojetarumamicroarquiteturamelhor? ArquiteturadeComputadores 52 Monociclo:Análise • Lembrem-sedaequaçãodedesempenho! TempoCPU = # instruções × CPI × PeriodoClock Todainstrução leva1ciclo Como determinar? 1.buscadeinstrução 3.execução 2.decodificação 5.escritaregistrador 4.memória clock Determinadopelotempoqueainstruçãomaislentalevaparaserexecutada, mesmoquealgumaoutranãonecessitedetodoessetempo! ArquiteturadeComputadores 53 Qualainstruçãomaislenta? • Todososestágioslevamomesmotempo? • Assuma – – – – Memória(leitura/escrita):200ps ALUesomadores:100ps Bancoderegistradores(leitura/escrita):50ps Outroselementoscombinacionais:0ps Estágios/ Recursos IF/ ID/ Memória Bancoreg EX/ ALU caminhocrí]co MEM/ WB/ Memória Bancoreg ]poR 200 50 100 50 400 lw 200 50 100 200 50 600 sw 200 50 100 200 550 branch 200 50 100 350 ArquiteturadeComputadores Atraso 54 VisualizandoocaminhocríOco–OpoR 200ps 250ps 350ps 400ps ArquiteturadeComputadores 55 VisualizandoocaminhocríOco–LW 200ps 250ps 600ps ArquiteturadeComputadores 350ps 550ps 56 Discussão • Comoaunidadedecontrolepodeafetarocaminho críOco? • AunidadedecontrolepodeestarnocaminhocríOco? • Memórianãoémágica – Eseamemóriaàsvezesdemorar100ms? – FazsenOdofazerumainstruçãodoOpoRlevar100ms+? – Problemaéaindamaiorseamemóriaforacessadamaisde umavez(emquaisinstruçõesissoacontece?) ArquiteturadeComputadores 57 Microarquiteturamonociclo • Ineficiente – Todasasinstruçõessãotãolentasquantoamaislenta – Umrecursoprecisaserreplicadoseforusadomaisdeuma vezpelamesmainstrução – Atrasosnosacessosàmemóriaexigeumperíododecicloalto, afetandoatéinstruçõesqueoperamemregistradores • Nãonecessariamenteaimplementaçãomaissimples – Comoimplementarumainstruçãocomplexa? • Di…cildeoOmizar/melhorarodesempenho – NecessáriooOmizaropiorcasootempotodo(quenão necessariamenteéomaiscomum!) ArquiteturadeComputadores 58 Princípiosdeprojeto:microarquitetura • Projetodocaminhocrí]co – Encontreomaioratrasodalógicacombinacionaleodiminua • Projetodocasomaiscomum – Gasterecursosetempoondeéimportante – Melhoreoqueamáquinarealmentefoiprojetadaparafazer • Projetobalanceado – Balanceieofluxodosdadosecontroleatravésdohardware – Balanceieohardwarenecessárioparacompletaratarefa ArquiteturadeComputadores 59