Barramentos ISA e PCI Gustavo G. Parma
Barramento Coleção de fios paralelos utilizados para transmitir endereços dados sinais de controle Internos ou Externos à CPU Internos: Via de dados Externos: utilizado para a comunicação entre Periféricos/periféricos CPU/periférico CPU/memória Periféricos/Memória
Importância de Barramentos padronizados Necessidade de regras bem definidas Desenvolvimento de hardware por diversos fabricantes Uma vez definido um barramento toda a geração atual e futura de equipamentos seguirá o padrão do barramento Avanços tecnológicos => expansão do barramento
Barramentos Principal parâmetro de projeto: Tamanho do Barramento Quanto mais linhas de endereço, mais memória a CPU ou os periféricos poderão acessar Quanto maior o barramento, mais "fios" serão necessários => maior espaço físico Maiores conectores ou Multiplexação de vias
Barramentos Barramento Multiplexado: Os endereços e dados compartilham as mesmas linhas redução do tamanho do barramento sistema mais lento sistema de controle mais sofisticado Barramentos longos: Bus Skew. Sinais em diferentes linhas viajam em velocidades um pouco diferentes
Barramento Síncrono Possui uma linha de controle alimentada por um oscilador. Todas as atividades do barramento utilizam um número de ciclos deste clock=>ciclo do barramento Representa um limite de velocidade Avanços tecnológicos resultam em pouco impacto Freqüência do barramento muito inferior à velocidade da CPU Barramento projetado para o dispositivo mais lento
Exemplo de operação em barramento síncrono
Barramento assíncrono Barramento assíncrono: não possui um clock principal Conjunto de sinais inter-relacionados: full handshake MSYN (Master Synchronization) Os ciclos do barramento podem ter qualquer tamanho Dificuldades de implementação sinaliza ao escravo que todos os sinais estão disponibilizados e estáveis SSYN (Slave SYNchronization) sinaliza ao mestre que os dados estão disponíveis.
Exemplo de barramento assíncrono
Tipos de Barramento PC/XT: Barramento IBM PC PC/AT: Barramento ISA 80386 : Barramento EISA PS/2: Microchannel PCs: barramento PCI PCs e Workstations: Barramento SCSI Machintosh: NuBus PCs: USB Eletrônicos: FireWire Equipamentos de lab.: VME, GPIB
Barramentos Principais barramentos comerciais Barramento ISA: Industry Standard Architecture. Barramento EISA: Extended ISA Barramento PCI: Peripheral Component Interconnect
Barramento ISA Industry Standard Architecture Possui 62 linhas de sinais 20 linhas de endereço 8 linhas de dados sinais de controle Barramento simples Não multiplexado Conector de 62 pinos Clock de 8,33MHz Transmissão de 2 bytes por ciclo
Principais Funções do barramento ISA DMA Interrupções teclado RTC Configuração da RAM
Barramento EISA Extended ISA Extensão do ISA Contém mais 36 pinos 31 pinos para mais linhas de endereço, dados, interrupções e canais de DMA, além de alimentação. Demais pinos necessários para lidar com a diferença entre transmitir 8 bits ou 16 bits. Pode transmitir 4 bytes por ciclo
SLOT ISA
Sinais de Controle do Slot ISA Sinal Descrição Sinal Descrição SA[19:0] System Address Bus: Barramento de endereço registrado do microprocessador. O endereço para um ciclo no barramento é disponibilizado na borda de subida do sinal BALE. LA[23:17] Latchable address bus. Estes sinais são a versão registrada dos bits superiores do barramento de endereço do processador. Representa o endereço para o próximo ciclo do barramento (devido a pipeline de endereçamento) BALE Buffered address latch enable. Na borda de subida deste sinal o barramento de endereço (SA) é disponibilizado, iniciando um ciclo no barramento. SBHE# System Bus High enable. Os processadores 286 e 386 ativam SBHE# durante uma transferência de 8 bits com endereço ímpar e durante uma transferência de 16 bits começando com um endereço par. quando ativado, sinaliza que a metade superior do barramento de dado (D [15:8]), será utilizada para transferir um byte entre o processador e um endereço ímpar. MRDC# Memory read command. Ativada durante um ciclo de SMRDC# leitura da memória. Utilizado com sinal de habilitação por dispositivos de 16 bits. System memory read command. Ativado durante um ciclo de leitura de memória cujo endereço esteja na parte da área de endereçamento abaixo de 1M (000000h à 0FFFFFh). Utilizado com sinal de habilitação por dispositivos de 8 bits. SMWTC# System memory write command. Ativado durante um ciclo de escrita na memória cujo endereço esteja na parte da área de endereçamento abaixo de 1M. Utilizado com sinal de habilitação por dispositivos de 8 bits. MWTC# Memory write command. Ativado durante um ciclo de escrita na memória.utilizado com sinal de habilitação por dispositivos de 16 bits. IOWC# I/O write command. Ativado durante um ciclo de escrita em I/O IORC# I/O read command. Ativado durante um ciclo de leitura em I/O. SD[7:0] System data bus, lower path. Durante transferências entre dispositivos de 16 bits, esta parte inferior é utilizada para transferir dados entre o mestre do barramento e posições de memória par. Durante transferências de 8 bits, esta via é utilizada para transferir dados para endereços pares ou ímpares. SD[15:8] System data bus, upper path. Durante transferências com dispositivos de 16 bits, este barramento é utiilzado para transferir dados entre o mestre e posições de endereçamento ímpares. Em transferências de 16 bits, esta via não é utilizada.
Sinais de Sincronismo do Slot ISA BCLK Bus Clock. Clock derivado da placa mãe do BALE processador. Sinal de 8,33 MHz, sincronizado com sinais de controle do processador e resincronizado a cada borda de subida do início de um ciclo do barramento. Um ciclo de BCLK define a duração do tempo de endereçamento ou tempo de dados no barramento ISA. Buffered address latch enable. Em sua borda de subida o endereço do barramento de endereço do processador é armazenado na via SA (SA [19:0]). A borda de descida é utilizada por placas de memória de 16 bits para armazenar o resultado da decodificação do barramento LA (LA[23:17]). O sinal BALE é ativado e desativado a cada ciclo de barramento. CHRDY Channel ready. Desativado por uma placa ISA que necessita de mais estados de espera do que seriam fornecidos pelo sistema da placa mãe. NOWS# No Wait State. Ativado por uma placa ISA quando ela não necessita de estados de espera que seriam fornecidos pela placa mãe.
Sinais de seleção de tamanho do dispositivo no slot ISA M16# Memory size 16. Gerado por um cartão de expansão IO16# de 16 bits quando ele é endereçado. Indica ao controlador do barramento de dados que o dispositivo é capaz de trabalhar nas duas vias de dados. Quando ativado pré-condiciona a inclusão de um estado de espera no ciclo do barramento, a não ser que o sinal NOWS# tenha sido ativado. I/O size 16. Gerado por uma placa I/O de expansão quando ela é endereçada. Funciona de forma semelhante ao sinal M16#.
Sinais de DMA do Slot ISA DRQ[3:0] DMA Request. Utilizado por dispositivos de IO que necessitam de uma transferência de bloco entre o dispositivo e a memória, realizada pelo DMAC. O canal DRQ4 não é disponibilizado porque ele é utilizado para a cascata entre o DMAC mestre e escravo. DAK#[3:0] TC Transfer Complete. Ativado pelo DMAC mestre ou escravo quando o contador de palavra ou byte do controlador tiver atingido o seu limite AEN Master16# 16 bits ISA bus master. Ativado por uma placa de expansão que tiver conseguido o barramento. Faz com que a direção dos buffers do barramento seja invertida, possibilitando que a placa de expansão ISA controle o endereço e as informações do ciclo do barramento. DRQ[7:5] DAK#[7:5] DMA Acknowledge. Quando um canal DMA possui o barramento, ele avisa ao dispositivo que solicitou a transferência ativando o sinal DAK adequado. O DMAC também ativa o sinal IORC# ou IOWC# Address Enable. Ativado quando um dos DMACs tiver conseguido o barramento. Quando ativado, inibe que dispositivos de I/O respondam a linhas de comando I/O.
Sinais de erro e gerais do Slot ISA CHCHK# Channel or I/O check. Ativado por uma placa ISA para sinalizar uma condição de erro ao processador. REFRESH# Ativado durante um ciclo de refresh da memória DRAM OSC Oscillator. Sinal de clock de 14.31818MHz disponibilizado para as placas ISA.
Ciclo de acesso a um dispositivo de 8 bits
Ciclo de acesso a um dispositivo de memória, 16 bits
Ciclo de acesso a um dispositivo de I/O, 16 bits
Acesso sem estado de espera
Barramento PCI Peripheral Component Interconnect Bus Independente do Processador Versão 2.0: 33MHz, 32 bits por ciclo. Versão 2.1: 66MHz, 64 bits por ciclo. Opera com 5V ou 3.3V. Conector com 120 pinos, para cartões de 32 bits, ou 184 pinos (120+64) para cartões de 64 bits. Barramento síncrono Barramento multiplexado
Barramento PCI Transações entre o "iniciador" (mestre) e o "alvo" (escravo) Transações com no mínimo três períodos de clock. Os sinais são alterados na transição negativa do clock Definição de três espaços de endereçamento memória I/O endereço de configuração
Barramento PCI Todo dispositivo deve possuir um espaço de configuração de 256 bytes que outros dispositivos podem ler Baixo consumo de potência
Dispositivos Mestre e Alvo
Sinais do sistema no PCI Sinal Descrição Sinal Descrição CLK Sinal de clock de entrada para todos os dispositivos PCI. Pode varia de 0MHz a 33MHz CLKRUN# Sinal opcional, definido para sistemas móveis. Não disponibilizado no conector.setado quando CLK funciona normalmente. RST# Quando setado, leva todos os registradores de configuração, máquinas de estado e drivers de saída par aum estado de inicialização. AD[31:0] Barramento de endereço/dados, transporta o endereço inicial. C/BE# Define o tipo de transação PAR Sinal de paridade.
Sinais de Controle de Transação do PCI FRAME# Alimentado pelo iniciador atual e indica o começo e a duração de uma transação. TRDY# alimentado pelo alvo. ativado quando o alvo está pronto para completar a fase atual de dados. IRDY# Alimentado pelo mestre do barramento (iniciador). STOP# Ativado pelo alvo para solicitar que o iniciador pare a transação em progresso. IDSEL Initialization Device Select. Entrada do dispositivo LOCK# PCO, utilizado como chip select durante um acesso a um dos registradores de configuração. DEVSEL# Device Selesct. Ativado quando o dispositivo alvo decodificou e identificou um endereço alvo como sendo seu. Utilizado pelo iniciador para travar a posição de memória atualmente acessada no alvo.
Sinais de arbitragem e interrupção no PCI REQ# ativado quando o iniciador quer ser mo mestre do barramento INTA# Utilizadas para gerar um sinal de interrupção INTB# INTC# INTD# GNT# Grant. Ativado pelo árbitro quando o barramento está pronto a ser disponibilizado ao iniciador.
Sinais de erro no PCI PERR# Sinal de erro de paridade dos dados SERR# Sinal de erro do sistema. Indica erro de paridade no endereçamento, erro de paridade nos dados em ciclos especiais e erros críticos.
Sinais para expansão para 64Bits no PCI AD[63:32] Quatro linhas de dados superiores. Não utilizados C/BE#[7:4] durante a fase de endereçamento de uma transferência. Byte enables para linhas de dados de quatro a sete. Utilizados durante a fase de transferência de dados. REQ64# Request 64-bit transfer. Gerado pelo iniciador para inditar o desejo de executar trnasferências usando uma ou mais das quatro linhas superiores de dados Acnowledge 64-bit transfer. Gerado pelo alvo em responsta ao REQ64#. PAR64 Parity for the upper doubleword. Bit de paridade par associado com AD[63:32] e C/BE#[7:4] ACK64#
Transação básica no PCI
Exemplo de temporização no PCI
Barramento de Expansão PCI Conector de 32 ou 64 bits, 5V ou 3,3V
Placas de Expansão PCI
Pinos do Slot de Expansão
Arquitetura do barramento do IBM-PC Baseado no barramento PCI Demais barramentos conectados ao PCI