Os fundamentos de arquitetura de computadores são essenciais para compreender como funcionam esses sistemas complexos. Desde os componentes físicos que processam a informação até os diferentes tipos de memória e como os periféricos se conectam, cada elemento desempenha um papel crucial. Este artigo explora esses conceitos chave, oferecendo um resumo claro e conciso para estudantes e entusiastas.
Explorando os Fundamentos de Arquitetura de Computadores: Componentes Chave
Um computador é um sistema que integra módulos de hardware e software. O hardware compreende os dispositivos eletrônicos e eletromecânicos que compõem a estrutura física, enquanto o software é o conjunto de programas que permitem processar dados. O firmware é um termo intermediário que se refere a dispositivos físicos programados, como as memórias ROM, que não perdem sua programação ao serem desconectadas.
Os computadores digitais representam dados e instruções por meio de bits, a unidade mínima de informação, que se combinam para formar bytes (8 bits). Um nibble se refere a meio byte (4 bits). A unidade de trabalho da CPU é conhecida como palavra de CPU, cuja extensão se relaciona com os registradores da CPU e pode variar.
A Visão de Von Neumann na Arquitetura de Computadores
Em 1945, John von Neumann propôs conceitos fundamentais que ainda regem o design de computadores:
- Programa Armazenado: Tanto os dados quanto os programas com suas sequências de instruções são armazenados na memória da máquina.
- Quebra de Sequência: As máquinas incluem instruções de salto condicional, permitindo decisões lógicas automáticas e a execução de diferentes partes do programa de acordo com os resultados prévios.
Em seu esquema geral, um computador consiste em:
- Memória Central: Armazena programas e dados.
- Unidade Central de Processamento (CPU): Executa os programas.
- Unidades de Entrada/Saída: Permitem a comunicação com o exterior.
Componentes Essenciais da CPU
A CPU é o módulo físico mais importante, e sua capacidade define o desempenho do sistema. Dentro de uma CPU, encontramos blocos funcionais como:
- Unidade de pré-busca: Obtém instruções da memória principal e as coloca em uma fila.
- Unidade de pré-decodificação: Interpreta as instruções da fila e as traduz para microcódigos, uma linguagem de nível inferior ao código de máquina, que representa micro-operações.
Periféricos: Unidades de Entrada, Saída e Mistas
Os periféricos são unidades ou dispositivos que permitem ao computador comunicar-se com o mundo exterior ou armazenar informação, atuando como memória auxiliar. Eles se conectam à CPU e à memória principal para realizar operações de E/S. A informação armazenada neles não é diretamente compreensível para o usuário, já que está codificada, compactada ou criptografada.
Os dispositivos de E/S transformam a informação externa (como um pressionamento de tecla) em sinais codificados que o processador interpreta, processa e armazena. Inversamente, transformam valores binários em formatos compreensíveis para o usuário (como texto impresso).
Partes dos Periféricos
Todos os periféricos têm duas partes distintas:
- Parte mecânica: Composta por dispositivos eletromecânicos (comutadores, relés, motores, eletroímãs) controlados por elementos elétricos.
- Parte eletrônica: Controla as ordens da CPU para a recepção ou transmissão de dados e gera os sinais de controle para gerenciar a parte mecânica. Frequentemente utiliza elementos optoeletrônicos como detectores ou geradores de informação.
Classificação Detalhada dos Periféricos
Os periféricos são classificados em três tipos principais:
-
Unidades de Entrada (Input):
- Teclado
- Mouse
- Dispositivos de captura direta de dados:
- Leitora de banda magnética.
- Detectores ópticos (marcas, códigos de barras, scanners, caracteres impressos, câmeras digitais).
- Detectores de caracteres impressos (OCR).
- Unidades de reconhecimento de voz.
- Caneta óptica.
- Telas sensíveis ao toque.
- Joystick.
- Digitalizador ou mesa digitalizadora.
-
Unidades de Saída (Output):
- Monitores (tubo de raios catódicos e TFT).
- Impressoras.
- Sintetizador de voz.
- Visualizadores (displays).
- Plotter.
-
Unidades Mistas (Entrada/Saída):
- Terminal interativo teclado-tela.
- Terminal teletipo.
- Tela sensível ao toque.
- Unidades de memória de massa auxiliar:
- Discos magnéticos.
- Fitas magnéticas.
- Discos ópticos e magneto-ópticos.
- Memória flash (PenDrive).
Conexão de Periféricos ao Computador: Barramentos
A conexão de periféricos é fundamental para o funcionamento do computador. O barramento é o meio de comunicação. Os tipos de barramentos incluem:
- Barramento local ou barramento da CPU: Conecta a CPU com outros elementos do processador e as placas da placa-mãe, sendo muito rápido.
- Barramento do sistema: Conecta os periféricos com os controladores da placa-mãe, e também algumas expansões de memória.
- Barramento de entrada/saída ou barramento de expansão: Barramentos especializados que se adaptam às necessidades de velocidade, tensão e sinais de controle de certos periféricos.
Os computadores grandes, com vários tipos de barramentos, requerem dispositivos adaptadores ou de interconexão entre barramentos. Os processadores geralmente têm slots de expansão na placa-mãe conectados ao barramento do sistema para dispositivos como placas digitalizadoras ou aceleradoras gráficas.
Barramentos Padronizados e sua Evolução
Todos os barramentos possuem especificações padronizadas que definem protocolos, velocidades, temporização, larguras de sub-barramentos e sistemas de conexão física. Alguns barramentos padronizados históricos e atuais incluem:
- S-100 Bus (IEEE 696): Primeiro barramento padronizado para microcomputadores (Atari 8080).
- CAMAC (IEEE 583): Para interconectar instrumentos de medição nucleares (1969).
- GPIB (IEEE 488): Criado pela Hewlett Packard (1965-1975), com 24 fios.
- Multibus (IEEE 796): Barramento de dados de 16 bits, da Intel. Versão melhorada é o Multibus-II (IEEE 1296) de 32 bits.
- ISA Bus: Introduzido com o IBM-PC, de 64 fios (8 para dados).
- ISA AT Bus: Para arquiteturas de 16 bits (IBM-AT), com compatibilidade com seu antecessor.
- MCA (Micro-Channel Architecture): Introduzido pela IBM em 1987 (PS/2), barramento de 32 bits, 10 vezes mais rápido que o ISA AT.
- EISA (Extended Industry Standard Architecture): Barramento de 32 bits, compatível com ISA, autoconfigurável e controlado por microprocessadores 80386 ou superiores.
- SCSI (Small Computer System Interface): Padrão universal para conexões paralelas a periféricos (discos magnéticos e ópticos), suporta até 7 dispositivos. SCSI-3 permite até 32 periféricos por fibra óptica.
- Futurebus+ (IEEE 896.1 e IEEE 896.2): Para equipamentos de alto desempenho, evolução do Multibus II e VME, projetado para 64 bits e sistemas multiprocessador.
- USB (Universal Serial Bus): Criado nos anos 90 por um consórcio de empresas para padronizar a conexão de periféricos. Evoluiu do USB 1.0 (1.5 Mbps) para o USB 3.1 (10 Gbps) com o novo conector Tipo C.
Barramentos Locais de Conexão Direta à CPU
Existem outros tipos de barramentos projetados para se conectar diretamente à CPU, conhecidos como barramentos locais:
- VL-bus: Idealizado pela VESA.
- PCI (Peripheral Component Interconnected): Criado para a Intel.
- Quick-ring: Proposto pela Apple.
- VME (IEEE 1014): Sucessor do Versabus, utilizado pela Motorola. Simples, com muitas aplicações industriais e de pesquisa, multiprocessamento.
- NuBus (IEEE 1196): De 96 fios, para arquiteturas de 32 bits, usado em Apple Macintosh.
- M-bus e S-Bus: Utilizados pelas estações da SUN.
Teclados: Funcionamento e Tecnologias
Os teclados são periféricos de entrada essenciais, semelhantes às máquinas de escrever (Cristopher L. Sholes, 1867), com a distribuição QWERTY. Esta distribuição busca separar as teclas mais usadas (em inglês) e favorecer o uso da mão esquerda (60%).
Como um Teclado Funciona?
Ao pressionar uma tecla:
- Um comutador interno é fechado, detectado pelo chip 8742.
- Os controladores de teclado (8042) geram um scan-code (geralmente um byte) para o caractere selecionado (ex., ASCII).
- É enviada uma interrupção à CPU, avisando sobre o pressionamento.
O teclado gera um make-code ao pressionar e o mesmo código com o bit 7 ativado ao soltar. O driver de teclado na CPU combina esses códigos para gerar maiúsculas, minúsculas, funções, etc. Teclas expandidas podem gerar múltiplas interrupções.
O controlador 8742 realiza funções chave:
- Prevenir debounces ou pressionamentos incorretos.
- Traduzir a tecla para um código único (scan-code).
- Repetir um caractere se mantido pressionado.
- Detectar pressionamentos simultâneos.
Tecnologias de Teclados
Existem principalmente duas tecnologias:
- Teclados mecânicos: Cada tecla possui um interruptor mecânico e uma mola. Ao pressionar, a tecla faz contato com terminações metálicas na placa de circuito impresso, fechando o circuito. A mola retorna a tecla à sua posição original.
- Teclados de membrana: São compostos por quatro camadas: uma inferior com trilhas condutoras, uma camada de separação com furos, uma camada condutora com pequenas