Pesquisar neste blogue

segunda-feira, 26 de maio de 2025

Resumo extraído do Capítulo 2 do livro Structured Computer Organization de Andrew S. Tanenbaum (5.ª edição)

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.


Capítulo 2 do livro Structured Computer Organization de Andrew S. Tanenbaum (5.ª edição)

Capa do livro Structured Computer Organization de Andrew S. Tanenbaum (5.ª edição)


🎓 Quer melhorar os seus resultados na universidade? 
Disponibilizamos explicações de ensino superior adaptadas às suas necessidades, com acompanhamento personalizado para diferentes disciplinas.
✔ Explore a nossa Lista de Matérias disponíveis.
🌟 Veja os testemunhos de alunos que já atingiram melhores notas com o nosso apoio.
📬 Contacte-nos por email ou pelo formulário de contacto e obtenha a ajuda que precisa para dominar os seus estudos!

EuExplico Eu Explico Explicações de Ensino Superior

Formulário de Contacto

Nome

Email *

Mensagem *