34
Peripheral Component Interconnect PCI Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Microprocessadores II Copyright (c) Walter Fetter Lages – p.1

Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Peripheral ComponentInterconnect

PCIWalter Fetter [email protected]

Universidade Federal do Rio Grande do SulEscola de Engenharia

Departamento de Engenharia ElétricaMicroprocessadores II

Copyright (c) Walter Fetter Lages – p.1

Page 2: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

X-bus

• Extensão bufferizadado barramento deexpansão onde sãoconectados osdispositivos on-board

• Taxa de transferêncialimitada

Copyright (c) Walter Fetter Lages – p.2

Page 3: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Barramento Local

• Interface dependentedo processadorutilizado.

• Não permite concor-rência

Copyright (c) Walter Fetter Lages – p.3

Page 4: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Peripheral Component Interconnect

• Operação independente do processador• 32 bits de dados (extensão para 64 bits)• 32 bits de endereços (extensão para 64 bits)• Suporta bus-master• Arbitragem oculta• Paridade• Três espaços de endereçamento• Configuração automática

Copyright (c) Walter Fetter Lages – p.4

Page 5: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Arquitetura do Sistema PCI

Copyright (c) Walter Fetter Lages – p.5

Page 6: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Slots PCI

Copyright (c) Walter Fetter Lages – p.6

Page 7: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Sinais PCI - Master

Copyright (c) Walter Fetter Lages – p.7

Page 8: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Sinais PCI - Target

Copyright (c) Walter Fetter Lages – p.8

Page 9: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Handshaking

Copyright (c) Walter Fetter Lages – p.9

Page 10: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Ciclo de Barramento Típico

Copyright (c) Walter Fetter Lages – p.10

Page 11: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Comandos

• Reconhecimento de interrupção (0000)• Ciclo especial (0001)• Leitura de I/O (0010)• Escrita de I/O (0011)• Leitura de memória (0110)• Escrita de memória (0111)• Escrita de configuração (1011)• Leitura múltipla de memória (1100)• Ciclo dual-address (1101)• Leitura de linha de memória (1110)• Escrita de memória e invalidação (1111)

Copyright (c) Walter Fetter Lages – p.11

Page 12: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Reconhecimento de Interrupção

• Bridge Host/PCI:• Sinaliza ciclo de reconhecimento de

interrupção• Ativa #IRDY

• Target controlador de interrupções:• Mantém #TRDY desativado por 1 ciclo

• Turn-around dos drivers da bridge• Reclama a transação (ativa #DEVSEL)• Insere o vetor de interrupções• Ativa #TRDY

Copyright (c) Walter Fetter Lages – p.12

Page 13: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Ciclo INTA

Copyright (c) Walter Fetter Lages – p.13

Page 14: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Ciclo Especial

• Utilizado para difundir uma mensagem• Nenhum target reclama a transação• Initiator deve abortar a transação• Códigos de mensagem em AD[15:0]

• 0000h = Shutdown• 0001h = Halt• 0002h = mensagem específica do ix86

• AD[31:16] contém código específico daIntel

Copyright (c) Walter Fetter Lages – p.14

Page 15: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Ciclo Especial

Copyright (c) Walter Fetter Lages – p.15

Page 16: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Leitura de Memória

• Reg. de Cache Line Size implementado:• Leitura: até 1/2 linha de cache• Leitura de linha: de 1/2 a 3 linhas de cache• Leitura múltipla: mais de 3 linhas de cache

• Reg. de Cache Line Size não implementado:• Leitura: até 2 transferências de dados• Leitura de linha: de 3 a 12 transferências• Leitura múltipla: mais de 12 transferências

Copyright (c) Walter Fetter Lages – p.16

Page 17: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Ciclo de Leitura

Copyright (c) Walter Fetter Lages – p.17

Page 18: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Escrita em Memória

• Escrita• Quando o target ativa o #TRDY ele assume a

responsabilidade por manter a coerência dosdados

• Escrita e Invalidação• Initiator está indicando que está escrevendo

toda uma linha de cache• Elimina a necessidade de back-off e line flush

Copyright (c) Walter Fetter Lages – p.18

Page 19: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Ciclo de Escrita

Copyright (c) Walter Fetter Lages – p.19

Page 20: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Outros Ciclos

• Leitura e escrita de I/O• Leitura e escrita de configuração

• Sinalizados por IDSEL• Normalmente requer mapeamento nos

espaços de endereçamento do processador• Dual-address

• Utilizado para endereçamento de 64 bits

Copyright (c) Walter Fetter Lages – p.20

Page 21: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Bridge Host/PCI

• Prefetch buffers• Posting buffers

Copyright (c) Walter Fetter Lages – p.21

Page 22: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Bridge Host/PCI

Copyright (c) Walter Fetter Lages – p.22

Page 23: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Arbitragem

• REQ#• GNT#• Desativar REQ# ou

GNT# não abortaa transação corren-te, apenas sinalizamque o barramentoserá liberado ao fi-nal dela.

Copyright (c) Walter Fetter Lages – p.23

Page 24: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Aborto de Transações

• Pelo initiator• Transação completada normalmente• Latency time-out e GNT# removido• Nenhum target responde

• Pelo target• Disconnect -> ocorre transferência de dados• Retry• Erro fatal

Copyright (c) Walter Fetter Lages – p.24

Page 25: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Lock

Copyright (c) Walter Fetter Lages – p.25

Page 26: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Suporte a Cache

• Problema: O que acontece com o cache quandoum operação de acesso à memória é iniciada nobarramento PCI• Cache Write-through - a linha de cache deve

ser invalidada se for uma operação de escrita eocorrer um snoop-hit

• Cache Write-back - se ocorrer um snoop-hit, alinha de cache deve ser limpa e se for umaoperação de escrita a linha de cache deve serinvalidada

Copyright (c) Walter Fetter Lages – p.26

Page 27: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Suporte a cache

• SDONE• Indica que o snoop foi feito• O target não deve aceitar o dado até que

SDONE esteja ativo• SBO#

• Indica que houve um hit em uma linhamodificada

• Força o target a sinalizar um retry para oinitiator

• A bridge mantém SBO# ativo até completar owrite-back

Copyright (c) Walter Fetter Lages – p.27

Page 28: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Snooping

Copyright (c) Walter Fetter Lages – p.28

Page 29: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Transferência de 64 bits

Copyright (c) Walter Fetter Lages – p.29

Page 30: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Endereçamento de 64 bits

Copyright (c) Walter Fetter Lages – p.30

Page 31: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Espaço de Configuração

Copyright (c) Walter Fetter Lages – p.31

Page 32: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Tratamento de Erros

• Erros de paridade• PERR#

• Erro sinalizado no registrador de status• Ativação ou não de PERR# é configurada

no registrador de comando• Erros de Sistema

• SERR#• Somente pode ser ativado se configurado no

registrador de comando

Copyright (c) Walter Fetter Lages – p.32

Page 33: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Interrupções

• Ativas por nível• Ativas em nível lógico baixo• Compartilháveis• Dipositivos que utilizem uma única interrupção

devem utilizar INTA#

Copyright (c) Walter Fetter Lages – p.33

Page 34: Peripheral Component Interconnectfetter/eng04476/pci.pdf · Generalidades PCI Decodicaçªo subtrativa A bridge PCI/ISA realiza decodicaçªo subtrativa em todos os endereços de

Generalidades PCI

• Decodificação subtrativa• A bridge PCI/ISA realiza decodificação

subtrativa em todos os endereços de I/Oabaixo de 64KB e todos os endereços dememória abaixo de 16MB

• Transações nos endereços ISA válidos sempresão efetivadas

• Palette snooping• Quando se tem VGA on-board, a bridge

monitora os acessos palette passa tambémpara o barramento de expansão (slot)

Copyright (c) Walter Fetter Lages – p.34