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: 6200



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

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

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.

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.

Tutorial de programação do jogo da serpente em javascript

Programando o clássico jogo da serpente usando o framework p5.js. Tutorial indicado para iniciantes da programação que querem aprender os conceitos básico da área criando jogos.

Criando artes de texto usando imagens

Convertendo imagens para ascii art usando o valor da intensidade das cores cinzentas.

Veja também

Antigamente, as linguagens de programação não tinham um modo tão flexível de escrever como hoje

A linguagem de programação orientada a objetos revolucionou o mundo da programação, sendo o tipo de linguagem mais utilizada na atualidade

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?

Terminal

Interface dedicada ao desenvolvedor ou especialista da computação para executar comandos ao computador sem a presença de um mouse.

Algoritmo A* (A-estrela)

Algoritmo que busca o caminho com o menor custo entre dois pontos. É usado em jogos e aplicativos de navegação para calcular a menor distância possível.

Acessibilidade Digital

Prática que visa em incluir todas as pessoas digitalmente, incluindo idosos e deficientes, para que possam ter acesso a informação.

DB Banco de dados

Um banco de dados é um conjunto de tabelas com dados armazenados de uma forma estruturada, possibilitando a gestão de dados de uma forma organizada.