Organização e Arquitetura de Computadores

105
(20/02/13) Objetivo de OAC Apresentar de forma mais clara e complete a natureza das características dos computadores modernos. Problemas: 1 – Variedade grande de produtos, computadores mais simples e mais baratos, computadores mais complexos mais caros. 2 – Ritmo acelerado de mudanças associado à tecnologia. Conceitos Importantes: Arquitetura: Estrutura e comportamento de vários módulos do computador. Ex.: Conjunto de instruções disponíveis, número de bits utilizados para representação. Questão arquitetural: O computador terá uma instrução de multiplicação. Organização: Como componentes de hardware estão conectados para formar um sistema computacional. Ex.: Tecnologia utilizada em memória. Questão organizacional: Custo e tamanho de uma unidade de multiplicação especial. Estudo de OAC Como descrever um computador e seu funcionamento de forma mais clara? R: Natureza hierárquica de sistemas complexos. SISTEMAS HIERÁRQUICOS: Conjunto de subsistemas inter-relacionados, onde cada um desses pode ser subdivido e anexado a um nível. Quanto mais baixo nível, mais elementar é o sistema. ... ... ... Computador E/S Processamento Armazenamento HD Memória Flash RAM EPROM

Transcript of Organização e Arquitetura de Computadores

  • (20/02/13)

    Objetivo de OAC

    Apresentar de forma mais clara e complete a natureza das caractersticas dos computadores

    modernos.

    Problemas:

    1 Variedade grande de produtos, computadores mais simples e mais baratos, computadores

    mais complexos mais caros.

    2 Ritmo acelerado de mudanas associado tecnologia.

    Conceitos Importantes:

    Arquitetura: Estrutura e comportamento de vrios mdulos do computador. Ex.: Conjunto de

    instrues disponveis, nmero de bits utilizados para representao.

    Questo arquitetural: O computador ter uma instruo de multiplicao.

    Organizao: Como componentes de hardware esto conectados para formar um sistema

    computacional. Ex.: Tecnologia utilizada em memria.

    Questo organizacional: Custo e tamanho de uma unidade de multiplicao especial.

    Estudo de OAC

    Como descrever um computador e seu funcionamento de forma mais clara?

    R: Natureza hierrquica de sistemas complexos.

    SISTEMAS HIERRQUICOS: Conjunto de subsistemas inter-relacionados, onde cada um desses

    pode ser subdivido e anexado a um nvel. Quanto mais baixo nvel, mais elementar o

    sistema.

    ...

    ...

    ...

    Computador

    E/S Processamento

    Computador

    Computador

    Armazenamento

    HD Memria

    Flash RAM EPROM

  • Abordagem de Estudo

    Organizacional

    Top Down: Os nveis hierrquicos so estudados a partir de uma viso mais simplicada sendo

    cada vez mais complexa at descermos aos nveis mais elementares.

    Arquitetural

    Botton Up: O estudo comea por meio dos nveis mais elementares at encontrar os nveis

    mais superficiais.

    Funo:

    As funes bsicas de um computador podem ser divididas em praticamente quatro:

    1 Processamento de dados;

    2 Armazenamento de dados;

    3 Movimentao de dados;

    4 Controle.

    Viso Funcional

    Meio

    Externo

    Operaes Possveis de um computador

    Capacidade de

    Armazenamento

    Controle Processamento

    de Dados

    Movimentao de

    Dados

    Movimentao

    Controle

    Armazenamento

    Controle

    Processamento

  • Movimentao

    Controle

    Armazenamento

    Controle

    Processamento

    Movimentao

    Controle

    Armazenamento

    Controle

    Processamento

    Movimentao

    Controle

    Armazenamento

    Controle

    Processamento

  • Estrutura

    Quatro Componentes:

    1 Unidade Central de Processamento (CPU)

    2 Mmoria Principal: RAM

    3 E/S: Porta Serial, USB, VGA, Monitor...

    4 Interconexo do sistema (Barramento)

    Em relao a estrutura pode ocorrer que para cada funo um ou mais dispositivos realize

    Exemplo de composio em nveis

    (25/02/13)

    Evoluo de Computadores

    1 Gerao:

    ENIAC: Desenvolvido por necessidades militares durante a segunda guerra. Construdo para

    calcular tabelas de trajetrias para novas armas dos EUA.

    - Operava sob base decimal.

    - Memria de 20 acumulados com representao de nmeros de 10 dgitos cada.

    - Mais de 1800 vlvulas.

    - Ocupava mais de 1200 m2.

    Contribuio do ENIAC: Uso geral dos computadores Mquina de Von Neumann.

  • Adoo do conceito de programa armazenado.

    Prottipo:

    - Uma unidade de memria

    - Uma unidade lgica e aritmtica (ULA)

    - Uma unidade de controle

    - Um mdulo de E/S

    Implementao (IAS)

    - Uma palavra pode conter 2 instrues de 20 bits.

    - Palavra de dados com 40 bits.

    - Instrues e dados armazenados na memria.

    - Cada instruo possua um cdigo binrio.

    - Programado em linguagem de mquina.

  • Registradores do (IAS)

    MBR: Registrador de buffer de memria

    MAR: Registrador de endereo de memria

    IR: Registrador de instruo

    IBR: Registrador de buffer de instruo

    PC: Contador de programa

    AC e MQ: Acumuladores

    2 Gerao:

    - Substituio da vlvula pelo transistor.

    - Linguagem Montadora.

    - Transistor menor que a vlvula mais desempenho e menor consumo.

    Contribuies:

    - Unidades lgicas aritmticas e controle mais complexos.

    - Linguagem de programao de alto nvel.

    IBM 7094: Adota a tecnologia de canais de dados.

    Canal de Dados: Mdulo prprio de entrada e sada com seu prprio processador e conjunto

    de instrues.

  • 3 Gerao:

    Problemas:

    - Componentes comprados separadamente

    - Componentes soldados na placa por demanda

    Soluo:

    - Circuito Integrados (Microeletrnica)

    Ex.:

    A * * B

    Chip

  • Famlia de Computadores

    Modelos devem ser compatveis no sentido de que um programa escrito em um modelo que

    possa ser executado em outro, apenas com diferena no tempo de execuo.

    - Conjunto de instruo semelhantes ou iguais.

    - Sistema operacional semelhante.

    - Nmero cada vez maior de mdulos de E/S.

    - Memria crescente.

    - Maior custo.

    EX.: x86 da intel

    4 Gerao:

    Surgem os microprocessadores e as memrias semicondutoras.

    - Surgimento da linguagem de altssimo nvel orientados para um problema.

    MEMRIA SEMICONDUTORA

    - 256 bits de memria

    - No era destrutiva

    - Inicialmente mais caro

    MICROPROCESSADOR

    - Aumento do nmero de bits

    - Aumento do nmero de elementos do chip

    - Aumento na largura de barramento

    (27/02/13)

    Desempenho de Processador

    Os computadores esto cada vez mais rpidos e complexos sendo utilizados para inmeros

    fins, incluindo aplicaes que exigem grande desempenho em especial dos processadores.

    - Por mais transistores que um processador tenha, esse no ir alcanar seu potencial mximo

    caso no receba um fluxo constante de trabalho.

    Tcnicas para aumentar o Desempenho

    Pipeline: Otimizao de ciclo de instruo baseado em uma linha de montagem. Divide uma

    instruo em vrias etapas e executado etapa de forma separada.

    Exemplo: Lavanderias de roupa.

    ETAPAS:

    1 lavar (L)

    2 secar (S)

    3 dobrar (D)

    4 guardar (G)

  • Processo Normal

    DIVISO DE INSTRUO

    IF buscar instruo

    ID decodificar instruo 5 etapas do pipeline

    ME busca operando de instruo

    WB escrever resultado

    MELHORAMENTOS

    1 Previso de desvio com base em um critrio o processador tenta prev quais desvios sero

    tomados.

    - Sempre tomar desvio.

  • 2 - Anlise do fluxo de Dados: O processador analisa quais instrues so dependentes uma da

    outra, criando assim uma sequncia otimizada de instruo.

    Ex.:

    add R1, R2

    sub R4, R1

    add R1, R2

    sub R3, R5 I. Independentes

    sub R6, R7

    sub R4, R1

    Execuo especulativa: Usando a previso de desvio e anlise de fluxo de dados possivel

    executar instrues antes do seu surgimento real.

    Melhorias na Organizao e Arquitetura

    Trs tcnicas so utilizadas para aumentar o desempenho do processador em relao a

    hardware.

    1 Aumento da velocidade do clock e portas lgicas (densidade e velocidade).

  • 2 Aumento dos caches interpostos entre processador e memria principal.

    3 Uso de paralelismo. (Arquitetura)

    BALANO DE DESEMPENHO

    Formas de reduzir o gargalo da comunicao, processador memria.

    Aumentar o nmeor de bits que so recuperados na memria tornando a DRAM mais

    larga que profunda.

    8

    2

    16 bits

    Incluir uma cache entre memria e processado

    Reduzir acesso a memria

    Aumentar largura do barramento

    (04/03/13)

    Avaliao de Desempenho

    Em relao a processadores o desempenho um dos principais parmetros a se considerar.

    Porm difcil realizar comparaes de desempenho entre processadores, at mesmo da

    mesma famlia.

    Dado uma aplicao qual a melhor maneira de avaliar um determinado processador.

  • O desempenho de uma aplicao no depende apenas da velocidade bruta do processador,

    mas tambm do conjunto de instruo, da linguagem de programao, do compilador da

    arquitetura, entre outros.

    Ex.:

    (RISC) x (CISC)

    Instruo (CISC)

    add mem (A), mem (B), mem (C)

    Instruo (RISC)

    mov (A), R1

    mov (B), R2

    mov (C), R3

    add R2, R1

    add R3, R1

    store R1, (A)

    A = A+B+C

    Conceitos para avaliao

    - Taxa ou velocidade de clock: Taxa de pulsos do clock, ou seja, taxa de variao por segundo.

    - Ciclo de Clock (Clock Tick): Um incremento (pulso) de clock.

    - Tempo de ciclo: Tempo entre um pulso e outro.

    Avaliao MIPS

    Taxa MIPS: uma mdia comum de desempenho para um processador. a taxa em que as

    instrues so executadas por segundos (milhes).

    Taxa MIPS = F f = taxa de clock do processador

    CPI * 106

    Obs.: Uma instruo pode envolver uma srie de etapas at serem executadas, como busca e

    execuo. Assim grande parte das instrues podem ocupar mais de um ciclo de clock para

    execuo.

    - Mdia de ciclos por instrues.

    Clculo do CPI

    CPI = n (CPIi * Ii)

    i = L Ic

  • CPI = Mdia de ciclos por instruo para cada tipo de instruo.

    n = Nmero de categorias de instrues.

    Ii = Quantidade de intrues de um tipo I.

    Ic = Total de instrues executadas em tempo.

    Objetivo: Para um programa qualquer calcular a mdia de ciclos executadas por instruo

    executada.

    Ex.: Um programa com 2 mil instrues ser executados em um processador de 400 MHz, com

    as seguintes classes de Instruo.

    Tipo de Instruo CPI Quantidade de Instruo

    Aritmtica lgica 1 1200

    Load/ Store 2 360

    Desvio 4 240

    E/S 8 200

    Calcule o CPI mdio para quando o programa for executado e a taxa MIPS do processador.

    Taxa MIPS = F

    CPI * 106

    CPI = n (CPIi * Ii)

    i = L Ic

    CPI = n (1* 1200) + CPI = n (2 * 360) + CPI = n (4 * 240) + CPI = n (8 * 200)

    i = 1 2000 i = 1 2000 i = 1 2000 i = 1 2000

    CPI = 2,24

    MIPS = 400 * 106 178 MIPS

    2.24 * 106

    Benchmarks

    Coleo de programas definifos em uma linguagem de alto nvel que juntos oferecem um teste

    representativo de um computador em determinada rea de aplicao.

    Ex.:

    SPEC jvm98: avaliao de aspectos de hardware e software para java.

    SPEC bb2000: avaliao de aplicaes para comrcio eletrnico.

  • Lei de Amdahl

    Demonstrar que errado esperar uma melhora em aspecto pontual que tenha influncias no

    desempenho de um todo.

    Speed up = 1

    (1-f) + f/N

    - Se f for muito pequeno no justifica o uso do recurso.

    - Se N for muito grande, perto do infinito o speed up ser determinado apenas pelo fator (L-F).

    Ex.: 60% do cdigo paralelizvel

    Speed up = 1 (1-0.6) = 0.4

    (1-0.6) + 0.6/N

    Speed up Nmero de Processadores

    1 1

    0.24 1.428 2

    1.67 3

    1.89 4

    1.92 5

    2 6

    0.04 2.06 7

    2.1 8

    2.42 50

    (06/03/13)

    Componentes do Computador

    Antes da proposta de arquitetura de Von Neumann a programao era realizada em hardware,

    sendo assim a cada novo programa os componentes de hardware devem ser realizadis para

    realizarem tarefas diferentes.

    Sequncia de

    Dados funes aritmtica Resultado

    lgica

  • Principios da Arquitetura de Von Neumann

    1- Dados e instrues devem ser armazenados em uma nica memria.

    2- O contedo dessa memria enderevel por local.

    3- Execuo ocorre em padro sequencial.

    Conceito de programa armazenado: Com base nos princpios de Von Neumann surge

    a programao em software

    Programao em software: Por meio de uso de sinais de controle (comandos emitidos

    ao hardware para execuo de tarefas) possvel deifinir as operaes que sero

    executadas em hardware.

    Cdigo de Instruo Interpretador U.C

    de

    Programa em memria Instruo

    Sinais de Controle

    Funes lgicas -

    Dados Aritmticas de Resultado

    uso geral.

    ULA

  • Componentes de um Computador (Alto Nvel)

    PC Contador de Programa

    IR Decodificao de Instruo

    MAR Registrador de endereo de Memria

    MBR Registrador de buffer de Memria

    I/ 0 AR Registrador de endereo de E/S

    I/ 0 BR Registrador de buffer de E/S

    Funo do Computador

    A funo bsica realizada por um computador a execuo de um programa. Para isso o

    processador busca cada instruo em memria e depois executa cada instruo. O processo de

    execuo de um programa consiste em realizar a busca e a execuo repetidas vezes.

    - Ciclo de instruo: Processamento exigido por buscas e executar uma instruo.

    Incio Fim Buscar

    Instruo

    Executar

    Instruo

  • Processo de Ciclo de Instruo

    1- Processador busca uma instruo em memria.

    2- A instruo carregada no Reg IR.

    3- A instruo interpretada (decodificada).

    4- O processador realiza a ao da instruo.

    - Essa pode ser classificada em:

    Processador memria: Troca de dados entre os mesmos (load/store).

    Processador E/S: Movimentao de dados entre processador e mdulo de E/S.

    Processamento de dados: ULA

    Controle: Fluxo do programa (JMP)

    Funcionamento do ciclo de instruo

    Considere a seguinte mquina:

    - Um registrador de dados (AC)

    - Um registrador IR

    - Um registrador PC

    - Palavras de 16 bits

    Instrues Upcodes

    0 3 15 0001 = Carregar AC para o que est na memria.

    0010 = Armazenar AC na memria.

    0101 = Operao da add entre AC e memria.

    Dados

    0 1 15

    Ciclo

    Busca

    REG

    300 300

    1340 1340

    Memria

    300 1940

    301 5941

    302 2941

    ... ...

    940 0003

    941 0002

    Upcode

    4 bits

    Endereo

    12 bits

    S

    Magnitude

  • na execuo o PC aumenta

    ex

    Repete tudo no segundo ciclo soma AC

    anterior com atual.

    No terceiro armazena AC na tabela.

    Busca prx. Instruo Vetor ou string

    (13/03/13)

    Interrupes

    Praticamente todos os computadores oferecem um mecanismo por meio do qual outros

    mdulos (E/S, memria) podem interromper o processador

    - Uma interrupo favorece o desempenho do processador pode quase que exclusivamente se

    dedicar ao programa do usurio.

    Tipos de Interrupes

    1- Programa: Erro fatal de execuo.

    Ex.: Diviso por zero.

    2- Timer: Gerada pelo sistema operacional para execuo de certas tarefas.

    3- E/S: Comunicao dispositivo de E/S e processador.

    Memria

    300 1940

    301 5941

    302 2941

    ... ...

    940 0003

    941 0002

    301 PC

    0003 AC

    1940 IR

    Busca

    Instruo

    Busca

    Operando

    Armaz.

    Resultado

    Calc.

    Endereo

    Instruo

    Decod.

    Instruo

    Calc.

    Endereo

    Operando

    Ex.

    Operao

    Calc.

    Endereo

    Operando

  • 4- Falha de Hardware: Falha por falta de energia ou paridade de memria.

    Tratador de Interrupes

    Faz parte do sistema operacional e determina qual mdulo de E/S gerou a interrupo, alm

    da rotina de tratamento.

    Programa de E/S

    1- Preparao para outra operao de E/S.

    2- Comando real de E/S.

    3- Sequncia de instrues de finalizao.

  • Interrupes por longa Espera

    Interrupes e ciclo de Instruo

    Para acomodar as interrupes uma nova fase adicionada ao ciclo de instruo (ciclo de

    interrupo). O processador verifica se houve uma interrupo por meio de um sinal de

    interrupo, se no houver interrupes pendentes o ciclo de Instrues continua

    normalmente.

    Instrues

    Insterrupes

    Incio

    Fim

    Buscar

    Instruo

    Executar

    Instruo

    Verificar

    Instruo

  • Busca prx. Instruo Vetor ou string

    Interrupes Mltiplas

    Pode acontecer que uma interrupo ocorra antes que outra termine. Caso isso ocorra dados

    podem ser perdidos ou corrompidos.

    Duas tcnicas podem ser usadas para tratar mltiplas interrupes.

    1- Desativar interrupes enquanto outra est sendo executada.

    2- Execuo de Interrupes por prioridade.

    Ex.:

    Interrupes Prioridade

    Impressora 2

    Disco 4

    Comunicao 5

    Ordem de Chegada

    Impressora T.10, Comunicao T.15, Disco T.20.

    Busca

    Instruo

    Busca

    Operando Armaz.

    Resultado

    Ciclo

    End.

    Instru

    .o

    Decod.

    Instru-

    o

    Ciclo

    End.

    Opera

    ndo

    Oper.

    de

    dados

    Calc.

    Endere

    - o

    Operan

    do

    Verif.

    Inter-

    rup.

    Interru

    - po

  • (20/03/13)

    Estrutura de Interconexo

    Um computador constitudo por um conjunto de mdulos (memria, processamento,

    controle e E/S) esses mdulos so interligados por uma estrutura de interconexo, sendo o

    projeto dessa estrutura dependente das trocas de dados feitos entre os mdulos.

  • Com base nas trocas de dados as seguintes operaes dever ser realizadas pelo barramento.

    1 Memria Processador (Leitura)

    2 Processador Memria (Escrita)

    3 E/S Processador (Leitura)

    4 Processador E/S (Escrita)

    5 Memria E/S e E/S Memria (DMA)

    Interconexo de Barramento

    Um barramento um caminho de comunicao que conecta dois ou mais dispositivos, dessa

    forma sendo um meio de comunicao compartilhado.

    Assim:

    Todos sabem quem est transmitindo

    Se dois dispositivos transmitem ao mesmo tempo os sinais sero sub postos.

    Apenas um dispositivo pode transmitir por vez.

    Estrutura do Barramento

    Sinais de Comando

    - Escrita de memria: barramento para local de memria.

    - Leitura de memria: memria para o barramento.

    - Escrita de E/S: barramento para porta de E/S endereado.

    - Leitura de E/S: porta endereada para barramento.

    - ACK de transferncia: informa que os dados esto no barramento.

    - Soclicitao de barramento: pede controle do barramento.

    - Conexo do barramento: informa que quem solicitou o barramento recebe o acesso.

    - Requisio de interrupo: interrupo pendente.

    - Clock: sincronizao

    - Reset: inicializa todos os mdulos

  • Organizao do Barramento

    Hierarquia Tradicional

    ...

    Processador Controle

    Cache

    Contador de

    Barramento

    Memria Barramento do Sistema

    Interface do

    Barramento de

    expanso

    Rede Modem Impressora

  • Elementos de Projeto de Trabalho

    Existe 5 itens que devem ser considerados para elaborao do barramento.

    1- Tipo do barramento

    - Dedicado

    - Multiplexado ADDRESS VALID

    2- Arbitrao

    Centralizado Distribudo

    (27/03/13)

    Projetos de barramento

    Embora exista uma grange variedade de implementaes de barramento, os

    parmetros de projeto podem ser classificados em 5 grupos.

    1- Tipo de barramento (linhas de comunicao).

    - Dedicado: Linhas de comunicao possuem funes especficas. Separa as linhas

    de endereo das linhas de dados.

    1

    2

    3

    4 5

    1

    2

    3

    4

  • - Multiplexado: Uma nica linha desempenha mais de uma funo. Linha de

    endereo e dados compartilhados.

    2- Arbitrao: Controle de acesso ao barramento.

    - Centralizado: Um nico dispositivo de hardware controla todo o barramento.

    - Distribuda: Cada unidade contribui com a definio de quem ser o mestre do

    barramento a lgica de controle implementada em cada dispositivo

    Ex.: Round Robin (fila circular).

    - Para k unidades conectadas ao barramento.

    - Varre todas as unidades procurando requisies.

    - Inicia a nova varredura a partir da ltima unidade atendida.

  • 3- Temporizao: (Controle dos eventos que ocorrem no barramento) Protocolo de

    barramento.

    - Sncrono: eventos determinados por um clock a sincronizao ocorre nas

    transies de 1 para 0 e de 0 para 1.

    - Assncrono: A ocorrncia de um evento depende da ocorrncia do evento

    anterior.

    4- Largura do barramento:

    - Quanto maior a largura do barramento de dados, maior o desempenho.

    - Quanto maior a largura do barramento de endereo, mais memria endereada.

  • 5- Tipo de transferncia de dados:

    (01/04/13)

    Caractersticas de Memria

    A forma como uma memria ser utilizada influencia diretamente em suas

    caractersticas. Existem 8 caractersticas fundamentais que definem as

    funcionalidades de uma memria.

    1- Localizao:

    -Memria interna: Utilizadas internamente e no computador para

    processamento de dados. Exemplo: RAM.

    - Memria externa: Dispositivos de armazenamento perifricos que so

    acessveis ao processador por meio de um mdulo de E/S. Exemplo: Disco,

    drive de CD, etc...

    2- Capacidade:

    - Para memrias internar medida em bytes ou palavra.

    - Para memrias externas medida em bytes.

    3- Unidade de transferncia: Representao de valores (Instrues e dados) e

    forma como os dados entram e saem da memria.

    - Palavra: Unidade natural de organizao de memria. O tamanho da palavra

    igual ao nmero de bits utilizados para representar instrues e dados.

  • - Unidade de transferncia: para memria principal (RAM) o nmero de bits

    lidos ou escritos de uma s vez. Dependendo do tipo da memria a unidade da

    transferncia da memria a unidade de transferncia passa a ser um bloco

    4- Mtodo de acesso:

    - Acesso sequencial: Os dados so organizados em registros que so lidos de

    forma sequencial, o tempo de acesso varivel.

    - Acesso direto: Cada bloco possui um endereo nico baseado em sua

    localizao fsica. Tempo de acesso varivel.

  • - Acesso aleatrio: Cada posio tem um endereo nico e pode ser acessado

    diretamente. Tempo de acesso constante.

    5- Desempenho (Velocidade da Memria)

    Tempo de acesso (latncia)

    - Memria de acesso aleatrio: Tempo utilizado desde o instante em os dados se

    tornam disponveis para o uso.

    - Memria de acesso no aleatrio: Tempo para posicionar o mecanismo de leitura e

    escrita na posio desejada.

    Tempo de ciclo de memria: Tempo de acesso maios qualquer tempo adicional antes

    que um segundo acesso comece.

    Taxa de transferncia: Taxa em que os dados so transferidos para dentro e fora da

    memria.

    6- Tipo fsico:

    -Semicondutora

    - Magntica

    - ptico

    7- Caractersticas fsicas:

    - Voltil: Devido falta de energias as informaes so apagadas (Internas).

    - No Voltil: As informaes permanecem mesmo sem energia (Externa).

    8- Organizao: Referente a forma como as informaes so armazenadas e

    utilizadas em memria.

    Ex.: SRAM: flip flops

    DRAM: transistores

    Hierarquia de memria

    Pontos a serem considerados:

    - Capacidade (Armazenamento)

    - Velocidade (Acompanhar o Processador)

    - Custo (Valor em mercado)

  • Relaes:

    Mais velocidade, menor tempo de acesso, maior custo.

    Menor capacidade, menor tempo de acesso, menor velocidade.

    a- Custo por bit

    b- Tempo de acesso a memria Princpio de localidade e referncia.

    c- Capacidade Ex.: Dois nveis de Memria

    d- Velocidade

    (03/04/13)

    Princpios da memria cache

    O uso de uma memria cache justificado devido ao aumento de velocidade (desempenho)

    proporcionado pela memria. O uso de cache est ligado as diferenas de desempenho

    existentes entre os tipos de memria, ou seja, devido organizao da memria RAM em

    relao a cache muito mais rpida buscar uma palavra na cache do que na RAM.

  • Relao memria RAM e CACHE

    - Memria RAM

    A memria principal endereada com 2n bits.

    Ex.: n = 32 232 = 4,2GB

    Assim: Podemos enderear at 4.2 GB de palavra com 32 bits cada (de forma nica).

    Considerando k = tamanho de bloco, a quantidade de blocos em memria (M) igual 2n/k,

    logo:

    M = 2n/ k

    - CACHE

    Cada linha de cache mapeia um bloco de memria, sendo que a cache possui m linhas, porm

    o nmero de linhas do cache muito menor que o nmero de blocos.

    m < M

    Como existem menos linhas de cache que blocos de memria, cada linha possui uma tag que

    identifica o bloco.

    Funcionamento do CACHE

    - Cache utilizado para comunicao RAM Processador.

    - A cache contm uma cpia da informao da RAM.

    - Quando o processador tenta ler uma palavra em memria primeiro verifica na cache.

    Se a palavra estiver na cache enviado ao processador (acerto de cache) cache hit.

    Se a palavra no est na cache um bloco de memria copiado para cache (falha de

    cache) cache miss.

  • Projetando uma cache

    Assim como qualquer outro dispositivo computacional a cache possui alguns elementos

    bsicos que servem para classificar e diferenciar as arquiteturas de memrias cache.

    1- Endereos de Cache

    Cache lgica: Trabalha com endereos lgicos.

    Cache fsica: Trabalha com endereos fsicos.

    - Uso de memria virtual e do gerenciador de memria virtual MMU.

    Cache Lgica

  • Cache Fsica

    2- Tamanho de Cache

    - Tamanho de cache determina o desempenho.

    Cache muito grande fica muito lerdo, porm barato.

    Cache muito pequena tem um bom desempenho, porm o nmero de cache hit

    aumenta.

    Exemplo de tamanhos:

    L3 = 24 MB a 48 MB

    L2 = 256 k a 4 MB

    L1 = 1 k a 128 k

    (10/04/13)

    FUNO DE MAPEAMENTO

    Como existem menos linhas de cache do que blocos de memria principal necessrio haver

    um algoritmo para mapear os blocos de memria principal para as linhas de cache.

    Funo de mapeamento: dita como a cache organizada e como ser feito o

    mapeamento de um certo bloco de memria para uma linha de cache.

    Mapeamento direto: mapear cada bloco da memria principal para uma linha de

    cache (1:1)

  • Cada endereo de memria constitudo por 3 campos:

    W = bits que indicam uma palavra no bloco.

    S = bits que especificam um 2S blocos de memria.

    R = bits que indicam a linha da cache.

    A tag de identificao de bloco definida por S R e o endereo tem tamanha S + W.

    BUSCA EM CACHE

    MAPEAMENTO DIRETO

  • O mapeamento direto simples e fcil de ser implementado. Porem para o caso de referencias

    a blocos alternados que so mapeados para a mesma linha se torna problemtico devido ao

    THRASHING (no leva em considerao a referencia).

    Ex:

    0000 00 00 a a a a

    0000 00 01 b b b b

    0000 00 10 c c c c

    0000 00 11 d d d d

    0001 01 00 g g g g

    0001 01 01 g g a b

    0001 01 10 b b b b

    0001 01 11 a a a c

    0100 00 00 f f f f

    0100 00 01 e e e e

    0100 00 10 a b c d

    0100 00 11 e f g h

    Mapeamento associativo: compensa a desvantagem do mapeamento direto, permitindo que

    cada bloco de memria seja carregado em qualquer linha da cache

    Para determinar se um bloco est na cache, a logica de controle precisa comparar

    simultaneamente a tag de cada linha.

    BUSCA EM CACHE

    MAPEAMENTO ASSOCIATIVO

    0100 f f f f e e e e a b c d e f g h

    0001 g g g g g g a b b b b b a a a c

    0010

    0011

  • Com o mapeamento associativo, existe flexibilidade em relao a qual linha substituir, porem a

    complexidade para comparar todas as TAGs ao mesmo tempo muito grande.

    MAPEAMENTO ASSOCIATIVO POR CONJUNTO

    Mapeia de forma direta um bloco para um conjunto K de cache e dentro do conjunto o bloco

    mapeado para qualquer linha.

  • 0000 00 00 a a a a

    0000 00 01 b b b b

    0000 00 10 c c c c

    0000 00 11 d d d d

    0001 01 00 g g g g

    0001 01 01 g g a b

    0001 01 10 b b b b

    0001 01 11 a a a c

    0100 00 00 f f f f

    0100 00 01 e e e e

    0100 00 10 a b c d

    0100 00 11 e f g h

    (17/04/13)

    ALGORITMOS DE SUBSTITUIO

    Uma vez que a cache estiver cheia, e um novo bloco for trazido para cache, um dos blocos

    existentes precisa ser substitudo.

    Mapeamento direto: existe apenas uma linha de cache mapeada para cada bloco.

    Associativo e associativo por conjunto: necessita de um algoritmo de substituio para

    tomada de deciso (qual linha de cache ser desalocada).

    ALGORITMOS

    LRU: o ultimo mais recente usado substitua aquele bloco que permaneceu na cache por mais

    tempo sem receber referncias.

    Um bloco que for utilizado recentemente tem grande probabilidade de ser usado

    novamente.

    FIFO: primeiro a entrar e o primeiro a sair, substitua o bloco que esta na cache por mais

    tempo.

    No leva em considerao referncia.

    LFU: o usado menos frequentemente, substitua aquele bloco que esta na cache com menos

    referncia.

    0100 f f f f e e e e a b c d e f g h

    0001 g g g g g g a b b b b b a a a c

    0010

    0011

  • Linhas antigas ficam na cache devido ao contador elevado.

    Ex: blocos 7, 0, 1, 2, 0, 3, 0, 4, 2,3;

    Politica de Escrita

    Quando um bloco em cache esta para ser substitudo, diferentes situaes podem ocorrer:

    1. O bloco da linha da cache no sofreu alterao, assim pode ser substitudo sem

    atualizao do bloco em memria.

    2. Se o bloco na linha da cache sofreu alguma alterao, ento antes de ser substitudo

    deve ser atualizado em memria.

    Problemas: modulo de E/S e acesso concorrente de cache

    Politica de Escrita

    1. Escrita direta (Write Through)

    Tcnica bem simplificada que obriga que as alteraes feitas em cache sejam

    feitas em memria e vice-versa.

    2. Escrita de volta (Write Back)

  • Por meio de um bit de uso, determina que as atualizaes em memria sejam

    feitas apenas em linhas modificadas em cache.

    Para acesso concorrente de cache

    1. Observao de barramento com escrita direta.

    2. Transparncia de hardware ou coerncia de cache por Diretrio.

    3. Memria no cachevel.

    CACHES MULTINVEIS

    Devido necessidade de desempenho em relao busca de informaes na memria principal,

    alm do uso de circuitos integrados, surgiram as caches multinveis (atualmente utilizado 3

    nveis de cache).

    (24/04/13)

    Organizao de memria

    O elemento bsico de uma memria semicondutora a clula de memria.

    Independentemente da tecnologia utilizada para elaborao da memria todas as clulas

    compartilham trs propriedades:

    1) Apresentam dois estados 1 e 0.

    2) Podem sofrer escritas (pelo menos uma vez).

    3) Podem sofrer leituras

  • Tanto leitura como escrita so realizadas sobre os valores lgicos 1 e 0

    TIPOS DE MEMRIA

    Memria RAM

    Utiliza acesso aleatrio para acessar e carregar informaes

    Pode ler e escrever dados em memria de forma rpida e fcil por meio de sinais

    eletrnicos. dividida em dois tipos:

    1. RAM Dinmica (DRAM)

    Elaborada com clulas que armazenam dados por meio de capacitores

    Devido a tendncia de descarga do capacitor necessrio a adoo de refresh

    da memria

    O refresh atualiza o valor do capacitor de tempos em tempos ou depois de

    uma leitura.

    RAM Esttica (SRAM):

    No precisa de refresh, pois devido a lgica de flip-flop consegue manter seu estado sem

    necessidade de uma complementao.

  • Se queremos escrever 1:

    C2 = 0 e C1 = 1 estado lgico 1

    C2 = 1 e C1 = 0 estado lgico 0

    - Leitura verifica o valor de B

    - Escrita: emite 0 e 1 nos fios B e B

    SRAM x DRAM

    Ambas so volteis.

    DRAM mais densa que SRAM.

    Em relao a clula SRAM dissipa mais potncia.

    Em relao ao CI a DRAM dissipa mais potncia.

    SRAM mais cara e mais rpida que a DRAM.

    Memria ROM (somente leitura)

    No voltil possuindo um padro permanente de dados, sendo assim no permite alterao

    em suas clulas.

  • PROM ROM programvel

    Possibilita ao usurio a realizao de uma escrita.

    EPROM PROM apagvel

    Permite vrias escritas, porm cada escrita deve ser realizada na memria

    limpa.

    Apaga com luz 20 minutos.

    (06/05/13)

    EEPROM

  • Memria no voltil que permite atualizaes, pois no obriga que o usurio apague toda a

    memria antes de uma operao de escrita.

    Processo de deleo acontece por sinais eltricos

    A operao de escrita mais lerda que a leitura, porm no leva 20 minutos como na

    EPROM. A operao de escrita da EEPROM fica na cara de centenas microssegundos.

    MEMRIA FLASH

    Baseada em transistores

    Tipos de FLASH

    NOR: primeira flash lanada, possui um sistema de endereamento semelhante ao da memria

    RAM (aleatrio). Possui suporte ao XiP (execute in place) que permite a execuo de

    programas diretamente do chip

    Rpida para leitura, porem lerda para escrita.

    NAND: mais barata que a NOR. No tem a capacidade de executar programas, sendo mais

    utilizada como unidade de armazenamento.

    RESUMO DE MEMRIA

    Categoria Apagamento Escrita Volatilidade

    RAM Escrita e leitura Eltrico Eltrico Voltil

    ROM Leitura No permite

    Mscaras

    No voltil

    PROM

    Eltrico EPROM

    Leitura, escrita, mas principalmente leitura

    Luz

    EEPROM Eltrico

    FLASH

  • LGICA DO CHIP DE MEMRIA

    Assim como qualquer dispositivo de armazenamento (interno e externo), a quantidade de bits

    lidos ou escritos em um chip um fator muito importante para o desempenho geral de um

    sistema.

    Leitura e escrita por arranjo fsico ou palavras de informao.

    Leitura e escrita por bits: um bit lido ou escrito por vez

    Ex: Organizao da RAM

    o DRAM de 16 bits

    o 4 bits lidos ou escritos por circuito integrado

    o Cada circuito integrado possui 4 Mbits

    o 4 circuitos integrados por memria

  • (08/05/13)

    ORGANIZAO DE MEMRIA

    Tipos de Organizao

    Se em um chip de RAM possvel ler apenas um bit por vez, para operar sobre uma palavra

    deve ser utilizado uma quantidade de chips igual o tamanho da palavra, considerando que o

    tamanho de memria enderevel igual a quantidade de bits em um chip.

  • Quando a quantidade de memria enderevel maior que a capacidade do chip, outra

    organizao necessria.

    EMPACOTAMENTO DE CHIP DE MEMRIA

    Um chip de memria formado por um conjunto de circuitos integrados, cada circuito possui

    uma matriz de clula de dados usada para armazenamento de informaes, sendo essas

    informaes lidas ou escritas por meio de pinos de conexo.

  • MEMRIA INTERCALADA

    Vrios chips de memria DRAM podem ser agrupados para formar um banco de memria,

    tendo como base as seguintes caractersticas:

    Cada banco pode realizar operaes de forma independente;

    Se as palavras requisitadas em uma leitura ou recebidas como entradas estiverem em

    bancos diferentes, temos um ganho de desempenho.

    Tipos de DRAM:

    SDRAM DRAM sncrona

    DDR SRAM

    RDRAM

    (15/05/13)

    MEMRIA EXTERNA

    Discos magnticos

    Um prato circular de material no magnetizvel chamado substrato, geralmente feito

    de alumnio ou liga de alumnio. O substrato nos discos mais modernos feito de

    vidro.

    O substrato coberto por uma camada de material magnetizvel, ferro ou cobalto,

    onde pe feita a gravao de dados

  • O HD dividido em duas partes principais:

    HDA (hard disk assembly): compartimento isolado onde se encontra o disco

    Controlador de HD: circuito controlador

    o Possui um buffer de dados para E/S

    o Um circuito integrado para controle

    LEITURA E ESCRITA

    Leitura e escrita baseada em uma cabea

    Uma cabea baseada no funcionamento de uma bobina realiza as operaes de escrita

    e leitura

    Leitura e escrita separadas

    Para cada operao utilizada uma cabea. Para escrita utilizada a abordagem de

    bobina e para leitura utilizado o sensor MR (magnetorresistivo).

    FORMAO DO DISCO

    Trilhas: ambas concntricas que passam por baixo da cabea.

    Setores: unidade de informao na trilha, geralmente tem tamanho fixo de 512 bits,

    mas pode ter tamanho varivel.

    Lacunas: separa as trilhas e setores.

    ORGANIZAO DO DISCO

  • Um disco pode ser organizado de duas formas distintas, sendo essas:

    Velocidade angular constante: baseada no principio de que um bit prximo do centro

    do disco em rotao passa pela cabea mais lentamente que um bit da extremidade

    o Problema: velocidade de leitura ou escrita varivel.

    o Soluo: variao da densidade dos bits de cada trilha

    Mltiplas zonas: o disco dividido em zonas de dados, cada zona possui uma

    densidade especifica:

    o Ganho de armazenamento

    o Pouca variao de velocidade de escrita e leitura

    Para abordagens de mltiplas zonas, necessrio que no disco haja alguns dados para

    controle, sendo esses dados acessados apenas pelo sistema de disco e utilizados para

    identificar setores e trilhas em uma zona.

    CARACTERSTICAS FSICAS

    Movimentao da cabea

    Cabea fixa

    Cabea mvel

    Portabilidade

    Disco removvel

    Disco no removvel

    Faces

    nica

    Dupla

    Pratos

    nico

    Mltiplos

    (22/05/13)

  • MECANISMO DA CABEA

    Contato: ao efetuar uma leitura ou escrita a cabea entra em contato com o disco. Isso

    acontece em discos mais antigos e disquetes.

    Problema de atrito

    Lacuna fixa: a cabea e posicionada sobre uma distancia dixa do disco, permitindo a

    formao de uma camada de ar que impede que a cabea toque no disco.

    Lacuna aerodinmica (wincherster): cabea especial que toca levemente o disco

    quando esse esta parado. Quando o disco entra em rotao surge uma camada de ar

    que levanta levemente a cabea.

    Fabricado de forma selada

    Menor cabea maior densidade de dados

    PARMETROS DE DESEMPENHO

    Tempo de busca (seek time): em um sistema de cabea mvel e o tempo para encontrar uma

    trilha.

    Atraso rotacional/Latncia rotacional: tempo gasto para que o inicio de um setor alcance a

    cabea

    Tempo de acesso: tempo de busca + atraso rotacional

    Tempo de transferncia: tempo para executar uma operao

    RAID

    Devido a grande diferena entre memria externa e processador em relao a memria

    secundaria, no caso, discos magntico, esses so utilizados em paralelo para aumentar o

    desempenho

    Caractersticas:

  • Conjunto fsico de disco visto como um nico disco

    Dados distribudos em cada disco

    Uso de redundncias

    RAID NVEL 0

    No se enquadra em todas as caractersticas de raid, pois no utiliza redundncia de

    informaes.

    Pode ser utilizado para aumentar a velocidade de leitura ou escrita me disco. Os dados so

    distribudos pelos discos visando aumentar a velocidade

    Mapeamento de disco feito pelo SP em relao ao raid 0

    RAID NVEL 1

  • A redundncia de informaes adicionada por meio de espelhamento.

    Vantagens:

    Leitura pode ser feita por qualquer disco

    Escrita tem tempo de uma escrita

    Em caso de falhas tem outra unidade

    RAID NVEL 2

    O raid 2 e 3 utilizam o acesso paralelo para escrita ou leitura

    Os sprit so bem pequenos geralmente byte ou palavra

    Usa o cdigo de hamming para recuperao

    RAID NVEL 3

  • No utiliza hamming para correo de erros, utiliza um disco somente para o clculo de

    paridade. Em vez de um cdigo de correo de erros utiliza um bit de paridade simples.

    P(b) = b3 + b2 + b1 + b0

    P(b) = 1 + 1 + 0 + 0

    P(b) = 0

    Se x2 falhar

    b2 = P(b) + b3 + b1 + b0

    b2 = 0 + 1 + 0 + 0

    b2 = 1

    RAID NVEL 4

    Assim como 5 e 6 utiliza a tcnica de acesso independente, cada disco executa uma operao

    de E/S

    Utiliza a ideia de paridade em um conjunto maior de informaes

  • Vantagens:

    Leitura pode ser feita por qualquer disco;

    Varias escritas tem tempo de uma escrita;

    Em caso de falha, tem outra unidade espelho.

    (29/05/13)

    RAID 5

    Muito parecido com o RAID 4, porem os sprits de paridade no ocupam um disco especifico.

    Utiliza a abordagem de array distribudo

    Os sprits de paridade so distribudos ao longo do array de disco

    RAID 6

    Utiliza dois algoritmos de paridade P e Q

    Pode recuperar at 2 erros em relao ao elementos do array

  • Devido a atualizao dos sprits de paridade para operaes de escrita essa abordagem

    apresenta uma queda de desempenho.

    RESUMO DE RAID

    RAID 0

    Vantagens: maior desempenho para escrita e leitura

    Desvantagem: no possui tolerncia a falha

    RAID 1

    Vantagens: simplicidade e grande confiabilidade

    Desvantagem: exige o dobro de espao e gera um overhead de disco de 100%

    RAID 2

    Vantagens: utiliza um cdigo de correo de erros (ECC)

    Desvantagem: razo entre discos de dados e discos para ECC muito grande

    RAID 3

    Vantagens: nico disco e capaz de realizar recuperao do sistema (paridade)

    Desvantagem: funcionamento em paralelo mais organizao de disco causa uma alta

    taxa de transao de informao por operao

    RAID 4

    Vantagens: taxa de leitura maior que o RAID 3

    Desvantagem: centralizao do disco de paridade

    RAID 5

    Vantagens: alto desempenho para escritas

    Desvantagem: reconstruo mais cara que RAID 1

    RAID 6

    Vantagens: alta tolerncia a falhas

    Desvantagem: overhead de paridade

  • (29/05/13)

    MEMRIAS OPTICAS

    CD e CD-ROM

    Tecnologias muito semelhantes, sendo que o CD-ROM oferece mais resistncia e cdigo de

    correo de erros.

    Camadas de fabricao:

    Camada de policarbonato: camada de informao

    Camada de reflexo

    Camada de acrlico

    Rotulo do CD

    OBS: CDs e CD-ROMs so gravadas por demanda por meio de um disco mestre.

    Processo de leitura

    Realizada por laser de baixa potencia que incide no policarbonato e refletido pela

    camada de reflexo

    Os dados so representados por sulcos ou pistas:

    o Sulcos: possui superfcie spera refratando a luz

    o Pistas: superfcie lisa que emite luz com alta intensidade

    Variao de intensidade de luz percebida por um sensor fotoresistor

  • Organizao

    Uso de trilhas em espiral

    Todos os setores de uma trilha tem o mesmo tamanho

    Uso de CLV (velocidade linear constante)

    o Velocidade de disco pode variar

    O bloco organizado da seguinte forma

    (03/06/13)

    CD-R

    Possibilita uma gravao e muitas leituras. A estrutura do CD-R possui uma camada extra em

    relao ao CD e CD-ROM, sendo composta da seguinte forma.

    Camada para rtulo

    Camada de proteo

    Camada reflexiva

    Camada de gravao: material tingido

    Camada de policarbonato

    CD-RW

  • Possui 6 camadas e no utiliza a camada reflexiva e de gravao, pois utiliza uma camada

    especial capaz de alternar sua forma com base na variao de calor

    Camada de rtulo

    Camada de proteo

    Camada dieltrica

    Mistura prata, antimnio e telrio. As molculas dessa camada podem mudar seu

    estado de acordo com o laser de gravao

    Camada dieltrica

    Camada de policarbonato

    CAPACIDADE E VELOCIDADE DE GRAVAO

    A maioria dos rtulos dos CDs possuem informaes sobre a capacidade e velocidade, sendo:

    Capacidade

    o 650MB/74min

    Velocidade

    o CD-R

    1x 16x: pode ser gravado em uma velocidade entre 1x e 16x(x =

    150KB/s)

    o CD-WR

    4x 10x: 10 para gravao e 4 para regravao

    DVD

    Baseado em CD, podendo ser dividido nas seguintes categorias:

    DVD gravvel

  • DVD-R e DVD+R: muito parecidos, porem a diferena entre ambos esta na forma de

    uso (PC-backup e DVD player)

    DVDs regravveis

    DVD-RW

    DVD+R

    DVD-RAM

    Os DVDs tem o mesmo tamanho dos CDs, porm podem armazenar mais dados devido aos

    seguintes fatores:

    Maior densidade de informaes

    Armazenamento em 2 camadas

    Menor espao entre trilhas

    Nmero de camadas:

    Tipo de DVD Faces/camadas Capacidade

    DVD-5 1/1 4,7 GB DVD-9 1/2 8,5 GB

    DVD-10 2/1 9,4 GB DVD-14 2/1 e 2/2 13,2 GB DVD-18 2/2 17 GB

    DUAS CAMADAS

    Primeira camada feita de material semitransparente e a segunda feita de um material que

    no permite a passagem de luz.

    BLU-RAY

    Mdia ptica com grande capacidade de armazenamento

    Baseado em um diodo lazer azul de comprimento de onda de 405 mm

    Uma camada 27 GB

    Duas camadas 50 GB

    FORMATO DO BB

    BD-ROM

    BD-R e BD-RW (utilizado para backup)

    BD-RE (gravao em HDTV)

    [J1] Comentrio: Podem ser escritos sem necessidade de apagar o disco todo

  • HD - DVD BD

    Uma camada 15 GB 25 GB Duas camadas 30 GB 50 GB

    (12/06/13)

    VISO FUNCIONAL

    2) Comunicao mdulo processador

    O modulo deve ser capas de aceitar os sinais de dados, controle e estados vindos do

    processador:

    Dados: dados destinados aos perifricos

    Estados: situao do perifrico

    Endereo: identificao de um perifrico

    3) Comunicao com dispositivos

    Emitir sinais de controle, dados e endereos aos dispositivos perifricos

    4) Buffering de dados

    Os dados vindos da memria devem ser armazenados em um buffer no mdulo em caso de

    diferenas de desempenho entre barramento, memria, CPU e dispositivo perifrico.

    5) Erro de funcionamento

    O mdulo deve ser capaz de sinalizar ao processador caso um dispositivo emita algum erro

    Falta de papel

    Trilha com defeito

  • VISO ESTRUTURAL DO MDULO DE E/S

    Cada mdulo pode operar n dispositivos, logo utilizara vrios endereos para identificao:

    Canal de E/S

    Controlados de E/S

    TIPOS DE E/S

    O sistema operacional precisa gerenciar as operaes de E/S de forma eficiente, sendo assim

    pode adotar trs abordagens de E/S:

    E/S programada: ocorre a partir de execuo de uma instruo de E/S

    E/S controlada por interrupo

    Uso de DMA

    E/S PROGRAMADA

    Quando o processador esta executando um programa e encontra uma instruo de E/S ele

    executa essa instruo e envia o comando adequado ao mdulo de E/S apropriado. Ao

    executar o comando emitido pelo processador o mdulo de E/S no tem obrigao de

    informar o fim da operao, deixando a cargo do processador a verificao do fim da

    operao.

    Comandos de E/S

    O mdulo pode gerar 4 comandos para controle do dispositivo

  • Controle: atua perifricos

    Teste: teste de estados

    Leitura

    Escrita

    INSTRUES DE E/S

    Quando um mdulo de E/S utiliza o barramento do sistema junto a memria dos modos de

    endereamento so possveis:

    E/S mapeada na memria: por meio das mesmas linhas de endereo o mdulo de E/S

    e memria utilizam o mesmo espao de endereo;

    E/S independente: espao de endereo separado

    (26/06/13)

    E/S CONTROLADA POR INTERRUPES

    Evita que o processador fique gastando tempo com a verificao de estado do mdulo

    (dispositivo), pois por meio de interrupes o mdulo pode avisar quando um programa de E/S

    for terminado.

    PROCESSAMENTO DE INTERRUPES

    O surgimento de uma interrupo dispara uma serie de eventos em hardware e software.

  • ASPECTOS DE PROJETO

    Dois aspectos de projeto surgem pra implementao de tratamento de E/S por interrupo:

    Como o processador determina qual mdulo enviou a interrupo

    Como tratar mais de uma interrupo, ou seja, como o processador decide qual

    interrupo ser tratada primeiro.

    DESCOBERTA DE MDULOS

    Mltiplas linhas de interrupo

    o Tem que utilizar uma das outras 3

    Verificao por software (polling)

    o Rotina verifica qual o mdulo

    o Uso de TEST I/O

    Verificao por hardware

    o Interrupo vetorada

    Arbitrao de barramento

    PROBLEMAS DA E/S CONTROLADA POR INTERRUPO

    Toda operao de memria E/S tem que passar pelo processador

    A taxa de transferncia de E/S limitada pela velocidade em que o processador

    consegue atender cada interrupo

  • O processador fica ocupado gerenciando uma transferncia de E/S memria

    Quando processador tem que gerenciar uma grande transferncia de dados deve ser

    utilizada a tcnica de acesso direto memria (DMA)

    DMA

    Envolve um mdulo adicional no barramento do sistema. O mdulo DMA capaz de realizar a

    funo do processador.

    O DMA pode transferir dados pelo barramento da memria para E/S e de E/S para memria

    com base solicitao do processador.

    CANAL DE E/S

    Canal seletor: controla um mdulo por vez.

    Canal multiplexador: controla vrios mdulos

    (17/07/13)

    ARITMTICA DO COMPUTADOR

    Em relao a aritmtica computacional dois pontos so fundamentais para concepo de uma

    unidade capaz de efetuar a aritmtica binaria:

    1. Representao binaria

    Ponto flutuante 32 ou 64 bits

    Ponto fixo

    2. Algoritmos utilizados para efetuar as operaes binarias

    Diviso

    Multiplicao

    Adio

    Subtrao

    [J2] Comentrio: Reais

    [J3] Comentrio: Inteiros

  • Padro IEE754: uma especificao de como os nmeros do tipo ponto flutuante devem ser

    representados.

    UNIDADE LGICA E ARITMTICA (ULA)

    um mdulo de processador que executa as funes aritmticas bsicas. Funciona a partir da

    unidade de controle que define todas as aes que devem ser executadas.

    Registradores de dados (AC)

    Registradores de erro (CF ou OF)

    REPRESENTAO DE INTEIROS

    Podemos representar inteiros de duas formas:

    Sinalizador (negativo e positivo)

    No sinalizador (positivo)

    Inteiros no sinalizados

    Para uma palavra de 8 bits podemos representar at 256 valores. Para 8 bits podemos utilizar

    valores de 0 a 255.

    Nmeros sinalizados

    [J4] Comentrio: Carryflag e Overflow

  • Existem vrios tipos de representao para nmeros inteiros sinalizados, todas elas envolvem

    o uso do ultimo bit (MBS) como bit de sinal. A representao mais simples a representao

    em sinal magnitude.

    *Um bit para cada sinal (1 negativo, 0 positivo)

    Problemas

    Duas representaes para o zero

    Operaes aritmticas ficam mais complexas

    COMPLEMENTO DE 2

    Utiliza o MBS como sinal, a diferena do sinal magnitude esta na forma de interpretao.

    *O zero classificado como numero positivo.

    ADIO E SUBTRAO

    A adio em complemento de 2 idntica a adio para nmeros no sinalizados, a diferena

    esta no uso do CF ou OF.

    Regra de overflow: se dois nmeros so somados e ambos so positivos ou negativos, o

    overflow ocorre se e somente se o resultado da adio for de sinal oposto.

    Regra de subtrao: para subtrair um numero (subtraendo) de outro (minuendo) apanhe o

    complemento de 2 do subtraendo e some com o minuendo.

    [J5] Comentrio: Inverte todos os bits e soma 1

  • Exemplo de adio.

    -7 + 5 = 1001 + 0101 = 1110

    3 + 4 = 0011 + 0100 = 0111

    -4 + (-1) = 1100 + 1111 = 1 - 1011

    5 + 4 = 0101 + 0100 = 1001

    -7 + (-6) = 1001 + 1010 = 1 - 0011

    (22/07/13)

    MULTIPLICAO NO SINALIZADA

    [J6] Comentrio: CF, permitido apenas uma sobra em nmeros sinalizados.

    [J7] Comentrio: OF, a soma de dois positivos deu um negativo

    [J8] Comentrio: OF, a soma de dois negativos deu um positivo

  • Ex: 11 * 13 => 1011 * 1101

    C(carry)

    A(acumulador)

    Q(multuplicador)

    M(multiplicando)

    0 0000 1101 1011 n = 4

    0 1011 1101 1011 Soma A + M

    0 0101 1110 1011 Desloca, n = 3

    0 0010 1111 1011 Desloca, n = 2

    0 1101 1111 1011 Soma A + M

    0 0110 1111 1011 Desloca, n = 1

    1 0001 1111 1011 Soma A + M

    0 1000 1111 1011 Desloca, n = 0

    Resposta = 10001111

    MULTIPLICAO SINALIZADA

  • Ex: -7 * 3 => 1001 * 0011

    A Q

    Q[-1]

    M

    0000 0011 0 1001 n = 4

    0111 0011 0 1001 Sub A M

    0011 1001 1 1001 Desloca, n = 3

    0001 1100 1 1001 Desloca, n = 2

    1010 1100 1 1001 Soma A + M

    1101 0110 0 1001 Desloca, n = 1

    1110 1011 0 1001 Desloca, n = 0

    Resposta = 11101011

    (24/07/13)

    DIVISO NO SINALIZADA

  • Ex: 10 /5 => 1010/0101

    A Q(dividendo) M(divisor)

    0000 1010 0101 n = 4

    0001 010x 0101 Desloca

    1100 010x 0101 Sub A M

    0001 0100 0101 Q0 = 0, som A + M, n = 3

    0010 100x 0101 Desloca

    1101 100x 0101 Sub A - M

    0010 1000 0101 Q0 = 0, som A + M, n = 2

    0101 000x 0101 Desloca

    0000 000x 0101 Sub A - M

    0000 0001 0101 Q0 = 1, n = 1

    0000 001x 0101 Desloca

    1011 001x 0101 Sub A - M

    0000 0010 0101 Q0 = 0, som A + M, n = 0

    Resto = 0000, Quociente = 0010

    DIVISO SINALIZADA

  • Ex: -7/3 => 7/3 => 0111/1101

    A(dividendo) Q(dividendo) M(divisor)

    0000 0111 1101 n = 4

    0000 111x 1101 Desloca

    1101 111x 1101 Sub A M

    0000 1110 1101 Q0 = 0, som A + M, n = 3

    0001 110x 1101 Desloca

    1110 110x 1101 Sub A M

    0001 1100 1101 Q0 = 0, som A + M, n = 2

    0011 100x 1101 Desloca

    0000 100x 1101 Sub A M

    0000 1001 1101 Q0 = 1, n = 1

    0001 001x 1101 Desloca

    1110 001x 1101 Sub A M

    0001 0010 1101 Q0 = 0, som A + M, n = 0

    Resto = 0001 => 1111, Quociente = 0010 => 1110

    (31/07/13)

    PONTO FLUTUANTE

    [J9] Comentrio: Sub A M = Som A + compl(M)

  • Como a representao de nmeros em ponto fixo, em especial, complemento de 2, podemos

    representar numero inteiro positivo e negativo centrados em zero.

    Com essa representao no possvel representar nmeros muito grandes e muito

    pequenos, pois no possvel trabalhar com a movimentao do ponto (ponto flutuante).

    Para representar um ponto flutuante podemos usar o seguinte esquema:

    Com esse tipo de representao usamos pouco espao para armazenar nmeros grandes.

    Padro = IEEE754

    Define uma representao de nmeros em formato ponto flutuante em dois tipos bsicos:

    1. Formato simples 32 bits

    2. Formato duplo 64 bits

    EXPOENTE POLARIZADO

    Utilizado para eliminar o sinal do expoente 2k-1, onde k = numero de bits do expoente. Ex:

    expoente com 3 bits.

    NOTAO NORMALIZADA

    Uma melhora em relao ao armazenamento de nmeros em ponto flutuante. Nessa

    representao o bit que fica antes do ponto deve ser sempre 1.

  • 1, bbbb ... b x 2E, onde b = 0/1

    Assim como o numero antes do ponto sempre 1, no necessrio armazena-lo. Dessa

    maneira o significado passa para 24 bits. Qualquer nmero pode ser normalizado.

    Antes de armazenar o P.F. devemos normalizar

    Ajustar o expoente

    Ex:

    0101,11 x 20

    1010,110 x 20

    Ponto flutuante binrio

    1. Defina o sinal do numero

    2. Encontre o verdadeiro expoente

    3. Gere o nmero

    Ex:

    1 010 1100 -0,11100 x 20

    0 101 0111 101,11 x 20

    (05/08/13)

    CONJUNTO DE INSTRUES

    O conjunto de instrues de uma maquina um fator super importante para o

    desenvolvimento de programas, contudo quando o programador utiliza uma linguagem de alto

    nvel no necessrio conhecer muita coisa sobre a arquitetura da mquina:

    Conjunto de instrues: as instrues que um processador suporta definem o

    conjunto de instrues do mesmo.

    ELEMENTOS DE INSTRUO DE MQUINA

    Instruo: um comando direcionado ao processador para execuo de uma operao.

    Elementos de uma instruo.

    1. Cdigo da operao (mnemnico, opcode);

    2. Referncia a operando fonte;

    3. Referncia a operando destino;

    4. Referncia para prxima instruo.

    FORMATO 1 bit para sinal 3 bits para expoente 4 bits para significado 1 3 4

    S Expoente Significado

    [J10] Comentrio: Classifica processador

  • OPERANDOS

    Os operandos fonte ou destino podem ser classificados da seguinte forma:

    1. Memoria Virtual ou principal (endereo fsico ou lgico)

    2. Registrador (depende da arquitetura EAX, EBX, ECX, ...)

    3. Imediato (na prpria instruo)

    4. E/S: o valor esta em um dispositivo de E/S se utiliza E/S mapeada para memria

    esse tipo de operando para o ser de memria (HD, teclado, ...)

    REPRESENTAO DA INSTRUO

    Cada instruo para um processador representado por uma sequencia de bits, sendo

    que a programao em linguagem de maquina se torna muito complexa, pois tudo traduzido

    para uma sequencia de 1 e 0.

    Uso de linguagem simblica 1M

    IR decodifica instruo por meio de mnemnico

    A instruo executada com base nos operandos

    Ex de mnemnico

    Add adio

    Sub substituio

    Div diviso

    Mul multiplicao

    Ex de instruo simblica

    Load MOV (x86)

    Store

  • Ex2: estrutura de uma instruo

    4 bits 6 bits 6 bits 24 = 16

    opcode Referncia 1 Referncia 2

    TIPOS DE INSTRUES

    1. Processamento de dados

    2. Armazenamento de dados (movimentao)

    3. Armazenamento de dados (E/S)

    4. Controle (if, for, entre outros)

    (07/08/13)

    TIPOS DE OPERANDOS

    As instrues de mquina operam sobre os seguintes tipos de dados (valores).

    Endereo: usado como vetor base

    Nmeros

    Caracteres

    Dados lgicos

    Nmeros: usados em operaes de aritmtica bsica

    Inteiros binrios

    o Positivos: de 0 at 2n 1

    o Sinalizados: de -2n-1 at 2n-1 1

    Ponto flutuante

    o Estouro de expoente

    [J11] Comentrio: Obs: cuidar com o estouro de representao

  • o Estouro de significando

    Decimal

    o Cada digito decimal traduzido para um binrio de 4 bits

    Caracteres: geralmente utilizado o ASCII para representar caracteres

    7 bits para objeto

    1 bit para correo de erro

    Dados lgicos: representa valores booleanos, pode ser representado

    Uma palavra

    Meia palavra

    Conjunto de valores lgicos

    Ligado a linguagem

    TIPOS DE OPERAES

    Transferncia de dados instrues para armazenamento e carregamento.

    Aritmtica: operaes bsicas (add, sub, div, mul), alm de absoluto, incremento, ...

    Lgica

    Converso: usada para realizar converses entre tipos de dados

    E/S: rotinas do SO para acessar dispositivos

    Controle de Sistema: rotinas usadas para tarefas importantes (troca de contexto)

    Transferncia de Controle

    OPERAES LGICAS

    Operaes de deslocamento (a direita e a esquerda)

  • TRANSFERNCIAS DE CONTROLE

    Uso de salto em PC

    Utilizaes:

    Uma execuo deve ser executada n vezes (lao)

    Necessidade de selecionar uma instruo (i/j)

    Estruturao de cdigo (procedimento)

    Instrues de desvio condicional (comparao + salto)

    Desvio incondicional

    PROCEDIMENTOS (FUNES)

    Call end (procedimento)

    Ret end (ponto de chamada)

  • (14/08/13)

    INSTRUES DE CHAMADA DE PROCEDIMENTO

    Um procedimento um programa ou rotina autocontido em um programa de escopo maior.

    Um procedimento pode ser invocado ou chamado em qualquer ponto de um programa.

    Vantagens:

    Modularidade (organizao)

    Economia de cdigo

    O procedimento baseado em duas instrues bsicas:

    Call: armazena valor de retorno

    Ret: retorna o fluxo de controle

    Exemplo de controle de fluxo

    Endereos Mem. Principal

    4000 ...

    4100 Call Proc1(4500) ...

    4500 ...

    4600 Call Proc2(4800)

  • ... 4650 Call Proc2(4800)

    ... 4700 Ret

    4800 ...

    4850 Ret

  • Pontos importantes

    um procedimento pode ser chamado em mais de um local

    um procedimento pode chamar outro procedimento

    a chamada fica ligada a quem chamou

    Obs: um procedimento, aps sua execuo, precisa retornar o fluxo de execuo. Assim, para

    um procedimento, necessrio armazenar parmetros e variveis locais

    registradores

    memria

    pilha

    ORGANIZAO DE UM PROGRAMA EM MEMRIA

    rea de cdigo (instruo)

    rea de dados (operando)

    RIP

    Pilha

    (21/08/13)

    ENREDEAMENTO

    Em um conjunto de instrues um operando pode ser referenciado de varias formas, ou seja,

    como um operando ser acessado em uma determinada instruo.

    Uma instruo exige o uso de operandos (valores e endereos) para realizar determinadas

    operaes, logo temos que definir uma forma de acessar esses operandos (endereamento).

    Tipos de endereamento

    Imediato: o valor do operando esta na prpria instruo

    Ex: mov $5, %EAX =>

    Vantagens: no exige acesso a memria

    Desvantagem: a representao do operando

    Direto: a instruo possui um operando que representa um endereo de memria

    Ex: movL a, %EAX =>

    [J12] Comentrio: Usado para definir escopo (global ou local)

  • No muito utilizada atualmente, pois permite apenas endereamento fsico de

    memria (campo para endereo reduzido)

    Indireto: o endereo presente na instruo aponta para um endereo de memria, e na

    memria o endereo aponta pra outro endereo.

    Vantagens: maior espao de endereamento

    Desvantagens: dois acessos a memria

    Endereamento de registrador: semelhante ao endereamento direto, porem no enderea

    um endereo de memria e sim um registrador

    *Pouco espao de endereamento

    Endereamento indireto por registrador: anlogo ao endereamento indireto. Em ambos os

    casos o campo de endereo aponta para um endereo e no para um literal.

    Vantagens: apenas um acesso a memria

    Desvantagens: pouco espao enderevel para registrador

    Endereamento por deslocamento: usa dois endereos para gerar um

    Endereamento relativo (MMU)

    Endereamento por registrador base

    Indexao (laos)

    Base [0] [1] [2] [3] [4] [5]

    [J13] Comentrio: Temos poucos registradores (5 at 32), assim poucos bits so usados para endereamento

  • Base = registrador endereamento por registrador base

    Base = memria indexao (endereo fixo e contador em registrador)

    Endereamento por pilha: os operandos so armazenados em ordem na pilha do sistema,

    assim como as instrues em memria. Assim, ao executar uma instruo o endereo do

    operando fica implcito em ESP.

    FORMATO DA INSTRUO

    Como a instruo organizada

    Tamanho da instruo: 8 bits ou mltiplo (tamanho de palavra)

    Alocao de bits para uma instruo

    o Tamanho fixo

    o Tamanho varivel

    0000 0000 0000 0000

    000000 0000 000

    (28/08/13)

    ESTRUTURA E FUNO DO PROCESSADOR

    A execuo de instruo, base para o funcionamento de computadores, exige uma organizao

    bem especifica em relao ao processador, ou seja, para que o ciclo de instruo seja possvel

    o processador deve apresentar a seguinte estrutura.

    Funcionalidades do processador

    Buscar instruo

    Interpretar instruo

    Obter dados da instruo

    Executar processamento de dados

    Gravar dados

    TIPOS DE REGISTRADORES

    Registradores visveis ao usurio: podem ser acessados pelo programa

  • Registradores de uso geral: usado como variveis de programa -> manipulao livre

    Registradores de dados: (EDX, EAX)

    Registradores de endereo: armazenamento de ponteiros (ESP, EBP)

    Registradores de controle de estado: destinados ao SO

    Contador de programas (PC)

    Registrador de instruo (IR)

    Registrador de endereo de memria (MAR)

    Registrador de buffer de memria (MBR)

    Registradores (PSW)

    o Flags: serial, carry

    o Estados: interrupes, modo suspensor

    PIPELINE DE INSTRUO

    Semelhante ao uso de uma linha de montagem em uma planta industrial, ou seja, dividimos o

    processo de produo em pequenas partes que so executadas de forma independente

    Pipeline de 6 estagios

    Busca de instruo (BI)

    Decodifica a instruo (IR)

    Calcula operandos (CO) => modos de endereamento

    Obter operandos(OO)

    Executa instruo (EI)

    Escreve operando (EO)

    (02/09/13)

    Pipeline de 6 estgios

    1) Busca de instruo (BI) l prxima instruo. 2) Decodifica a instruo (DI) verifica opcode 3) Calcula operandos (CO) Verifica tipo de endereamento. 4) Obter operando (OP) Busca operando na memria (--) 5) Executa Instruo (EI) Executa a instruo. 6) Encerra operando (EO) Escreve em memria (--)

    TEMPO

    ADD (memria)

  • BI DI CO OO EI EO

    STORE

    BI DI CO OO EI

    P Pipeline 1 2 3 4 5 6 7 8

    InsIn Instruo 1 BI DI DI CO OO EI EO

    Instruo 1 Instruo 1 Instruo 2 BI DI CO OO EI EO

    Instruo 3 BI DI CO OO EI EO

    Simplifique 3 * 6 = 18 T

    Pipeline

    Hazards de Pipeline

    Ocorre quando o pipeline, ou alguma parte dele, interrompida. Existem trs tipos de hazards:

    1) Hazard de recurso: Quando duas ou mais instrues precisam do mesmo recurso fsico. Ex.: Memria arquitetura X86: nico acesso.

    BI DI CO OO EI EO

    BI DI CO OO EI EO

    BI DI CO OO EI EO

    X BI DI CO OO EI EO

  • Soluo: Aumentar nmero de recursos (SC)

    2) Hazard de Dados: Concorrncia para acessa operandos ADD %EBX, %EAX EAX = EAX + EBX

    SUB %ECX, %EAX EAX = EAX ECX

    Leitura Escrita

    ADD BI DI CO OO EI EO

    SUB BI DI CO OO EI EO

    Leitura Escrita

    Tipos de hazards de Dados:

    Leitura aps escrita: Uma escrita est sendo realizada e antes de seu fim uma leitura finalizada.

    Escrita aps leitura: Ao executar uma operao de leitura, uma escrita iniciada e a leitura termina antes da escrita.

    Escrita aps escrita: Escrita realizada de forma imediata.

    Ex.:

    EAX = EAX * EBX EAX = EAX + ECX

    Valor Inicial:

    EAX = 1 (1 * 2) 2 + 3 = 5

    ECX = 3 (1 + 3) 4 * 2 = 8

  • EBX = 2

    3) Hazards de Controle: Um pipelone toma o desvio errado.

    Desvios condicionais: Um grande problema do pipeline garantir o fluxo de execuo dos seis estgios de forma adequada.

    BI DI CO OO EI EO Desvio Enviado BI DI CO OO

    BI DI CO

    BI DI

    BI DI

    Salto BI BI

    Trabalhar com desvios condicionais (5 abordagens)

    1) Mltiplos ciclos: A cada instruo de desvio um novo fluxo de execuo iniciado.

    Instruo 1 BI DI CO OO EI EO

    Instruo de desvio BI DI

    Instruo de destino BI DI OO

    Instruo de desvio BI DI Instruo de sequncia BI DI

    Problemas: Concorrncia de registradores;

    Muitos fluxos de execuo;

    2) Busca antecipada do alvo: Verifica o alvo do desvio, carrega para o processador e garante que se o desvio fora tomado a instruo de salto j est no registrador.

    3) Buffer de lao de repetio: Uma pequena memria que utilizada como cache de instruo em sequncia. (Usado em Laos)

  • 4) Previso de desvio: Teste prever o desvio

    Estratgias estticas: No usa histrico para prever. - Previso nunca tomada;

    - Previso sempre tomada;

    - Previso por opcode.

    (04/09/13)

    PREVISO DE DESVIO COM BASE EM HISTRICO

    Estratgia dinmica: define se ira tomar o desvio ou no com base em um histrico (esse

    histrico indica se uma instruo de desvio condicional toma ou no um desvio com

    frequncia).

    Duas abordagens:

    1. Chave tomada / no tomada: bits extras so adicionados as linhas de cache para

    armazenar histrico.

    2. Tabela de desvio: uma cache dedicada a instrues de desvio.

    Chave tomada / no tomada

    Instruo sai da cache perde seu histrico

    1 bit de histrico

    1 1 1 1

    TAG P1 P2 P3 P4

    Ex:

    While

    teste salto

    ===

    [J14] Comentrio: Bit extra

  • salto

    ===

    jump while

    2 bits de histrico: armazena o estado das duas ultimas execues da instruo de

    desvio

    Enquanto no houver dois erros o estado no muda

    Tabela de Desvio

    Com o uso de bits de histrico no possvel, mesmo com a previso correta, buscar o

    operando em memria antes do fim da decodificao da instruo.

    Com o uso da tabela podemos armazenar o endereo de salto j na busca da instruo e

    armazenar esse valor na tabela.

    End instr desvio Histrico End. salto

  • INSTRUO CISC E RISC

    No inicio dos anos 70 no existiam muitos recursos computacionais, o que tornava a

    programao complexa

    Programas otimizados

    Linguagem limitada

    Hardware (barato) X software(caro)

    Resolver problemas

    Linguagem de alto nvel

    Complexidade em hardware

    CISC: (Complex Instruction Set Computer)

    Qualquer instruo faz referencia a memria

    Grande numero de instrues

    Complexado em instrues

    Menor cdigo de maquina

    RISC: (Reduced Instruction Set Computer)

    Computador complexo

  • Muitos registradores (+/- 500)

    Instrues reduzidas

    LOAD e STORE

    (11/09/13)

    CISC (COMPLEX INSTRUCTIONS SET COMPUTER)

    Diminuir a complexidade em software

    Nos anos 70 os compiladores eram pobres e a memria era lenta e cara, sendo muito

    importante a otimizao de cdigo, que era escrito em linguagem de montagem (Assembly).

    Linguagem de alto nvel => cdigo intermedirio maior

    Problema: pouca memria

    Soluo: implementar em hardware

    Diminuir complexidade do cdigo em LM

    Instrues menores

    Ex:

    MUL

    MOV Reg1, Mem1

    MOV Reg2, Mem2

    MUL Reg1, Reg2

    MOV Reg2, Mem1

    Uma instruo em CISC tem maior CPI

    Execuo direta:o processador recebe uma instruo decodificada e ativa um modulo de

    controle que executa a instruo.

    [J15] Comentrio: Em CISC: MUL Mem2, Mem1

  • Micro-Cdigo: no processador existe uma unidade de controle genrica que executa uma

    pequena rotina de micro instrues dependendo da instruo requisitada

    Uso de uma memria (ROM) para armazenar micro-cdigo

    RISC (REDUCED INSTRUCTIONS SET COMPUTER)

    Otimizar recursos e tempo

    Memrias e compiladores melhores

    Refinamento do CISC somente instrues mais usadas

    Instrues menores => menor CPI, em um ciclo a instruo executada

    Eliminao do acesso a memria => LOAD e STORE

    Operaes baseadas em Reg-Reg (+/- 500 registradores)

    Conjuntos de instrues reduzidos e fortes usam de compiladores

    Como na arquitetura RISC tudo era feito por registradores, uma abordagem de gerenciamento

    foi necessria para manipular esses registradores, principalmente para garantir escopo de

    varivel.

    Hardware: uso de janela de registradores. Os registradores so organizados em conjuntos e

    cada conjunto endereado de forma nica.

    Regs Parmetro

    Regs Locais

    Regs Temp

  • Regs Parmetro

    Regs Locais

    Regs Temp

    Buffer circular de janelas

    Compilador: tenta otimizar uso de registradores

    Colorao de grafos: ns adjacentes devem ter cores diferentes

  • (25/09/13)

    SUPERESCALARES

    Um processador superescalar aquele em que mltiplos e independentes pipelines de

    instruo so utilizados, cada pipeline deve possuir a mesma quantidade de estgios.

    Superpipeline

    Se aplica sobre estgios de pipeline simples, defende que certos estgios que levam menos de

    um ciclo de clock sejam executados mais rpido.

    Imstrues independentes: executadas em paralelo

    Exemplo de pipeline de 4 estgios

  • Problemas do super pipeline

    Dependncia verdadeira

    o Add eax, ecx

    o Add ebx, ecx

    Dependncia procedural (desvio)

    EMISSO DE Instruo

  • Para otimizar a abordagem de superescalar o processador deve ser capaz de decidir a ordem

    em que as instrues so decodificadas e escritas, ou seja, a ordem em que as mesmas so

    emitidas e finalizadas.

    3 abordagens utilizadas:

    Emisso em ordem com concluso em ordem

    Emisso em ordem com concluso fora de ordem

    Emisso fora de ordem com concluso fora de ordem

    1. Emisso em ordem com concluso em ordem

    Executa cada instruo na ordem original

    2. Emisso em ordem com concluso fora de ordem

    Instruo so escritas quando terminaram

    3. Emisso fora de ordem com concluso fora de ordem

  • (09/10/13)

    Paralelismo em nvel de instruo: existe quando as instrues so independentes e podem ser

    executadas em paralelo

    Paralelismo a nvel de mquina: quantidade de instrues que podem ser buscadas e lidas ao

    mesmo tempo

    O superescalar explora tanto paralelismo a nvel de instruo quanto de mquina, alm de

    organizar o cdigo para um maior desempenho. Essa organizao pode gerar alguns problemas

    Dependncia de dados: antes de uma escrita ser finalizada uma leitura ocorre

    EAX = EBX + 2

    ECX = EAX + 5

    Dependncia de sada: escrita aps escrita

    EAX = EAX + EBX

    EAX = ECX + 1

    Antidependncia: uma leitura no termina e ocorre uma escrita

    ECX = EAX + 2

    EAX = EBX + 2

    Para otimizar a execuo de instrues o pipeline pode adotar uma politica de emisso e

    concluso de instruo (organizar a ordem de decodificao e escrita)

    Problema: como a ordem de execuo inicial modificada para melhorar o desempenho certas

    dependncias podem ocorrer durante a execuo do pipeline.

    Soluo:

    Renomear registradores

    Parar pipeline

    Renomear registradores: a cada nova escrita, um novo registrador alocado

  • R3b
  • (16/10/13)

    UNIDADE DE CONTROLE

    Estrutura da UC

    Para elaborar uma unidade de controle bsica alguns elementos devem ser explorados, em

    especial 3 elementos.

    1. Definir elementos bsicos do processador

  • Representao numrica (complemento de 2)

    Tamanho da palavra de informao

    Registradores

    Tamanho da memria

    2. Conjunto de micro operandos que devem ser executados

    Transferncia de dados entre Reg/Reg ou Reg/Mem ou Mem/Reg

    Controle de barramento

    E/S

    Operaes logicas e aritmticas

    3. Funcionalidades

    Sequenciamento (busca de instruo)

    Execuo

    Sinais de controle

    Para que uma UC desempenhe sua funo ela precisa ter entradas que lhe permitam

    determinar o estado do sistema e sadas que lhe permitam controlar o comportamento do

    sistema.

    Caminhos de dados

    ULA

    Barramento do sistema

    Implementao de uma UC

    Implementao por hardware: circuitos que definem o prximo estado do sistema

    Implementao micro programada: micro programa escrito em hardware e

    executado por uma UC (firmware)

    Implementao por hardware

    Circuito combinacional que define os sinais de controle

  • Unidade de controle micro programada

    Pode ser programada por uma sequencia de bits

    Usada quando o controle em hardware muito complexa

    Usado em CISC

    Micro instruo: palavra em ROM que contm micro operaes

    Micro operao: sinal digital

    Memria de controle

    Micro programa

    Sequenciador

  • (23/10/13)

    INUPROCESSADORES

    Durante muito tempo confiou-se na diminuio dos transistores como meio de projetar

    processadores mais rpidos

    Aumento da velocidade de clock

    Utilizao maante de micro componentes

    Maior densidade de chip

    Maior consumo e dissipao de calor

  • Paralelismo a nvel de instruo

    Paralelo

    Surgimento do multiprocessamento: sistemas com mais de um elemento de processamento

    que permite a execuo de vrios processos ou tarefas ao mesmo tempo.

    Balanceamento de cargas

    Diminui a dissipao de calor

    Menor consumo de energia

    Ligado a execuo de tarefas paralelas logo um programa deve ser paralelo

    Multiprocessamento

    Os processadores em geral podem ser classificados em quatro categorias conforme Flynn:

    1. SISD: nico fluxo de dados e nico fluxo de instruo

    2. SIMD: nica instruo, mltiplos dados

    3. MISD: mltiplas instrues, nico dado

  • ORGANIZAO DE MULTIPLOS PROCESSADORES

    SMP: utilizam a memria e o barramento de forma compartilhada, porem como o barramento

    compartilhado o tempo de acesso a memria igual para todos os processadores.

    NUMA: composto por uma serie de mdulos (ns), onde cada n contm um ou mais

    processadores com uma memria local. Cada n lidado por uma interconexo.

  • Clusters: grupos de computadores completos interconectados por meio de uma rede. Criam a

    iluso de um nico computador