Arquitetura de computadores
Vou falar um pouco aqui sobre arquitetura de computadores, uma área complexa e que, por essa razão, apresento aqui apenas uma introdução ao assunto. Então, vamos lá!
Tanto computadores quanto demais dispositivos eletrônicos funcionam com base em microcircuitos por onde trafegam sinais elétricos. Tais sinais elétricos podem assumir estados (ligado: corrente elétrica com tensão de 2volts a 5volts e desligado: corrente elétrica com tensão igual ou inferior a 0,5volts). Esses estados de corrente elétrica são compatíveis com o sistema de numeração binário (que tem, apenas, zeros e uns como algarismos). Os sinais elétricos de estado ligado representam um bit de valor 1, e os sinais elétricos de estado desligado, representam um bit de valor 0. Assim, tudo no computador (programas de computador, dados de imagem, vídeo, áudio, texto, etc) são, no final das contas, para o computador, sequências de zeros e uns, isto é, sequências de (Bytes, KiloBytes, MegaBytes, GigaBytes, etc). Um byte corresponde a 8 zeros e uns (8 bits), um Kilo Byte corresponde a 1024 bytes, um Mega Byte, corresponde a 1024 Kilo Bytes, e assim sucessivamente.
O Microprocessador
Todos os circuitos integrados processam dados, pois são compostos por microcircuitos que recebem sinais elétricos de entrada (bits) e geram sinais elétricos de saída. Mas, o processador do computador tem uma arquitetura mais complexa e que o diferencia dos demais circuitos integrados. Veja a imagem abaixo (retirada de docsity) que ilustra a organização e arquitetura simplificada de um processador:
De acordo com a imagem acima, o processador é composto basicamente por:
Registradores: pequenas unidades de memória volátil (alimentada por corrente elétrica);
ULA (Unidade lógica e aritmética): que é o microcircuito que toma como entrada sinais elétricos que representam números binários e gera como saída o resultado de uma operação lógica (And, Or, Not, Xor) ou aritmética (Soma, subtração, multiplicação, divisão) sobre esses bits de entrada;
UC (Unidade de Controle): ela recebe as instruções armazenadas em memória e as decodifica. Ou seja, está diretamente ligada a execução de instruções pelo processador. Outra função da UC é emitir sinais pelo barramento de controle para os dispositivos periféricos que iniciam a operação a ser executada. Por exemplo, para sinalizar o início de uma transferência entre a memória e o processador, é necessário, inclusive, que a UC sinalize se a operação a ser realizada é de leitura ou escrita na memória, dando início a transferência;
Barramento de dados: por onde trafegam os sinais correspondentes aos dados a serem transferidos entre o processador e outros componentes do sistema;
Barramento de endereços: transporta sinais utilizados para localizar o endereço de uma posição de memória ou para abrir uma porta de entrada ou saída de um dispositivo de E/S;
Barramento de controle: por ele a UC recebe e emite sinais para todos os dispositivos e periféricos do computador;
RDM (Registrador de Dados da Memória): liga ULA, UC e registradores ao barramento de dados;
REM (Registrador de Endereços da Memória): liga ULA, UC e registradores ao barramento de endereços;
Barramento interno: liga a UC, ULA e registradores aos registradores RDM e REM;
Relógio (ou clock): que controla a frequência de operação do processador. A cada ciclo de clock, uma nova instrução é decodificada pela UC e executada. O ideal é que a frequência de operação possibilite o máximo de desempenho, sem queimar o processador.
Veja a imagem abaixo, retirada de sdacprocessadores, que ilustra a relação entre os barramentos de dados, endereço e controle com a memória RAM e os dispositivos de entrada e saída:
Perceba na imagem acima que, para uma operação de leitura do teclado (Dispositivo de entrada), por exemplo, o processador transfere um sinal pelo barramento de endereços que, ativa a porta de E/S ou circuito que, após uma tecla pressionada, transfere o código dela para um registrador do processador através do barramento de dados e emite um sinal pelo barramento de controle notificando o processador que o código já foi transferido para ele. Vale esclarecer que, para leitura do teclado em ASSEMBLY 8086 (Linguagem de programação de baixo nível), é necessário mover dados da função de leitura para o registrador AH (por exemplo 00h para simples leitura) e chamar uma interrupção da BIOS (Sistema de Entrada e Saída Básico) int 16h. Após a interrupção do teclado da BIOS ser executada é ativado um circuito que, após uma tecla do teclado ser pressionada, transfere o código dela como sinais elétricos para o registrador AL.
Os processadores mais modernos possuem também, além da unidade lógica e aritmética, a unidade de ponto flutuante e memória cache interna. A unidade de ponto flutuante realiza operações aritméticas sobre bits que representam números de ponto flutuante (com casas decimais). Esses números são representados pelo computador segundo o padrão de representação de números de ponto flutuante, o IEEE754 e a memória cache é como um grupo de registradores embutidos no processador, além dos registradores de propósito geral e dos outros.
Microprograma
Existe também a microprogramação, utilizada no projeto e fabricação de processadores de arquitetura CISC - Complex Instruction Set Computer (Conjunto Complexo de instruções de computador). A microprogramação se dá no nível ISA - Instruction Set Arquitecture (Arquitetura do conjunto de instruções), o nível de programação mais próximo do hardware. É possível gravar instruções de um microprograma em uma memória ROM - Read Only Memory (Memória somente leitura) e inseri-la no processador para que os circuitos componentes da Unidade de Controle (UC) executem as instruções gravadas nela.
Placas On-Board e Off-Board
É importante considerar também que existem as placas que podem ser: on-board, integradas com a fabricação da placa-mãe ou off-board, conectadas a um barramento da placa-mae via slot. Geralmente essas placas possuem um circuito integrado (microchip) controlador de dispositivo, como é o caso da placa de vídeo cujo controlador de dispositivo implementa um padrão de comunicação entre o computador e o monitor ou outro dispositivo de saída de vídeo. As placas de vídeo modernas possuem também memória interna e unidade de processamento gráfico (GPU) que é um pequeno processador integrado a ela cuja finalidade é aumentar o desempenho, dado que, neste caso, muitas operações de vídeo não precisam de uma comunicação entre a placa de vídeo e o processador para serem executadas. A GPU utiliza também, frequentemente, a memória interna (memória de vídeo) a placa de vídeo, dado que, a comunicação entre essa memória e a GPU é muito mais rápida do que a comunicação entre a memória RAM e o processador. Em placas de vídeo on-board, a memória de vídeo, geralmente, é parte da memória principal reservada para operações de vídeo.
Bom pessoal, essa foi apenas uma pequena introdução sobre a arquitetura de computadores. O assunto engloba muito mais que foi exposto aqui. No futuro, pretendo escrever mais sobre o assunto.