Arquitetura de Computadores: Pipeline, Memória, Cache e E/S

Computação32,5 KB

Pipeline e Conflitos

Fases: IF (busca), ID (decodificação e leitura de registradores), EX (execução e cálculo), MEM (acesso à memória), WB (escrita em registradores).

ISA MIPS: todas as instruções possuem 32 bits e poucas instruções.

Conflitos

Estruturais → replicação de recursos.

Dados → HW: retardo (forwarding); SW: inserção de nops ou rearranjo de instruções.

Controle → HW: congelamento do pipeline (freeze), especulação e aceleração do desvio; SW: rearranjo de instruções e uso do efeito de atraso do desvio (delay slot).


SuperPipe → estágios menores e clock mais alto.

SuperEscalar → paralelismo real, com replicação de unidades (mais ALUs, banco de registradores com mais portas de leitura e escrita).

Desempenho e Hierarquia de Memória

Tempo de CPU = (ciclos de CPU + ciclos de memória) × Período

Ciclos de memória = ciclos de leitura + ciclos de escrita.

Ciclos de leitura = nº de leituras × miss rate × penalidade de miss.

Tempo de acesso à memória = hit time + miss rate × miss penalty

  • Reduzir hit time: cache menor e menor associatividade.
  • Reduzir miss rate: maior tamanho de bloco, maior associatividade e política de substituição.
  • Reduzir miss penalty: early start, critical word first e cache multinível.

Memória Virtual

Segmentação: esquema de blocos de tamanho variável, para que programas e dados possam ser divididos em espaços de endereçamento lógico independentes, auxiliando também na proteção e no compartilhamento de memória.

Área de swap: espaço no disco reservado para as páginas de um processo, onde são armazenadas as páginas que forem substituídas.

MMU: mapeia endereços virtuais em físicos, avisa sobre page faults, protege processos e trata falhas.

TLB: cache associativo dentro da MMU.

Kernel mode: permite indicar se o processo pertence ao S.O. ou ao usuário, por meio de um bit específico.

Exemplo de Paginação

Endereço virtual = 35 bits | Página = 8 KB | Endereço físico = 32 bits

Na mesma figura, layout da tabela de páginas:

Image

13 bits de offset, pois 213 = 8 KB.

Quantidade de entradas = 227 | Tamanho máximo = 232 = 4 GB | Espaço de endereçamento virtual = 235 = 32 GB

Custo em bits de uma TLB associativa de 2 vias com 256 entradas:

128 páginas, cada uma com 2 blocos de dados. Cada bloco possui 1 bit de presença, 3 de proteção, 1 de dirty, 1 de tag (página virtual) e a página física. Assim: 1 + 3 + 1 + 22 + 19 = 46 bits por bloco → 92 bits por página → 11.776 bits no total.

Disco e Multiprocessamento

Latência de disco = Seek time (0,50 / velocidade de rotação) + Rotation time + Transfer time + Overhead

MultiCore: SMP ou passagem de mensagens (MSGPASS).

  • Core-core: memória compartilhada ou envio de dados.
  • Processo-processo: variáveis compartilhadas com send e receive.
  • MIPS: LoadLink e StoreConditional; loads em locais especiais.

MultiThread: Fine-grain (troca sempre), Coarse-grain e SMT.

GPU: multithread, com memória mais larga.

Tamanho de Cache: Mapeamento Direto e Associativo de Grau 4

Exemplo: memória de 232 bytes, cache com 2K slots e blocos de 32 bytes.

Mapeamento direto

  • Cache com 211 slots, índice n = 11.
  • Bloco de 32 B = 25 B, onde 25 = 2m+2, logo m = 3.
  • O bloco possui 2m+5 bits = 28 = 256 bits.
  • Tamanho da tag = 32 − (n + m + 2) = 16 bits, e bit de validade = 1.

Total de bits (mapeamento direto) = 2n × (tamanho do bloco + tamanho da tag + tamanho do bit de validade)

No exemplo: 211 × (256 + 16 + 1) = 211 × 273 = 559.104 bits = 69.888 B.

Associativo de grau 4

  • 2K slots / 4 = 512 = 29, logo n = 9.
  • Cada slot possui 4 blocos de 32 bytes → tamanho do bloco = 256 bits.
  • Bits da tag = 27 − 9 = 18 bits (27 = índice + tag; 9 = bits usados para indexar a cache); validade = 1 bit.

Total de bits (associativo grau 4) = 2n × 4 × (bits do bloco + bits da tag + bit de validade) = 29 × 4 × (256 + 18 + 1) = 211 × 275 = 563.200 bits = 70.400 B.

Barramentos e Entrada/Saída

Barramentos: canal de comunicação compartilhado, geralmente com interface padrão, que suporta vários dispositivos. É síncrono, possuindo clock.

Redes de E/S: conexões seriais ponto a ponto de alta velocidade (comuns em sistemas embarcados).

Tipos de barramento:

  • Processador-memória: curto e rápido, para transferência de blocos de cache.
  • E/S: longo e lento, com vários dispositivos, conectado ao barramento processador-memória por meio de um backplane.
  • Backplane: intermediário entre os dois anteriores (ex.: SATA).

Controle: único (apenas o processador controla, mas perde desempenho) ou múltiplo (processador e dispositivos, exigindo coordenação).

Endereçamento de E/S: mapeado em memória, ou por instruções específicas de E/S (a ISA do processador possui IN e OUT específicos).

Polling: o processador verifica periodicamente o dispositivo. Interrupção: o dispositivo sinaliza ao processador quando precisa de atenção.

DMA: retira a carga do processador na transferência entre dispositivos de E/S e memória. Intermedia essa transferência, sendo ideal para grandes volumes de dados.

Baixar

PDF Word HTML