Estrutura dos sistemas computacionais
2.1 PROCESSADORES
Esta secção aborda a organização e evolução dos processadores (CPUs).
-
Estrutura Básica da CPU: A CPU é composta pela UC (unidade de controlo), ALU (Unidade Aritmética e Lógica) e registos. A unidade de controlo busca instruções da memória principal, interpreta-as e executa-as. Os registos armazenam dados temporários e instruções em execução, sendo o Program Counter (PC) e o Instruction Register (IR) os mais importantes.
-
Execução de Instruções: A execução dá-se em etapas: buscar a instrução, actualizar o PC, decodificar a instrução, buscar operandos, executar a operação e escrever o resultado.
-
Caminho de Dados (Datapath): Mostra como os dados fluem dentro da CPU, entre registos e a ALU. A performance do processador depende da eficiência deste caminho.
-
Pipelining: Técnica para acelerar a execução de instruções dividindo-as em várias fases (como uma linha de montagem). Várias instruções podem ser processadas em simultâneo, uma em cada estágio.
-
Paralelismo a Nível de Instrução: Explora-se o uso de pipelines duplos (como no Pentium) ou arquitecturas superscalares com várias unidades funcionais que permitem executar múltiplas instruções por ciclo de relógio.
-
Processamento Paralelo (Array e Vector Processors): Processadores de array como o ILLIAC IV executam a mesma instrução sobre múltiplos dados em paralelo (SIMD). Os vector processors, como o Cray-1, usam registos vectoriais e pipelines para realizar operações vectoriais com alta eficiência.
-
Multiprocessadores e Multicomputadores: Multiprocessadores partilham memória comum e são fortemente acoplados, facilitando a programação. Multicomputadores têm memória separada por CPU e comunicam por troca de mensagens, sendo mais escaláveis. Sistemas híbridos tentam combinar o melhor de ambos.
2.2 MEMÓRIA PRINCIPAL
Esta secção foca-se na organização, tipos e funcionamento da memória principal de um sistema informático.
-
Bits e Codificação Binária: A unidade mínima é o bit. O sistema binário é o mais fiável devido à facilidade de distinguir entre dois estados (0 e 1). Alguns sistemas usam codificações como BCD para representar números decimais.
-
Endereços de Memória: Cada célula de memória tem um endereço único. A quantidade de bits por endereço determina o número máximo de células endereçáveis. A célula é a unidade mais pequena de endereçamento e normalmente contém um byte (8 bits).
-
Ordenação de Bytes (Byte Ordering): Define como os bytes que compõem uma palavra são armazenados na memória — por exemplo, "little-endian" versus "big-endian".
-
Correção de Erros: Utilizam-se códigos como o de Hamming para detectar e corrigir erros na memória. A verificação de paridade também pode ser usada para detecção simples.
-
Memória Cache: Pequena memória rápida usada para armazenar dados frequentemente usados. Baseia-se no princípio da localidade (temporal e espacial). A performance depende da taxa de acertos (hit ratio) e é influenciada pelo tamanho da cache, tamanho da linha, organização, separação de dados e instruções (cache unificada vs Harvard) e número de níveis de cache.
-
Empacotamento e Tipos de Memória: As memórias modernas são vendidas como módulos (SIMMs ou DIMMs), cada um contendo vários chips de memória. DIMMs transferem 64 bits por ciclo e são comuns em computadores de secretária, enquanto os SO-DIMMs são usados em portáteis. A correção de erros é opcional e pouco comum em computadores domésticos.
2.3 MEMÓRIA SECUNDÁRIA
Mesmo com memórias principais cada vez maiores, elas continuam a ser insuficientes para armazenar todos os dados desejados, especialmente com o aumento da informação digital (como livros digitalizados, vídeos, etc.). A solução clássica é utilizar uma hierarquia de memória, onde memórias mais lentas, maiores e baratas complementam as mais rápidas e pequenas.
2.3.1 Hierarquias de Memória
-
Organiza-se a memória em níveis: registos, cache, memória principal, discos magnéticos, fitas magnéticas e discos ópticos.
-
À medida que se desce na hierarquia:
-
O tempo de acesso aumenta.
-
A capacidade de armazenamento aumenta.
-
O custo por bit diminui.
-
2.3.2 Discos Magnéticos
-
Compostos por pratos com revestimento magnético.
-
A informação é lida/escrita por cabeças móveis que flutuam sobre os pratos.
-
Os pratos giram a velocidade constante; os dados são organizados em pistas e sectores.
-
Utilizam estratégias como zonas concêntricas com diferentes números de sectores para aumentar a capacidade (zone bit recording).
-
Discos Winchester são selados para evitar poeira.
2.3.3 Desempenho dos Discos
-
Fatores como o tempo de procura (seek time), latência rotacional e taxa de transferência afetam o desempenho.
-
Há uma grande diferença entre a taxa de pico (burst) e a taxa sustentada de transferência de dados.
2.3.4 Interfaces e Controladores
-
Interfaces como IDE, EIDE e SCSI evoluíram para suportar velocidades maiores e múltiplos dispositivos.
-
O endereçamento evoluiu de C/H/S para LBA (Logical Block Addressing) para ultrapassar limites antigos (como os 504 MB dos primeiros BIOS).
2.3.6 RAID
-
RAID (Redundant Array of Independent Disks) melhora desempenho e fiabilidade.
-
Combina múltiplos discos como se fossem um só, podendo usar técnicas como espelhamento (RAID 1) ou distribuição de paridade (RAID 5).
2.3.8 CD-Recordables (CD-R)
-
CDs graváveis foram introduzidos como meio económico para backups.
-
Utilizam discos com trilhas guia e material sensível à gravação com laser.
2.3.9 CD-Rewritables (CD-RW)
-
Usam uma liga metálica especial com dois estados estáveis (amorfo e cristalino).
-
Um laser de diferentes potências escreve, apaga e lê os dados.
2.3.10 DVD
-
Representa uma evolução do CD-ROM, com maior capacidade.
-
É mais adequado para aplicações como filmes e grandes bases de dados.
2.4 ENTRADA/SAÍDA (INPUT/OUTPUT)
A secção trata da forma como os dispositivos de entrada e saída (E/S) se ligam ao processador e à memória, com foco especial nos barramentos (buses).
2.4.1 Barramentos
-
Os barramentos são conjuntos de fios paralelos que transportam sinais de controlo, dados e endereços entre os vários componentes de um computador.
-
A estrutura física típica inclui uma motherboard com slots para módulos de memória e placas de E/S ligadas ao barramento (ex: PCI).
-
Dispositivos de E/S dividem-se entre o controlador (controlador físico/electrónico) e o dispositivo propriamente dito (ex: disco, monitor).
-
O controlador gere o dispositivo e comunica com a CPU através do barramento. Pode usar DMA (Acesso Directo à Memória) para ler/escrever dados sem intervenção da CPU.
-
Quando a transferência termina, o controlador gera uma interrupção, que suspende o programa em execução e invoca um tratador de interrupções (interrupt handler).
Arbitragem do Barramento
-
Um árbitro de barramento decide qual componente usa o barramento quando há conflito (por exemplo, CPU vs dispositivo de E/S).
-
Os dispositivos de E/S têm normalmente prioridade, pois não podem parar a sua operação física sem risco de perda de dados (ex: discos rígidos).
Problemas de Velocidade e Compatibilidade
-
À medida que os componentes ficaram mais rápidos, os barramentos tornaram-se um gargalo. Surgiram soluções com barramentos múltiplos (por exemplo, PCI e ISA).
-
A evolução para o barramento PCI, mais rápido, permitiu maior largura de banda para dispositivos como placas gráficas, som, rede e discos SCSI.
2.5 SUMÁRIO
Esta secção faz uma recapitulação dos principais conceitos abordados ao longo do capítulo:
-
Componentes dos Sistemas Computacionais: São compostos por três tipos principais de componentes:
-
Processadores: Responsáveis por buscar, decifrar e executar instruções.
-
Memórias: Armazenam instruções e dados.
-
Dispositivos de Entrada/Saída (E/S): Permitem a comunicação com o exterior (ex: teclado, ecrã, impressora, etc.).
-
-
Ciclo de Execução de Instruções: Consiste em buscar uma instrução da memória, decodificá-la e executá-la. Este processo pode ser descrito como um algoritmo e, por vezes, é implementado por interpretadores.
-
Melhoria de Desempenho: Muitos computadores modernos usam pipelines ou arquitecturas superscalar, com várias unidades funcionais a operar em paralelo.
-
Computação Paralela:
-
Processadores em Array: Executam a mesma operação em múltiplos dados ao mesmo tempo (SIMD).
-
Multiprocessadores: Partilham uma memória comum (memória partilhada).
-
Multicomputadores: Cada processador tem a sua própria memória, e a comunicação entre eles é feita por troca de mensagens.
-
-
Hierarquia de Memória:
-
Memória Principal: Rápida e usada para armazenar o programa em execução. Pode usar cache para melhorar a performance.
-
Memória Secundária: Mais lenta, usada para armazenamento a longo prazo. Inclui discos magnéticos, discos ópticos e RAID.
-
-
Dispositivos de Entrada/Saída: Transferem dados entre o mundo exterior e o computador. Estão ligados por meio de um ou mais barramentos. A maioria dos dispositivos usa o código ASCII, mas o UNICODE está a tornar-se o padrão global.