Pesquisar neste blogue

sábado, 15 de março de 2025

Resumo extraído do capítulo 1 livro "Computer Organization and Design RISC-V 2nd edition, by Hennessy and Patterson


Capítulo 1: Abstrações e Tecnologia de Computadores

1.1 Introdução

O capítulo introduz a importância dos sistemas computacionais na sociedade moderna e a constante evolução da tecnologia. São destacados exemplos de avanços tecnológicos, como a computação em automóveis, telemóveis, o Projeto Genoma Humano e a Web. Além disso, são apresentadas três grandes categorias de aplicações de computadores:

  1. Computadores Pessoais (PCs) – Focados na performance para um único utilizador a baixo custo.
  2. Servidores – Computadores de grande capacidade, projetados para múltiplos utilizadores e aplicações complexas.
  3. Computadores Embebidos – Presentes em eletrodomésticos, automóveis, entre outros, com requisitos específicos de desempenho e consumo energético.

O capítulo também discute a transição da era do PC para a era dos dispositivos móveis pessoais (PMDs) e a ascensão da computação na nuvem (Cloud Computing).


1.2 As Sete Grandes Ideias da Arquitetura de Computadores

O capítulo apresenta sete princípios fundamentais da arquitetura de computadores, que orientam o design e a evolução dos sistemas computacionais:

  1. Uso de Abstração para Simplificar o Design – Permite projetar sistemas complexos de forma modular.
  2. Fazer com que o Caso Comum seja Rápido – Otimização das operações mais frequentes para aumentar o desempenho.
  3. Desempenho via Paralelismo – Execução de múltiplas operações simultaneamente para melhorar a velocidade de processamento.
  4. Desempenho via Pipeline – Divisão da execução de instruções em etapas sequenciais para maior eficiência.
  5. Desempenho via Previsão – Técnicas que antecipam resultados para reduzir atrasos computacionais.
  6. Hierarquia de Memória – Uso de múltiplos níveis de memória (cache, RAM, armazenamento) para otimizar acesso a dados.
  7. Confiabilidade via Redundância – Implementação de mecanismos para garantir funcionamento contínuo mesmo em caso de falhas.

1.3 Por baixo do seu Programa

O software é organizado em camadas hierárquicas, com as aplicações no topo e o hardware na base. Duas camadas fundamentais do software são:

  • Sistemas Operativos (SO) – Gerem recursos do computador e fornecem serviços como manipulação de ficheiros e controlo de dispositivos.
  • Compiladores – Traduzem programas escritos em linguagens de alto nível (como C ou Java) para instruções que o hardware pode executar.

A arquitetura de computadores é baseada numa linguagem binária simples, com instruções representadas por números em base 2. A introdução de compiladores e linguagens de alto nível revolucionou a programação, tornando-a mais acessível e eficiente.


1.4 Por Dentro do Computador

Os computadores são compostos por cinco componentes principais:

  1. Entrada (Input) – Dispositivos como teclados e sensores que inserem dados no sistema.
  2. Saída (Output) – Dispositivos como monitores e impressoras que exibem os resultados do processamento.
  3. Processador (CPU) – Unidade que executa instruções e controla a operação do sistema.
  4. Memória – Armazena dados e programas temporariamente durante a execução.
  5. Dispositivos de Armazenamento – Guardam dados permanentemente (discos rígidos, SSDs, memória flash).

Os dispositivos modernos também incluem ecrãs táteis (touchscreen), sensores e conectividade sem fios.


1.5 Tecnologias para Construção de Processadores e Memória

Os avanços tecnológicos permitiram a evolução dos processadores e memórias ao longo do tempo. O transistor, um interruptor eletrónico, é o componente fundamental dos circuitos integrados (chips), que contêm milhões ou bilhões desses dispositivos.

A Lei de Moore previa a duplicação da densidade dos transistores a cada dois anos, impulsionando melhorias no desempenho dos computadores. No entanto, essa tendência tem desacelerado recentemente devido a limitações físicas.

A fabricação de chips envolve um processo complexo que inclui:

  • Produção de lingotes de silício
  • Corte em wafers
  • Aplicação de múltiplas camadas de circuitos
  • Testes e embalagem dos chips

A eficiência na fabricação de chips influencia diretamente o custo dos dispositivos.


1.6 Desempenho

O desempenho de um computador pode ser medido por diversos critérios, como a rapidez na execução de tarefas ou a capacidade de processar múltiplos trabalhos simultaneamente. Para avaliar o desempenho, são utilizados benchmarks, que testam diferentes aspectos do hardware e software.


1.7 A Barreira de Energia (The Power Wall)

O aumento da frequência dos processadores levou a um consumo excessivo de energia e geração de calor, limitando os ganhos de desempenho. Para superar essa barreira, os designers passaram a focar-se em eficiência energética e computação paralela.


1.8 A Mudança para Multiprocessadores

Devido às limitações da velocidade do clock, a indústria passou a adotar processadores multinúcleo (multicore), que permitem a execução paralela de múltiplas tarefas. Isso exige que os programadores desenvolvam software que aproveite essa arquitetura.


1.9 Benchmarks: Avaliação do Intel Core i7

Para medir o desempenho real de um processador, são utilizados benchmarks, que são conjuntos de testes padronizados. O capítulo apresenta um estudo de caso do desempenho do Intel Core i7 em diversas aplicações.


1.10 Acelerando Computações: Multiplicação de Matrizes em Python

O capítulo ilustra como técnicas de otimização podem melhorar o desempenho de cálculos matemáticos em linguagens de alto nível, como Python.


1.11 Falácias e Armadilhas

Os autores alertam sobre equívocos comuns no design de computadores, como:

  • Assumir que maior frequência de clock significa automaticamente melhor desempenho.
  • Acreditar que um processador mais rápido melhorará o desempenho de qualquer programa.

1.12 Considerações Finais

O capítulo reforça a importância da compreensão da arquitetura de computadores para programadores e engenheiros, destacando que a evolução tecnológica continua a moldar o futuro da computação.


Computer Organization and Design RISC-V 2nd edition, Hennessy and Patterson, Cap 1





Se quiser tutoria e/ou explicações sobre matérias que encontre neste blogue, contacte-nos, de preferência por email. Este blogue destina-se à divulgação dos nossos serviços. É apenas uma pequena amostra do que sabemos e podemos fazer. Veja a Lista de Matérias já disponíveis para explicações. Leia testemunhos de antigos alunos.


Formulário de Contacto

Nome

Email *

Mensagem *