Pesquisar neste blogue

terça-feira, 29 de abril de 2025

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

1. Introdução

Este capítulo começa por definir o que é um computador digital: uma máquina capaz de resolver problemas executando instruções fornecidas por pessoas. Estas instruções formam programas, que têm de ser convertidos numa linguagem de máquina simples para serem executados. Como esta linguagem é difícil de usar, os sistemas são estruturados em camadas ou níveis de abstração para facilitar o seu desenvolvimento e utilização. Este conceito é a base da “organização estruturada dos computadores”.


1.1 Organização Estruturada de Computadores

1.1.1 – Linguagens, Níveis e Máquinas Virtuais

A diferença entre o que é conveniente para as pessoas e para os computadores exige a criação de linguagens intermédias. Cada linguagem (L0, L1, L2, ..., Ln) representa um nível (ou máquina virtual) de abstração. A execução de programas escritos nestas linguagens pode ser feita por tradução (converter para uma linguagem de nível inferior) ou por interpretação (executar directamente, instrução a instrução).

Isto dá origem à ideia de uma máquina multinível, onde apenas o nível mais baixo (L0) é executado directamente pelo hardware. Os níveis superiores são implementados por interpretadores ou tradutores baseados nos níveis inferiores. Esta estrutura facilita o desenvolvimento de sistemas complexos, escondendo detalhes de baixo nível e aproximando a linguagem da máquina à forma como os humanos pensam.

1.1.2 – Máquinas Multinível Contemporâneas

A maioria dos computadores modernos é estruturada em múltiplos níveis (até seis), desde o nível de hardware até às linguagens orientadas ao utilizador. Estes níveis são:

  1. Nível 0 – Lógica Digital: baseia-se em portas lógicas digitais (AND, OR, etc.), implementadas com transístores.

  2. Nível 1 – Microarquitectura: combina registos e uma ALU (Unidade Aritmética e Lógica). Pode ser controlado por hardware ou por microprogramas.

  3. Nível 2 – Arquitetura do Conjunto de Instruções (ISA): é a interface formal entre hardware e software. Define o conjunto de instruções que a máquina pode executar.

  4. Nível 3 – Máquina do Sistema Operativo: adiciona funcionalidades como multitarefa e manipulação de memória, interpretadas pelo sistema operativo.

  5. Nível 4 – Linguagem Assembly: forma simbólica da linguagem da máquina, traduzida por um assembler.

  6. Nível 5 – Linguagens de Alto Nível: como C, Java, etc., traduzidas por compiladores ou interpretadas.

Cada nível é construído com base no anterior, e os programadores de aplicações normalmente trabalham nos níveis mais altos, abstraindo-se dos níveis inferiores.

1.1.3 – Evolução das Máquinas Multinível

Historicamente, os computadores começaram com apenas dois níveis (lógica digital e ISA). A introdução da microprogramação por Maurice Wilkes simplificou o hardware ao mover parte do controlo para o software.

O sistema operativo surgiu para automatizar a operação dos computadores, criando um novo nível virtual. Ao longo do tempo, mais funcionalidades foram adicionadas ao microcódigo e aos sistemas operativos, aumentando a complexidade dos níveis intermédios.

Na década de 1980, houve uma tendência para eliminar a microprogramação em favor de execução direta (hardware controlado), como nas arquiteturas RISC. A linha entre hardware e software tornou-se cada vez mais fluida: funcionalidades podem ser implementadas em qualquer nível, dependendo do custo, desempenho e fiabilidade.


Secção 1.2 – Marcos na Arquitetura de Computadores

1.2.1 – Geração Zero: Computadores Mecânicos (1642–1945)

Iniciada com Pascal e Leibniz, esta geração é marcada por máquinas de cálculo mecânicas. Charles Babbage idealizou a Analytical Engine, considerada a antecessora dos computadores modernos. Ada Lovelace foi a primeira programadora da história.

1.2.2 – Primeira Geração: Válvulas de Vácuo (1945–1955)

Com o estímulo da Segunda Guerra Mundial, surgiram os primeiros computadores electrónicos como o ENIAC, EDSAC e Whirlwind I. John von Neumann propôs o modelo de computador com armazenamento em memória, que ainda hoje é usado (arquitetura de Von Neumann).

1.2.3 – Segunda Geração: Transístores (1955–1965)

A invenção do transístor permitiu construir computadores mais fiáveis e eficientes. Destacam-se o IBM 7094 (científico), o CDC 6600 (supercomputador com unidades funcionais paralelas), e o PDP-8 (minicomputador popular da DEC).

1.2.4 – Terceira Geração: Circuitos Integrados (1965–1980)

Com os circuitos integrados, surgem famílias de computadores como o IBM System/360, com várias versões compatíveis entre si. Introduziu-se o conceito de emulação e multiprogramação. No mundo dos minicomputadores, destaca-se o PDP-11 da DEC.

1.2.5 – Quarta Geração: VLSI e Computadores Pessoais (1980–?)

A integração em larga escala (VLSI) possibilitou a criação de computadores pessoais. O IBM PC, lançado em 1981, dominou o mercado, dando origem à indústria dos clones de PC. A Apple destacou-se com o Macintosh e o conceito de interface gráfica (GUI). Nesta geração destacam-se ainda os processadores RISC, como o MIPS e SPARC, e o Alpha da DEC (64 bits).

1.2.6 – Quinta Geração: Computadores Invisíveis

A promessa japonesa de inteligência artificial não se concretizou como esperado. No entanto, deu-se o aparecimento dos computadores invisíveis: embebidos em dispositivos, cartões e electrodomésticos. Esta visão, chamada computação ubíqua ou computação pervasiva, representa uma mudança de paradigma mais do que uma nova arquitetura.


1.3 – O Zoo dos Computadores

Esta secção explora a diversidade atual de computadores, motivada por forças tecnológicas e económicas.

1.3.1 – Forças Tecnológicas e Económicas

A evolução do hardware tem sido guiada pela Lei de Moore, que prevê a duplicação de transístores por chip de circuito integrado a cada 18 meses. Isso permite mais memória e maior desempenho. A crescente capacidade dos chips impulsiona novas aplicações e mercados, alimentando um ciclo virtuoso de inovação tecnológica.

1.3.2 – O Espectro dos Computadores

Os computadores variam desde os mais baratos (como cartões com chips descartáveis) até supercomputadores. O autor apresenta uma escala com tipos de computadores, preços aproximados e exemplos de aplicação, demonstrando a diversidade de equipamentos existentes.

1.3.3 – Computadores Descártaveis

Exemplos incluem chips RFID, usados em etiquetas inteligentes e até em seres vivos. Estes chips, sem bateria, são ativados por sinais externos e podem ser usados para identificação e seguimento de objetos, pessoas e animais, levantando implicações éticas e sociais.

1.3.4 – Microcontroladores

Presentes em electrodomésticos, brinquedos, carros e equipamentos médicos. São computadores completos (CPU, memória, E/S) integrados num único chip, programados para tarefas específicas e produzidos em massa a baixo custo.

1.3.5 – Computadores de Jogo

Ex: consolas como a Xbox e PlayStation. São sistemas especializados em multimédia, com CPUs gráficas poderosas e arquitecturas optimizadas para jogos.

1.3.6 – Computadores Pessoais

Incluem computadores de secretária, portáteis e PDAs. Têm múltiplos periféricos e sistemas operativos complexos. Os portáteis são versões compactas dos de secretária.

1.3.7 – Servidores

Computadores semelhantes a PCs mas com mais capacidade de memória, armazenamento e rede. São utilizados em redes empresariais e na Internet, executando sistemas operativos como Linux ou Windows Server.

1.3.8 – Conjuntos de Estações de Trabalho (COWs)

Clusters de computadores interligados que operam como um sistema único para tarefas paralelas. São usados como supercomputadores baratos ou "server farms" em sites de grande tráfego.

1.3.9 – Mainframes

Máquinas grandes e antigas, usadas ainda hoje por empresas com investimentos pesados em software antigo. Têm grande capacidade de E/S e armazenamento e foram ressuscitadas com a Internet para lidar com grandes volumes de transacções.

1.3.10 – Supercomputadores

Antes mais poderosos que os mainframes, hoje têm menos relevância, sendo substituídos por clusters mais baratos e flexíveis.


1.4 – Famílias de Computadores de Exemplo

O livro foca-se em três tipos de computadores:

  1. Computadores Pessoais – representados pelo Pentium 4

  2. Servidores – representados pelo UltraSPARC III

  3. Computadores Embebidos – representados pelo 8051

1.4.1 – Introdução ao Pentium 4

A família de CPUs da Intel evoluiu do 4004 (1970) até ao Pentium 4, com grande compatibilidade com versões anteriores. O Pentium Pro introduziu cache de dois níveis e execução paralela de até 5 instruções. O Pentium 4 trouxe a tecnologia de hyperthreading e novas instruções multimédia (SSE).

1.4.2 – Introdução ao UltraSPARC III

A Sun Microsystems criou a linha SPARC, baseada numa arquitectura RISC. A CPU UltraSPARC III, com 64 bits e total compatibilidade retroactiva, é um exemplo de processador poderoso para servidores. O SPARC distingue-se por ser uma arquitetura aberta com vários fabricantes licenciados.

1.4.3 – Introdução ao 8051

O 8051 é um microcontrolador de 8 bits com CPU, memória e E/S num só chip, lançado pela Intel em 1980. Muito usado em sistemas embebidos devido ao seu baixo custo, larga disponibilidade, vasta documentação e suporte por múltiplos fabricantes. Há variantes como o 8751 (regravável) e o 8052 (mais memória). A família MCS-51 é ainda amplamente usada em engenharia e investigação.


1.5 – Unidades Métricas

Esta secção esclarece o uso das unidades métricas no contexto da ciência computacional, e especialmente nas áreas de armazenamento e transmissão de dados.

Unidades Padrão

  • A informática adopta o sistema métrico internacional (SI), evitando unidades tradicionais anglo-saxónicas.

  • As principais prefixos métricos utilizados são:

    • mili (10⁻³), micro (10⁻⁶), nano (10⁻⁹), pico (10⁻¹²), kilo (10³), mega (10⁶), giga (10⁹), tera (10¹²), entre outros.

Ambiguidade entre base 10 e base 2

  • No contexto da memória, a indústria usa:

    • 1 KB = 2¹⁰ = 1024 bytes,

    • 1 MB = 2²⁰ = 1.048.576 bytes,

    • 1 GB = 2³⁰ = 1.073.741.824 bytes,

    • 1 TB = 2⁴⁰ = 1.099.511.627.776 bytes.

  • Contudo, em comunicações, os prefixos referem-se a potências de 10:

    • 1 kbps = 10³ bits/segundo,

    • 1 Mbps = 10⁶ bits/segundo, etc.

Esta dualidade pode causar confusão, por isso o livro usa:

  • KB, MB, GB, TB → para potências de 2 (memória),

  • kbps, Mbps, Gbps, Tbps → para potências de 10 (transmissão de dados).


1.6 – Estrutura do Livro

Esta secção apresenta uma visão geral da estrutura e abordagem do livro.

Objectivo principal

O livro trata da organização estruturada de computadores multinível, examinando quatro níveis em detalhe:

  1. Lógica digital – circuitos e portas lógicas.

  2. Microarquitectura – como o hardware interpreta instruções da ISA.

  3. ISA (Instruction Set Architecture) – conjunto de instruções da máquina.

  4. Máquina do sistema operativo – funcionalidades oferecidas pelo sistema operativo.

A obra foca-se em conceitos fundamentais e exemplos práticos, evitando pormenores excessivamente matemáticos ou técnicos.

Exemplos usados

Serão utilizados três computadores de referência ao longo do livro:

  • Pentium 4 (PCs),

  • UltraSPARC III (servidores),

  • 8051 (sistemas embebidos).

Estes foram escolhidos por:

  • Serem largamente utilizados.

  • Apresentarem arquitecturas diferentes.

  • Permitirem comparação crítica entre soluções de design.

O autor destaca que não se trata de um manual de programação de nenhuma dessas máquinas, mas sim de uma exploração dos princípios subjacentes a todas elas.

Estrutura dos capítulos seguintes

  • Cap. 2: Introdução aos componentes principais (processadores, memórias, E/S).

  • Cap. 3: Nível de lógica digital – portas, circuitos e álgebra booleana.

  • Cap. 4: Microarquitectura – implementação da ISA.

  • Cap. 5: ISA – detalhes das instruções e dados.

  • Cap. 6: Nível do sistema operativo – controlo de processos, memória, etc.

  • Cap. 7: Linguagem assembly e o processo de ligação (linking).

  • Cap. 8: Computadores paralelos – multiprocessadores, COWs e SoCs.

  • Cap. 9: Leituras sugeridas e bibliografia anotada.




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

Capítulo 1 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 *