SlideShare uma empresa Scribd logo
1 de 153
Baixar para ler offline
Sistemas Microprocessados – ENGC50




     Prof. Augusto Loureiro da Costa
       Departamento de Engenharia Elétrica
                Escola Poltécnica
          Universidade Federal da Bahia
         Augusto.loureiro@ufba.br



                                             1
Programa do Curso

    Introdução
    Desempenho de Sistemas de Computação:
    aspectos
    Arquitetura de Conjunto de Instruções
    Estrutura do processador: fluxo de dados e
    controle
    Sistemas de Entrada/Saída e comunicação
    Sistemas de Memória.



                                                 2
Slides - referências
ftp://ftp.nuperc.unifacs.br/professor/celso/publico/html/Modu
lo1/
University College of London, J. Crowcroft, S. Wilbur,
www.cs.ucl.ac.uk/teaching/1B10 ©UCL
University of California, Berkeley, David Patterson’s lecture
slides ©UCB, DAP’ 97
www.cs.berkeley.edu/~pattrsn/152F97/index_lectures.html
Morgan Kaufmann Publishers, Tod Amon
www.mkp.com/books_catalog/cod2/ph2_res.htm#slides
Copyright 1998 Morgan Kaufmann Publishers
Central Queensland University, A Silberschatz, P. Galvin,
www.infocom.cqu.edu.au/Units/win99/85349/Resources/Lect
ures ©CQU
                                                           3
INTRODUÇÃO




             4
O que é a Arquitetura de um Computador?


   Arquitetura de Computadores =


         Conjunto de Instruções
     (ISA - Instruction Set Architecture)
                      +
        Organização da Máquina


                                            5
Conjunto de Instruções da Arquitetura (ISA)



                                             ... os atributos de um
                                             sistema [de computação]
                                             vistos pelo programador,
                                             i.e. a estrutura
                                             conceptual e o
                                             comportamento
-- Organização da Memória                    funcional, são distintos
                                             da organização dos
-- Tipos de dados e estruturas de dados:     fluxos de dados e dos
         Codificações e representações       controles da lógica e da
-- Conjunto de Instruções
                                             implementação física.
                                             [Amdahl, Blaaw and
-- Formato das Instruções                    Brooks, 1964]
-- Modos de Endereçamento e Acesso de Dados e Instruções

-- Condições de Exceção
                                                                 6
Conjunto de Instruções:
            Uma Interface Crítica


software



               Conjunto de instruções



hardware




                                        7
Conjunto de Instruções


O conjunto de instruções especifica o mais baixo
nível das funcionalidades de uma máquina.

O conjunto de instruções é como o “vocabulário”
do computador; as instruções seriam suas
“palavras”.

É possível se fazer um mapeamento quase de
1-para-1 entre as instruções de máquina
(binárias) e representações simbólicas
(mnemônicos) em linguagens de montagem (ou
assembly)

                                                   8
Exemplos de Conjunto
      de Instruções da Arquitetura




Digital Alpha   (v1, v3)                   1992-97
HP PA-RISC      (v1.1, v2.0)               1986-96
Sun Sparc       (v8, v9)                   1987-95
SGI MIPS        (MIPS I, II, III, IV, V)   1986-96
Intel           (8086,80286,80386,         1978-00
                80486,Pentium, MMX, ...)




                                                     9
MIPS R3000 Instruction Set Architecture
                                                 Registradores


                                                R0 - R31
        Tipo de Instrução
          Load/Store
          Computational
          Jump and Branch                    PC
          Floating Point (coprocessor)       HI
          Memory Management                  LO
          Special
   3 Formatos de Instrução: TODOS com 32 bits de comprimento
         OP        rs        rt        rd       sa      funct

         OP        rs         rt         immediate

         OP                    jump target

           Q: Quem já ouviu falar desta arquitetura?             10
Organização da Máquina


Capacidades & Características de Desempenho das
Principais Unidades Funcionais (Fus)
    (ex., Registradores, ULA, Shifters, Unidades Lógicas,
    ...)
Forma de interconexão dos componentes
Fluxo de informação entre componentes
Lógica e forma pela qual o fluxo de informações é
controlado
Implementação do ISA sobre as Unidades Funcionais
Descrição do Nível de Transferência dos Registros



                                                       11
Exemplo de Organização
TI SuperSPARCtm TMS390Z50 da Sun
 SPARCstation20
                              MBus Module
   SuperSPARC

   Floating-point Unit
                                L2     CC                    DRAM
  Integer Unit                  $               MBus         Controller



 Inst     Ref        Data     L64852 MBus control
                                           M-S Adapter       STDIO
 Cache    MMU        Cache
                                SBus                            serial
                     Store                        SCSI          kbd
                                     SBus                       mouse
                     Buffer          DMA          Ethernet      audio
                                                                RTC
     Bus Interface                   SBus                       Boot PROM
                                     Cards                      Floppy

                                                                     12
O que é Arquitetura de Computadores?


Coordenação de níveis de abstração
        Application

                   Operating
          Compiler   System
                                     ISA - Instruction Set
                                      Architecture
       Instr. Set Proc. I/O system
            Digital Design
          Circuit Design


   Sujeita a um conjunto de influências em constante e rápidas
   alterações.
                                                             13
Desempenho crescente. . .


Computadores têm se tornado
incrivelmente mais poderosos desde
que foram inventados nas décadas de
30-40.
• Um palm-top hoje é tipicamente mais
  potente que ...

• ... uma máquina IBM que ocupava uma
  sala na geração anterior.

                                        14
Influências nas Arquiteturas...


  Tecnologia                                         Linguagens de
                                                     Programação

Aplicações
                          Arquitetura de
                          Computadores

                                                         História
    Sistemas
    Operacionais                                          (A = F / M)



    Levando em conta que... O ENIAC tem 18000 válvulas e pesa 30
 toneladas, no futuro os computadores deverão ter 1000 válvulas e
 pesar 1,5 toneladas
         Revista Popular Mechanics, março de 1949.
                                                                        15
Tecnologia: memória

capacidade do chip DRAM
                          Em ~1985 o processador “single-
                          chip” (32-bit) e o computador
           DRAM           “single-board” apareceram
    Year     Size
                          ⇒ workstations, personal
    1980     64 Kb
                              computers, multiprocessors
    1983     256 Kb
                              surgiram nessa era
    1986     1 Mb
    1989     4 Mb
                          Em 2002 + δt, este caminho nos
    1992     16 Mb
                          leva a crer que teremos mainframes
    1996     64 Mb
                          comparados a computadores
    1999     256 Mb
                          “single-chip” (talvez 2 ou + chips)
    2002     1 Gb
    2009     ? Gb
                                                            16
Densidade de Lógica dos Microprocessadores
100000000
                              Tecnologia: densidade
       10000000
                                                                                                        R10000

                                                                                              Pentium
Número de Transistors




                                                                                              R4400

                                                                                     i80486
                        1000000


                                                                          i80386

                                                               i80286
                         100000
                                                                                   R3010



                                                                        SU MIPS
                                                    i8086                                                        i80x86
                                                                                                                 M68K
                          10000                                                                                  MIPS
                                                                                                                 Alpha

                                     i4004


                           1000                                                                                            17
                                  1970       1975       1980            1985          1990       1995               2000        2005
Projeções de Desempenho
                    1000

                                             Supercomputers
Log do desempenho




                     100
                                                                      Mainframes


                      10
                                                                 Minicomputers

                                                          Microprocessors
                       1


                     0.1
                       1965   1970   1975   1980   1985       1990   1995        2000

                                                                                   18
Desempenho: CPU e Redes (Patterson)

Desempenho
  Relativo

                                                            CPU
                                                            (spec)

     1000
                                                            LAN
                                    DEC         1 Gb ATM
     100                            Alpha

                            MIPS
      10                    M/120
                                      100 Mb FDDI
             10 Mb
      1
                                                            Ano
           1980      1985           1990     1995    2000
                                                                     19
Tecnologia: mudanças drásticas

Processador
   capacidade lógica: ~ 30% por ano
   taxa de clock:     ~ 20% por ano
Memória
   Capacidade DRAM: ~ 60% por ano (4x em 3
   anos)
   Velocidade: ~ 10% por ano
   Custo por bit: ganho de 25% por ano
Discos
   Capacidade: ~ 60% por ano



                                             20
Desempenho dos Processadores
                          Desempenho aumenta ~ 50% por ano (2x a cada 1.5 ano)
             350

             300

                                                                                                                        RISC
             250
Desempenho




             200
                                                       Introdução do
             150                                       RISC                                                      Intel x86

             100

              50                                                                                                 35%/yr


               0
                                                1986




                                                              1988

                                                                       1989

                                                                              1990




                                                                                                                 1995
                                                       1987




                                                                                     1991

                                                                                            1992
                   1982




                                         1985




                                                                                                   1993

                                                                                                          1994
                           1983

                                  1984




                                                                     Ano
              Quais as possibilidades do RISC em relação às outras?                                                      21
Linguagens e Aplicações
 CAD, CAM, CAE, . . .
 MAC, Unix, DOS, . . .
 Multimídia, . . .
 World Wide Web, . . .
 JAVA, . . .
 ???

 Tecnologia criando necessidades versus
 necessidades demandando novas tecnologias




                                             22
Assim ...
          Design      Arquitetura é um processo iterativo
                        -- Busca de espaço para possíveis projetos
                        -- Observar todos os níveis de sistemas de
     Análise               computação


Criatividade
               Custo/
               Análise de
               Desempenho



                                        Boas Idéias
                             Idéias Medíocres
          Idéias Ruins                                           23
Visão geral de Arquitetura de Computadores



    Arquitetura de Computadores e Engenharia


 Conjunto de Instruções        Organização do Computador
 Interfaces                    Componentes de Hardware
 Visão Compilador/Sistema       Visão do Projeto Lógico
 “Arquitetura da Construção”   “Engenharia de Construção”




                                                            24
Arquitetura Básica dos Computadores Atuais



         CPU: ALU             interrupts
         (datapath)
          + control

          Cache
                            main bus


           Main         I/O            I/O          I/O
          Memory      Controller     Controller   Controller

                                       Graphics   Keyboard
                                       display



                                                             25
Como se fazer entender pelo computador?


 “Linguagem” do computador : 100011000001 (bits)
     Números binários: base da teoria computacional
 1. Primórdios: uso da linguagem nativa em binário!!!
 2. Linguagem de Montagem (Assembly)
        Montador: traduz uma versão simbólica das instruções
        para sua representação binária na arquitetura
        add A, B → montador → 100011000001
 3. Linguagem de Programação de alto-nível
        Compilador: traduz instruções de alto-nível para
        instruções binárias diretamente ou via um montador
        A + B → compilador → add A, B → montador
        →100011000001 ou
        A + B → compilador → 100011000001

                                                          26
Mas é só isso?

Existe ainda um programa que gerencia os recursos
da máquina durante a execução dos programas: o
SISTEMA OPERACIONAL (SO)
Operações de Entrada/Saída (E/S), “carga” do
programa na memória, exceções, etc.
O SO funciona como um gerente dos recursos,
escondendo o acesso direto ao hardware dos usuários
Mais ainda: multiprocessamento, gerência de
arquivos, processamento distribuído, ...
Assim, existem diversas camadas e serviços
disponíveis para auxiliar nossa comunicação com a
máquina.


                                                  27
Uma questão?

                               15o. bit          6o. bit




                         214              25 ... 20
O que é isto?
00000000001000100100000000100000
 • Pode ser lido como:
    25 + 214 + 217 + 221
    = 32 + 16384 + 131072 + 2097152
    = 2244640
                                                           28
Diálogo com o computador...


• O que é isto?
00000000000000010000001000001000000000000100000
00000000000000110000010000001001000000000100000
000000000000100000001001000001010000000 00100010


   Melhor assim?
00000000 00000001 00000010 00001000 0000000
   00100000
00000000 00000011 00000100 00001001 0000000
   00100000
00000000 00001000 00001001 00000101 0000000
   00100010                                        29
Traduzindo...


   E assim?
    0    1    2     8   0   32
    0    3    4     9   0   32
    0    8    9     5   0   34
• Melhorando...
   add $8,   $1,   $2
   add $9,   $3,   $4
   sub $5,   $8,   $9

                                 30
Traduzindo mais um pouco...


         Melhorando ainda mais...
         $8 = $1 + $2
         $9 = $3 + $4
         $5 = $8 - $9

    •   Claro agora?
         u=a+b
         v = c + d;
         x=u-v


•   Sim, é claro: x = (a+b) - (c+d)

                                      31
Níveis de Representação
        Programa em
    Linguagem de Alto-Nível

Compilador                                                x = (a+b)
                            Compilador                  x = x – (c+d)
  Programa em Linguagem
         de Montagem                        lw    $15,                0($2)
Montador ou                                 lw    $16,                4($2)
Assembler                                   sw    $16,                0($2)
                                            sw    $15,                4($2)
        Programa em
    Linguagem de Máquina           0000   1001   1100   0110   1010   1111   0101   1000
                                   1010   1111   0101   1000   0000   1001   1100   0110
                                   1100   0110   1010   1111   0101   1000   0000   1001
 Interpretação da Máquina          0101   1000   0000   1001   1100   0110   1010   1111


        Especificação do
      controle de sinais
                                           ALUOP[0:3] <= InstReg[9:11] & MASK
               °
               °                                                                    32
Níveis de Organização

    SPARCstation 20




                             Computador
Objetivo do Projeto:         Processador   Memória   Dispositivos
25% do custo - Processador
25% do custo - Memória
(configuração mínima)         Controle                Entrada
Resto – dispositivos I/O,
energia, gabinete, etc.
                              Datapath                 Saída




                                                                33
Executando um Programa:
               Ciclo de Execução
Instruction
                 Obtém uma instrução do programa armazenado
   Fetch

Instruction
  Decode         Determine as ações e o tamanho da instruções


 Operand
                 Localiza e obtém os dados (operandos)
  Fetch

 Execute         Calcula um valor do resultado ou status

  Result
  Store          Armazena resultados na memória para uso futuro


   Next
Instruction      Determina a próxima instrução
                                                            34
Instruções Básicas de Programas


  Conjunto de instruções = linguagem de máquina
  Instrução: opcode [operandos]
  Tipos de instrução:
     Instruções aritméticas e lógicas (add, sub, AND, OR)
     Referência à memória ou Load&store
     Desvios Condicionais: if + goto / if-then-else
     Desvios incondicionais ou saltos (jumps)

  Formas de endereçamento: complexidade da arquite-
  tura → em RISC poucas formas de endereçamento direto
  a operandos; instruções de mesmo tamanho


                                                        35
Registradores



Registradores armazenam palavras simples na CPU, em
locais próximos à ULA.
     A ULA tem acesso extremamente rápido aos
    registradores
Em arquiteturas RISC modernas
    Todas as instruções são executadas sobre dados
    armazenados em registradores
    Instruções do tipo carregar/armazenar (load/store)
    ↔ registradores
 MIPS:32 registradores indicados: $0...$31



                                                    36
Avaliando o desempenho
          de arquiteturas

    Métricas de projeto:
    -  Pode ser implementado em quanto tempo e com qual
       custo?
    - Pode ser programado? Fácil para compilar?
                                                         CPI
    Métricas estáticas:
    - Quantos bytes o programa ocupa na memória?
    Métricas dinâmicas:                        Inst. Count Cycle Time
    - Quantas instruções são executadas?
    - Quantos bytes o processador deve buscar para
       executar o programa?
    - Quantos clocks são requeridos por instrução (CPI)?
    - Qual valor de clock ideal?
    Melhor métrica: Tempo para executar o programa!
                                                                         37
NOTA: isto depende do conjunto de instruções, da organização do processador e das
técnicas de compilação
Aspectos do Desempenho da CPU


 CPU time
 CPU time   = Seconds
             = Seconds       = Instructions x Cycles
                              = Instructions x Cycles     x Seconds
                                                           x Seconds
              Program
               Program          Program
                                 Program      Instruction
                                               Instruction   Cycle
                                                             Cycle


                instr count       CPI         clock rate
 Programa                X
 Compilador              X           X
 Conj. Instr.            X           X
 Organização                         X             X
 Tecnologia                                        X


                                                                   38
Lei de Amdahl

Ganho de velocidade (speed-up) devido ao
  ganho E:
speedup(E) =       TExec sem E      =   Desempenho
   com E
                 TExec com E            Desempenho
   sem E
Suponha que a melhoria E acelere a parte S e o
restante do programa não é afetada pela melhoria:

TExec(com E) = ((1-F) + F/S) × TExec(sem E)

speedup(com E) =        1      1
                   (1-F) + F/S
                                                     39
Desempenho x Tecnologia

Poder da Tecnologia: 1.2 x 1.2 x 1.2 = 1.7 x / ano
   Tamanho: miniaturização ganha 10%/ ano →
   velocidade de chaveamento ganha 1.2 / ano.
   Densidade: aumenta 1.2x / ano.
   Área da pastilha (die): 1.2x / ano.

A lição da abordagem RISC é deixar o conjunto de
instruções (ISA) o mais simples possível:
    Ciclo de projeto curto → explora de maneira
    otimizada a tecnologia (~3 anos)
    Técnicas de pipeline e previsão de desvios
    (branches)
    Caches on-chip maiores e mais sofisticados
                                                     40
PROCESSADOR
     E
  MEMÓRIA


              41
Onde estamos agora?


Cinco componentes do computador
            Computer
           Processor     Memory       Devices

            Control                   Input


            Datapath                  Output



Projetando uma CPU monociclo


                      Projeto da
                      máquina
                                                  Aritmética

Conjunto de Instruções            tecnologia (parte 1 e 2)
(parte 2)                                                      42
Filosofia RISC [Tanembaum]...



1. Regra de base: Simplificar a via de dados – registradores, ULA
   e barramentos de interconexão;

2. Minimizar tempo de ciclo da via de dados:
   • Faça o comum executar mais rápido
   • A simplicidade favorece a regularidade

3. “A perfeição é atingida, não quando não existe nada mais a
   acrescentar, mas quando não existe nada mais a jogar fora!”
   [St. Exupéry]



                                                             43
Implementação do conjunto de instruções


    INSTRUÇÂO       opcode     operando 1   operando 2

     Para executar qualquer instrução:
     1. Enviar o valor do PC para a memória que contém o
         código (opcode) e trazer para a via de dados a
         instrução armazenada nessa memória
     2. Ler registradores (1 ou mais), usando os campos da
         instrução para selecioná-los (operandos)
     As ações do hardware para completar a execução da
     instrução variam, mas em geral, usam a ULA (simpli-
     cidade e regularidade)



                                                         44
Visão geral da implementação MIPS


                    Ideal                              Control
                 Instruction                       Control Signals   Conditions
                                     Instruction
                  Memory
                                Rd Rs        Rt
                                 5  5         5
      Instruction
         Address
                                                   A                       Data
                                                                     32                          Data
  Next Address




                                     Rw Ra Rb                             Address
                           32                      32                                    Ideal   Out




                                                               ALU
                                      32 32-bit
                   PC




                                                                                         Data
                                      Registers                           Data          Memory
                                                   B
                                                                          In
                               Clk                                                Clk
                                                         32
                 Clk




                                                       Datapath
                                                                                                 45
Controle e Via de Dados


    Controle: define os sinais para acionar o hardware
    (unidades funcionais) para cada instrução decodificada
    Via de dados: movimentação de dados mem-reg, reg-
    reg, reg-ULA (barramentos + unidades)
    CPU “monociclo”: instrução quebrada em passos
    correspondentes às unidades funcionais envolvidas




                                               somador
                                           4
                         Endereço de
                         leitura
                    PC
                               Instrução

Ex: Busca da
próxima instrução        Memória de
                         instruções
                                                             46
Implementação “multiciclo”


 Cada passo de execução da instrução = 1 ciclo de clock
 Compartilhamento das unidades funcionais dentro do
 espaço de tempo correspondente a uma instrução
  Assume-se que o ciclo de clock possa acomodar
 operações de acesso à memória, uma operação da ULA e
 acesso (leitura-escrita) aos registradores
 A via de dados possui registradores “adicionais” para
 armazenar valores usados nas próximas instruções
 (registrador de instrução e registrador de dados da
 memória, saída da ULA, operandos lidos dos reg’s, ...)
 Ex: Busca da instrução X (PC) → PC = PC +4 → ...
    PC pode ser incrementado antes do fim da instrução
    X
                                                     47
Controle numa CPU multiciclo (1)

  Complexidade aumenta:
     Monociclo: tabelas-verdade (combinacional)
     Multiciclo: próximo estado depende do atual e dos
     sinais de entrada (seqüencial)
  Duas soluções:
  1. Máquina de estados – seqüência de estados e regras
     de transição
  2. Multiprogramação – representação para o controle
     semelhante a um programa
  Quanto mais simples o conjunto de instruções, mais
  simples e ágil o controle: INTEL 80x86 precisa de
  milhares de estados (modos de endereçamento, mais
  opcodes); MIPS 100 instruções
                                                      48
Controles baseados em Máquinas de
Estado
         Lógica de Controle
         Combinacional                 Saídas de controle do
                                       caminho de dados




                              Saídas
               Entradas

                                          Próximo
                                          estado
                      Registrador
                      de estado

   Entradas vindas
   do opcode
   do registrador
   de instruções


                                                               49
Controle por Microprogramação


  Máquinas de estados não são adequadas para controle
  de conjunto de instruções complexos! A única saída é a
  microprogramação
  Microprograma: conjunto de microinstruções que
  definem o conjunto de sinais de controle da via de dados
  a serem ativados em determinado estado
      Representação simbólica do controle, que deve ser
      traduzida em termos de sinais para o hardware
      Em geral, o microprograma está numa ROM ou PLA
  Ainda fazem parte do controle da CPU: tratamento de
  interrupções e de exceções que determinam mudança no
  fluxo normal de execução (overflow, operação de E/S)


                                                        50
CPU’s de arquiteturas conhecidas


  Kernel: via de dados e controle
  Outras técnicas para aumentar o desempenho: pipeline
     1985: MIPS R2000 com pipeline
     Até 80386 sem pipeline
     80486, Pentium, Pentium PRO têm pipeline, mas o
     controle continua extremamente complexo para
     suporte das instruções da linha 80x86
  Pentium e Pentium PRO usam pipeline superescalar:
  mais de uma instrução por clock replicando os recursos
  da via de dados
         Pentium suporta até 2 instruções e o POR, até 4
  Pentium PRO usa conceitos RISC

                                                           51
Aumentando o desempenho: Pipeline


   Técnica de implementação de processadores que permite
   a superposição temporal de diversas fases de execução
   de instruções
   Cada passo de execução da instrução deve ser
   executada em 1 ciclo de clock:
       Tecnologia limita o tempo de clock e o tempo de cada
       passo do pipeline
   A idéia de base é aumento a “vazão” e não redução do
   tempo de execução por instrução:
       Analogia: Produção de uma linha de montagem de
       automóveis = 1 automóvel por minuto!



                                                         52
Implementação um pipeline


  Busca
             Ordem de
Instrução    execução

Decodifica
instrução
                   1      2   3   4   5
 Executa                  1   2   3   4   5
Operação                      1   2   3   4   5
                                  1   2   3   4   5
Acessa                                1   2   3   4   5
Memória                                   1   2   3   4   5

 Escreve
                                                               tempo
resultado       1 clock




                                                              53
Vantagens do RISC


  Instruções têm o mesmo tamanho: busca e
  decodificação simples e com tempo reduzido
  Instruções simétricas e com uso dos
  registradores facilita a seqüência das
  operações do pipeline
  O uso de apenas instruções load & store para
  referên- cias à memória permite o uso do
  estágio de execução para cálculo de memória,
  para depois, no seguinte, acessar a memória

                                             54
Problemas a vista: conflitos do pipeline


    Conflitos estruturais: com uma memória única para
    dados e instruções, existe um conflito entre o ciclo de
    busca de instrução e escrita em memória; a solução é
    usar duas memórias independentes (design)
    Conflitos de controle: obrigam a parada do pipeline
       Instruções de desvio
       Paradas geram bolhas no pipeline
      Ordem de
      execução



           add $4,$5,$6    busca    di      ULA    mem     w reg
           beq $1,$2,40            busca     di    ULA     mem     w reg
                                           bolha   bolha   bolha   bolha   bolha

           lw $3,300($0)                           busca    di     ULA     mem     w reg

                                                                                     tempo
                                                                                             55
Outros conflitos

Conflitos por dados: a próxima instrução utiliza um
operando da instrução anterior que ainda não está
pronto:
   add $s0, $t0, $t1
   sub $t2, $s0, $t1
  Ordem de
  execução



       add$s0,$t0,$t1    busca    di     ULA   mem   w reg
                                 busca   di
       sub $t2,$s0,$t3
                                               di    ULA     mem   w reg



                                                                           tempo




                                                                                   56
Soluções clássicas para conflitos


   Reordenação do código (compilador): mudar a ordem de
   execução sem que o resultado da execução global seja
   alterado pode evitar as bolhas
   Incluir instruções do tipo NOP
   Adiantamento de instruções
   Pré-suposição da realização do desvio condicional (if)
   Predição dinâmica em loops e desvios baseado em dados
   armazenados (história)

   E em pipelines superescalares? Mais complexidade...




                                                         57
Próximo passo...



             Hierarquia de
             Memória: reduzindo
             o tempo de acesso
             aos dados




                                  58
Os componentes clássicos de um
computador
           Computer

          Processor   Memory     Devices


           Control                Input


           Datapath               Output




  O processador deve buscar cada dado e instrução na
  memória durante a execução de um programa: o
  tempo de acesso é fundamental para o desempenho!
                                                       59
Desafios para a memória...
         Desempenho da CPU aumenta 25-50% p.a.
         Desempenho das memórias, cerca de 7% p.a.

          Capacidade     Velocidade
Lógica: 2x em 3 anos    2x em 3 anos
DRAM: 4x em 3 anos 1.4x em 10 anos                DRAM
Disco:   2x em 3 anos 1.4x em 10 anos   ano     Tam Tempo de Ciclo
                                        1980   64 Kb   250 ns
                                        1983   256 Kb  220 ns
                                        1986    1 Mb   190 ns
                                        1989    4 Mb   165 ns
                                        1992   16 Mb   145 ns
                                        1995   64 Mb   120 ns
                                                             60
Reflexões Sobre Arquiteturas de Memórias


   A velocidade de memória aumenta muito menos
   rapidamente que a dos processadores (Lei de Moore)
   Para máquinas + rápidas, é necessário projetar um
   sistema de memória de forma a não desperdiçar os
   ganhos adquiridos com o processador
   Solução: hierarquia de memória e caches
   É desejável que o usuário “acredite” que ele tem um
   espaço de memória enorme, mesmo se a quantidade de
   memória é sabidamente limitada
   O SO precisa suprir o mesmo espaço de memória para
   vários usuários sem que haja conflito
   Solução: Memória Virtual

                                                     61
Melhorando o desempenho: Princípio da
localidade
  Localidade Temporal
     Uma palavra de memória que acaba de ser
     referenciada, tende a ser novamente referenciada
  Localidade Espacial
     Itens cujos endereços estão próximos daqueles que
     acabam de ser referenciados tendem a ser
     referenciados também brevemente
  Conclusão: usar mecanismos que permitam armazenar
  temporariamente o material com que se trabalha
  Observar a estrutura dos programas:
     Programas acessam somente uma pequena porção
     de memória num curto espaço de tempo
         variáveis – temporal, laços - temporal e espacial,
         percurso de arrays - espacial                     62
Idéia de hierarquia para a memória
Dividir o espaço de memória em níveis com tamanhos,
velocidades e custos diferentes por nível

O princípio da localidade pode ser aplicado diretamente à
hierarquia de memória: quanto mais rápida a memória, mais
próxima ao processador

       Processador    Velocidade Tam       Custd: $/bit      Exemplo

                       + rápida   menor       + alto        64k SRAM
         Memória
         Nível 1

         Memória
         Nível 2                                            64M DRAM

         Memória
         Nível 3
                        + lenta    maior     + baixo      6.4 G Mag. Disk
         capacidade
                                                                       63
Hierarquia de Memória atualmente
                        Fonte: Slides Patterson

 Capacidade                                         Estágio        Nível + Alto
 Tempo de Acesso                                    Unidade           + rápido
 Registradores CPU
 ~100 Bytes           Registradores
 ~10 ns                                           prog./compil.
                              Operandos Inst.     1-8 bytes
 Cache
 K Bytes                 Cache
 10-100 ns
                                                  contr. cache
                              Blocos              8-128 bytes
  Memória Principal
  M Bytes              Memória
  100ns-1us
                                                   SO
                              Páginas              512-4K bytes
  Disco
  G Bytes                Disco
  ms-3 -4
                                                   user/operador
                              Arquivos             Mbytes
  Tape                                                                  Maior
  infinito
  sec-min
                         Tape
                                                                   Nível + baixo
                                                                            64
Funcionamento a hierarquia (1)


 Pode conter diversos níveis, mas a gerência é feita entre
 níveis adjacentes
 Unidades de mapeamento entre níveis: blocos
 Se a informação solicitada pelo processador estiver
 presente no nível superior da hierarquia, ocorre um
 “acerto” (hit)
 Se a informação não puder ser encontrada nesse nível,
 ocorre uma “falha” (miss) e um nível mais baixo é
 acessado para que o bloco desejado seja recuperado
 A medida de desempenho da hierarquia é relacionada à
 taxa de acertos dos acessos: fração dos acessos à me-
 mória encontrados no nível superior
 Outra medida: taxa de falhas = 1 – taxa de acertos
                                                        65
Funcionamento a hierarquia (2)

Desempenho = tempo de acesso à memória
   1. Tempo de acerto (ta): tempo para acessar o nível
       superior da hierarquia (RAM) + tempo necessário
       para se determinar se o acesso é ou não um acerto
   2. Penalidade por falta (tf): tempo para substituir
       um dos blocos do nível superior pelo bloco do nível
       inferior com a informação desejada + tempo para
       enviar o dado ao processador
   ta << tf: tempo de acesso ao nível inferior é muito
   maior
   Hierarquia de memória tem influência direta na gerên-
   cia de memória feita pelo SO, no código gerado pelo
   compilador e até mesmo no tipo de aplicação a ser
   executada na máquina.
                                                             66
Conceitos básicos sobre Memória Cache


    Cache: esconderijo! ☺
    De maneira abrangente: qualquer memória
    gerenciada que tira proveito das propriedades
    de localidade
    Como fazer para guardar os dados e instruções
    recentemente usados numa cache:
       Como saber se um item de dado está ou
       não na cache?
       Se estiver, como achá-lo?


                                               67
Conceitos básicos sobre Memória Cache


    Caches com mapeamento direto mapeiam cada
    endereço de memória numa locação específica
    da cache
       Várias locações de memória têm a mesma
       locação na cache
       Usa um mecanismo modulo N (N é potência
       de 2)
       Precisa de uma tag indicando o endereço
       atualmente armazenado
       Precisa de um bit de validade indicando se o
       dado está na cache
                                                 68
Cache com mapeamento direto simples
     Memória            Cache diretamente mapeado
                               Tamanho = 4
0
1                                             0
2                                             1
3                                             2
4                                             3
5
6
7
8
9
10                 •Cache de 4 (22) palavras
11
12
                   •Endereços de memória “mod 4”
13                  mapeiam locações de cache
14                 •Muitos endereços de memória são
15
16
                    mapeados p/ uma mesma locação
17                 •Usa log2N bits de endereços para
18                  a indexaçao da cache
19

                                                    69
Acesso à cache: Rótulo (tag) e
Índice (index)
Considerando endereços de memória de 32-bits :
      Uma cache com mapeamento direto de 2N bytes:
          − Índice (index): Os N bits mais baixos dos endereços de memória
          − Rótulo (tag): Os (32-N) bits mais altos dos endereços de memória
 31 Endereços de Memória                             N                          0
              Cache Tag Ex: 0x50                          Cache Index    Ex: 0x03

                       Armazenados como                 2 N Bytes
  Bit validade         parte do cache “state”   Cache com Mapeamento Direto
                                                           Byte 0     0
                                                           Byte 1     1
                                                           Byte 2     2
                            0x50                           Byte 3     3

      :                      :                                 :
                                                         Byte 2N -1      2 N- 1   70
Alguns comentários…


  Cache com mapeamento direto precisa ser grande
  suficiente , por ex, para que as últimas instruções num
  laço de execução não se sobreponham sobre as
  anteriores (a cache com 4 blocos é apenas exemplo)
  Podem existir 2 caches o numa arquitetura: uma para
  instruções e outra para dados
      Em geral, não é mais eficiente que apenas uma
      cache para um tamanho fixo de cache
      Mas, o dobro de vazão pode ser compensar
  No start-up, a cache está vazia (ou inválida) e tem-se
  uma taxa de falhas elevada inicialmente
  A abordagem trata assim da localidade temporal mas
  não da localidade espacial
                                                            71
Cache com 64KB (DECStation 3100)
     Endereços de Memória
      31 30 29 28 ... ... 19 18 17 16 15 14 13 12 ... ... 7 6 5 4 3 2 1 0


                                      Index              14          Deslocamento
16             V   Tag       Data-32bits




                                              16k
                                              entradas



Tag


                        16                 32
                                                              Data
       Valid       EQ
                             AND           HIT
                                                                                72
Localidade temporal


  A cache mostrada anteriormente apenas explora a
  localidade espacial
  Para tratar com a localidade temporal um bloco de mais
  de uma palavra é transferido para a cache no caso de
  uma falha (miss)
  No exemplo seguinte, a cache tem o mesmo tamanho
  (64KB), mas 4K entradas para blocos de 16 bytes cada:
      Os próximos devem gerar acertos ao invés de
      faltas
      Isso pode provocar um aumento significativo na taxa
      de acertos, mesmo com pequenos tamanhos de
      blocos


                                                        73
Cache com 64KB (DECStation 3100)
  Endereços de Memória
   31 30 29 28 ... ... 19 18 17 16 15 14 13 12 ... ... 7 6 5 4 3 2 1 0

                                                                                Block offset
                                  Index
              V   Tag    Data-0           Data-4            Data-8   Data-12




                                                                                 4k
                                                                                 entries



Tag




      Valid       EQ                               Select
                        AND           HIT                                      Data
                                                                                      74
Resultados de desempenho das duas
caches



   Programa Tam. Bloco TaxaI-miss Taxa D-miss Taxa Comb. miss

      gcc          1        6.1%    2.1%         5.4%
                   4        2.0%    1.7%         1.9%

     spice         1        1.2%    1.3%         1.2%
                   4        0.3%    0.6%         0.4%
  Fonte: Livro P&H p. 329


             Tamanho da cache: 128KB (64KB + 64KB)




                                                                75
Tamanho do Bloco de Cache



   Em geral, um tamanho maior leva a vantagem da
   localidade espacial dos dados, MAS:

       Maior tamanho de bloco significa maior penalidade de
       falhas (miss penalties) – mais tempo para encher um
       bloco
       Se o tamanho do bloco é muito grande em relação ao
       tamanho da cache, a taxa de falhas irá aumentar

TMédio de Acesso = tacerto x (1 – taxa_acerto) + penalidade_falha x
    tfalhas

                                                                 76
Tamanho do Bloco de Cache




Taxa de                Taxa de                           Tempo Médio de
Falhas                 Acerto    Explora a Localidade       Acesso
                                 Espacial
                                                               Aumenta Miss Penalty
                                   Poucos blocos:                 & Miss Rate
                                   compromete a
                                   localidade temporal


          Tam. Bloco              Tam. Bloco                         Tam. Bloco

                                                            Fonte: Patterson slides




                                                                                  77
Acessos em escrita


  Não é tão simples em se tratando de cache

    Deve-se assegurar que o dado foi escrito
    na memória

    Do contrário, memória e cache podem se
    tornar inconsistentes




                                               78
Acessos em escrita


Solução mais simples: write-through
     Memória e cache escritas ao mesmo tempo
     Mas se for necessário uma espera para isso, os
     valores da cache serão perdidos!
        Usar um buffer (FIFO) no caminho de escrita
        para a memória
        Buffers permitem “equalizar” o serviço quando
        a taxa de chegada de requisições é variável
        (algo como cadeiras num banco para os
        clientes esperarem…)

                                                  79
Outras soluções para escrita…


   Escrita somente no retorno: write-back
      Atualização quando o bloco for susbstituído e se
      houver ocorrido alteração
   Escrita somente uma vez : write-once
      Ideal para sistemas multiprocessadores, que
      compartilham um mesmo barramento (mais
      adiante)
      O controlador da cache escreve a atualização na
      memória principal sempre que o bloco for
      atualizado pela primeira vez na cache – ou seja,
      faz um write-through e ainda alerta os demais
      componentes ligados ao barramento que houve a
      alteração
                                                         80
Comparando as três soluções


  write-through : pode acontecer uma grande
  quantidade de escritas desnecessárias na memória…

  write-back : minimiza o problema, mas a memória
  pode ficar temporariamente desatualizada, obrigando
  que outros dispositivos acessem os valores via
  cache…

  write-once : conveniente, mas apenas em sistemas
  com múltiplas CPUs; utilização excessiva do
  barramento pode ser um fator de queda de
  desempenho…

                                                        81
Elementos de Projeto de uma Cache


   Definição do tamanho
   Função de mapeamento de dados
   Memória/cache
   Algoritmos de substituição de dados na
   cache
   Política de escrita na cache




                                            82
Próximo passo...



             Hierarquia de
             Memória: Memória
             Virtual, Paginação,
             Aumento de
             Desempenho



                                   83
Hierarquia Completa de Memória
                                              Fonte: Slides Patterson

Capacidade                                      Estágio        Nível + Alto
Tempo de Acesso                                 Unidade
                                                                     + rápido
Registradores CPU
~100 Bytes           Registradores
1~10 ns                                       prog./compil.
                            Operandos Inst.   1-8 bytes
Cache
K Bytes                 Cache
10-100 ns
                                              contr. cache
                            Blocos            8-128 bytes
 Memória Principal
 M Bytes               Memória
 100ns-1us
                                               SO
                            Páginas            512-4K bytes
 Disco
 G Bytes                 Disco
 ms-3 -4
                                               user/operador
                            Arquivos           Mbytes
 Tape                                                               Maior
 infinito
 sec-min
                         Tape
                                                               Nível + baixo84
Requisitos de um Sistema de Memória


    Dar a ilusão de um vasto espaço de memória
           total memória para todos os jobs simultâneos >
           memória real
           um job pode usar um espaço de endereços >
           memória atual
    Acesso rápido à memória
    Transparência:
       Livrar os programadores da tarefa de otimizar da
       utilização da memória → cache:memória:disco
    Espaço de endereçamento uniforme:
       Não se pode saber onde os programas serão
       carregados nem quais partes dos programas serão
       mudadas e recarregadas durante a execução
       Ideal: os endereços situados entre 0 e 2N-1      85
Endereço virtual x endereço físico


  O programador usa um espaço de endereçamento
  virtual “imenso”, por ex. 231 bytes
      Ele pode escrever programas como se todas essas
      posições de memória existissem realmente!
      O SO e a arquitetura de memória gerenciam o
      mapeamento endereço virtual – físico
      Se o programa é realmente muito grande, deve
      existir uma forma de armazená-lo na memória da
      máquina – seja em memória ou em disco
      (“memória de massa”)
  A memória real é normalmente menor que o espaço
  virtual de endereçamento
      o tanto quanto puder ser suportado…
      endereços físicos ou reais                        86
Memória Virtual (2)



   Mapeamento endereços virtuais – memória real é
   feita em blocos – tipicamente de 1 a 8KB
   Blocos de memória virtual são chamados páginas
   Páginas de memória virtual que estão no disco são
   chamadas de paginadas-fora (paged-out)
   Uma referência feita a uma página que não está na
   memória principal é chamada de falha de página
   (page fault)
   A transformação entre endereços virtuais em
   endereços físicos (memory mapping) é feito através
   de uma tabela de paginação (page table)


                                                        87
Mapeamento de endereços virtuais
          Prog A Virtual   Physical Memory             Prog B Virtual
           Addresses         Addresses                  Addresses
0x0000      Unused                                        Unused
0x1000
0x2000                         Unused
0x3000                                       Memory
                                             address
0x4000                                       space
0x5000
0x6000
0x7000                       No memory

Virtual
Address        :::          Disk Addresses                  :::
Space


0xD000
0xE000
0xF000
                                                                   88
Mapeamento de Memória


   O mapeamento Endereço Virtual x Endereço Físico
   é também chamado de translação de endereço
   No INTEL 80386: espaço de end. lógico de 4GB
   ou 230 bytes – páginas de 4KB – endereços de 12
   bits. Uma tabela de página poderia ocupar
   de memória (entradas de 4 bytes)
   Endereços virtuais são divididos em Número da
   Página Virtual (NPV) e offset da página (12 bits
   nesse caso)
   Mapeamento de memória feito observando-se o
   NPV na tabela de páginas e concatenando com o
   offset da página
   Nas arquiteturas atuais, o tamanho das tabelas de
   página varia (esquema de diretório de tabelas)

                                                       89
Processo de Mapeamento


            Considere um espaço de endereçamento virtual de
4GB
            4 GB e um espaço físico em memória de 1 GB

            31 30 29 28 ..                    ..   15 14 13 12 11 10 9    ..    .. 3 2 1 0
                        Número da Página Virtual                         Deslocamento




                                 Translação



                  29 28 ..                    ..   15 14 13 12 11 10 9    ..    .. 3 2 1 0
                             Número da Página Física                     Deslocamento
      1GB

                                                                                        90
Falhas com Memória Virtual


   Custo de uma falha é muito alto: em torno de ms
   para acessar um bloco de disco
   As páginas devem ser grandes o suficiente para
   amortizar o alto custo de acesso (4 KB, 8 KB, e
   mesmo MB …)
      Mas não tão grandes para evitar a
      fragmentação…
      Tamanho fixado pelo hardware (MMU)




                                                     91
Falhas com Memória Virtual


   Re-estruturação de programas reduz taxa de falhas
   Processar as falhas de página por SW e não por HW
       Algoritmos sofisticados podem ser empregados
       Pequenos aumentos na miss rate podem ser
       recompensadas pela redução de custos do
       algoritmo
   Evitar a política write-through:
       Escritas em níveis mais baixos são muito
       demoradas




                                                       92
Tabelas de Páginas (1)


   As páginas deveriam poder ser localizadas em
   qualquer lugar conveniente na memória
      Qualquer página virtual pode ser mapeada em
      qualquer página física disponível
      Chamado mapeamento totalmente associativo
      Tabela de páginas faz o mapeamento e reside na
      memória
      Cada programa tem sua própria tabela de página
      O hardware tem um registrador de tabela que
      aponta para a tabela de página
   Os diagramas anteriores se tornam então:


                                                       93
Tabelas de Páginas (2)
4GB
            31 30 29 28 ..                    ..   15 14 13 12 11 10 9    ..    .. 3 2 1 0
            Número da Página Virtual                            Deslocamento

                                         20    Endereço Virtual
Registrador da tabela de página
                                                                               12
             Validade    Número da página física



   Page
   table




                                    18
 Se Zero :
 Falha de         29 28 ..                    ..   15 14 13 12 11 10 9    ..    .. 3 2 1 0
 página                      Número da página física                     Deslocamento
                                                   Endereço Físico
      1GB
                                                                                        94
Falhas de Página (Page Faults) (1)


  Quando o valid bit é zero ele indica que a página não
  está na memória principal
  O controle deve ser passado ao SO para buscar a página
  (ou criar a página, para páginas de dados…)
     Tipicamente o SO cria uma imagem do programa no
     disco quando o programa começa
     Busca as partes relevantes quando é preciso
     Onde olhar? – um mapeamento é necessário para
     mostrar onde estão as imagens no disco
     Pode ser parte da tabela de páginas ou ser feita em
     separado



                                                      95
Falhas de Página (Page Faults) (2)

 Se todas as páginas na memória física estão em uso e o S.O.
 precisa substituir uma – Qual será escolhida?
 Política de substituição de páginas
     Localidade Temporal é um critério normal
     Menos recentemente usada (MRU ou LRU)
         i.e., sendo os acessos recentes às páginas: 10, 12, 9,
         7, 11, 10.
         MRU numa falha de página trocaria a página 12; na
         próxima falha, substituiria a página 9, etc.
 Tabelas de páginas tem um bit de uso ou referência
     “Levado a 1” quando a página é acessada
     Pode ser periodicamente “levado a 0” pelo S.O.
     Possibilita que o S.O. tenha uma visão aproximada das
     páginas recentemente utilizadas
                                                           96
Falhas de Página (Page Faults) (3)

   Para um endereço virtual de 32-bits, páginas de 4KB
   (12-bits) com 4 bytes por entrada na tabela de
   página
      220 pag x 4 bytes = 4MB
      Isto para cada programa ativo → muito memória
      “presa” em tabelas de páginas não usadas
   Poderiam ser adicionados registradores de limites e
   somente mapear as páginas para endereços virtuais
   baixos para limitar o registrador
      mas, num modelo normal, o segmento de dados
      cresce para cima e a pilha para baixo
      não consistente com a abordagem de limites
      Usa 2 tabelas de páginas com 2 registradores de
      limite – um para a pilha e outro para o resto…     97
Operações de escrita


 Write-through para o nível mais baixo da hierarquia (o
 disco nesse caso) é impraticável nesse caso devido ao alto
 custo para a escrita no disco
 A idéia é “salvar as escritas” para depois executá-las
 Write-back quando a página é substituída!
 Entretanto...
     Custoso e desnecessário fazer write-back para páginas
     para as quais não forem feitas escritas (por ex.,
     páginas de programa)
     Assim, as tabelas de páginas têm um bit de sujeira
     (dirty bit) por entrada que é setado quando dados são
     escritos na página
     Se esse dirty bit é setado quando a página precisa ser
     substituída, ele é escrito em write-back para a imagem
     do programa no disco
                                                         98
Fazendo isso rápido…


   Tabela de páginas em máquinas modernas está na
   memória principal:
      2 registradores: um de base da tabela na
      memória e outro indicando o no. de entradas
   Portanto ...
      Cada acesso à memória lógica de um programa
      necessita de dois outros acessos à memória fícia
      para achar a tabela de páginas
   Como agilizar isso?
      Localidade de referências novamente
   Inserir numa cache as tabelas de página mais
   recentementes utilizadas:
      Translation-lookaside buffer = cache inserida
      dentro da MMU (memory management unit)
                                                         99
Translation-Lookaside Buffer (TLB)
 Número da
página virtual Validade   Rótulo      End. Página Física


                                      TLB


                                                           Memória
             Validade Página Física ou End. Disco           Física




                          Tabela de Página
                                                           Disco




                                                                   100
Translation-Lookaside Buffer


  TLB é uma cache
  Se não existir a entrada na TLB, é preciso buscá-la na
  tabela de páginas que está na memória principal
  A tabela de páginas tem uma entrada para cada página
  O TLB e a página usam o dirty bit e o reference bit
  Usar a abordagem write-back para esses bits da TLB
  para a página de tabelas numa falha é muito eficiente
  Características típicas:

     Block size     1-2 page table entries (4-8 bytes each)
     Hit time       1/2 to 1 clock cycle
     Miss penalty   10 to 30 clock cycles
     Miss rate      0.01% - 1%
     TLB size       32 to 1024 entries
                                     Fonte: Livro P&H p. 492   101
Sistemas Modernos de Memória
  Characteristic               Intel Pentium Pro                              PowerPC 604
 Virtual address    32 bits                                     52 bits
 Physical address   32 bits                                     32 bits
 Page size          4 KB, 4 MB                                  4 KB, selectable, and 256 MB
 TLB organization   A TLB for instructions and a TLB for data   A TLB for instructions and a TLB for data
                    Both four-way set associative               Both two-way set associative
                    Pseudo-LRU replacement                      LRU replacement
                    Instruction TLB: 32 entries                 Instruction TLB: 128 entries
                    Data TLB: 64 entries                        Data TLB: 128 entries
                    TLB misses handled in hardware              TLB misses handled in hardware




            Characteristic                 Intel Pentium Pro                     PowerPC 604
     Cache organization           Split instruction and data caches   Split intruction and data caches
     Cache size                   8 KB each for instructions/data     16 KB each for instructions/data
     Cache associativity          Four-way set associative            Four-way set associative
     Replacement                  Approximated LRU replacement        LRU replacement
     Block size                   32 bytes                            32 bytes
     Write policy                 Write-back                          Write-back or write-through
                                                                                                            102
Próximo passo...



             Interface:
             dispositivos de
             entrada e saída
             (E/S) e
             barramentos



                               103
INTERFACE
PROCESSADOR – DISPOSITIVOS



                        104
Os componentes clássicos de
um computador
          Computer

        Processor    Memory     Devices


          Control                Input


          Datapath               Output




   Características extremamente dependentes da
   tecnologia, assim como os processadores
   “Um pouco neglicenciados” nos últimos anos...
                                                   105
Arquitetura Típica
Processador              interrupções
via de dados
  + controle

   Cache
               Barramento de Memória – E/S


 Memória       Controlador   Controlador   Controlador   Controlador
 Principal        E/S           E/S           E/S           E/S


                               Display
                                            Teclado        Rede
                              (monitor)

                                                              106
Desempenho em Sistemas de
Entrada e Saída
 Seja um programa com tempo de execução de 100s,
 com 90% do tempo em CPU e 10% E/S
    Se a CPU aumenta a velocidade 50% por ano, ao fim
    de 5 anos, o programa passa a ser executado em:
    90/(1.5)5 + 10 = 22 →        45% do tempo em
        E/S !!!
 Métricas de desempenho complexas:
    Supercomputadores: leitura de arquivos imensos e
    escrita de vários arquivos pequenos → vazão
    Processamento de Informações: tempo de resposta e
    desempenho em termos de vazão
    Sistemas de Arquivo: acessos a arquivos pequenos,
    dados seqüenciais, mais leitura e menos escrita →
    utilização do espaço e tempo de resposta          107
Arquitetura de Entrada/Saída
 Características dos dispositivos de E/S (I/O)
    Cada dispositivo tem um endereço de porta
    Limite de dispositivos ~ número de bits da porta
    Acesso da CPU via bus + interface do dispositivo
 Esquemas para a transferência de dados
    Dispositivos lentos
       Programada com espera ocupada (polling ou busy-
       waiting)
       Acionada por interrupção
    Dispositivos rápidos
       Acesso direto à memória – DMA (Direct Memory
       Access)
       Utilizando canais de dados – Controle de
       barramentos
                                                    108
Tipos de Dispositivos e E/S
Dispositivo     Tipo              Parceiro         Taxa     Ordem
                                                 (KB/sec)
Teclado            entrada           humano        0.01       0
Mouse              entrada           humano        0.02       0
Alto-falante       saída             humano        0.60       1
Line printer       saída             humano         1         2
Floppy disc        armazenagem       máquina        50        3
Laser printer      saída             humano        100        4
Scanner            entrada           humano        200        4
Optical disc       armazenagem       máquina       500        4
LAN                entrada/saída     máquina       10K-1G     5
Hard disc          armazenagem       máquina       >10K       5
Display            saída             humano         60K       6
         A arquitetura de E/S deve acomodar uma variedade
         enorme de dispositivos periféricos, com diferenças
         significantes de desempenho.
                                                            109
Dispositivos de E/S simples

 Lentos, geralmente orientados a caracteres
 (8bits) : teclados, displays, impressoras, etc.
 Muito mais lentos que o processador...
 ... Necessidade de protocolo de controle de
 fluxo de dados, hand-shaking protocol
 Requerem, pelo menos:
     um registrador de dados
     um registrador de controle com um bit
     done (colocado em 1 quando pronto para
     receber ou enviar o próximo dado, ou 0
     em caso contrário).
                                                   110
Mouse
 Processador lê os contadores para determinar a posição
 e atualizar a tela
 Botões pressionados geram eventos
 Tudo controlado por software
 Interface E/S por polling (mais adiante...)

              + 20 em Y               + 20 em Y
                          + 20 em Y
              – 20 em X               + 20 em X



              – 20 em X    Posição    + 20 em X
                            inicial




              – 20 em Y               – 20 em Y
              – 20 em X   – 20 em Y
                                      + 20 em X       111
Discos Magnéticos (hard disks)
                                              Trilhas



 Superfície rotativa            Superfícies
 magnética
     1 ou mais pratos
     Rotação a ~ 103 RPM
 Divididos em (~1000 a          Setores
 5000) trilhas concêntricas
 Cada trilha tem tipicamente
 64 a 200 setores (entre 512-
 4096 bits)




                                              112
Discos Magnéticos
O setor, às vezes chamado bloco, é a unidade
fundamental de transferência (não se pode
transferir menos que ela)
Discos mais recentes utilizados em PC’s só tem 1
prato devido aos ganhos tecnológicos na
confecção dos discos
Em geral, fabricantes informam tempo de busca
máximo, mínimo e médio de acesso aos dados
Discos flexíveis utilizam tecnologia da década de
80: menor velocidade, confiabilidade e
capacidade
Discos ópticos tornam-se parte integrante nos
anos 90...
                                                113
Desempenho de discos
 Os braços movem-se entre os pratos rotativos, lendo ou
 escrevendo informações
 Tempo de busca (seek time)
    Tempo para o braço localizar a trilha correta
 Latência rotacional
    Tempo para encontrar o setor correto
 Tempo de transferência
    Tempo para transferir o bloco de informações
 Cabeças
    Muitos discos têm uma cabeça por superfície – alta
    densidade de dados
    Alguns discos mais antigos têm múltiplas cabeças por
    superfície – baixa latência de acesso e alto desempenho.
                                                       114
E/S com Disco

  Registradores de dispositivo:
     Endereço no disco
     Número de bytes a ser transferido, que pode ser <,
     = ou > um setor.
     Endereço de memória para a transferência
     Registrador de comando:
         tipo de comando: read - disco para memória;
         write; write&verify (ler depois de escrever), etc.
         habilita interrupção
         go - quando ligado promove a transferência
         para o início, utilizando os valores correntes nos
         registradores de endereço e de comprimento.
     Registrador de status
         Indicadores de erros - unreadable/unwritable
         sector, etc.
         Livre/ocupado (idle/busy)
                                                              115
Conexão dos Dispositivos de
E/S ao Processador e à
Memória
  Conexão via barramento: Nada mais é que um
  conjunto de ligações (fios) que forma um canal de
  comunicação compartilhado entre os vários
  subsistemas (processador, memória, entrada/saída)
  Limitação: gargalo para a comunicação
  Desempenho limitado fisicamente pelo número de
  dispositivos conectados, comprimento
  Inclui uma via de controle (solicitações) e uma via de
  dados (informações):
      A via de controle inclui envolve linhas para
      requisição do barramento e para garantir o seu
      controle
      A via de dados tipicamente tem de 8 a 64 bits de
      largura, i.e. 8 a 64 ligações separadas
                                                           116
Interconexão de componentes (1)
 Diretamente com o processador
    Nenhuma máquina moderna aplicam esta solução, em
    geral
    Nem flexível, nem extensível
    Barramento plano (backplane)
    Barramento “curto” e de propósito geral – conecta
    memória, periféricos e o processador
    Deve seguir um padrão – ex. VME, PCI, etc.
 Barramento E/S
    longo, interligando diferentes tipos de dispositivos
    Deve seguir um padrão comercial: SCSI, IPI, etc.
 Barramento processador-memória
    Barramento “curto” de altíssima velocidade,
    especializado para otimizar as comunicações memória-
    processador
    Geralmente proprietário – específico para a máquina
    ou vendedor na busca de melhoria de desempenho 117
Interconexão de componentes
(2)
 Local Area Network (LAN)
    Pode ser usada para compartilhar periféricos, como
    impressoras, sistemas de arquivos, etc.
    Distâncias muito maiores
    Geralmente taxas de dados “moderadas/altas” entre
    100Kbits/sec e 155 Mbits/sec
 Projetos de alto desempenho envolvem múltiplos
 barramentos para produzir caminhos ótimos para os
 dados.
 Geração futura deve usar “switches” especializados –
 derivados da tecnologia LAN



                                                    118
Barramentos Síncronos e
Assíncronos
 Síncrono: inclui um clock em suas linhas de controle
    Requer que cada dispositivo do barramento “rode”
    a uma mesma velocidade.
    Barramentos Processador-memória : sincronização
    na leitura e escrita; poucos dispositivos, próximos e
    muito rápidos
 Assíncrono: não “segue” um clock
    Pode ligar vários dispositivos de características
    diferentes, sem preocupação com o sincronismo
    Tipicamente para entrada/saída
    Controlado por um mecanismo de handshaking
    (vários passos, mas o receptor e transmissor só
    seguem em frente se ambas as partes envolvidas
    estão de acordo)                                    119
Arbitragem do barramento (1)

       Como isso se comporta na prática?
       O que acontece quando vários dispositivos querem ter
       acesso ao barramento?                          Daisy chain
                                       Hard   Floppy
               Processador   Memória
                                       Disk    Disk


                                                         Bus grant
                                                        Bus request

                                                         Comando
Controlador
    de        4-8
Barramento                                                 Endereço
    ou
  Árbitro     16-?
                                                               Dados

              8-64
                                                               120
Arbitragem do barramento (2)
       Quando um dispositivo (incluindo a CPU) necessita do
       barramento, ele envia (ou “seta”) uma requisição na request
       line
            Existe uma linha única de requisições funcionando em
            “wired-OR “
            Só distingue se existe ou não requisição
       O árbitro atende uma requisição quando o barramento torna-
       se disponível “setando” a linha grant line
       O primeiro dispositivo que “vai para nível 0” pode usar o
       barramento
                                                Bus Request
     Árbitro
       do
                     Bus Grant
   Barramento


A permissão pode                 Dispositivo   Dispositivo    Dispositivo   Dispositivo
ou não se propagar                   1             2              3             4 121
    pela cadeia
Arbitragem do barramento (3)
 Dispositivo que “ganha” o barramento:
     Torna-se o mestre do barramento
     Ele não propaga o sinal de “grant” para os outros
     dispositivos desligados (em nível baixo)
     Portanto, um mecanismo de prioridade é construído – os
     dispositivos mais próximos do árbitro têm maior
     prioridade
     Garantir que outros dispositivos tenham acesso ao
     barramento
     Assim limitar “a janela de tempo” para assegurar que
     restrições temporais críticas não sejam ultrapassadas
     nos dispositivos
     O mestre colocar comandos, endereços e dados no
     barramento para serem tratados pela memória ou por
     um outro dispositivo
     Se a transferência não recebe um acknowledgment, uma
                                                              122
     exceção de erro de endereço de barramento é gerada
Arbitragem do barramento (4)

   Esquema com nível de prioridades no
     barramento:
        nível 2 > nível 1
        Conflito: 3 > 4 > 1 > 2
              Req. nível 1
  Árbitro     Req. nível 2
             Grant nível 2
    do       Grant nível 1
Barramento


                             Dispositivo   Dispositivo   Dispositivo   Dispositivo
                                 1             2             3             4



                                                                                123
Padrões para barramentos (1)
 Barramento E/S permite a expansão da máquina:
 padronização é fundamental!
    SCSI (Small Computer Systems Interface) e Ethernet
    são exemplos de padrões criados por reunião de
    fabricantes
    PCI criado pela INTEL e depois adotado por outras
 PCI : barramento para backplane de propósito geral
 SCSI: barramento de entrada e saída
    Faz a interface entre o barramento do backplane e o
    barramento processador-memória




                                                     124
Padrões para Barramentos (2)
                                                Source: P&H p. 395

Característica             PCI                  SCSI
tipo                backplane                   E/S
largura de dados    32 a 64 bits                8 a 32 bits
mestre do bus       múltiplos                   múltiplos
Arbitragem          centralizada, com           distribuída, com
                    requisição em paralelo      acesso por seleção
clock               Síncrono 33 a 66Mhz          Ambos (5 a 10Mhz)
Banda passante      80 MB/s                     5 or 40 MB/s
No.max dispositivos 1024                        7 a 31
comprimento max 0.5m                            25m
Nome padrão         PCI                         ANSI


  Em evolução constante... Dados tabelados em 1997!
                                                                     125
Interface dos Dispositivos E/S
com a Memória, Processador e
SO
   Um protocolo de barramento define exatamente o que
   deve ser feito em uma transmissão de dados entre
   subsistemas
   O SO é responsável pela gerência de toda a E/S:
      Proteção de acesso aos dispositivos
      Define abstrações para acesso aos dispositivos
      Trata as interrupções geradas pelo processador e
      dipositivos
      Garante o acesso compartilhado aos dispositivos
   O SO efetua 3 tipos de comunicação:
   1. Envio de comandos aos dispositivos
   2. Comunicação do dispositivo indicando fim da tarefa
   3. Transferência dos dados entre memória e dispositivos

                                                             126
Envio de Comandos aos
dispositivos
  Dois métodos de endereçamento:
      Mapeamento de E/S em memória
      Comandos especiais de E/S
  Mapeamento em memória:
      Parte do espaço de endereçamento é reservada aos
      dispositivos (e protegido dos programas usuário)
      Leituras/escritas a esses endereços são interpretadas
      pelo SO como operações de E/S
      Vantagem: simplicidade e transparência
  Comandos especiais de E/S:
      Instruções incluídas no processador
      Verifica o estado do dispositivo para saber se o comando
      foi completado ou não (só em modo kernel)



                                                           127
Exemplo: Teclado e monitores
  Teclados produzem caracteres à medida em que são
  digitados, em geral à taxa média de 10 cps
  Monitores são capazes de exibir textos alfanuméricos à
  taxa aproximada de 1200 cps
 Keyboard Registers
 Controle                              Data
  7   6   5     4     3   2   1    0    7   6   5     4   3      2   1    0


                      Ready/Done                    Read-only

 Display Registers
 Control                               Data
  7   6    5    4     3   2   1    0    7   6   5     4   3      2   1    0



 Unused (for now) Ready/Done                        Write-only

                                                                         128
Exemplo - Estrutura de um
programa “echo”
  Assuma que os registradores de E/S são mapeados em
  memória a partir das posições 0xffff 0000:
      +0        Keyboard control
      +4        Keyboard data
      +8        Display control
      +12       Display data
  No modo full-duplex os caracteres inseridos através do
  teclado não são exibidos a menos que haja um programa
  que instrua a arquitetura para tal, por ex:
   1. aguarde o sinal ready do teclado ser ligado
   2. leia o caractere - automaticamente zera (desliga) ready
   3. envie o caractere ao display
   4. aguarde a exibição ( Não necessariamente verdade, já
      que o display geralmente é muito mais rápido que a
      digitação )
   5. volte ao começo
                                                            129
Exemplo - o código...

   Programa simples em assembly
      .text
main: li    $8, 0xffff0000
   usando E/S polled
mloop: lw   $7, 0($8)     # get control register
       andi $7, $7, 1     # mask out done bit
       blez $7, mloop     # loop waiting for data
       lw    $6, 4($8)    # get data/clear kbd done

lp2:   lw   $7, 8($8)     # wait for display ready
       andi $7, $7, 1     # mask out done bit
       blez $7, lp2       # loop waiting
       sw    $6, 12($8)   # display character

       b     mloop        # next char
                                                      130
Analisando o desempenho do
Polling

 A espera “ocupada” do bit done é chamada polling
 Desperdício de tempo de processamento, já que os
 dispositivos são (em geral) muito mais lentos do que o
 processador
 Por outro lado, no caso de disco magnético o
 processador pode não dar conta de atender a alta taxa
 de transferência de dados.
 Necessidade de outras técnicas é clara: mecanismo de
 entrada/saída dirigida por interrupção



                                                      131
Mecanismo de Interrupção

 Mecanismo que desvia o processador de suas atividades
 normais quando algum dispositivo precisa ser atendido:
  1. A CPU emite uma instrução de E/S e não espera resposta
     imediata, desviando-se para realizar outra atividade,
     suspendendo a execução do programa de E/S
  2. O processador verifica, no início ou fim do ciclo de
     execução de cada instrução, se ocorreu alguma
     interrupção.
  3. Em caso positivo (i.e., a interface está para transferir o
     dado), o controle é transferido para uma rotina de
     tratamento de interrupção - Interrupt Service Routine ou
     Interruption Handler
  4. O dado é então transferido
  5. A CPU retoma ao programa original no ponto em que
     aconteceu a interrupção.
                                                              132
Interrupções

 Internas:
     Devido a eventos gerados durante a execução de um
     programa pelas instruções (overflow por divisão por
     zero, underflow) ou por programação (alarmes)
 Externas:
     Devido a sinais externos à CPU: interface de dispositivos
     de E/S que “avisam” à CPU que existem dados a serem
     transferidos
 Algumas podem ser desabilitadas:
     No nível do dispositivo - afeta apenas um dispositivo
     No nível do sistema - afeta todos os dispositivos
 Para lidar com a imensa gama de dispositivos de E/S, os
 mecanismos de interrupção têm níveis de prioridade
 definidos

                                                         133
Como sincronizar as
interrupções?
  Através de fila ou buffer
      Estrutura tipo first-in, first-out
      Uma fila para entrada, outra para saída.
      Se a fila estiver vazia → nenhum trabalho a ser feito.
      Se a fila de entrada estiver vazia e o programa do
      usuário necessita uma entrada, então o Sistema
      Operacional (SO) suspende o programa assume algum
      outro que possa dar prosseguimento.
      De maneira similar, se a fila de saída estiver cheia, o
      SO precisa re-escalonar os processos até que a rotina
      de interrupção tenha gerado algum dado.




                                                            134
Filas de I/O

Programa do usuário                                Código de Inicialização
                                                  para habilitar interrupções
main: do work
      call in                                      Rotina de interrupção
      do work
      call out
                                                    Kbd: get data
                      entrada Q                          put in Q
 in: get from Q
                                                         if full beep
     if empty OS        Kbd data                         resume
     suspends
 out: add to Q        saída Q                       Disp: get data from Q
      if full OS                                           if none disable
      suspends                     Display data
                                                          interrupt
                                                          send to display
                                                          resume

                                                                        135
Múltiplos Dispositivos

 Quando ocorre uma interrupção pode-se sair varrendo um a um
 para determinar quem interrompeu: test chain
     Processo lento, utilizado em máquinas antigas.
 Certos dispositivos têm tempos críticos de resposta: se o dado não
 for tratado a tempo ele será perdido ou outro prejuízo na aplicação
 pode acontecer.
 Diversas soluções:
     Interrupção vetorizada - cada dispositivo tem associado um
     endereço exclusivo na memória onde um ponteiro para sua ISR
     pode estar armazenado.
     Interrupção com vetorização parcial - dispositivos são
     divididos em classes com faixa de tempo crítico similares,
     vetorizados todos para o mesmo endereço. O test chain é
     realizado para o refinamento da identificação.
     Interrupção não-vetorizada - test chain e outros truques...
                                                               136
Vetores de Interrupção
          .ktext 0x80000000
          .word Lkbd # vector for kbd
          .word Ldisp # vector for display
          .ktext 0x80000020
          .word Lhd     # hard disk vector
          .ktext 0x80000040
          .word Lscan # scanner vector
           .ktext
    Lkbd: ...            # ISR for kbd
           resume
    Ldisp: ...           # ISR for display
           resume
    Lhd:   ...           # ISR for disk
           resume
    Lscan: ...           # ISR for scanner
           resume                            137
Vetorização Parcial
          .ktext   0x80000000
          .word    slow   # vector for slow devices
          .ktext   0x80000020
          .word    med    # vector for med speed devices
          .ktext   0x80000040
          .word    fast   # vector for fast devices
          .ktext
  slow:   test     kbd   # ISR for slow devs
          test     disp
          test     clock                             Not MIPS code!
          test     mouse
          resume
  kbd:    ...             # ISR for kbd
          resume
  disp:                   # etc.
  #--------
  med: ...                # ISR for med speed devs
        resume
  #--------
  fast: ...               # ISR for fast devs
        resume                                               138
Do ponto de vista da CPU

  A CPU é interrompida:
      Qual tipo de interrupção? Qual o dispositivo sinalizou?
      Reagir imediatamente, mais tarde, ignorar? O que fazer
      com o programa interrompido? Quando retornar à sua
      execução?
  Rotina de Tratamento da Interrupção
      Antes de ir para a rotina a CPU “salva o contexto” do
      processo em execução
      A CPU recebe o endereço inicial da rotina de tratamento
      da interrupção e inicia sua execução
  Embora melhore o desempenho, a CPU ainda “perde tempo”
  com a execução da rotina de interrupção e controle da
  transferência: imagine a transferência de 100KB do disco
  para a memória


                                                            139
Transferência entre Dispositivo
e Memória
 Polling e Interrupções funcionam bem para
 transfe-rências entre dispositivos de banda
 passante baixa
 As interrupções retiram do processador ô
 “ônus” de ter que esperar cada evento de E/S,
 mas ainda assim, a transferência do disco para
 memória não necessitam do controle direto da
 CPU
 A solução encontrado foi criar um mecanismo
 de transferência denominado DMA (direct
 memory access) ou acesso direto à memória
                                             140
Acesso Direto a Memória (DMA)

  Dados são transferidos entre a memória e o disco
  diretamente, sem o envolvimento do processador.
      Interrupção ainda utilizada para dizer à CPU quando a
      transferência é iniciada e terminada.
  Transferências DMA:
      CPU informa ao controlador de disco a operação a ser
      realizada e os endereços envolvidos.
      O controlador do dispositivo realiza então a operação,
      através de DMA, deixando livre a CPU
      Controlador de barramento faz a arbitragem do
      barramento.
      O controlador do dispositivo informa à CPU o término da
      transferência usando uma interrupção ou no caso de
      erro
                                                           141
Análise do DMA (1)

   Um barramento é um caminho compartilhado de alta
   velocidade.
   Considere a execução normal de um programa que
   requisita acessos à memória ao processador:

            Processador                      Tela            Teclado



                                                                       Bus
                          Memória            Disco


Atividade no Bus (P/M)
                                                 Processador trabalhando

   Inst R       Data R    Inst R    Inst R          Inst R   Data W        Inst R

                                                                              142
                                                                             Tempo
Análise do DMA (2)

     Agora, com o disco envolvido na transferência DMA

        Processador                             Tela         Teclado



                                                                        Bus
                           Memória              Disco


Atividade no Bus (P/M/D)


  Inst R     Data R        Inst R    Disk R/W       Inst R   Disk R/W    Data W

                                                                              Tempo


  Inst R    Disk R/W        Inst R     Inst R      Data W    Disk R/W     Inst R
                                                                               143
Análise do DMA (3)

  Bus é compartilhado por transferências processador-
  memória e disco-memória
  Assim, o desempenho do processador pode sofrer
  uma redução.
  Arquiteturas multi-barramentos são usadas para
  reduzir este efeito
  É preciso que algo seja usado para organizar o
  compartilhamento do barramento: árbitro ou
  controlador de barramento
  A conexão ao barramento e a tomada de decisões
  gasta tempo.
  Em alguns protocolos de barramentos SO, somente
  rajadas (burst) limitadas de dados podem ser
  transmitidas: burst-mode
                                                    144
Próximo passo...



             Arquiteturas
             Avançadas:
             multicomputadores
             e
             multiprocessadores



                                  145
Sistemas Multiprocessadores (I)


    Mais que uma CPU

    Em geral confinadas a um mesmo espaço físico
    (gabinete, rack, ...)

    Fortemente acoplados

    Comunicação via memória compartilhada



                                                   146
Sistemas Multiprocessadores (II)




          CPU

          cache


        CPU




 Bus

        Mem



                                   147
Sistemas Multiprocessadores (III)


               CPU




      Switch
     (Ômega)




               Mem




                                    148
Sistemas Multiprocessadores (IV)

             CPU



       Mem




                                   Crossbar




                                          149
Sistemas Multicomputadores (I)




    Mais que uma CPU

    Máquinas podem estar geograficamente distantes

    Sistemas fracamente acoplados

    Cada processador possui sua memória local
    própria e a comunicação é feita por passagem de
    mensagens


                                                      150
Sistemas Multicomputadores (II)



          Mem
          local


          CPU




   Rede




                                  151
Sistemas Multicomputadores (III)

            MALHA TRIDIMENSIONAL (k=3, n=3)

Mem local


  CPU




                                              152
Desafios
 Balanceamento de carga entre
 processadores
 Adequação aplicação x arquitetura
 Coerência de memória (cache)
 Linguagem de programação e
 compiladores
 Limitações físicas: temperatura,
 comprimento das ligações, custo
                                     153

Mais conteúdo relacionado

Mais procurados

Portas de comunicacao
Portas de comunicacaoPortas de comunicacao
Portas de comunicacaorenatogersos
 
Arquitetura de Computadores: Sistemas de numeração
Arquitetura de Computadores: Sistemas de numeraçãoArquitetura de Computadores: Sistemas de numeração
Arquitetura de Computadores: Sistemas de numeraçãoAlex Camargo
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaWellington Oliveira
 
Discos barramentos e portas de comunicação
Discos barramentos e portas de comunicaçãoDiscos barramentos e portas de comunicação
Discos barramentos e portas de comunicaçãosimoesflavio
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisRonildo Oliveira
 
Capítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosCapítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosWellington Oliveira
 
Aula 02 arquitetura_básica
Aula 02 arquitetura_básicaAula 02 arquitetura_básica
Aula 02 arquitetura_básicaLidiane Figueira
 
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVOINTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVOKaren Costa
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
02 introducao hardware
02 introducao hardware02 introducao hardware
02 introducao hardwareDaniel Farias
 
Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo  Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo Verônica Veiga
 
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasDissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasLuiz Arthur
 
Pesquisa sobre tipos de memorias
Pesquisa sobre tipos de memoriasPesquisa sobre tipos de memorias
Pesquisa sobre tipos de memoriasOtaviano Viana
 
Sistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande porteSistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande portetiagohinke
 

Mais procurados (19)

Portas de comunicacao
Portas de comunicacaoPortas de comunicacao
Portas de comunicacao
 
Arquitetura de Computadores: Sistemas de numeração
Arquitetura de Computadores: Sistemas de numeraçãoArquitetura de Computadores: Sistemas de numeração
Arquitetura de Computadores: Sistemas de numeração
 
Roteiro IOC 06
Roteiro IOC 06Roteiro IOC 06
Roteiro IOC 06
 
Sistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de MemóriaSistemas Operacionais Modernos - Gerenciamento de Memória
Sistemas Operacionais Modernos - Gerenciamento de Memória
 
Discos barramentos e portas de comunicação
Discos barramentos e portas de comunicaçãoDiscos barramentos e portas de comunicação
Discos barramentos e portas de comunicação
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas Operacionais
 
Capítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais ModernosCapítulo 10 Sistemas Operacionais Modernos
Capítulo 10 Sistemas Operacionais Modernos
 
Aula 02 arquitetura_básica
Aula 02 arquitetura_básicaAula 02 arquitetura_básica
Aula 02 arquitetura_básica
 
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVOINTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
INTRODUÇÃO A ORGANIZAÇÃO DE COMPUTADORES PROF. IVO
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
02 introducao hardware
02 introducao hardware02 introducao hardware
02 introducao hardware
 
Roteiro IOC 05
Roteiro IOC 05Roteiro IOC 05
Roteiro IOC 05
 
Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo  Trabalho: Arquitetura e software paralelo
Trabalho: Arquitetura e software paralelo
 
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelasDissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
Dissertacao - Palestra - Algoritmos para simulador de arquiteturas paralelas
 
Pesquisa sobre tipos de memorias
Pesquisa sobre tipos de memoriasPesquisa sobre tipos de memorias
Pesquisa sobre tipos de memorias
 
Htm trabalho
Htm trabalhoHtm trabalho
Htm trabalho
 
Sistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande porteSistemas operacionais de computadores de grande porte
Sistemas operacionais de computadores de grande porte
 
Endereçamento de memória
Endereçamento de memóriaEndereçamento de memória
Endereçamento de memória
 
Aula 06-oac-memoria-principal
Aula 06-oac-memoria-principalAula 06-oac-memoria-principal
Aula 06-oac-memoria-principal
 

Destaque

Sistemas de Microprocessadores 2013/2014
Sistemas de Microprocessadores 2013/2014Sistemas de Microprocessadores 2013/2014
Sistemas de Microprocessadores 2013/2014joel design
 
Sistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladoresSistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladoresLucas Willam
 
Processador mips - parte operativa e parte de controle
Processador mips - parte operativa e parte de controleProcessador mips - parte operativa e parte de controle
Processador mips - parte operativa e parte de controleBruno Andretti Duarte
 
Hardware apresentação 5 - cpu e sockets
Hardware   apresentação 5 - cpu e socketsHardware   apresentação 5 - cpu e sockets
Hardware apresentação 5 - cpu e socketsLuiz Pereira de Souza
 
Denny daniel collina apostila de sitemas microprocessados
Denny daniel collina   apostila de sitemas microprocessadosDenny daniel collina   apostila de sitemas microprocessados
Denny daniel collina apostila de sitemas microprocessadosLorena Barreto
 
Karel – Autonomous Robot for Enhancing Learning
Karel – Autonomous Robot for Enhancing LearningKarel – Autonomous Robot for Enhancing Learning
Karel – Autonomous Robot for Enhancing LearningMihai Agape
 
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1guest7d021
 
Introdução à Robótica / Visão Geral / Tendências
Introdução à Robótica / Visão Geral / TendênciasIntrodução à Robótica / Visão Geral / Tendências
Introdução à Robótica / Visão Geral / TendênciasFernando Passold
 
Processadores mais utilizados atualmente
Processadores mais utilizados atualmenteProcessadores mais utilizados atualmente
Processadores mais utilizados atualmenteJonathan Matheus
 
01 definicoes em_controle_automatico_teoria_isa_curitiba
01 definicoes em_controle_automatico_teoria_isa_curitiba01 definicoes em_controle_automatico_teoria_isa_curitiba
01 definicoes em_controle_automatico_teoria_isa_curitibaJeferson Carmo
 
Sistemas supervisórios e sdcd
Sistemas supervisórios e sdcdSistemas supervisórios e sdcd
Sistemas supervisórios e sdcdFabiano Sales
 
Comandos eletro hidráulicos eletro pneumáticos (1)
Comandos eletro hidráulicos eletro pneumáticos (1)Comandos eletro hidráulicos eletro pneumáticos (1)
Comandos eletro hidráulicos eletro pneumáticos (1)fabinholook
 
Instruction Set Architecture
Instruction Set ArchitectureInstruction Set Architecture
Instruction Set ArchitectureDilum Bandara
 
Apostila pneumática shp 2º sem 2013 anhanguera primeiro
Apostila pneumática shp 2º sem 2013    anhanguera primeiroApostila pneumática shp 2º sem 2013    anhanguera primeiro
Apostila pneumática shp 2º sem 2013 anhanguera primeiroHelton Assunção
 
Apostila clp (conceitos básicos)
Apostila clp (conceitos básicos)Apostila clp (conceitos básicos)
Apostila clp (conceitos básicos)jastro1984
 
Apostila de Instrumentação
Apostila de InstrumentaçãoApostila de Instrumentação
Apostila de InstrumentaçãoTalitha Ferreira
 

Destaque (20)

Sistemas de Microprocessadores 2013/2014
Sistemas de Microprocessadores 2013/2014Sistemas de Microprocessadores 2013/2014
Sistemas de Microprocessadores 2013/2014
 
Sistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladoresSistemas microprocessados historia microcontroladores
Sistemas microprocessados historia microcontroladores
 
Processador mips - parte operativa e parte de controle
Processador mips - parte operativa e parte de controleProcessador mips - parte operativa e parte de controle
Processador mips - parte operativa e parte de controle
 
Processador mips - pipeline
Processador mips - pipelineProcessador mips - pipeline
Processador mips - pipeline
 
Hardware apresentação 5 - cpu e sockets
Hardware   apresentação 5 - cpu e socketsHardware   apresentação 5 - cpu e sockets
Hardware apresentação 5 - cpu e sockets
 
Denny daniel collina apostila de sitemas microprocessados
Denny daniel collina   apostila de sitemas microprocessadosDenny daniel collina   apostila de sitemas microprocessados
Denny daniel collina apostila de sitemas microprocessados
 
Karel – Autonomous Robot for Enhancing Learning
Karel – Autonomous Robot for Enhancing LearningKarel – Autonomous Robot for Enhancing Learning
Karel – Autonomous Robot for Enhancing Learning
 
Socket
SocketSocket
Socket
 
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
OrganizaçãO E Arquiteturas De Computadores 2009 Cap 1
 
Introdução à Robótica / Visão Geral / Tendências
Introdução à Robótica / Visão Geral / TendênciasIntrodução à Robótica / Visão Geral / Tendências
Introdução à Robótica / Visão Geral / Tendências
 
Processadores mais utilizados atualmente
Processadores mais utilizados atualmenteProcessadores mais utilizados atualmente
Processadores mais utilizados atualmente
 
01 definicoes em_controle_automatico_teoria_isa_curitiba
01 definicoes em_controle_automatico_teoria_isa_curitiba01 definicoes em_controle_automatico_teoria_isa_curitiba
01 definicoes em_controle_automatico_teoria_isa_curitiba
 
Sistemas supervisórios e sdcd
Sistemas supervisórios e sdcdSistemas supervisórios e sdcd
Sistemas supervisórios e sdcd
 
Comandos eletro hidráulicos eletro pneumáticos (1)
Comandos eletro hidráulicos eletro pneumáticos (1)Comandos eletro hidráulicos eletro pneumáticos (1)
Comandos eletro hidráulicos eletro pneumáticos (1)
 
Instruction Set Architecture
Instruction Set ArchitectureInstruction Set Architecture
Instruction Set Architecture
 
Apostila pneumática shp 2º sem 2013 anhanguera primeiro
Apostila pneumática shp 2º sem 2013    anhanguera primeiroApostila pneumática shp 2º sem 2013    anhanguera primeiro
Apostila pneumática shp 2º sem 2013 anhanguera primeiro
 
Automação industrial
Automação industrialAutomação industrial
Automação industrial
 
Apostila clp (conceitos básicos)
Apostila clp (conceitos básicos)Apostila clp (conceitos básicos)
Apostila clp (conceitos básicos)
 
Apostila de Instrumentação
Apostila de InstrumentaçãoApostila de Instrumentação
Apostila de Instrumentação
 
Linguagem assembly
Linguagem assemblyLinguagem assembly
Linguagem assembly
 

Semelhante a Augusto loureiro sistemas microprocessados

Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 
arquitcomputeso-3-introducao-180323204952.pptx
arquitcomputeso-3-introducao-180323204952.pptxarquitcomputeso-3-introducao-180323204952.pptx
arquitcomputeso-3-introducao-180323204952.pptxCidrone
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
1a lista exercicios
1a lista exercicios1a lista exercicios
1a lista exerciciosredesinforma
 
Apostila hardware-introducao-a-arquitetura-de-computadores
Apostila hardware-introducao-a-arquitetura-de-computadoresApostila hardware-introducao-a-arquitetura-de-computadores
Apostila hardware-introducao-a-arquitetura-de-computadoresalmeida26
 
Evolução dos computadores 2 pronto
Evolução dos computadores 2 prontoEvolução dos computadores 2 pronto
Evolução dos computadores 2 prontoFraan Bittencourt
 
Introdução a computadores
Introdução a computadoresIntrodução a computadores
Introdução a computadoresJoao da Burra
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosMarcelo Barros de Almeida
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores picAnderson Inácio Morais
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.dannas_06
 
01 introducao vaston
01 introducao vaston01 introducao vaston
01 introducao vastonsilfisica
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosAlex Camargo
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Ipaulocoob
 
Introducao arq computador
Introducao arq computadorIntroducao arq computador
Introducao arq computadorPAULO Moreira
 
Aula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresAula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresJorge Ávila Miranda
 

Semelhante a Augusto loureiro sistemas microprocessados (20)

Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 
arquitcomputeso-3-introducao-180323204952.pptx
arquitcomputeso-3-introducao-180323204952.pptxarquitcomputeso-3-introducao-180323204952.pptx
arquitcomputeso-3-introducao-180323204952.pptx
 
Apostila SO
Apostila SOApostila SO
Apostila SO
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Aula 01-introducao-ao-so
Aula 01-introducao-ao-soAula 01-introducao-ao-so
Aula 01-introducao-ao-so
 
1a lista exercicios
1a lista exercicios1a lista exercicios
1a lista exercicios
 
Ud1
Ud1Ud1
Ud1
 
Apostila hardware-introducao-a-arquitetura-de-computadores
Apostila hardware-introducao-a-arquitetura-de-computadoresApostila hardware-introducao-a-arquitetura-de-computadores
Apostila hardware-introducao-a-arquitetura-de-computadores
 
Evolução dos computadores 2 pronto
Evolução dos computadores 2 prontoEvolução dos computadores 2 pronto
Evolução dos computadores 2 pronto
 
Introdução a computadores
Introdução a computadoresIntrodução a computadores
Introdução a computadores
 
Sistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passosSistemas embarcados: motivação e primeiros passos
Sistemas embarcados: motivação e primeiros passos
 
Transputer
TransputerTransputer
Transputer
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic
 
Resumo de S.O.
Resumo de S.O.Resumo de S.O.
Resumo de S.O.
 
01 introducao vaston
01 introducao vaston01 introducao vaston
01 introducao vaston
 
Arquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicosArquitetura de Computadores: Conceitos básicos
Arquitetura de Computadores: Conceitos básicos
 
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES IORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
 
Introducao arq computador
Introducao arq computadorIntroducao arq computador
Introducao arq computador
 
Repair your system
Repair your systemRepair your system
Repair your system
 
Aula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de ComputadoresAula05 - Arquitetura e manutanção de Computadores
Aula05 - Arquitetura e manutanção de Computadores
 

Último

PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 

Último (20)

PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 

Augusto loureiro sistemas microprocessados

  • 1. Sistemas Microprocessados – ENGC50 Prof. Augusto Loureiro da Costa Departamento de Engenharia Elétrica Escola Poltécnica Universidade Federal da Bahia Augusto.loureiro@ufba.br 1
  • 2. Programa do Curso Introdução Desempenho de Sistemas de Computação: aspectos Arquitetura de Conjunto de Instruções Estrutura do processador: fluxo de dados e controle Sistemas de Entrada/Saída e comunicação Sistemas de Memória. 2
  • 3. Slides - referências ftp://ftp.nuperc.unifacs.br/professor/celso/publico/html/Modu lo1/ University College of London, J. Crowcroft, S. Wilbur, www.cs.ucl.ac.uk/teaching/1B10 ©UCL University of California, Berkeley, David Patterson’s lecture slides ©UCB, DAP’ 97 www.cs.berkeley.edu/~pattrsn/152F97/index_lectures.html Morgan Kaufmann Publishers, Tod Amon www.mkp.com/books_catalog/cod2/ph2_res.htm#slides Copyright 1998 Morgan Kaufmann Publishers Central Queensland University, A Silberschatz, P. Galvin, www.infocom.cqu.edu.au/Units/win99/85349/Resources/Lect ures ©CQU 3
  • 5. O que é a Arquitetura de um Computador? Arquitetura de Computadores = Conjunto de Instruções (ISA - Instruction Set Architecture) + Organização da Máquina 5
  • 6. Conjunto de Instruções da Arquitetura (ISA) ... os atributos de um sistema [de computação] vistos pelo programador, i.e. a estrutura conceptual e o comportamento -- Organização da Memória funcional, são distintos da organização dos -- Tipos de dados e estruturas de dados: fluxos de dados e dos Codificações e representações controles da lógica e da -- Conjunto de Instruções implementação física. [Amdahl, Blaaw and -- Formato das Instruções Brooks, 1964] -- Modos de Endereçamento e Acesso de Dados e Instruções -- Condições de Exceção 6
  • 7. Conjunto de Instruções: Uma Interface Crítica software Conjunto de instruções hardware 7
  • 8. Conjunto de Instruções O conjunto de instruções especifica o mais baixo nível das funcionalidades de uma máquina. O conjunto de instruções é como o “vocabulário” do computador; as instruções seriam suas “palavras”. É possível se fazer um mapeamento quase de 1-para-1 entre as instruções de máquina (binárias) e representações simbólicas (mnemônicos) em linguagens de montagem (ou assembly) 8
  • 9. Exemplos de Conjunto de Instruções da Arquitetura Digital Alpha (v1, v3) 1992-97 HP PA-RISC (v1.1, v2.0) 1986-96 Sun Sparc (v8, v9) 1987-95 SGI MIPS (MIPS I, II, III, IV, V) 1986-96 Intel (8086,80286,80386, 1978-00 80486,Pentium, MMX, ...) 9
  • 10. MIPS R3000 Instruction Set Architecture Registradores R0 - R31 Tipo de Instrução Load/Store Computational Jump and Branch PC Floating Point (coprocessor) HI Memory Management LO Special 3 Formatos de Instrução: TODOS com 32 bits de comprimento OP rs rt rd sa funct OP rs rt immediate OP jump target Q: Quem já ouviu falar desta arquitetura? 10
  • 11. Organização da Máquina Capacidades & Características de Desempenho das Principais Unidades Funcionais (Fus) (ex., Registradores, ULA, Shifters, Unidades Lógicas, ...) Forma de interconexão dos componentes Fluxo de informação entre componentes Lógica e forma pela qual o fluxo de informações é controlado Implementação do ISA sobre as Unidades Funcionais Descrição do Nível de Transferência dos Registros 11
  • 12. Exemplo de Organização TI SuperSPARCtm TMS390Z50 da Sun SPARCstation20 MBus Module SuperSPARC Floating-point Unit L2 CC DRAM Integer Unit $ MBus Controller Inst Ref Data L64852 MBus control M-S Adapter STDIO Cache MMU Cache SBus serial Store SCSI kbd SBus mouse Buffer DMA Ethernet audio RTC Bus Interface SBus Boot PROM Cards Floppy 12
  • 13. O que é Arquitetura de Computadores? Coordenação de níveis de abstração Application Operating Compiler System ISA - Instruction Set Architecture Instr. Set Proc. I/O system Digital Design Circuit Design Sujeita a um conjunto de influências em constante e rápidas alterações. 13
  • 14. Desempenho crescente. . . Computadores têm se tornado incrivelmente mais poderosos desde que foram inventados nas décadas de 30-40. • Um palm-top hoje é tipicamente mais potente que ... • ... uma máquina IBM que ocupava uma sala na geração anterior. 14
  • 15. Influências nas Arquiteturas... Tecnologia Linguagens de Programação Aplicações Arquitetura de Computadores História Sistemas Operacionais (A = F / M) Levando em conta que... O ENIAC tem 18000 válvulas e pesa 30 toneladas, no futuro os computadores deverão ter 1000 válvulas e pesar 1,5 toneladas Revista Popular Mechanics, março de 1949. 15
  • 16. Tecnologia: memória capacidade do chip DRAM Em ~1985 o processador “single- chip” (32-bit) e o computador DRAM “single-board” apareceram Year Size ⇒ workstations, personal 1980 64 Kb computers, multiprocessors 1983 256 Kb surgiram nessa era 1986 1 Mb 1989 4 Mb Em 2002 + δt, este caminho nos 1992 16 Mb leva a crer que teremos mainframes 1996 64 Mb comparados a computadores 1999 256 Mb “single-chip” (talvez 2 ou + chips) 2002 1 Gb 2009 ? Gb 16
  • 17. Densidade de Lógica dos Microprocessadores 100000000 Tecnologia: densidade 10000000 R10000 Pentium Número de Transistors R4400 i80486 1000000 i80386 i80286 100000 R3010 SU MIPS i8086 i80x86 M68K 10000 MIPS Alpha i4004 1000 17 1970 1975 1980 1985 1990 1995 2000 2005
  • 18. Projeções de Desempenho 1000 Supercomputers Log do desempenho 100 Mainframes 10 Minicomputers Microprocessors 1 0.1 1965 1970 1975 1980 1985 1990 1995 2000 18
  • 19. Desempenho: CPU e Redes (Patterson) Desempenho Relativo CPU (spec) 1000 LAN DEC 1 Gb ATM 100 Alpha MIPS 10 M/120 100 Mb FDDI 10 Mb 1 Ano 1980 1985 1990 1995 2000 19
  • 20. Tecnologia: mudanças drásticas Processador capacidade lógica: ~ 30% por ano taxa de clock: ~ 20% por ano Memória Capacidade DRAM: ~ 60% por ano (4x em 3 anos) Velocidade: ~ 10% por ano Custo por bit: ganho de 25% por ano Discos Capacidade: ~ 60% por ano 20
  • 21. Desempenho dos Processadores Desempenho aumenta ~ 50% por ano (2x a cada 1.5 ano) 350 300 RISC 250 Desempenho 200 Introdução do 150 RISC Intel x86 100 50 35%/yr 0 1986 1988 1989 1990 1995 1987 1991 1992 1982 1985 1993 1994 1983 1984 Ano Quais as possibilidades do RISC em relação às outras? 21
  • 22. Linguagens e Aplicações CAD, CAM, CAE, . . . MAC, Unix, DOS, . . . Multimídia, . . . World Wide Web, . . . JAVA, . . . ??? Tecnologia criando necessidades versus necessidades demandando novas tecnologias 22
  • 23. Assim ... Design Arquitetura é um processo iterativo -- Busca de espaço para possíveis projetos -- Observar todos os níveis de sistemas de Análise computação Criatividade Custo/ Análise de Desempenho Boas Idéias Idéias Medíocres Idéias Ruins 23
  • 24. Visão geral de Arquitetura de Computadores Arquitetura de Computadores e Engenharia Conjunto de Instruções Organização do Computador Interfaces Componentes de Hardware Visão Compilador/Sistema Visão do Projeto Lógico “Arquitetura da Construção” “Engenharia de Construção” 24
  • 25. Arquitetura Básica dos Computadores Atuais CPU: ALU interrupts (datapath) + control Cache main bus Main I/O I/O I/O Memory Controller Controller Controller Graphics Keyboard display 25
  • 26. Como se fazer entender pelo computador? “Linguagem” do computador : 100011000001 (bits) Números binários: base da teoria computacional 1. Primórdios: uso da linguagem nativa em binário!!! 2. Linguagem de Montagem (Assembly) Montador: traduz uma versão simbólica das instruções para sua representação binária na arquitetura add A, B → montador → 100011000001 3. Linguagem de Programação de alto-nível Compilador: traduz instruções de alto-nível para instruções binárias diretamente ou via um montador A + B → compilador → add A, B → montador →100011000001 ou A + B → compilador → 100011000001 26
  • 27. Mas é só isso? Existe ainda um programa que gerencia os recursos da máquina durante a execução dos programas: o SISTEMA OPERACIONAL (SO) Operações de Entrada/Saída (E/S), “carga” do programa na memória, exceções, etc. O SO funciona como um gerente dos recursos, escondendo o acesso direto ao hardware dos usuários Mais ainda: multiprocessamento, gerência de arquivos, processamento distribuído, ... Assim, existem diversas camadas e serviços disponíveis para auxiliar nossa comunicação com a máquina. 27
  • 28. Uma questão? 15o. bit 6o. bit 214 25 ... 20 O que é isto? 00000000001000100100000000100000 • Pode ser lido como: 25 + 214 + 217 + 221 = 32 + 16384 + 131072 + 2097152 = 2244640 28
  • 29. Diálogo com o computador... • O que é isto? 00000000000000010000001000001000000000000100000 00000000000000110000010000001001000000000100000 000000000000100000001001000001010000000 00100010 Melhor assim? 00000000 00000001 00000010 00001000 0000000 00100000 00000000 00000011 00000100 00001001 0000000 00100000 00000000 00001000 00001001 00000101 0000000 00100010 29
  • 30. Traduzindo... E assim? 0 1 2 8 0 32 0 3 4 9 0 32 0 8 9 5 0 34 • Melhorando... add $8, $1, $2 add $9, $3, $4 sub $5, $8, $9 30
  • 31. Traduzindo mais um pouco... Melhorando ainda mais... $8 = $1 + $2 $9 = $3 + $4 $5 = $8 - $9 • Claro agora? u=a+b v = c + d; x=u-v • Sim, é claro: x = (a+b) - (c+d) 31
  • 32. Níveis de Representação Programa em Linguagem de Alto-Nível Compilador x = (a+b) Compilador x = x – (c+d) Programa em Linguagem de Montagem lw $15, 0($2) Montador ou lw $16, 4($2) Assembler sw $16, 0($2) sw $15, 4($2) Programa em Linguagem de Máquina 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 Interpretação da Máquina 0101 1000 0000 1001 1100 0110 1010 1111 Especificação do controle de sinais ALUOP[0:3] <= InstReg[9:11] & MASK ° ° 32
  • 33. Níveis de Organização SPARCstation 20 Computador Objetivo do Projeto: Processador Memória Dispositivos 25% do custo - Processador 25% do custo - Memória (configuração mínima) Controle Entrada Resto – dispositivos I/O, energia, gabinete, etc. Datapath Saída 33
  • 34. Executando um Programa: Ciclo de Execução Instruction Obtém uma instrução do programa armazenado Fetch Instruction Decode Determine as ações e o tamanho da instruções Operand Localiza e obtém os dados (operandos) Fetch Execute Calcula um valor do resultado ou status Result Store Armazena resultados na memória para uso futuro Next Instruction Determina a próxima instrução 34
  • 35. Instruções Básicas de Programas Conjunto de instruções = linguagem de máquina Instrução: opcode [operandos] Tipos de instrução: Instruções aritméticas e lógicas (add, sub, AND, OR) Referência à memória ou Load&store Desvios Condicionais: if + goto / if-then-else Desvios incondicionais ou saltos (jumps) Formas de endereçamento: complexidade da arquite- tura → em RISC poucas formas de endereçamento direto a operandos; instruções de mesmo tamanho 35
  • 36. Registradores Registradores armazenam palavras simples na CPU, em locais próximos à ULA. A ULA tem acesso extremamente rápido aos registradores Em arquiteturas RISC modernas Todas as instruções são executadas sobre dados armazenados em registradores Instruções do tipo carregar/armazenar (load/store) ↔ registradores MIPS:32 registradores indicados: $0...$31 36
  • 37. Avaliando o desempenho de arquiteturas Métricas de projeto: - Pode ser implementado em quanto tempo e com qual custo? - Pode ser programado? Fácil para compilar? CPI Métricas estáticas: - Quantos bytes o programa ocupa na memória? Métricas dinâmicas: Inst. Count Cycle Time - Quantas instruções são executadas? - Quantos bytes o processador deve buscar para executar o programa? - Quantos clocks são requeridos por instrução (CPI)? - Qual valor de clock ideal? Melhor métrica: Tempo para executar o programa! 37 NOTA: isto depende do conjunto de instruções, da organização do processador e das técnicas de compilação
  • 38. Aspectos do Desempenho da CPU CPU time CPU time = Seconds = Seconds = Instructions x Cycles = Instructions x Cycles x Seconds x Seconds Program Program Program Program Instruction Instruction Cycle Cycle instr count CPI clock rate Programa X Compilador X X Conj. Instr. X X Organização X X Tecnologia X 38
  • 39. Lei de Amdahl Ganho de velocidade (speed-up) devido ao ganho E: speedup(E) = TExec sem E = Desempenho com E TExec com E Desempenho sem E Suponha que a melhoria E acelere a parte S e o restante do programa não é afetada pela melhoria: TExec(com E) = ((1-F) + F/S) × TExec(sem E) speedup(com E) = 1 1 (1-F) + F/S 39
  • 40. Desempenho x Tecnologia Poder da Tecnologia: 1.2 x 1.2 x 1.2 = 1.7 x / ano Tamanho: miniaturização ganha 10%/ ano → velocidade de chaveamento ganha 1.2 / ano. Densidade: aumenta 1.2x / ano. Área da pastilha (die): 1.2x / ano. A lição da abordagem RISC é deixar o conjunto de instruções (ISA) o mais simples possível: Ciclo de projeto curto → explora de maneira otimizada a tecnologia (~3 anos) Técnicas de pipeline e previsão de desvios (branches) Caches on-chip maiores e mais sofisticados 40
  • 41. PROCESSADOR E MEMÓRIA 41
  • 42. Onde estamos agora? Cinco componentes do computador Computer Processor Memory Devices Control Input Datapath Output Projetando uma CPU monociclo Projeto da máquina Aritmética Conjunto de Instruções tecnologia (parte 1 e 2) (parte 2) 42
  • 43. Filosofia RISC [Tanembaum]... 1. Regra de base: Simplificar a via de dados – registradores, ULA e barramentos de interconexão; 2. Minimizar tempo de ciclo da via de dados: • Faça o comum executar mais rápido • A simplicidade favorece a regularidade 3. “A perfeição é atingida, não quando não existe nada mais a acrescentar, mas quando não existe nada mais a jogar fora!” [St. Exupéry] 43
  • 44. Implementação do conjunto de instruções INSTRUÇÂO opcode operando 1 operando 2 Para executar qualquer instrução: 1. Enviar o valor do PC para a memória que contém o código (opcode) e trazer para a via de dados a instrução armazenada nessa memória 2. Ler registradores (1 ou mais), usando os campos da instrução para selecioná-los (operandos) As ações do hardware para completar a execução da instrução variam, mas em geral, usam a ULA (simpli- cidade e regularidade) 44
  • 45. Visão geral da implementação MIPS Ideal Control Instruction Control Signals Conditions Instruction Memory Rd Rs Rt 5 5 5 Instruction Address A Data 32 Data Next Address Rw Ra Rb Address 32 32 Ideal Out ALU 32 32-bit PC Data Registers Data Memory B In Clk Clk 32 Clk Datapath 45
  • 46. Controle e Via de Dados Controle: define os sinais para acionar o hardware (unidades funcionais) para cada instrução decodificada Via de dados: movimentação de dados mem-reg, reg- reg, reg-ULA (barramentos + unidades) CPU “monociclo”: instrução quebrada em passos correspondentes às unidades funcionais envolvidas somador 4 Endereço de leitura PC Instrução Ex: Busca da próxima instrução Memória de instruções 46
  • 47. Implementação “multiciclo” Cada passo de execução da instrução = 1 ciclo de clock Compartilhamento das unidades funcionais dentro do espaço de tempo correspondente a uma instrução Assume-se que o ciclo de clock possa acomodar operações de acesso à memória, uma operação da ULA e acesso (leitura-escrita) aos registradores A via de dados possui registradores “adicionais” para armazenar valores usados nas próximas instruções (registrador de instrução e registrador de dados da memória, saída da ULA, operandos lidos dos reg’s, ...) Ex: Busca da instrução X (PC) → PC = PC +4 → ... PC pode ser incrementado antes do fim da instrução X 47
  • 48. Controle numa CPU multiciclo (1) Complexidade aumenta: Monociclo: tabelas-verdade (combinacional) Multiciclo: próximo estado depende do atual e dos sinais de entrada (seqüencial) Duas soluções: 1. Máquina de estados – seqüência de estados e regras de transição 2. Multiprogramação – representação para o controle semelhante a um programa Quanto mais simples o conjunto de instruções, mais simples e ágil o controle: INTEL 80x86 precisa de milhares de estados (modos de endereçamento, mais opcodes); MIPS 100 instruções 48
  • 49. Controles baseados em Máquinas de Estado Lógica de Controle Combinacional Saídas de controle do caminho de dados Saídas Entradas Próximo estado Registrador de estado Entradas vindas do opcode do registrador de instruções 49
  • 50. Controle por Microprogramação Máquinas de estados não são adequadas para controle de conjunto de instruções complexos! A única saída é a microprogramação Microprograma: conjunto de microinstruções que definem o conjunto de sinais de controle da via de dados a serem ativados em determinado estado Representação simbólica do controle, que deve ser traduzida em termos de sinais para o hardware Em geral, o microprograma está numa ROM ou PLA Ainda fazem parte do controle da CPU: tratamento de interrupções e de exceções que determinam mudança no fluxo normal de execução (overflow, operação de E/S) 50
  • 51. CPU’s de arquiteturas conhecidas Kernel: via de dados e controle Outras técnicas para aumentar o desempenho: pipeline 1985: MIPS R2000 com pipeline Até 80386 sem pipeline 80486, Pentium, Pentium PRO têm pipeline, mas o controle continua extremamente complexo para suporte das instruções da linha 80x86 Pentium e Pentium PRO usam pipeline superescalar: mais de uma instrução por clock replicando os recursos da via de dados Pentium suporta até 2 instruções e o POR, até 4 Pentium PRO usa conceitos RISC 51
  • 52. Aumentando o desempenho: Pipeline Técnica de implementação de processadores que permite a superposição temporal de diversas fases de execução de instruções Cada passo de execução da instrução deve ser executada em 1 ciclo de clock: Tecnologia limita o tempo de clock e o tempo de cada passo do pipeline A idéia de base é aumento a “vazão” e não redução do tempo de execução por instrução: Analogia: Produção de uma linha de montagem de automóveis = 1 automóvel por minuto! 52
  • 53. Implementação um pipeline Busca Ordem de Instrução execução Decodifica instrução 1 2 3 4 5 Executa 1 2 3 4 5 Operação 1 2 3 4 5 1 2 3 4 5 Acessa 1 2 3 4 5 Memória 1 2 3 4 5 Escreve tempo resultado 1 clock 53
  • 54. Vantagens do RISC Instruções têm o mesmo tamanho: busca e decodificação simples e com tempo reduzido Instruções simétricas e com uso dos registradores facilita a seqüência das operações do pipeline O uso de apenas instruções load & store para referên- cias à memória permite o uso do estágio de execução para cálculo de memória, para depois, no seguinte, acessar a memória 54
  • 55. Problemas a vista: conflitos do pipeline Conflitos estruturais: com uma memória única para dados e instruções, existe um conflito entre o ciclo de busca de instrução e escrita em memória; a solução é usar duas memórias independentes (design) Conflitos de controle: obrigam a parada do pipeline Instruções de desvio Paradas geram bolhas no pipeline Ordem de execução add $4,$5,$6 busca di ULA mem w reg beq $1,$2,40 busca di ULA mem w reg bolha bolha bolha bolha bolha lw $3,300($0) busca di ULA mem w reg tempo 55
  • 56. Outros conflitos Conflitos por dados: a próxima instrução utiliza um operando da instrução anterior que ainda não está pronto: add $s0, $t0, $t1 sub $t2, $s0, $t1 Ordem de execução add$s0,$t0,$t1 busca di ULA mem w reg busca di sub $t2,$s0,$t3 di ULA mem w reg tempo 56
  • 57. Soluções clássicas para conflitos Reordenação do código (compilador): mudar a ordem de execução sem que o resultado da execução global seja alterado pode evitar as bolhas Incluir instruções do tipo NOP Adiantamento de instruções Pré-suposição da realização do desvio condicional (if) Predição dinâmica em loops e desvios baseado em dados armazenados (história) E em pipelines superescalares? Mais complexidade... 57
  • 58. Próximo passo... Hierarquia de Memória: reduzindo o tempo de acesso aos dados 58
  • 59. Os componentes clássicos de um computador Computer Processor Memory Devices Control Input Datapath Output O processador deve buscar cada dado e instrução na memória durante a execução de um programa: o tempo de acesso é fundamental para o desempenho! 59
  • 60. Desafios para a memória... Desempenho da CPU aumenta 25-50% p.a. Desempenho das memórias, cerca de 7% p.a. Capacidade Velocidade Lógica: 2x em 3 anos 2x em 3 anos DRAM: 4x em 3 anos 1.4x em 10 anos DRAM Disco: 2x em 3 anos 1.4x em 10 anos ano Tam Tempo de Ciclo 1980 64 Kb 250 ns 1983 256 Kb 220 ns 1986 1 Mb 190 ns 1989 4 Mb 165 ns 1992 16 Mb 145 ns 1995 64 Mb 120 ns 60
  • 61. Reflexões Sobre Arquiteturas de Memórias A velocidade de memória aumenta muito menos rapidamente que a dos processadores (Lei de Moore) Para máquinas + rápidas, é necessário projetar um sistema de memória de forma a não desperdiçar os ganhos adquiridos com o processador Solução: hierarquia de memória e caches É desejável que o usuário “acredite” que ele tem um espaço de memória enorme, mesmo se a quantidade de memória é sabidamente limitada O SO precisa suprir o mesmo espaço de memória para vários usuários sem que haja conflito Solução: Memória Virtual 61
  • 62. Melhorando o desempenho: Princípio da localidade Localidade Temporal Uma palavra de memória que acaba de ser referenciada, tende a ser novamente referenciada Localidade Espacial Itens cujos endereços estão próximos daqueles que acabam de ser referenciados tendem a ser referenciados também brevemente Conclusão: usar mecanismos que permitam armazenar temporariamente o material com que se trabalha Observar a estrutura dos programas: Programas acessam somente uma pequena porção de memória num curto espaço de tempo variáveis – temporal, laços - temporal e espacial, percurso de arrays - espacial 62
  • 63. Idéia de hierarquia para a memória Dividir o espaço de memória em níveis com tamanhos, velocidades e custos diferentes por nível O princípio da localidade pode ser aplicado diretamente à hierarquia de memória: quanto mais rápida a memória, mais próxima ao processador Processador Velocidade Tam Custd: $/bit Exemplo + rápida menor + alto 64k SRAM Memória Nível 1 Memória Nível 2 64M DRAM Memória Nível 3 + lenta maior + baixo 6.4 G Mag. Disk capacidade 63
  • 64. Hierarquia de Memória atualmente Fonte: Slides Patterson Capacidade Estágio Nível + Alto Tempo de Acesso Unidade + rápido Registradores CPU ~100 Bytes Registradores ~10 ns prog./compil. Operandos Inst. 1-8 bytes Cache K Bytes Cache 10-100 ns contr. cache Blocos 8-128 bytes Memória Principal M Bytes Memória 100ns-1us SO Páginas 512-4K bytes Disco G Bytes Disco ms-3 -4 user/operador Arquivos Mbytes Tape Maior infinito sec-min Tape Nível + baixo 64
  • 65. Funcionamento a hierarquia (1) Pode conter diversos níveis, mas a gerência é feita entre níveis adjacentes Unidades de mapeamento entre níveis: blocos Se a informação solicitada pelo processador estiver presente no nível superior da hierarquia, ocorre um “acerto” (hit) Se a informação não puder ser encontrada nesse nível, ocorre uma “falha” (miss) e um nível mais baixo é acessado para que o bloco desejado seja recuperado A medida de desempenho da hierarquia é relacionada à taxa de acertos dos acessos: fração dos acessos à me- mória encontrados no nível superior Outra medida: taxa de falhas = 1 – taxa de acertos 65
  • 66. Funcionamento a hierarquia (2) Desempenho = tempo de acesso à memória 1. Tempo de acerto (ta): tempo para acessar o nível superior da hierarquia (RAM) + tempo necessário para se determinar se o acesso é ou não um acerto 2. Penalidade por falta (tf): tempo para substituir um dos blocos do nível superior pelo bloco do nível inferior com a informação desejada + tempo para enviar o dado ao processador ta << tf: tempo de acesso ao nível inferior é muito maior Hierarquia de memória tem influência direta na gerên- cia de memória feita pelo SO, no código gerado pelo compilador e até mesmo no tipo de aplicação a ser executada na máquina. 66
  • 67. Conceitos básicos sobre Memória Cache Cache: esconderijo! ☺ De maneira abrangente: qualquer memória gerenciada que tira proveito das propriedades de localidade Como fazer para guardar os dados e instruções recentemente usados numa cache: Como saber se um item de dado está ou não na cache? Se estiver, como achá-lo? 67
  • 68. Conceitos básicos sobre Memória Cache Caches com mapeamento direto mapeiam cada endereço de memória numa locação específica da cache Várias locações de memória têm a mesma locação na cache Usa um mecanismo modulo N (N é potência de 2) Precisa de uma tag indicando o endereço atualmente armazenado Precisa de um bit de validade indicando se o dado está na cache 68
  • 69. Cache com mapeamento direto simples Memória Cache diretamente mapeado Tamanho = 4 0 1 0 2 1 3 2 4 3 5 6 7 8 9 10 •Cache de 4 (22) palavras 11 12 •Endereços de memória “mod 4” 13 mapeiam locações de cache 14 •Muitos endereços de memória são 15 16 mapeados p/ uma mesma locação 17 •Usa log2N bits de endereços para 18 a indexaçao da cache 19 69
  • 70. Acesso à cache: Rótulo (tag) e Índice (index) Considerando endereços de memória de 32-bits : Uma cache com mapeamento direto de 2N bytes: − Índice (index): Os N bits mais baixos dos endereços de memória − Rótulo (tag): Os (32-N) bits mais altos dos endereços de memória 31 Endereços de Memória N 0 Cache Tag Ex: 0x50 Cache Index Ex: 0x03 Armazenados como 2 N Bytes Bit validade parte do cache “state” Cache com Mapeamento Direto Byte 0 0 Byte 1 1 Byte 2 2 0x50 Byte 3 3 : : : Byte 2N -1 2 N- 1 70
  • 71. Alguns comentários… Cache com mapeamento direto precisa ser grande suficiente , por ex, para que as últimas instruções num laço de execução não se sobreponham sobre as anteriores (a cache com 4 blocos é apenas exemplo) Podem existir 2 caches o numa arquitetura: uma para instruções e outra para dados Em geral, não é mais eficiente que apenas uma cache para um tamanho fixo de cache Mas, o dobro de vazão pode ser compensar No start-up, a cache está vazia (ou inválida) e tem-se uma taxa de falhas elevada inicialmente A abordagem trata assim da localidade temporal mas não da localidade espacial 71
  • 72. Cache com 64KB (DECStation 3100) Endereços de Memória 31 30 29 28 ... ... 19 18 17 16 15 14 13 12 ... ... 7 6 5 4 3 2 1 0 Index 14 Deslocamento 16 V Tag Data-32bits 16k entradas Tag 16 32 Data Valid EQ AND HIT 72
  • 73. Localidade temporal A cache mostrada anteriormente apenas explora a localidade espacial Para tratar com a localidade temporal um bloco de mais de uma palavra é transferido para a cache no caso de uma falha (miss) No exemplo seguinte, a cache tem o mesmo tamanho (64KB), mas 4K entradas para blocos de 16 bytes cada: Os próximos devem gerar acertos ao invés de faltas Isso pode provocar um aumento significativo na taxa de acertos, mesmo com pequenos tamanhos de blocos 73
  • 74. Cache com 64KB (DECStation 3100) Endereços de Memória 31 30 29 28 ... ... 19 18 17 16 15 14 13 12 ... ... 7 6 5 4 3 2 1 0 Block offset Index V Tag Data-0 Data-4 Data-8 Data-12 4k entries Tag Valid EQ Select AND HIT Data 74
  • 75. Resultados de desempenho das duas caches Programa Tam. Bloco TaxaI-miss Taxa D-miss Taxa Comb. miss gcc 1 6.1% 2.1% 5.4% 4 2.0% 1.7% 1.9% spice 1 1.2% 1.3% 1.2% 4 0.3% 0.6% 0.4% Fonte: Livro P&H p. 329 Tamanho da cache: 128KB (64KB + 64KB) 75
  • 76. Tamanho do Bloco de Cache Em geral, um tamanho maior leva a vantagem da localidade espacial dos dados, MAS: Maior tamanho de bloco significa maior penalidade de falhas (miss penalties) – mais tempo para encher um bloco Se o tamanho do bloco é muito grande em relação ao tamanho da cache, a taxa de falhas irá aumentar TMédio de Acesso = tacerto x (1 – taxa_acerto) + penalidade_falha x tfalhas 76
  • 77. Tamanho do Bloco de Cache Taxa de Taxa de Tempo Médio de Falhas Acerto Explora a Localidade Acesso Espacial Aumenta Miss Penalty Poucos blocos: & Miss Rate compromete a localidade temporal Tam. Bloco Tam. Bloco Tam. Bloco Fonte: Patterson slides 77
  • 78. Acessos em escrita Não é tão simples em se tratando de cache Deve-se assegurar que o dado foi escrito na memória Do contrário, memória e cache podem se tornar inconsistentes 78
  • 79. Acessos em escrita Solução mais simples: write-through Memória e cache escritas ao mesmo tempo Mas se for necessário uma espera para isso, os valores da cache serão perdidos! Usar um buffer (FIFO) no caminho de escrita para a memória Buffers permitem “equalizar” o serviço quando a taxa de chegada de requisições é variável (algo como cadeiras num banco para os clientes esperarem…) 79
  • 80. Outras soluções para escrita… Escrita somente no retorno: write-back Atualização quando o bloco for susbstituído e se houver ocorrido alteração Escrita somente uma vez : write-once Ideal para sistemas multiprocessadores, que compartilham um mesmo barramento (mais adiante) O controlador da cache escreve a atualização na memória principal sempre que o bloco for atualizado pela primeira vez na cache – ou seja, faz um write-through e ainda alerta os demais componentes ligados ao barramento que houve a alteração 80
  • 81. Comparando as três soluções write-through : pode acontecer uma grande quantidade de escritas desnecessárias na memória… write-back : minimiza o problema, mas a memória pode ficar temporariamente desatualizada, obrigando que outros dispositivos acessem os valores via cache… write-once : conveniente, mas apenas em sistemas com múltiplas CPUs; utilização excessiva do barramento pode ser um fator de queda de desempenho… 81
  • 82. Elementos de Projeto de uma Cache Definição do tamanho Função de mapeamento de dados Memória/cache Algoritmos de substituição de dados na cache Política de escrita na cache 82
  • 83. Próximo passo... Hierarquia de Memória: Memória Virtual, Paginação, Aumento de Desempenho 83
  • 84. Hierarquia Completa de Memória Fonte: Slides Patterson Capacidade Estágio Nível + Alto Tempo de Acesso Unidade + rápido Registradores CPU ~100 Bytes Registradores 1~10 ns prog./compil. Operandos Inst. 1-8 bytes Cache K Bytes Cache 10-100 ns contr. cache Blocos 8-128 bytes Memória Principal M Bytes Memória 100ns-1us SO Páginas 512-4K bytes Disco G Bytes Disco ms-3 -4 user/operador Arquivos Mbytes Tape Maior infinito sec-min Tape Nível + baixo84
  • 85. Requisitos de um Sistema de Memória Dar a ilusão de um vasto espaço de memória total memória para todos os jobs simultâneos > memória real um job pode usar um espaço de endereços > memória atual Acesso rápido à memória Transparência: Livrar os programadores da tarefa de otimizar da utilização da memória → cache:memória:disco Espaço de endereçamento uniforme: Não se pode saber onde os programas serão carregados nem quais partes dos programas serão mudadas e recarregadas durante a execução Ideal: os endereços situados entre 0 e 2N-1 85
  • 86. Endereço virtual x endereço físico O programador usa um espaço de endereçamento virtual “imenso”, por ex. 231 bytes Ele pode escrever programas como se todas essas posições de memória existissem realmente! O SO e a arquitetura de memória gerenciam o mapeamento endereço virtual – físico Se o programa é realmente muito grande, deve existir uma forma de armazená-lo na memória da máquina – seja em memória ou em disco (“memória de massa”) A memória real é normalmente menor que o espaço virtual de endereçamento o tanto quanto puder ser suportado… endereços físicos ou reais 86
  • 87. Memória Virtual (2) Mapeamento endereços virtuais – memória real é feita em blocos – tipicamente de 1 a 8KB Blocos de memória virtual são chamados páginas Páginas de memória virtual que estão no disco são chamadas de paginadas-fora (paged-out) Uma referência feita a uma página que não está na memória principal é chamada de falha de página (page fault) A transformação entre endereços virtuais em endereços físicos (memory mapping) é feito através de uma tabela de paginação (page table) 87
  • 88. Mapeamento de endereços virtuais Prog A Virtual Physical Memory Prog B Virtual Addresses Addresses Addresses 0x0000 Unused Unused 0x1000 0x2000 Unused 0x3000 Memory address 0x4000 space 0x5000 0x6000 0x7000 No memory Virtual Address ::: Disk Addresses ::: Space 0xD000 0xE000 0xF000 88
  • 89. Mapeamento de Memória O mapeamento Endereço Virtual x Endereço Físico é também chamado de translação de endereço No INTEL 80386: espaço de end. lógico de 4GB ou 230 bytes – páginas de 4KB – endereços de 12 bits. Uma tabela de página poderia ocupar de memória (entradas de 4 bytes) Endereços virtuais são divididos em Número da Página Virtual (NPV) e offset da página (12 bits nesse caso) Mapeamento de memória feito observando-se o NPV na tabela de páginas e concatenando com o offset da página Nas arquiteturas atuais, o tamanho das tabelas de página varia (esquema de diretório de tabelas) 89
  • 90. Processo de Mapeamento Considere um espaço de endereçamento virtual de 4GB 4 GB e um espaço físico em memória de 1 GB 31 30 29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0 Número da Página Virtual Deslocamento Translação 29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0 Número da Página Física Deslocamento 1GB 90
  • 91. Falhas com Memória Virtual Custo de uma falha é muito alto: em torno de ms para acessar um bloco de disco As páginas devem ser grandes o suficiente para amortizar o alto custo de acesso (4 KB, 8 KB, e mesmo MB …) Mas não tão grandes para evitar a fragmentação… Tamanho fixado pelo hardware (MMU) 91
  • 92. Falhas com Memória Virtual Re-estruturação de programas reduz taxa de falhas Processar as falhas de página por SW e não por HW Algoritmos sofisticados podem ser empregados Pequenos aumentos na miss rate podem ser recompensadas pela redução de custos do algoritmo Evitar a política write-through: Escritas em níveis mais baixos são muito demoradas 92
  • 93. Tabelas de Páginas (1) As páginas deveriam poder ser localizadas em qualquer lugar conveniente na memória Qualquer página virtual pode ser mapeada em qualquer página física disponível Chamado mapeamento totalmente associativo Tabela de páginas faz o mapeamento e reside na memória Cada programa tem sua própria tabela de página O hardware tem um registrador de tabela que aponta para a tabela de página Os diagramas anteriores se tornam então: 93
  • 94. Tabelas de Páginas (2) 4GB 31 30 29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0 Número da Página Virtual Deslocamento 20 Endereço Virtual Registrador da tabela de página 12 Validade Número da página física Page table 18 Se Zero : Falha de 29 28 .. .. 15 14 13 12 11 10 9 .. .. 3 2 1 0 página Número da página física Deslocamento Endereço Físico 1GB 94
  • 95. Falhas de Página (Page Faults) (1) Quando o valid bit é zero ele indica que a página não está na memória principal O controle deve ser passado ao SO para buscar a página (ou criar a página, para páginas de dados…) Tipicamente o SO cria uma imagem do programa no disco quando o programa começa Busca as partes relevantes quando é preciso Onde olhar? – um mapeamento é necessário para mostrar onde estão as imagens no disco Pode ser parte da tabela de páginas ou ser feita em separado 95
  • 96. Falhas de Página (Page Faults) (2) Se todas as páginas na memória física estão em uso e o S.O. precisa substituir uma – Qual será escolhida? Política de substituição de páginas Localidade Temporal é um critério normal Menos recentemente usada (MRU ou LRU) i.e., sendo os acessos recentes às páginas: 10, 12, 9, 7, 11, 10. MRU numa falha de página trocaria a página 12; na próxima falha, substituiria a página 9, etc. Tabelas de páginas tem um bit de uso ou referência “Levado a 1” quando a página é acessada Pode ser periodicamente “levado a 0” pelo S.O. Possibilita que o S.O. tenha uma visão aproximada das páginas recentemente utilizadas 96
  • 97. Falhas de Página (Page Faults) (3) Para um endereço virtual de 32-bits, páginas de 4KB (12-bits) com 4 bytes por entrada na tabela de página 220 pag x 4 bytes = 4MB Isto para cada programa ativo → muito memória “presa” em tabelas de páginas não usadas Poderiam ser adicionados registradores de limites e somente mapear as páginas para endereços virtuais baixos para limitar o registrador mas, num modelo normal, o segmento de dados cresce para cima e a pilha para baixo não consistente com a abordagem de limites Usa 2 tabelas de páginas com 2 registradores de limite – um para a pilha e outro para o resto… 97
  • 98. Operações de escrita Write-through para o nível mais baixo da hierarquia (o disco nesse caso) é impraticável nesse caso devido ao alto custo para a escrita no disco A idéia é “salvar as escritas” para depois executá-las Write-back quando a página é substituída! Entretanto... Custoso e desnecessário fazer write-back para páginas para as quais não forem feitas escritas (por ex., páginas de programa) Assim, as tabelas de páginas têm um bit de sujeira (dirty bit) por entrada que é setado quando dados são escritos na página Se esse dirty bit é setado quando a página precisa ser substituída, ele é escrito em write-back para a imagem do programa no disco 98
  • 99. Fazendo isso rápido… Tabela de páginas em máquinas modernas está na memória principal: 2 registradores: um de base da tabela na memória e outro indicando o no. de entradas Portanto ... Cada acesso à memória lógica de um programa necessita de dois outros acessos à memória fícia para achar a tabela de páginas Como agilizar isso? Localidade de referências novamente Inserir numa cache as tabelas de página mais recentementes utilizadas: Translation-lookaside buffer = cache inserida dentro da MMU (memory management unit) 99
  • 100. Translation-Lookaside Buffer (TLB) Número da página virtual Validade Rótulo End. Página Física TLB Memória Validade Página Física ou End. Disco Física Tabela de Página Disco 100
  • 101. Translation-Lookaside Buffer TLB é uma cache Se não existir a entrada na TLB, é preciso buscá-la na tabela de páginas que está na memória principal A tabela de páginas tem uma entrada para cada página O TLB e a página usam o dirty bit e o reference bit Usar a abordagem write-back para esses bits da TLB para a página de tabelas numa falha é muito eficiente Características típicas: Block size 1-2 page table entries (4-8 bytes each) Hit time 1/2 to 1 clock cycle Miss penalty 10 to 30 clock cycles Miss rate 0.01% - 1% TLB size 32 to 1024 entries Fonte: Livro P&H p. 492 101
  • 102. Sistemas Modernos de Memória Characteristic Intel Pentium Pro PowerPC 604 Virtual address 32 bits 52 bits Physical address 32 bits 32 bits Page size 4 KB, 4 MB 4 KB, selectable, and 256 MB TLB organization A TLB for instructions and a TLB for data A TLB for instructions and a TLB for data Both four-way set associative Both two-way set associative Pseudo-LRU replacement LRU replacement Instruction TLB: 32 entries Instruction TLB: 128 entries Data TLB: 64 entries Data TLB: 128 entries TLB misses handled in hardware TLB misses handled in hardware Characteristic Intel Pentium Pro PowerPC 604 Cache organization Split instruction and data caches Split intruction and data caches Cache size 8 KB each for instructions/data 16 KB each for instructions/data Cache associativity Four-way set associative Four-way set associative Replacement Approximated LRU replacement LRU replacement Block size 32 bytes 32 bytes Write policy Write-back Write-back or write-through 102
  • 103. Próximo passo... Interface: dispositivos de entrada e saída (E/S) e barramentos 103
  • 105. Os componentes clássicos de um computador Computer Processor Memory Devices Control Input Datapath Output Características extremamente dependentes da tecnologia, assim como os processadores “Um pouco neglicenciados” nos últimos anos... 105
  • 106. Arquitetura Típica Processador interrupções via de dados + controle Cache Barramento de Memória – E/S Memória Controlador Controlador Controlador Controlador Principal E/S E/S E/S E/S Display Teclado Rede (monitor) 106
  • 107. Desempenho em Sistemas de Entrada e Saída Seja um programa com tempo de execução de 100s, com 90% do tempo em CPU e 10% E/S Se a CPU aumenta a velocidade 50% por ano, ao fim de 5 anos, o programa passa a ser executado em: 90/(1.5)5 + 10 = 22 → 45% do tempo em E/S !!! Métricas de desempenho complexas: Supercomputadores: leitura de arquivos imensos e escrita de vários arquivos pequenos → vazão Processamento de Informações: tempo de resposta e desempenho em termos de vazão Sistemas de Arquivo: acessos a arquivos pequenos, dados seqüenciais, mais leitura e menos escrita → utilização do espaço e tempo de resposta 107
  • 108. Arquitetura de Entrada/Saída Características dos dispositivos de E/S (I/O) Cada dispositivo tem um endereço de porta Limite de dispositivos ~ número de bits da porta Acesso da CPU via bus + interface do dispositivo Esquemas para a transferência de dados Dispositivos lentos Programada com espera ocupada (polling ou busy- waiting) Acionada por interrupção Dispositivos rápidos Acesso direto à memória – DMA (Direct Memory Access) Utilizando canais de dados – Controle de barramentos 108
  • 109. Tipos de Dispositivos e E/S Dispositivo Tipo Parceiro Taxa Ordem (KB/sec) Teclado entrada humano 0.01 0 Mouse entrada humano 0.02 0 Alto-falante saída humano 0.60 1 Line printer saída humano 1 2 Floppy disc armazenagem máquina 50 3 Laser printer saída humano 100 4 Scanner entrada humano 200 4 Optical disc armazenagem máquina 500 4 LAN entrada/saída máquina 10K-1G 5 Hard disc armazenagem máquina >10K 5 Display saída humano 60K 6 A arquitetura de E/S deve acomodar uma variedade enorme de dispositivos periféricos, com diferenças significantes de desempenho. 109
  • 110. Dispositivos de E/S simples Lentos, geralmente orientados a caracteres (8bits) : teclados, displays, impressoras, etc. Muito mais lentos que o processador... ... Necessidade de protocolo de controle de fluxo de dados, hand-shaking protocol Requerem, pelo menos: um registrador de dados um registrador de controle com um bit done (colocado em 1 quando pronto para receber ou enviar o próximo dado, ou 0 em caso contrário). 110
  • 111. Mouse Processador lê os contadores para determinar a posição e atualizar a tela Botões pressionados geram eventos Tudo controlado por software Interface E/S por polling (mais adiante...) + 20 em Y + 20 em Y + 20 em Y – 20 em X + 20 em X – 20 em X Posição + 20 em X inicial – 20 em Y – 20 em Y – 20 em X – 20 em Y + 20 em X 111
  • 112. Discos Magnéticos (hard disks) Trilhas Superfície rotativa Superfícies magnética 1 ou mais pratos Rotação a ~ 103 RPM Divididos em (~1000 a Setores 5000) trilhas concêntricas Cada trilha tem tipicamente 64 a 200 setores (entre 512- 4096 bits) 112
  • 113. Discos Magnéticos O setor, às vezes chamado bloco, é a unidade fundamental de transferência (não se pode transferir menos que ela) Discos mais recentes utilizados em PC’s só tem 1 prato devido aos ganhos tecnológicos na confecção dos discos Em geral, fabricantes informam tempo de busca máximo, mínimo e médio de acesso aos dados Discos flexíveis utilizam tecnologia da década de 80: menor velocidade, confiabilidade e capacidade Discos ópticos tornam-se parte integrante nos anos 90... 113
  • 114. Desempenho de discos Os braços movem-se entre os pratos rotativos, lendo ou escrevendo informações Tempo de busca (seek time) Tempo para o braço localizar a trilha correta Latência rotacional Tempo para encontrar o setor correto Tempo de transferência Tempo para transferir o bloco de informações Cabeças Muitos discos têm uma cabeça por superfície – alta densidade de dados Alguns discos mais antigos têm múltiplas cabeças por superfície – baixa latência de acesso e alto desempenho. 114
  • 115. E/S com Disco Registradores de dispositivo: Endereço no disco Número de bytes a ser transferido, que pode ser <, = ou > um setor. Endereço de memória para a transferência Registrador de comando: tipo de comando: read - disco para memória; write; write&verify (ler depois de escrever), etc. habilita interrupção go - quando ligado promove a transferência para o início, utilizando os valores correntes nos registradores de endereço e de comprimento. Registrador de status Indicadores de erros - unreadable/unwritable sector, etc. Livre/ocupado (idle/busy) 115
  • 116. Conexão dos Dispositivos de E/S ao Processador e à Memória Conexão via barramento: Nada mais é que um conjunto de ligações (fios) que forma um canal de comunicação compartilhado entre os vários subsistemas (processador, memória, entrada/saída) Limitação: gargalo para a comunicação Desempenho limitado fisicamente pelo número de dispositivos conectados, comprimento Inclui uma via de controle (solicitações) e uma via de dados (informações): A via de controle inclui envolve linhas para requisição do barramento e para garantir o seu controle A via de dados tipicamente tem de 8 a 64 bits de largura, i.e. 8 a 64 ligações separadas 116
  • 117. Interconexão de componentes (1) Diretamente com o processador Nenhuma máquina moderna aplicam esta solução, em geral Nem flexível, nem extensível Barramento plano (backplane) Barramento “curto” e de propósito geral – conecta memória, periféricos e o processador Deve seguir um padrão – ex. VME, PCI, etc. Barramento E/S longo, interligando diferentes tipos de dispositivos Deve seguir um padrão comercial: SCSI, IPI, etc. Barramento processador-memória Barramento “curto” de altíssima velocidade, especializado para otimizar as comunicações memória- processador Geralmente proprietário – específico para a máquina ou vendedor na busca de melhoria de desempenho 117
  • 118. Interconexão de componentes (2) Local Area Network (LAN) Pode ser usada para compartilhar periféricos, como impressoras, sistemas de arquivos, etc. Distâncias muito maiores Geralmente taxas de dados “moderadas/altas” entre 100Kbits/sec e 155 Mbits/sec Projetos de alto desempenho envolvem múltiplos barramentos para produzir caminhos ótimos para os dados. Geração futura deve usar “switches” especializados – derivados da tecnologia LAN 118
  • 119. Barramentos Síncronos e Assíncronos Síncrono: inclui um clock em suas linhas de controle Requer que cada dispositivo do barramento “rode” a uma mesma velocidade. Barramentos Processador-memória : sincronização na leitura e escrita; poucos dispositivos, próximos e muito rápidos Assíncrono: não “segue” um clock Pode ligar vários dispositivos de características diferentes, sem preocupação com o sincronismo Tipicamente para entrada/saída Controlado por um mecanismo de handshaking (vários passos, mas o receptor e transmissor só seguem em frente se ambas as partes envolvidas estão de acordo) 119
  • 120. Arbitragem do barramento (1) Como isso se comporta na prática? O que acontece quando vários dispositivos querem ter acesso ao barramento? Daisy chain Hard Floppy Processador Memória Disk Disk Bus grant Bus request Comando Controlador de 4-8 Barramento Endereço ou Árbitro 16-? Dados 8-64 120
  • 121. Arbitragem do barramento (2) Quando um dispositivo (incluindo a CPU) necessita do barramento, ele envia (ou “seta”) uma requisição na request line Existe uma linha única de requisições funcionando em “wired-OR “ Só distingue se existe ou não requisição O árbitro atende uma requisição quando o barramento torna- se disponível “setando” a linha grant line O primeiro dispositivo que “vai para nível 0” pode usar o barramento Bus Request Árbitro do Bus Grant Barramento A permissão pode Dispositivo Dispositivo Dispositivo Dispositivo ou não se propagar 1 2 3 4 121 pela cadeia
  • 122. Arbitragem do barramento (3) Dispositivo que “ganha” o barramento: Torna-se o mestre do barramento Ele não propaga o sinal de “grant” para os outros dispositivos desligados (em nível baixo) Portanto, um mecanismo de prioridade é construído – os dispositivos mais próximos do árbitro têm maior prioridade Garantir que outros dispositivos tenham acesso ao barramento Assim limitar “a janela de tempo” para assegurar que restrições temporais críticas não sejam ultrapassadas nos dispositivos O mestre colocar comandos, endereços e dados no barramento para serem tratados pela memória ou por um outro dispositivo Se a transferência não recebe um acknowledgment, uma 122 exceção de erro de endereço de barramento é gerada
  • 123. Arbitragem do barramento (4) Esquema com nível de prioridades no barramento: nível 2 > nível 1 Conflito: 3 > 4 > 1 > 2 Req. nível 1 Árbitro Req. nível 2 Grant nível 2 do Grant nível 1 Barramento Dispositivo Dispositivo Dispositivo Dispositivo 1 2 3 4 123
  • 124. Padrões para barramentos (1) Barramento E/S permite a expansão da máquina: padronização é fundamental! SCSI (Small Computer Systems Interface) e Ethernet são exemplos de padrões criados por reunião de fabricantes PCI criado pela INTEL e depois adotado por outras PCI : barramento para backplane de propósito geral SCSI: barramento de entrada e saída Faz a interface entre o barramento do backplane e o barramento processador-memória 124
  • 125. Padrões para Barramentos (2) Source: P&H p. 395 Característica PCI SCSI tipo backplane E/S largura de dados 32 a 64 bits 8 a 32 bits mestre do bus múltiplos múltiplos Arbitragem centralizada, com distribuída, com requisição em paralelo acesso por seleção clock Síncrono 33 a 66Mhz Ambos (5 a 10Mhz) Banda passante 80 MB/s 5 or 40 MB/s No.max dispositivos 1024 7 a 31 comprimento max 0.5m 25m Nome padrão PCI ANSI Em evolução constante... Dados tabelados em 1997! 125
  • 126. Interface dos Dispositivos E/S com a Memória, Processador e SO Um protocolo de barramento define exatamente o que deve ser feito em uma transmissão de dados entre subsistemas O SO é responsável pela gerência de toda a E/S: Proteção de acesso aos dispositivos Define abstrações para acesso aos dispositivos Trata as interrupções geradas pelo processador e dipositivos Garante o acesso compartilhado aos dispositivos O SO efetua 3 tipos de comunicação: 1. Envio de comandos aos dispositivos 2. Comunicação do dispositivo indicando fim da tarefa 3. Transferência dos dados entre memória e dispositivos 126
  • 127. Envio de Comandos aos dispositivos Dois métodos de endereçamento: Mapeamento de E/S em memória Comandos especiais de E/S Mapeamento em memória: Parte do espaço de endereçamento é reservada aos dispositivos (e protegido dos programas usuário) Leituras/escritas a esses endereços são interpretadas pelo SO como operações de E/S Vantagem: simplicidade e transparência Comandos especiais de E/S: Instruções incluídas no processador Verifica o estado do dispositivo para saber se o comando foi completado ou não (só em modo kernel) 127
  • 128. Exemplo: Teclado e monitores Teclados produzem caracteres à medida em que são digitados, em geral à taxa média de 10 cps Monitores são capazes de exibir textos alfanuméricos à taxa aproximada de 1200 cps Keyboard Registers Controle Data 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Ready/Done Read-only Display Registers Control Data 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Unused (for now) Ready/Done Write-only 128
  • 129. Exemplo - Estrutura de um programa “echo” Assuma que os registradores de E/S são mapeados em memória a partir das posições 0xffff 0000: +0 Keyboard control +4 Keyboard data +8 Display control +12 Display data No modo full-duplex os caracteres inseridos através do teclado não são exibidos a menos que haja um programa que instrua a arquitetura para tal, por ex: 1. aguarde o sinal ready do teclado ser ligado 2. leia o caractere - automaticamente zera (desliga) ready 3. envie o caractere ao display 4. aguarde a exibição ( Não necessariamente verdade, já que o display geralmente é muito mais rápido que a digitação ) 5. volte ao começo 129
  • 130. Exemplo - o código... Programa simples em assembly .text main: li $8, 0xffff0000 usando E/S polled mloop: lw $7, 0($8) # get control register andi $7, $7, 1 # mask out done bit blez $7, mloop # loop waiting for data lw $6, 4($8) # get data/clear kbd done lp2: lw $7, 8($8) # wait for display ready andi $7, $7, 1 # mask out done bit blez $7, lp2 # loop waiting sw $6, 12($8) # display character b mloop # next char 130
  • 131. Analisando o desempenho do Polling A espera “ocupada” do bit done é chamada polling Desperdício de tempo de processamento, já que os dispositivos são (em geral) muito mais lentos do que o processador Por outro lado, no caso de disco magnético o processador pode não dar conta de atender a alta taxa de transferência de dados. Necessidade de outras técnicas é clara: mecanismo de entrada/saída dirigida por interrupção 131
  • 132. Mecanismo de Interrupção Mecanismo que desvia o processador de suas atividades normais quando algum dispositivo precisa ser atendido: 1. A CPU emite uma instrução de E/S e não espera resposta imediata, desviando-se para realizar outra atividade, suspendendo a execução do programa de E/S 2. O processador verifica, no início ou fim do ciclo de execução de cada instrução, se ocorreu alguma interrupção. 3. Em caso positivo (i.e., a interface está para transferir o dado), o controle é transferido para uma rotina de tratamento de interrupção - Interrupt Service Routine ou Interruption Handler 4. O dado é então transferido 5. A CPU retoma ao programa original no ponto em que aconteceu a interrupção. 132
  • 133. Interrupções Internas: Devido a eventos gerados durante a execução de um programa pelas instruções (overflow por divisão por zero, underflow) ou por programação (alarmes) Externas: Devido a sinais externos à CPU: interface de dispositivos de E/S que “avisam” à CPU que existem dados a serem transferidos Algumas podem ser desabilitadas: No nível do dispositivo - afeta apenas um dispositivo No nível do sistema - afeta todos os dispositivos Para lidar com a imensa gama de dispositivos de E/S, os mecanismos de interrupção têm níveis de prioridade definidos 133
  • 134. Como sincronizar as interrupções? Através de fila ou buffer Estrutura tipo first-in, first-out Uma fila para entrada, outra para saída. Se a fila estiver vazia → nenhum trabalho a ser feito. Se a fila de entrada estiver vazia e o programa do usuário necessita uma entrada, então o Sistema Operacional (SO) suspende o programa assume algum outro que possa dar prosseguimento. De maneira similar, se a fila de saída estiver cheia, o SO precisa re-escalonar os processos até que a rotina de interrupção tenha gerado algum dado. 134
  • 135. Filas de I/O Programa do usuário Código de Inicialização para habilitar interrupções main: do work call in Rotina de interrupção do work call out Kbd: get data entrada Q put in Q in: get from Q if full beep if empty OS Kbd data resume suspends out: add to Q saída Q Disp: get data from Q if full OS if none disable suspends Display data interrupt send to display resume 135
  • 136. Múltiplos Dispositivos Quando ocorre uma interrupção pode-se sair varrendo um a um para determinar quem interrompeu: test chain Processo lento, utilizado em máquinas antigas. Certos dispositivos têm tempos críticos de resposta: se o dado não for tratado a tempo ele será perdido ou outro prejuízo na aplicação pode acontecer. Diversas soluções: Interrupção vetorizada - cada dispositivo tem associado um endereço exclusivo na memória onde um ponteiro para sua ISR pode estar armazenado. Interrupção com vetorização parcial - dispositivos são divididos em classes com faixa de tempo crítico similares, vetorizados todos para o mesmo endereço. O test chain é realizado para o refinamento da identificação. Interrupção não-vetorizada - test chain e outros truques... 136
  • 137. Vetores de Interrupção .ktext 0x80000000 .word Lkbd # vector for kbd .word Ldisp # vector for display .ktext 0x80000020 .word Lhd # hard disk vector .ktext 0x80000040 .word Lscan # scanner vector .ktext Lkbd: ... # ISR for kbd resume Ldisp: ... # ISR for display resume Lhd: ... # ISR for disk resume Lscan: ... # ISR for scanner resume 137
  • 138. Vetorização Parcial .ktext 0x80000000 .word slow # vector for slow devices .ktext 0x80000020 .word med # vector for med speed devices .ktext 0x80000040 .word fast # vector for fast devices .ktext slow: test kbd # ISR for slow devs test disp test clock Not MIPS code! test mouse resume kbd: ... # ISR for kbd resume disp: # etc. #-------- med: ... # ISR for med speed devs resume #-------- fast: ... # ISR for fast devs resume 138
  • 139. Do ponto de vista da CPU A CPU é interrompida: Qual tipo de interrupção? Qual o dispositivo sinalizou? Reagir imediatamente, mais tarde, ignorar? O que fazer com o programa interrompido? Quando retornar à sua execução? Rotina de Tratamento da Interrupção Antes de ir para a rotina a CPU “salva o contexto” do processo em execução A CPU recebe o endereço inicial da rotina de tratamento da interrupção e inicia sua execução Embora melhore o desempenho, a CPU ainda “perde tempo” com a execução da rotina de interrupção e controle da transferência: imagine a transferência de 100KB do disco para a memória 139
  • 140. Transferência entre Dispositivo e Memória Polling e Interrupções funcionam bem para transfe-rências entre dispositivos de banda passante baixa As interrupções retiram do processador ô “ônus” de ter que esperar cada evento de E/S, mas ainda assim, a transferência do disco para memória não necessitam do controle direto da CPU A solução encontrado foi criar um mecanismo de transferência denominado DMA (direct memory access) ou acesso direto à memória 140
  • 141. Acesso Direto a Memória (DMA) Dados são transferidos entre a memória e o disco diretamente, sem o envolvimento do processador. Interrupção ainda utilizada para dizer à CPU quando a transferência é iniciada e terminada. Transferências DMA: CPU informa ao controlador de disco a operação a ser realizada e os endereços envolvidos. O controlador do dispositivo realiza então a operação, através de DMA, deixando livre a CPU Controlador de barramento faz a arbitragem do barramento. O controlador do dispositivo informa à CPU o término da transferência usando uma interrupção ou no caso de erro 141
  • 142. Análise do DMA (1) Um barramento é um caminho compartilhado de alta velocidade. Considere a execução normal de um programa que requisita acessos à memória ao processador: Processador Tela Teclado Bus Memória Disco Atividade no Bus (P/M) Processador trabalhando Inst R Data R Inst R Inst R Inst R Data W Inst R 142 Tempo
  • 143. Análise do DMA (2) Agora, com o disco envolvido na transferência DMA Processador Tela Teclado Bus Memória Disco Atividade no Bus (P/M/D) Inst R Data R Inst R Disk R/W Inst R Disk R/W Data W Tempo Inst R Disk R/W Inst R Inst R Data W Disk R/W Inst R 143
  • 144. Análise do DMA (3) Bus é compartilhado por transferências processador- memória e disco-memória Assim, o desempenho do processador pode sofrer uma redução. Arquiteturas multi-barramentos são usadas para reduzir este efeito É preciso que algo seja usado para organizar o compartilhamento do barramento: árbitro ou controlador de barramento A conexão ao barramento e a tomada de decisões gasta tempo. Em alguns protocolos de barramentos SO, somente rajadas (burst) limitadas de dados podem ser transmitidas: burst-mode 144
  • 145. Próximo passo... Arquiteturas Avançadas: multicomputadores e multiprocessadores 145
  • 146. Sistemas Multiprocessadores (I) Mais que uma CPU Em geral confinadas a um mesmo espaço físico (gabinete, rack, ...) Fortemente acoplados Comunicação via memória compartilhada 146
  • 147. Sistemas Multiprocessadores (II) CPU cache CPU Bus Mem 147
  • 148. Sistemas Multiprocessadores (III) CPU Switch (Ômega) Mem 148
  • 149. Sistemas Multiprocessadores (IV) CPU Mem Crossbar 149
  • 150. Sistemas Multicomputadores (I) Mais que uma CPU Máquinas podem estar geograficamente distantes Sistemas fracamente acoplados Cada processador possui sua memória local própria e a comunicação é feita por passagem de mensagens 150
  • 151. Sistemas Multicomputadores (II) Mem local CPU Rede 151
  • 152. Sistemas Multicomputadores (III) MALHA TRIDIMENSIONAL (k=3, n=3) Mem local CPU 152
  • 153. Desafios Balanceamento de carga entre processadores Adequação aplicação x arquitetura Coerência de memória (cache) Linguagem de programação e compiladores Limitações físicas: temperatura, comprimento das ligações, custo 153