Ao estudar este capítulo, procure relacionar três perguntas: o que cada sinal informa, quem pode iniciar uma transferência e em que momento a informação pode ser aceita.
O ponto de partida é o barramento paralelo compartilhado, modelo fundamental para compreender interconexões. As diferenças em relação aos enlaces seriais ponto a ponto aparecem ao final. A organização mantém a sequência do capítulo-base.
Dados, endereços e controle
Um barramento é um meio de comunicação que permite a troca de informações entre módulos de um sistema computacional. No modelo compartilhado, vários módulos utilizam um mesmo conjunto de linhas, respeitando regras de acesso. Nas implementações elétricas, essas linhas conduzem sinais cujos níveis e transições representam bits.
O barramento, por si só, não armazena dados: ele os transporta. Registradores, buffers e filas existentes nas interfaces podem reter informações temporariamente, mas essa é uma função dos circuitos conectados à interconexão.
Quanto à função dos sinais, distinguem-se três grupos: dados, endereços e controle. A classificação é lógica: determinados projetos usam linhas físicas distintas para cada grupo; outros reutilizam as mesmas linhas em momentos diferentes. [1] [2]
Barramento de dados
Transporta as instruções buscadas na memória e os valores manipulados pelas instruções. No modelo convencional, é bidirecional: em uma escrita, o iniciador envia dados ao destino; em uma leitura, o destino fornece dados ao iniciador. Isso não significa que ambos possam dirigir simultaneamente as mesmas linhas: o protocolo define quem as utiliza em cada fase.
Barramento de endereços
Identifica a posição de memória ou o registrador de interface de E/S envolvido na operação. O endereço seleciona onde acessar; o sinal de controle informa qual operação executar. Em uma transação convencional, o endereço parte do iniciador em direção ao destino.
A CPU não é necessariamente o único módulo capaz de emitir endereços. Um controlador com capacidade de bus mastering, como um controlador de DMA, também pode iniciar acessos quando obtém autorização. A E/S pode usar um espaço de endereçamento próprio, com portas, ou compartilhar o espaço da memória (E/S mapeada em memória).
Barramento de controle
Reúne os sinais que coordenam operações, acesso e validade das informações. Alguns partem do iniciador, outros do destino ou de um controlador. A tabela apresenta funções típicas; nem todo padrão oferece todas elas como linhas separadas.
| Sinal / função | Significado |
|---|---|
| Escrita em memória | Solicita que o dado seja gravado na posição indicada pelo endereço. |
| Leitura de memória | Solicita que a memória apresente o conteúdo da posição endereçada. |
| Escrita em porta de E/S | Transfere um valor ao registrador da interface selecionada. |
| Leitura de porta de E/S | Obtém um valor do registrador da interface selecionada. |
| Confirmação de transferência (ACK) | Informa aceitação ou disponibilidade dos dados, conforme o protocolo; pode também indicar conclusão. |
| Requisição do barramento (bus request) | Indica que um possível iniciador deseja usar o barramento. |
| Concessão do barramento (bus grant) | Autoriza o solicitante selecionado a assumir o barramento. |
| Requisição de interrupção (IRQ) | Sinaliza uma interrupção pendente para atendimento pelo processador. |
| Confirmação de interrupção | Indica que a requisição foi reconhecida; os detalhes dependem do sistema. |
| Relógio (clock) | Fornece a referência temporal em um barramento síncrono. |
| Reinicialização (reset) | Coloca módulos em estados iniciais definidos pelo projeto. |
Largura e suas consequências
Em um barramento paralelo, a largura de um grupo corresponde ao número de linhas que transportam seus bits simultaneamente. Assim, 32 linhas de dados permitem transferir até 32 bits em uma transferência desse grupo. Largura de dados e largura de endereços são características diferentes e não precisam coincidir.
O tamanho da unidade endereçável importa: com 32 bits de endereço e endereçamento por byte, o espaço teórico é de 232 bytes, ou 4 GiB. Isso não garante que toda essa capacidade esteja instalada ou disponível como RAM: parte do espaço pode estar reservada à E/S, e a implementação pode impor limites adicionais.
Uma largura maior de dados pode elevar a quantidade transferida por operação. Já a largura de endereços determina principalmente a capacidade de endereçamento; ampliá-la não torna automaticamente cada acesso mais rápido. Frequência, transferências por ciclo, latência, arbitragem e sobrecarga do protocolo também afetam o desempenho.
Por exemplo, 32 bits, 33⅓ MHz e uma transferência de dados por ciclo resultam em aproximadamente 133 MB/s de pico. A taxa útil é menor quando há fases de endereço, esperas, disputas ou intervalos sem dados. MB/s usa bytes decimais; GiB usa potência de dois.
Conectar módulos e organizar o tráfego
No modelo clássico, o barramento do sistema interliga processador, memória e módulos de E/S por condutores e interfaces. Um único segmento para todos os dispositivos simplifica a organização, mas pode se tornar um gargalo: os participantes disputam o mesmo recurso, e a carga elétrica e os atrasos de propagação limitam a operação.
Por isso, uma organização pode utilizar múltiplos barramentos em hierarquia. Pontes e controladores encaminham transações entre segmentos, adaptam protocolos e usam buffers para acomodar diferenças de velocidade. As denominações local, de sistema, de expansão e de alta velocidade descrevem uma organização didática histórica, não quatro níveis obrigatórios. [1]
a. Enviar dados: escrita
- Obter o direito de uso do segmento, se houver disputa.
- Apresentar endereço e comando de escrita, conforme o protocolo.
- Apresentar os dados e cumprir a condição de aceitação.
- Encerrar a transação e liberar os recursos utilizados.
b. Requisitar dados: leitura
- Obter o direito de uso do segmento, quando necessário.
- Apresentar endereço e comando de leitura.
- Aguardar a resposta e capturar os dados quando válidos.
- Encerrar a transação conforme o protocolo.
Esses passos são um modelo de transação simples. Há protocolos nos quais pedido e resposta são separados: o iniciador pode liberar o segmento enquanto o destino prepara os dados, permitindo que outra transação avance.
| Segmento | Papel |
|---|---|
| Local | Atende a comunicação próxima ao processador, incluindo a interface com cache/ponte no modelo histórico. |
| Do sistema | Conecta o subsistema processador/cache à memória principal e às pontes de E/S. |
| De alta velocidade | Atende controladores que demandam maior taxa de dados, evitando subordiná-los ao segmento mais lento. |
| De expansão | Agrega periféricos por uma interface ou ponte, com possível armazenamento temporário e adaptação de protocolo. |
No esquema apresentado, o bloco cache/ponte faz a ligação entre os caminhos local, de memória e de E/S. Isso não significa que o controlador de cache de todo computador desempenhe essas funções. Em muitos projetos, caches e controlador de memória integram o processador; interconexões no chip e enlaces ponto a ponto substituem parte dos barramentos compartilhados.
Reutilizar linhas em momentos diferentes
Uma linha dedicada à função mantém uma finalidade específica, como transportar endereços ou dados. Também se pode falar em dedicação física quando um segmento atende apenas a um subconjunto de módulos. São aspectos diferentes: quais componentes compartilham o caminho e quais funções compartilham as linhas.
Na multiplexação no tempo, o mesmo conjunto físico assume funções distintas em fases diferentes. Um exemplo comum é o grupo AD (address/data): primeiro transporta o endereço; depois, os dados. O protocolo identifica a fase por sinais de controle ou por sua sequência definida. Um sinal de validade ou de captura de endereço pode orientar o receptor a retê-lo em um registrador. [1] [2]
Como endereço e dados usam as mesmas linhas, eles não podem ocupar simultaneamente esse grupo físico. O circuito precisa preservar a seleção do destino após a fase de endereço. O benefício é a redução de pinos, trilhas e custo; em contrapartida, há lógica adicional de seleção e captura e pode haver maior tempo por transação.
Regras para acessar e transferir
Um protocolo de barramento define como uma transação começa, como o destino é selecionado, quem dirige cada sinal, quando os dados são válidos e como ocorre a conclusão. Também pode prever tratamento de erros, cancelamentos e limites de espera. Duas questões centrais são a arbitração e a temporização.
5.4.1 Arbitração de barramentos
Quando vários módulos podem iniciar operações em um mesmo segmento compartilhado, é preciso decidir qual deles terá acesso. A arbitração seleciona o próximo iniciador e evita que fontes incompatíveis conduzam as mesmas linhas ao mesmo tempo. A restrição se aplica ao recurso compartilhado: segmentos independentes podem operar em paralelo.
Na arbitração centralizada, um árbitro recebe solicitações e concede o acesso segundo uma política. Ele pode ser um circuito separado ou fazer parte de outro módulo. Na arbitração distribuída, os próprios participantes contêm lógica de acesso e resolvem a disputa de acordo com regras comuns, sem um árbitro central único. [2]
A organização da decisão e a política de escolha são dimensões distintas. Prioridade fixa favorece certos solicitantes e pode provocar inanição de outros; rodízio (round-robin) alterna oportunidades de acesso. Uma concessão pode valer para uma transação ou para uma rajada, conforme o padrão.
Na terminologia tradicional, mestre (master) é quem inicia a transação, e escravo (slave) é o módulo que responde. Neste texto, também são usados os termos iniciador e destino. Os papéis pertencem à operação: não são necessariamente atributos permanentes do componente.
Em uma leitura, o destino dirige as linhas de dados mesmo sem ter iniciado a operação. Portanto, “ser mestre” não significa “ser sempre a fonte dos dados”. De modo semelhante, uma interrupção solicita atendimento da CPU; não equivale, por si só, a uma concessão de controle do barramento.
5.4.2 Temporização de barramentos
A temporização define como os eventos de uma transferência se coordenam e quais intervalos tornam a informação confiável. Os dois modelos básicos são o síncrono e o assíncrono.
Transmissão síncrona
Os participantes usam um relógio comum como referência. O protocolo estabelece em quais bordas ou fases os sinais podem mudar e ser amostrados. O clock do barramento não precisa ter a mesma frequência do clock interno da CPU.
O iniciador apresenta endereço e comando; o destino responde dentro dos intervalos previstos. Se o protocolo permitir e o destino precisar de mais tempo, sinais como READY ou WAIT prolongam a transação em estados de espera (wait states). A espera ocupa tempo de comunicação; seu efeito sobre a execução da CPU depende da arquitetura, das caches e da capacidade de sobrepor operações.
Na borda de captura, os dados precisam estar estáveis por um intervalo anterior (setup) e posterior (hold). O período do relógio deve acomodar os atrasos relevantes. Distribuição do clock, diferenças de chegada do sinal (skew) e carga elétrica dificultam o aumento da frequência em barramentos paralelos extensos.
Transmissão assíncrona
Uma transferência assíncrona não depende de um relógio global do barramento para definir todas as suas fases. A sequência avança por eventos e confirmações, em um mecanismo de handshake. Isso não significa ausência de temporização: há atrasos de propagação, exigências de estabilidade e condições para reconhecer cada sinal.
- REQ é ativado: o iniciador já estabeleceu endereço e comando e sinaliza a requisição.
- ACK é ativado: em uma leitura, o destino apresenta dados válidos e confirma a resposta.
- REQ é retirado: o iniciador reconhece ACK, captura o dado e sinaliza o encerramento de sua solicitação.
- ACK é retirado: o destino reconhece o término e retorna ao estado de repouso.
A figura apresenta um handshake de quatro fases, com retorno a zero; há outros protocolos. Em uma escrita, o iniciador disponibiliza o dado antes da requisição e o mantém pelo intervalo exigido até a aceitação. O significado preciso de ACK depende da operação e do padrão.
| Aspecto | Síncrono | Assíncrono |
|---|---|---|
| Referência | Clock e regras de amostragem. | Dependências entre eventos e confirmações. |
| Duração | Organizada por ciclos ou fases; pode incluir espera. | Adapta-se aos tempos de resposta, com custo de handshake. |
| Vantagem possível | Sequenciamento regular e implementação previsível. | Acomodação de participantes com tempos diferentes. |
| Limitações | Distribuição de clock, margens temporais e ciclos de espera. | Lógica de coordenação e atrasos de ida e volta dos sinais. |
Padrões, taxas e contexto histórico
Um padrão especifica aspectos lógicos, elétricos, temporais e físicos da comunicação: sinais, transações, níveis de tensão, condições de operação e, quando aplicável, conectores. A lista a seguir preserva os padrões do capítulo-base, distinguindo variantes e evitando confundir clock com taxa de transferência.
| Padrão | Dados | Clock / taxa | Observação |
|---|---|---|---|
| ISA Industry Standard Architecture | 8 ou 16 bits | Referência típica do ISA de 16 bits: cerca de 8,33 MHz. | O barramento de 8 bits do PC original operava próximo de 4,77 MHz. Não se deve atribuir um clock único a toda a linhagem. |
| PCI convencional Peripheral Component Interconnect | 32 bits na configuração clássica; há versões de 64 bits. | 33⅓ MHz na configuração clássica; há variantes de 66⅔ MHz. | Paralelo e compartilhado. Pico clássico de aproximadamente 133 MB/s, com 32 bits. |
| AGP 1.0 Accelerated Graphics Port | 32 bits | Clock de referência ≈ 66⅔ MHz; modos 1× e 2×. | Conexão dedicada ao vídeo. Picos aproximados de 267 e 533 MB/s. |
| AGP 2.0 / 3.0 | 32 bits | Modos 4× e 8×, respectivamente, com referência ≈ 66⅔ MHz. | Picos aproximados de 1,07 e 2,13 GB/s. Versão, modo e tensão devem ser compatíveis. |
| PCI-X 1.0 PCI eXtended | 64 bits na configuração de referência. | Operação a 66, 100 ou 133 MHz, conforme a implementação. | Pico de aproximadamente 1,06 GB/s a 133 MHz e 64 bits. |
| PCI-X 2.0 | 64 bits na configuração de referência; outras larguras são previstas. | Classes 266 e 533: cerca de 266 / 533 milhões de transferências por segundo, com DDR / QDR sobre referência próxima de 133 MHz. | Picos de aproximadamente 2,13 e 4,26 GB/s em 64 bits. A revisão também contempla classes inferiores. |
Fontes da comparação: Tanenbaum e Austin [2] para o contexto de barramentos; PCI-SIG [3, 4] para PCI e PCI-X; Intel [5, 6] para AGP e IBM/Intel [7] para ISA. Os valores são nominais e arredondados, não medições de taxa útil.
O PCI-X ampliou a família PCI paralela, com alterações de protocolo e mecanismos como transações divididas (split transactions). Já o PCI Express (PCIe) usa enlaces seriais ponto a ponto, organizados em uma ou mais lanes, e uma estrutura com encaminhamento de pacotes. Essa comparação ajuda a entender por que os conceitos de interconexão permanecem úteis, embora nem toda interface moderna tenha a forma de um barramento paralelo compartilhado. [1] [4]
Base conceitual e fontes das figuras
Texto reescrito a partir do capítulo-base, com revisão dos conceitos e complementação didática. As figuras são diagramas vetoriais de elaboração própria: preservam os temas do material fornecido, corrigem ambiguidades e não reproduzem as ilustrações editoriais dos livros.
- STALLINGS, William. Computer Organization and Architecture: Designing for Performance. 10. ed. Pearson, 2016. Cap. 3: interconexão, estrutura de barramentos e enlaces ponto a ponto. Consultar a obra (PDF em repositório universitário).
- TANENBAUM, Andrew S.; AUSTIN, Todd. Structured Computer Organization. 6. ed. Pearson, 2013. Cap. 3, especialmente §§ 3.4.2–3.4.6 e 3.6: barramentos, largura, temporização, arbitração e exemplos. Catálogo e sumário da editora. Material complementar de consulta: transparências da 5ª edição, capítulo 3, creditadas à Pearson e hospedadas na UFMG.
- PCI-SIG. FAQ — PCI-X. Relação com PCI, classes de velocidade, compatibilidade e recursos da revisão 2.0. Consultar FAQ oficial.
- PCI-SIG. PCI-SIG Architecture Overview. Apresentação técnica, Developers Conference Europe, 2006. PCI, PCI-X, DDR/QDR e PCI Express. Consultar apresentação (cópia em repositório universitário).
- INTEL. Intel 875P Chipset Datasheet. Interface AGP e modos de transferência. Consultar documento técnico.
- INTEL. Intel Doubles Graphics Bus Bandwidth With AGP 8x Technology. 11 set. 2002. Consultar comunicado técnico.
- IBM; INTEL. Documentação histórica de barramentos: IBM Redbook SG24-2581-00, comparação de barramentos; Intel 82378 System I/O, documentação da interface PCI–ISA. Fontes para o contexto e os clocks de referência do ISA.
Uso das ilustrações: cada figura está incorporada como SVG no próprio HTML, com descrição acessível. O botão “Ampliar figura” abre a visualização maior. Todas usam proporção 16:9 para facilitar eventual adaptação a slides, sem substituir o trabalho posterior de composição da apresentação.
Notas da revisão do capítulo
- Corrigida a identificação do barramento de endereços e preservadas as onze funções de controle do texto-base.
- Separados largura de dados, capacidade de endereçamento, taxa de pico e desempenho efetivo.
- Reformulada a alegação de isolamento entre CPU e E/S: pontes e DMA reduzem interferências, mas não eliminam disputas.
- Explicados dedicação física, multiplexação funcional e papéis de iniciador e destino.
- Corrigidas a suposta ausência de temporização assíncrona e a afirmação de eficiência sempre superior.
- Completados os modos AGP e diferenciadas as classes de transferência PCI-X do clock de referência.
- Substituídas as ilustrações por oito diagramas incorporados; removida a seção de checkpoint.