Pular para conteúdo

Capítulo 10 — Barramentos, Entrada e Saída e Periféricos

Neste capítulo você vai estudar como a placa-mãe organiza a comunicação entre processador, memória, armazenamento e periféricos: a hierarquia de barramentos, da arquitetura clássica de ponte norte/sul à integração progressiva dessas funções dentro do próprio processador, os protocolos SATA, PCIe e NVMe que materializam essa comunicação hoje, e os princípios de entrada e saída que regem a comunicação com teclado, mouse e demais periféricos.


10.1 Barramentos: do PCI ao PCIe

10.1.1 O que é um barramento

Um barramento (bus) é um conjunto de linhas condutoras compartilhadas por meio das quais múltiplos componentes de um computador trocam dados. Um barramento é fisicamente organizado em três grupos de linhas:

  • Linhas de dados — transportam a informação propriamente dita.
  • Linhas de endereço — indicam a origem ou o destino daquela informação (qual posição de memória, qual dispositivo).
  • Linhas de controle — sincronizam a operação, indicando, por exemplo, se a operação em curso é de leitura ou de escrita.

Como diversos dispositivos compartilham o mesmo conjunto de linhas, é necessário um controlador de barramento, responsável por arbitrar o acesso: decidir, a cada instante, qual dispositivo tem permissão para transmitir. Esse compartilhamento tem um custo estrutural: quanto maior o número de dispositivos conectados a um mesmo barramento, maior tende a ser seu comprimento físico, maior o atraso de propagação do sinal ao longo dele, e maior o tempo médio que cada dispositivo espera até obter o controle do barramento. A solução histórica para esse gargalo foi organizar o computador numa hierarquia de barramentos — vários barramentos menores e especializados, em vez de um único barramento universal —, o assunto do restante desta seção.

Nota conceitual. Essa forma de comunicação, na qual várias linhas transportam bits simultaneamente em paralelo, é chamada de comunicação paralela e se opõe à comunicação serial, na qual os bits trafegam um após o outro por uma única linha (ou par de linhas), a uma frequência muito mais alta. Contra a intuição inicial, um link serial moderno normalmente transporta mais dados por segundo do que um barramento paralelo equivalente — a alta frequência de operação de uma única linha bem projetada compensa, e supera, a vantagem teórica de transmitir vários bits "ao mesmo tempo" em paralelo, que sofre mais com interferência entre linhas adjacentes (crosstalk) à medida que a frequência sobe. É por essa razão que a evolução dos barramentos de expansão, tratada na Seção 10.1.4, caminhou do paralelo (ISA, PCI) para o serial (PCI Express) — e a mesma lógica explica a evolução do armazenamento de IDE (paralelo) para SATA (serial), na Seção 10.1.5.

Figura pendente

comparação esquemática entre um barramento paralelo (várias linhas lado a lado) e uma conexão serial (uma linha, alta frequência)

10.1.2 Ponte norte e ponte sul: a arquitetura clássica do chipset

O chipset — já mencionado no Capítulo 11 (§11.5) como o "conjunto de chips" que interliga os controladores da placa-mãe — foi, por muitos anos, fisicamente dividido em dois chips distintos, cada um responsável por uma metade da hierarquia de barramentos do computador.

  • Ponte norte (northbridge, também chamada IO hub): conectada diretamente ao processador por um barramento de altíssima velocidade (chamado QPIQuickPath Interconnect — pela Intel, e HyperTransport pela AMD, historicamente) [1], a ponte norte intermediava o acesso à memória RAM e à placa de vídeo — os dois componentes que mais exigem largura de banda e menor latência possível em relação ao processador.
  • Ponte sul (southbridge), hoje frequentemente chamada PCH (Platform Controller Hub, nomenclatura Intel) ou FCH (Fusion Controller Hub, nomenclatura AMD): conectada à ponte norte (nunca diretamente ao processador), reunia os controladores de dispositivos que toleram maior latência — portas USB, SATA (Seção 10.1.5), áudio, rede, o chip de BIOS/UEFI (Capítulo 6, §6.6) e os demais slots PCI/PCIe de expansão.

10.1.3 A migração para dentro do processador

A arquitetura de duas pontes começou a ser desmontada à medida que os processadores modernos passaram a incorporar, dentro do próprio encapsulamento da CPU, funções que antes pertenciam à ponte norte: o controlador de memória (Capítulo 5 trata a RAM em profundidade) e, em processadores mais recentes, um conjunto próprio de pistas PCIe (Seção 10.1.4, adiante) dedicadas à placa de vídeo e ao armazenamento NVMe (Seção 10.1.5).

O resultado é que a "ponte norte" propriamente dita desapareceu como chip separado na maioria dos desktops modernos: o processador se conecta diretamente à RAM e à GPU, e o que resta da comunicação com o restante da placa-mãe passa por um único link de alta velocidade até a ponte sul — chamado DMI (Direct Media Interface) pela Intel e UMI (Unified Media Interface) pela AMD [2]. Esse link concentra hoje o tráfego de tudo que ainda depende da ponte sul: USB, SATA, PCIe de menor prioridade, áudio, rede — e é, ele mesmo, um ponto de atenção em especificação de hardware, porque todo esse tráfego compartilha a largura de banda de um único link, ainda que cada dispositivo individual pareça ter sua própria conexão dedicada.

Nota prática. Essa reorganização explica por que a especificação de um processador (Capítulo 4) hoje frequentemente informa "quantas pistas PCIe" ele oferece diretamente — um dado que, antes da migração do controlador para dentro da CPU, seria uma característica do chipset, não do processador.

Figura pendente

dois diagramas lado a lado — arquitetura clássica (CPU → ponte norte → ponte sul) e arquitetura atual (CPU com controlador de memória e PCIe integrados, ligada à ponte sul por DMI/UMI)

10.1.4 Slots de expansão: de ISA a PCI Express

A tabela a seguir situa a evolução dos barramentos de expansão — as conexões da placa-mãe às quais placas adicionais (de vídeo, de som, de rede, entre outras) são fisicamente conectadas [3]:

Padrão Tipo de comunicação Situação atual
ISA (Industry Standard Architecture) Paralela Obsoleto, presente apenas em computadores muito antigos
AGP (Accelerated Graphics Port) Paralela, dedicada a vídeo Obsoleto, substituído pelo PCIe
PCI (Peripheral Component Interconnect) Paralela, barramento compartilhado Praticamente obsoleto em placas novas
PCI Express (PCIe) Serial, ponto a ponto Padrão atual

O PCI Express rompe com a lógica de barramento compartilhado das gerações anteriores: em vez de vários dispositivos disputando o mesmo conjunto de linhas (como discutido na Seção 10.1.1), cada slot PCIe estabelece uma conexão ponto a ponto exclusiva com o controlador — não é, tecnicamente, um "barramento" no sentido estrito da Seção 10.1.1, embora o uso corrente do mercado continue chamando-o assim.

Essa conexão é organizada em pistas (lanes), cada uma constituída por um par de linhas seriais full-duplex (transmitindo e recebendo simultaneamente). Um slot PCIe pode agrupar diferentes quantidades de pistas — identificadas como x1, x4, x8 e x16 —, e quanto mais pistas agrupadas, maior a largura de banda disponível para o dispositivo conectado. Uma placa de vídeo moderna, por exigir grande volume de dados, normalmente ocupa um slot x16; um SSD NVMe (Seção 10.1.5) costuma usar o equivalente a quatro pistas (x4).

Compatibilidade física. Um slot PCIe de maior tamanho físico (por exemplo, x16) aceita, por projeto, uma placa de tamanho físico menor (x1, x4, x8) encaixada nele — a placa menor simplesmente não utiliza todas as pistas disponíveis no slot. O inverso não é possível sem um slot aberto na extremidade (um recurso presente em algumas placas-mãe): uma placa fisicamente x16 não encaixa, por padrão, num slot x1.

Cada geração do padrão PCIe (identificada por um número de versão — PCIe 3.0, 4.0, 5.0 e assim sucessivamente) dobra, em relação à geração anterior, a largura de banda disponível por pista [4], mantendo o mesmo princípio físico de conexão — um padrão de evolução comparável ao da família DDR de memória (Capítulo 5, §5.4).

Figura pendente

foto de uma placa-mãe evidenciando slots PCIe de tamanhos diferentes (x16, x4, x1) lado a lado

10.1.5 SATA e NVMe: interfaces de armazenamento

O Capítulo 8, §8.1.1, já introduziu, brevemente, as interfaces SATA e NVMe ao tratar da conexão física da memória secundária. Esta seção aprofunda essa distinção agora que o conceito de PCIe foi apresentado.

SATA (Serial ATA) é o sucessor serial do antigo padrão IDE (Integrated Drive Electronics, também chamado PATA, Parallel ATA) — mais um caso, como discutido na Seção 10.1.1, da migração geral de interfaces paralelas para seriais. O SATA usa seu próprio controlador (parte da ponte sul, Seção 10.1.2) e seu próprio protocolo de comunicação, projetado nos anos 2000 [5] tendo o HD mecânico (Capítulo 5, §5.10) como dispositivo de referência — um dispositivo cujo gargalo real de desempenho está na mecânica do prato girante e do braço atuador, não na interface elétrica em si.

NVMe (Non-Volatile Memory Express) é um protocolo de comunicação desenvolvido especificamente para memória flash (Capítulo 5, §5.12), projetado para eliminar exatamente essa limitação histórica do SATA. Em vez de usar o controlador da ponte sul e um protocolo pensado para discos mecânicos, um dispositivo NVMe se conecta diretamente às pistas PCIe (Seção 10.1.3) — com frequência às pistas oferecidas diretamente pelo processador, e não pela ponte sul —, dispensando a camada de tradução SATA/AHCI e aproveitando a largura de banda muito maior do PCIe. Fisicamente, um dispositivo NVMe de consumo típico se conecta a um slot M.2 na placa-mãe — um conector compacto que dispensa os cabos de dados e energia exigidos por um dispositivo SATA (Capítulo 8, §8.1.1) — embora nem todo slot M.2 seja necessariamente NVMe: alguns slots M.2 mais antigos transportam o protocolo SATA sobre o mesmo conector físico, uma fonte comum de confusão na hora de especificar um SSD compatível.

Nota de desempenho. A diferença de velocidade entre SATA e NVMe não é sutil: um SSD SATA está limitado à taxa de transferência máxima da interface SATA (da ordem de 600 MB/s) [6], enquanto um SSD NVMe, por usar múltiplas pistas PCIe diretamente, alcança taxas de vários gigabytes por segundo — uma ordem de grandeza acima. Essa diferença só se torna relevante, na prática, para cargas de trabalho que de fato saturam a interface (cópia de grandes volumes de arquivo, carregamento de jogos com texturas pesadas); para o uso cotidiano de um computador, a diferença perceptível entre os dois costuma ser pequena.


10.2 Entrada, saída e periféricos

10.2.1 Classificação e o problema da heterogeneidade

Um dispositivo de entrada e saída (E/S, ou I/O) é classificado, do ponto de vista do sistema, pelo sentido do fluxo de dados em relação ao computador:

  • Dispositivos de entrada — enviam dados para o computador (teclado, mouse, touchpad, microfone, câmera, scanner).
  • Dispositivos de saída — recebem dados do computador (monitor, caixas de som, impressora).
  • Dispositivos híbridos — operam nos dois sentidos (tela sensível ao toque, impressora multifuncional com scanner, headset com microfone).

O desafio central de projetar a comunicação entre a CPU e esse universo de periféricos é a heterogeneidade: cada dispositivo tem conexão física própria, sentido de conexão próprio, velocidade própria, requisitos próprios (alguns toleram atraso, outros não) e é produzido por um fabricante diferente, sem garantia alguma de padronização espontânea entre eles. A solução estrutural para esse problema é a mesma adotada em outras camadas já estudadas neste livro: um hardware controlador dedicado para cada família de periférico, expondo à CPU uma interface simples e uniforme — poupando o processador de conhecer os detalhes elétricos específicos de cada fabricante, no mesmo espírito da abstração que o sistema operacional oferece ao software (Capítulo 6, §6.1.1).

10.2.2 Estudo de caso: CPU e memória secundária

A comunicação entre a CPU e um HD ou SSD (Capítulo 5) passa por uma controladora que desempenha quatro funções:

  1. Conexão física — o conector elétrico propriamente dito (SATA ou NVMe, Seção 10.1.5).
  2. Conversão de protocolo de comunicação — traduz entre o protocolo interno do computador e o protocolo específico daquele padrão de armazenamento.
  3. Conversão de tipos de dado — organiza os dados na granularidade que o barramento espera (blocos, setores — Capítulo 5, §5.10).
  4. Buffer — uma pequena área de armazenamento temporário que absorve diferenças momentâneas de velocidade entre a CPU (rápida) e o dispositivo de armazenamento (mais lento), evitando que a CPU precise esperar ociosa por cada byte individual.

10.2.3 Estudo de caso: CPU, teclado e mouse

A comunicação entre a CPU e dispositivos de entrada simples como teclado e mouse é resolvida majoritariamente em software, não em hardware dedicado de alta complexidade. Antigamente, essa comunicação básica de baixo nível era resolvida diretamente por rotinas do BIOS (Capítulo 6, §6.6); atualmente, a pilha é mais sofisticada e passa por três camadas, de baixo para cima: o chipset (Seção 10.1.2), que recebe o sinal elétrico bruto do dispositivo; o driver (Capítulo 7, §7.6), fornecido pelo sistema operacional ou pelo fabricante, que traduz esse sinal para um formato que o sistema entende; e o gerenciador de dispositivos do sistema operacional, que expõe esse dado já tratado aos programas em execução.

10.2.4 Modos de transferência de dados

Um requisito comum a qualquer transferência de E/S é comunicar três elementos: um endereço (para onde vai, ou de onde vem, o dado), comandos (o que fazer com ele) e os dados propriamente ditos. Existem três estratégias para a CPU realizar essa comunicação [7]:

  • Comunicação programada — a própria CPU, executando uma rotina de software, é responsável por mover cada dado entre o periférico e a memória. Duas variantes existem: espera ocupada (a CPU fica presa num laço, checando repetidamente se o dispositivo está pronto, sem fazer mais nada nesse intervalo) e polling (a CPU verifica periodicamente, mas intercalando outras tarefas entre uma verificação e outra). Em ambas, a CPU desperdiça parte de sua capacidade de processamento apenas esperando ou verificando.
  • Comunicação por interrupção — em vez de a CPU perguntar repetidamente "já terminou?", o próprio hardware do dispositivo avisa a CPU (por meio de um sinal elétrico chamado interrupção) no exato instante em que há um dado pronto para transferência. A CPU fica livre para executar outras tarefas entre um aviso e outro, interrompendo o que está fazendo apenas quando o periférico efetivamente precisa de atenção.
  • DMA (Direct Memory Access, acesso direto à memória) — para transferências de grande volume (como copiar um arquivo inteiro do SSD para a RAM), mesmo a comunicação por interrupção geraria overhead excessivo se a CPU precisasse mediar byte a byte. O DMA delega essa cópia a um controlador dedicado, que move os dados diretamente entre o dispositivo e a memória RAM sem ocupar o processador durante a transferência — a CPU apenas inicia a operação e é avisada, por uma única interrupção, quando ela termina por completo.

10.2.5 Estudo de caso: USB

O USB (Universal Serial Bus, barramento serial universal) ilustra, num único padrão amplamente conhecido, como diferentes tipos de periférico exigem diferentes garantias de entrega de dados. A especificação USB define quatro tipos de transferência [8]:

Tipo de transferência Uso típico Garantia
Controle Inicialização do dispositivo ao ser conectado; comandos administrativos Entrega garantida
Em massa (bulk) Grandes volumes de dados sem urgência de tempo (impressoras, scanners, pendrives) Entrega garantida, tempo não garantido
Interrupção Pequenos volumes de dados sensíveis a tempo (teclado, mouse) Entrega garantida, pequenos atrasos tolerados
Isócrona Transmissão em tempo real (áudio, vídeo) Ritmo de entrega garantido, mas dados individuais podem ser perdidos

Note que essa tabela reflete diretamente o princípio de heterogeneidade apresentado na Seção 10.2.1: um teclado não pode tolerar que uma tecla pressionada demore segundos para ser reconhecida (por isso usa transferência de interrupção, com prioridade sobre atraso), enquanto um fluxo de áudio tolera perder uma amostra ocasional, mas não tolera que o ritmo de entrega varie (por isso usa transferência isócrona) — e uma impressora tolera esperar, desde que nenhum byte do documento se perca (por isso usa transferência em massa). O mesmo protocolo físico (USB) acomoda, portanto, contratos de entrega completamente diferentes, escolhidos pelo fabricante do periférico conforme a natureza do dado transmitido.

Figura pendente

diagrama de um cabo USB com quatro balões apontando para exemplos de periférico — teclado (interrupção), pendrive (massa), headset (isócrona), dispositivo genérico sendo conectado (controle)

10.2.6 Especificação de periféricos

Assim como processador, memória e armazenamento têm critérios objetivos de especificação (Capítulo 5 e Capítulo 8, §8.4.3), cada família de periférico tem seu próprio conjunto de critérios relevantes — geralmente ligados à natureza do dado que aquele dispositivo transmite (Seção 10.2.1):

Periférico Critério de especificação mais relevante
Monitor Resolução e taxa de atualização (Hz) — quantos quadros por segundo o painel exibe
Teclado Tipo de acionamento (membrana ou mecânico) e disposição de teclas
Mouse Resolução do sensor (DPI) e taxa de resposta
Impressora Tecnologia de impressão (jato de tinta ou laser) e custo por página impressa
Caixas de som / headset Resposta de frequência e potência (o Apêndice A trata potência elétrica em profundidade)

Nota prática. Como qualquer especificação de hardware (Capítulo 8, §8.4.3), não existe "o melhor" periférico em termos absolutos — um teclado mecânico de alto custo é desperdício de orçamento para um usuário de escritório, da mesma forma que uma impressora a laser monocromática não atende quem precisa imprimir fotos coloridas. O critério de especificação de periféricos segue o mesmo princípio de adequação à finalidade já estabelecido para os demais componentes.


Síntese do capítulo

Este capítulo situou a placa-mãe como via de comunicação: a hierarquia de barramentos que liga processador, memória, armazenamento e periféricos, da arquitetura clássica de ponte norte/sul à integração progressiva dessas funções dentro do próprio processador, e os protocolos SATA, PCIe e NVMe que materializam essa comunicação hoje. A segunda parte do capítulo tratou dos princípios de entrada e saída que regem a comunicação com teclado, mouse e demais periféricos — a heterogeneidade que todo controlador de E/S precisa resolver, os três modos de transferência de dados (programada, por interrupção, DMA) e o estudo de caso do USB, que ilustra como um único protocolo físico acomoda contratos de entrega completamente diferentes.


Referências

  1. STALLINGS, William. Arquitetura e Organização de Computadores. 10. ed. São Paulo: Pearson Education do Brasil, 2018 (seção sobre QPI); MONTEIRO, Mario A. Introdução à Organização de Computadores. 5. ed. Rio de Janeiro: LTC (seção D.3.4.2, Tecnologia HyperTransport).
  2. WIKIPEDIA. "Direct Media Interface." Disponível em: https://en.wikipedia.org/wiki/Direct_Media_Interface; INTEL. "What Is the Direct Media Interface (DMI) of Intel® Processors?" Disponível em: https://www.intel.com/content/www/us/en/support/articles/000094185/processors.html; WIKIPEDIA. "Unified Media Interface." Disponível em: https://en.wikipedia.org/wiki/Unified_Media_Interface.
  3. PCI-SIG. Especificações oficiais PCI/PCI Express. Disponível em: https://pcisig.com.
  4. PCI-SIG. Especificações oficiais PCI Express (PCIe 3.0/4.0/5.0). Disponível em: https://pcisig.com.
  5. SEAGATE. "Serial ATA: High Speed Serialized AT Attachment, Revision 1.0, 29-August-2001." Disponível em: https://www.seagate.com/support/disc/manuals/sata/sata_im.pdf.
  6. SATA-IO. Especificação SATA. Disponível em: https://www.sata-io.org.
  7. STALLINGS, William. Arquitetura e Organização de Computadores. 10. ed. São Paulo: Pearson Education do Brasil, 2018 (Capítulo 7, E/S programada, por interrupção e DMA).
  8. USB IMPLEMENTERS FORUM. Especificação USB. Disponível em: https://www.usb.org; MONTEIRO, Mario A. Introdução à Organização de Computadores. 5. ed. Rio de Janeiro: LTC (seção D.3.4.1).