Você está na página 1de 36

Arquitetura e Organizao de Computadores

Captulo 12 Estrutura e funo do processador

Estrutura da CPU

CPUprecisa: Buscarinstrues. Interpretarinstrues. Obterdados. Processardados. Gravardados.

CPU com barramento de sistemas

Estrutura interna da CPU

Registradores

CPUprecisateralgumespaodetrabalho(armazenamento temporrio). Registradoreschamados. Nmeroefunovariamentreprojetosdeprocessador. Umadasprincipaisdecisesdeprojeto. Altonveldehierarquiadememria.

Registradores visveis ao usurio

Usogeral. Dados. Endereos. Cdigoscondicionais.

Registradores de uso geral

Podemserdepropsitogeralverdadeiro. Podemserrestritos. Podemserusadosparadadosouendereamento. Dados: Acumulador. Endereamento: Segmento. Segmento

Torneosdeusogeral: Aumenteflexibilidadeeopesdoprogramador. programador Aumentetamanhodeinstruoecomplexidade. Torneosespecializados: Instruesmenores(maisrpidas). Menosflexibilidade.

Quantos registradores de uso geral?

Entre832. Menosregistradores=maisrefernciasmemria. Maisnoreduzasrefernciasmemriaeocupaespaono processador. VejatambmRISC.

De qual tamanho?
Grandeosuficienteparamanterendereocompleto. Grandeosuficienteparamanterpalavracompleta. Normalmente,possvelcombinardoisregistradoresdedados. ProgramaoC. Doubleinta. Longinta.

Registradores de cdigo condicional

Conjuntos j debitsindividuais. P.e.,resultadodaltimaoperaofoizero. Podemserlidos(implicitamente)porprogramas. P.e.,Jumpifzero. Nopodem(normalmente)seralteradosporprogramas.

Registradores de controle e estado

Contadordeprograma. p g Registradordedecodificaodeinstruo. Registradordeendereodememria. Registradordebufferdememria.

Reviso:oquetodoselesfazem?

Palavra de estado do programa

Umconjuntodebits. Incluiflags (cdigoscondicionais). Sinaldoltimoresultado. Zero. Carry. Igual. Overflow Overflow. Habilitar/desabilitarinterrupo. Supervisor.

Modo supervisor

Intelanelzero. zero Modokernel. Permiteexecuodeinstruesprivilegiadas. Usadopelosistemaoperacional. Nodisponvelaosprogramasdousurio.

Outros registradores

Podemterregistradoresapontandopara: Blocosdecontroledeprocesso(verS/O). Vetoresdeinterrupo(verS/O). N.B.ProjetodaCPUeprojetodosistemaoperacionalso bastanteinterligados.

Exemplo de organizaes de registradores

Ciclo de instruo

Reviso. Stallings,Captulo3.

Ciclo indireto

Podeexigiracessomemriaparaobteroperandos. Endereamentoindiretorequermaisacessosmemria. Podeserimaginadocomosubciclodeinstruoadicional.

Ciclo de instruo com indireo

Diagrama de estado do ciclo da instruo

Fluxo de dados (busca de instruo)


DependedoprojetodaCPU. Emgeral: Busca: PCcontmendereodaprximainstruo. EndereomovidoparaMAR. Endereocolocadonobarramentodeendereo. Unidadedecontrolesolicitaleituradememria. Resultadocolocadonobarramentodedados,copiadopara MBR,depoisparaIR. Enquantoisso,PCincrementadoem1.

Fluxo de dados (busca de dados)


IRexaminado. Seendereamentoindireto,cicloindiretorealizado. NbitsdaextremadireitadoMBRtransferidosparaMAR. Unidadedecontrolesolicitaleituradememria. Resultado(endereodooperando)movidoparaMBR.

Fluxo de dados (ciclo de busca)

Fluxo de dados (ciclo indireto)

Fluxo de dados (execuo)

Podetomarmuitasformas. Dependedainstruosendoexecutada. Podeincluir: Leitura/escritadamemria. Entrada/sada. Transfernciasderegistradores. OperaesdaALU. ALU

Fluxo de dados (interrupo)


Simples. Previsvel Previsvel. PCatualsalvoparapermitirretomadaapsinterrupo. ContedodoPCcopiadoparaMBR. Localespecialdamemria(p.e.,ponteirodepilha)carregadono MAR. MBRgravadonamemria. PCcarregadocomendereodarotinadetratamentode interrupo. Prximainstruo(primeiradotratadordeinterrupo)pode serobtida.

Fluxo de dados (ciclo de interrupo)

Busca antecipada (prefetch)

Buscaacessandomemriaprincipal principal. Execuonormalmentenoacessamemriaprincipal. Podebuscarprximainstruoduranteexecuodainstruo atual. Chamadabuscaantecipadadainstruo.

Desempenho melhorado

Mas, ,nodobrado: Buscanormalmentemaiscurtaqueaexecuo. Buscaantecipadademaisdeumainstruo? Qualquersaltooudesviosignificaqueasinstruescom buscaantecipadanosoasinstruessolicitadas. Acrescentemaisestgiosparamelhorarodesempenho.

Pipelining

Buscarinstruo. Decodificarinstruo. Calcularoperandos(ouseja,EAs). Buscaroperandos. Executarinstrues. Escreverresultado.

Sobreporestasoperaes.

Pipeline de instruo de dois estgios

Diagrama de tempo para a operao do pipeline da instruo

Efeito de desvio condicional na operao do pipeline na instruo

Pipeline de instruo de seis estgios

Descrio alternativa de um pipeline

Fatores de acelerao com pipeline da instruo

Hazards do pipeline

Pi Pipeline, li oualguma l partedo d pipeline, i li precisa i parar. Tambmconhecidacomobolhadepipeline. Tiposdehazards: Recursos. Dados. Controle.

Hazards de recursos
Duas(oumais)instruesnopipelineprecisamdomesmorecurso. Executadosemsrie,enoemparalelo,parmetropartedopipeline. Tambmchamadohazardestrutural. estrutural P.e.,considerepipelinesimplificadoem5estgios.
Cadaestgiousaumciclodeclock.

Nocasoideal,cadanovainstruoentranopipelineacadaciclodeclock. Suponhaqueamemriaprincipaltenhanicaporta. Considerebuscasdeinstruoeleituraseescritasdedadosumaporvez. Ignoreacache. Leituraouescritadeoperandonopodemserrealizadasemparalelocombuscade instruo. E i d Estgio deb buscade d instruo i fi ficaocioso i porumciclo i l b buscando d I3 I3. P.e.,vriasinstruesprontasparaentrarnafasedeexecuodeinstruo. nicaALU. Umasoluo:aumentarrecursosdisponveis.
Mltiplasportasdamemriaprincipal. MltiplasALUs.

Hazards de dados
Conflitonoacessodeumlocaldeoperando. Duasinstruesaseremexecutadasemsequncia. Ambasacessamumamemriaemparticularouoperandodoregistrador registrador. Senasequnciaestrita,noocorreproblema. Seemumpipeline,valordooperandopoderiaseratualizadoparaproduzir resultadodiferentedaexecuosequencialestrita. P.e.,sequnciadeinstruesdemquinadox86: ADDEAX,EBX SUBECX,EAX /*EAX=EAX+EBX /*ECX=ECX EAX

InstruoADDnoatualizaEAXatofimdoestgio5,nociclodeclock5. InstruoSUBprecisadovalornoinciodoseuestgio2,nociclodeclock4. Pipelineprecisapararpordoisciclosdeclock. Semhardwareespecialealgoritmosdeimpedimentoespecficos,resultaemuso ineficazdopipeline.

Exemplo de hazard de dados

Tipos de hazard de dados


Leituraapsescrita(RAW),oudependnciaverdadeira: Umainstruomodificaumregistradoroulocaldememria memria. Instruoseguinteldadosnesselocal. Hazardseleituraocorreantesdotrminodaescrita. Escritaapsleitura(WAR),ouantidependncia: Umainstruolumregistradoroulocaldamemria. Instruoseguinteescrevenolocal. Hazardseescritaterminaantesqueocorraaleitura. Escritaapsescrita(WAW),oudependnciadesada: Duasinstruesescrevemnomesmolocal. Hazardseaescritaocorrenaordemcontrriasequncia intencionada. ExemploanteriorumhazardRAW. VertambmCaptulo14.

Exemplo de hazard de recursos

Hazard de controle
Tambmconhecidocomohazarddedesvio. Pipeline p tomadecisoerradasobrep previsodedesvio. Trazparaopipelineinstruesqueprecisamserdescartadas subsequentemente. Lidandocomdesvios: Mltiplosfluxos. Buscaantecipadadoalvododesvio desvio. Bufferdelaoderepetio. Previsodedesvio. Desvioatrasado.

Fluxos mltiplos

Tmdoispipelines pipelines. Buscaantecipadadecadadesvioemumpipelineseparado. Usapipelineapropriado. Ocasionadisputaporbarramentoeregistrador. Mltiplosdesviosexigemumfluxoadicional.

Busca antecipada do alvo do desvio

Alvododesviobuscadoantecipadamentealmdasinstrues apsodesvio. Mantmalvoatqueodesviosejaexecutado. UsadapeloIBM360/91.

Buffer de lao de repetio


Memriamuitorpida. M tid pelo Mantido l estgio t i d deb buscad dopipeline. i li Verificabufferantesdebuscardamemria. Muitobomparalaosousaltospequenos.

Comparecomcache. Usadop peloCRAY1.

Diagrama do buffer de lao de repetio

Previso de desvio

Previsonuncatomada: Assumequesaltonoacontecer. Semprebuscaprximainstruo. 68020&VAX11/780. VAXnofarbuscaantecipadaapsdesvioseresultarem faltadepgina(projetodoS/Oversus CPU). Previsosempre p tomada: Assumequesaltoacontecer. Semprebuscainstruoalvo.

Previsoporopcode: Algumasinstruessomaisprovveisderesultaremumsaltodoque outras. Podechegarat75%desucesso. Chavetomada/notomada: Baseadanohistricodedesvio. Boaparalaos. Refinadapelohistricodedesviocomdoisnveisoubaseadoem correlao. Baseadoemcorrelao: Nosdesviosdelao,ohistricoumaboaformadepreviso. Emestruturasmaiscomplexas,adireododesviocorrelacionada comadireodedesvioscondicionados.

Tambmusahistricodedesviosrecentes.

Desvioatrasado:

Nosaltaatquevocrealmenteprecise. Reorganizainstrues.

Fluxograma de previso de desvio

Diagrama de estados de previso de desvio

Lidando com desvios

Pipeline de Intel 80486


Leitura: Dacacheoudamemriaexterna. Colocadasemumde2buffersdebuscaantecipadade16bits. Enchebuffercomnovosdadosquandoantigossoconsumidos. Emmdia,5instrueslidasporcarga. Independentedeoutrosestgiosparamanterbufferscheios. Estgiodedecodificao1: Opcode einformaodemododeendereamento. Nomximo3primeirosbytesdainstruo. PodedirecionarestgioD2paraobterrestantedainstruo. Estgiodedecodificao2: Expandeopcode parasinaisdecontrole controle. Clculodemodosdeendereamentocomplexos. Execuo: OperaesdaALU,acessoacache,atualizaoderegistrador. Escrita: Atualizaregistradoreseflags. Resultadosenviadoscacheebuffersdeescritadainterfacedebarramento.

Exemplos de pipeline da instruo do 80486

Registradores do Pentium 4

Registrador EFLAGS

Registradores de controle de x86

Mapeamento de registradores MMX

MMXusavrios i tipos i de d d dados d de d 64bits. bi Usacamposdeendereoderegistradorde3bits. 8registradores. NenhumregistradorespecficodoMMX. 64bitsdebaixaordemdosregistradoresdepontoflutuante existentesformam8registradoresMMX.

Mapeamento de registradores MMX para registradores de ponto flutuante

Processamento de interrupo no Pentium


Interrupes: Mascarveis. Mascarveis Nomascarveis. Excees: Detectadaspeloprocessador. Programadas. Tabelasdevetoresdeinterrupes: Cadatipodeinterruporecebeumnmero. Indexamparatabeladevetor. 256vetoresdeinterrupode32bits. 5classesdeprioridade.

Atributos do ARM
RISC. Arraymoderadoderegistradoresuniformes. MaisdoqueamaioriadosCISC CISC,menosquemuitosRISC RISC. Modelocarregar/armazenar: Operaesexecutamcomoperandosnosregistradores. Instruouniformedetamanhofixo: 32bitsparaconjuntopadroe16bitsparaThumb. Deslocamentoourotaopodemprprocessarregistradoresdeorigem: SeparaunidadesdeALUedeslocamento. Pequenonmerodemodosdeendereamento: Todososendereos decarga/armazenamento g / deregistradores g ecampos p da instruo. Nenhumendereamentoindiretoouindexadoenvolvendovaloresna memria. Endereamentocomautoincrementoeautodecremento: Melhoraoperaesdelao. Execuocondicionaldeinstruesminimizadesvioscondicionais: Limpezadopipelinereduzida.

Organizao simplificada do ARM

Organizao do processador ARM


MuitasvariaesdependemdaversodoARM. Dadostrocadosentreprocessadorememriaatravsdebarramento dedados. Itemdedados(load/store)ouinstruo(leitura). Instruespassampordecodificadorantesdaexecuo. Pipelineegeraodesinaldecontrolenaunidadedecontrole. Dadosvoparaarquivoderegistrador: Conjuntoderegistradoresde32bits. Um U byte b oumeia i palavra l tratados d comocomplemento l de d dois d i estendidoscomsinalat32bits. Normalmentedoisregistradoresdeorigemeumresultado. RotaooudeslocamentoantesdaALU.

Modos do processador ARM


Usurio. Privilegiado. 6modos. SOpodeajustarsoftwaredesistemasutiliza. Algunsregistradoresdedicadosacadamodoprivilegiado. Mudanasdecontextomaisrpidas. Exceo: 5dos d modos d privilegiados. i il i d Entradanasexceesdadas. Substituialgunsregistradorespararegistradoresdousurio. Evitacorromperinformaes.

Modos privilegiados
Mododosistema: Semexceo Usamesmosregistradoresdomodousurio. Podeserinterrompidopor Modosupervisor: SO. Interrupodesoftwareusadaparainvocarserviosdosistemaoperacional. Mododeabortamento: Faltasdememria. Modoindefinido: Tentainstruoquenoaceitapeloncleoprincipalnemporumdos coprocessadores. p Mododeinterruporpido: Sinaldeinterrupodafontedeinterruporpidadesignada. Interruporpidanopodeserinterrompida. Podeinterromperinterruponormal. Mododeinterrupo. Sinaldeinterrupodequalqueroutrafontedeinterrupo.

Organizao dos registradores do ARM


37registradoresde32bits. 31registradoresdeusogeral. Algunstmpropsitosespeciais. P.e.,contadoresdeprograma. Seisregistradoresdestatusdeprograma. Registradoresembancosparcialmentesobrepostos. Modoprocessadordeterminabanco banco. 16registradoresnumeradoseumoudoisregistradoresde status deprogramavisveis.

Organizao dos registradores do ARM

Registradores de propsito geral

R13normalmenteponteirodepilha(SP) (SP). CadamododeexceotemseuprprioR13. R14registradordeligao(LR). Endereoderetornodasubrotinaeretornosdomodode exceo. R15contadordeprograma.

CPSR
CPSRprocessaregistradordeestado. ModosdeexceotmSPSRdedicado. 16bits b maissignificativos f flags fl do d usurio. Cdigosdecondio(N,Z,C,V). Q estouroousaturaoeminstruesSMID. J instruesJazelle(8bits). GE[3:0]SMIDusambits[19:16]comoflagdemaiorouigual. 16bitsmenossignificativoscontmflagsparamodoprivilegiado. E endian. Desabilitarinterrupo. T instruonormalouThumb. Modo.

Formato de CPSR e SPSR do ARM

Processamento de interrupo (exceo) ARM


Maisdeumaexceo p permitida. Setetipos. Execuoforadaporvetoresdeexceo. Mltiplasexceestratadasemordemdeprioridade. Processadorparaaexecuoapsinstruoatual. EstadodoprocessadorpreservadonoSPSRparaexceo: Endereodainstruoaexecutarcolocadonoregistradorde ligao. RetornamovendoSPSRp/CPSReR14p/PC.