Barramento (Bus)

Caminhos entre os componentes do computador que são responsáveis pela transferência de informações de controle, endereçamento e dados.

Categoria de Tecnologia

Postado em 27 fevereiro 2023

Atualizado em 27 fevereiro 2023

Palavras-chave: bus,computador,cpu,processador,memoria,memory,componente,barramento,informacao,dados,controle,caminhos,trilhas,linhas

Visualizações: 3617



O computador é um sistema composto por diversos componentes. Os 5 componentes mais importantes são o processador, unidade de controle, memória e dispositivos de entrada e saída.

Porém, uma variedade de outros componentes são necessários para compor o computador como conhecemos hoje. Um desses componentes é o barramento.

O que é barramento (bus) na computação?

O barramento (em inglês: bus) é um conjunto de caminhos em um sistema computacional que permite a transferência de dados entre componentes. Componentes como CPU, memória e periféricos de entrada e saída são conectados ao barramento e não podem se comunicar com outros componentes sem a presença desses caminhos.

Geralmente, esses caminhos são compostos por fios de cobre, porém podem ser substituídos por fibra óptica. Além disso, não precisa ser necessariamente um caminho físico, tecnologias como Wi-Fi e bluetooth também podem servir de barramento para a transferência de dados quando apresentar mais conveniência em determinada situação.

Nos computadores atuais, o barramento já vem embutido na placa mãe com tecnologia de PCB (Placa de circuito impresso). Antes disso, os barramentos eram integrados de forma separada e eram chamados de barramentos paralelos.

O barramento afeta o desempenho do computador?

O barramento em um sistema de computador é muito importante, pois afeta a largura e a velocidade em que os dados podem ser transferidos de um componente para o outro. Componentes como o CPU e memória do computador podem ter seu desempenho influenciado pelo barramento em caso de falta de largura de banda na transferência de informação.

A eficiência do barramento pode ser medido em termos de velocidade de transferência de dados e largura de banda. A velocidade de transferência de dados pode ser medida baseando-se em sua frequência que é expressada em Hertz (Hz). A frequência do barramento é o número de pacotes de dados que podem ser enviados ou recebidos por segundo. A frequência que o barramento opera é determinada pelo clock do sistema. A largura de banda é medida em bits ou bytes por segundo (bps ou B/s) que o barramento pode transferir em um trajeto. Lembrando que a “velocidade” do barramento é relativo a outros fatores do circuito e depende de um amplo contexto.

Quais são os tipos de linhas em um barramento?

Os três principais tipos de linha em um barramento são:

  • Linha de controle
  • Linha de endereçamento
  • Linha de dados

Barramento bus arquitetura

Linha de controle

A linha de controle é responsável pela transmissão de sinais de controle entre o CPU e os outros componentes. Esses sinais podem ser operações de leitura e escrita, sinais de interrupção e solicitações de acesso direto à memória (DMA). Alguns exemplos de sinais de controle são:

  • Leitura: O CPU solicita a leitura de dados de algum dispositivo conectado ao barramento.
  • Escrita: O CPU solicita a escrita de dados de algum dispositivo conectado ao barramento.
  • Solicitação de DMA: Algum dispositivo conectado ao barramento solicita acesso direto à memória sem a intervenção do CPU.
  • Sinal de relógio: Sincroniza as operações de transferência de dados.

Linha de endereçamento

Diz ao sistema onde os dados de leitura e escrita estão localizados na memória ou outro dispositivo de extensão conectado. O número total de linhas de endereçamento disponíveis é o que define quantos bits podem ser usados para o endereçamento. Quanto maior esse número de linhas, mais endereços podem ser transferidos.

Um barramento contendo 32 linhas pode endereçar até 4,294,967,296 diferentes endereços. Exemplos de barramentos contendo diferentes números de linhas de endereçamento são:

  • Barramento ISA (Industry Standard Architecture): 24 bits de endereçamento
  • Barramento EISA (Extended Industry Standard Architecture): 32 bits de endereçamento
  • Barramento PCI (Peripheral Component Interconnect): 32 bits ou 64 bits de endereçamento

Linha de dados

Transporta os dados que serão processados pelo sistema computacional. A linha de dados pode transmitir e receber dados, sendo uma trilha bidirecional. Assim como a linha de endereçamento, quanto maior a quantidade de linha de dados, maior será a largura de barramento. Isso possibilita que mais dados sejam transferidos em uma determinada unidade de tempo.

A quantidade de linha de dados em barramentos modernos como o PCI Express, pode ter entre 1, 4, 8 e 16 bits de largura.

A quantidade de linhas de dados presentes no barramento pode variar de acordo com o tipo e a geração do barramento. Por exemplo, o barramento ISA (Industry Standard Architecture), que foi utilizado em computadores pessoais dos anos 1980 e 1990, possuía 16 bits de largura, ou seja, tinha 16 linhas de dados para a transmissão de informações.

Já o barramento PCI Express, utilizado em computadores modernos, pode ter 1, 2, 4, 8, 16 ou 32 linhas de dados, dependendo da versão e da configuração do barramento. Quanto mais linhas de dados, maior é a largura de banda do barramento, o que possibilita a transferência de mais dados por unidade de tempo. Alguns exemplos são:

  • PCI: pode ter 32 ou 64 linhas de dados
  • AGP: pode ter 32 linhas de dados
  • SATA: pode ter 1, 2, ou 4 linhas de dados
  • USB 2.0: pode ter 4 linhas de dados
  • PCI Express: pode ter 1, 2, 4, 8, 16 ou 32 linhas de dados

O endereçamento exige mais quantidade de linhas pois os endereços de memória precisam ser únicos, por isso necessitam de mais variações.

Conclusão

O barramento é um conjunto de trilhas que transferem informações de controle, endereçamento e dados entre componentes do computador. O desempenho do barramento é importante para componentes como o CPU, pois a velocidade de processamento pode ser influenciada pelo barramento.

Projetos práticos

Implementando um algoritmo de pathfinding

Implementando um programa que encontra a menor distância entre dois pontos dentro de um labirinto usando o algoritmo A* (a-estrela).

Desenvolvendo o campo de visão de um personagem em um plano 2D

Detectando objetos que entram dentro do campo de visão do personagem. Útil para servir de "gatilho" para eventos em um jogo.

Caixa eletrônico usando arquitetura limpa

Usando JavaFX e arquitetura limpa para criar um aplicativo de caixa eletrônico extremamente simples.

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Criando um jogo de guerra nas estrelas em javascript usando a biblioteca p5.js

Jogo simples de guerra espacial desenvolvido em javascript. Esse jogo usa cálculos de física para simular efeitos de atrito e inércia.

Veja também

Afinal, para que servem os cookies que sempre são solicitados quando entramos em uma página?

A política de privacidade é obrigatória para qualquer site que utiliza dados pessoais do usuário. Porém, quais dados são esses especificamente?

Os robôs estão aprendendo por conta própria?

Já não é mais novidade saber que os robôs não precisam mais da orientação de um humano para aprender. Além disso, os robôs já superam os humanos em muitas áreas...

Política de privacidade

A política de privacidade tem como objetivo informar ao usuário, o objetivo e o modo de tratamento dos dados pessoais coletados.

Seguir caminho (path following)

Um dos comportamentos de navegação (steering behaviors). Faz com que um agente siga um caminho pré-determinado pelo desenvolvedor.

Pilha (stack) e fila (queue)

Pilha e fila são tipos de estrutura de dados que contribuem para um gerenciamento de dados mais inteligente e eficaz na programação

Vagar (Wander)

Técnica de algoritmo que faz o agente vagar pelo ambiente virtual sem um destino definido. Esse comportamento pertence ao steering behaviors.