A melhor forma de optimizar o aproveitamento das capacidades de um computador é compreender os princípios básicos do seu funcionamento. Este livro descreve as técnicas subjacentes às várias arquitecturas de computador, desde os pequenos micro-controladores até aos grandes servidores, passando pelos computadores pessoais (PC). O utilizador ficará a perceber, por exemplo, porque é que duplicar a frequência de relógio de um processador não reduz para metade o tempo de execução dos programas e porque é que às vezes o computador parece parar, com a luz de acesso ao disco activa. O gestor de sistemas informáticos ficará com uma noção mais concreta do impacto da arquitectura dos seus servidores no desempenho dos programas e de quais são os pontos de estrangulamento no desempenho do sistema.
Este livro está orientado ao auto-estudo e experimentação. Inclui 75 guiões de laboratório, com base num simulador, que o leitor pode executar quando quiser, ao seu próprio ritmo, de forma e experimentar na prática os conceitos e técnicas que aprendeu. O livro baseia-se num processador pedagógico, PEPE, especialmente concebido para este efeito, suportando as características necessárias em qualquer processador mas sem as complicações dos processadores comerciais.
Esta 4ª Edição Actualizada do livro de Arquitectura de Computadores mais vendido em Portugal, agora com uma nova capa especialmente dedicada aos seus principais leitores, os alunos de 1º Ciclo do Ensino Superior, inclui os últimos avanços tecnológicos verificados ao nível dos processadores comerciais, mas também ao nível das memórias e dos periféricos, em particular na arquitectura dos PC. Foi também melhorado o simulador com a inclusão de novos módulos.
1 - Introdução ao mundo dos computadores
1.1 O computador como ferramenta
1.2 A importância dos computadores
1.3 Processamento da informação
1.4 Estrutura básica de um computador
1.5 O mundo com apenas dois símbolos
1.6 Interacção pessoa-computador
1.7 A gestão de um computador
1.8 A evolução dos computadores
1.9 Perspectivas de evolução futura
1.10 Conclusões
2 - O mundo binário
2.1 Circuitos electrónicos analógicos
2.2 Circuitos electrónicos digitais
2.3 Álgebra de Boole
2.4 Funções lógicas
2.5 Circuitos combinatórios
2.6 Circuitos Sequenciais
2.7 Representação de números
2.8 Operações aritméticas
2.9 Conclusões
2.10 Exercícios
3 - O meu primeiro Computador
3.1 Componentes básicos de um computador
3.2 RAM – a memória para guardar informação
3.3 O processador (PEPE-8)
3.4 Programação em baixo nível de um computador
3.5 Periféricos
3.6 Soluções específicas ou genéricas?
3.7 Conclusões
3.8 Exercícios
4 - Arquitectura básica de um processador
4.1 Banco de registos
4.2 Endereços de dados e de instruções
4.3 Impacte da largura das instruções
4.4 Endereçamento de byte e de palavra
4.5 Codificação das instruções
4.6 Registos
4.7 Bits de estado
4.8 Conjunto de instruções
4.9 Instruções de salto
4.10 Instruções de transferência de dados
4.11 Instruções aritméticas
4.12 Instruções Lógicas
4.13 Instruções de deslocamento
4.14 Modos de endereçamento
4.15 Conclusões
4.16 Exercícios
5 - Programação de um computador
5.1 Um problema simples
5.2 Modelação do problema com fluxogramas
5.3 Programação em alto nível
5.4 Mapeamento da programação de alto nível em linguagem assembly
5.5 Dados, declarações e directivas
5.6 Instruções
5.7 Rotinas
5.7.2 Mecanismo de chamada e retorno
5.8 Gestão dos dados
5.9 Desenvolvimento de programas
5.10 Conclusões
5.11 Exercícios
6 - O computador completo
6.1 Interligação dos componentes de um computador
6.2 Excepções
6.3 Tipos de periféricos
6.4 Arquitectura do sistema de periféricos
6.5 Exemplos de computadores completos
6.6 Avaliação de desempenho dos computadores
6.7 Conclusões
6.8 Exercícios
7 - O processador em detalhe
7.1 Diagrama de blocos geral
7.2 Núcleo do processador
7.3 Processamento em estágios
7.4 Interface de memória
7.5 Caches
7.6 Memória virtual
7.7 Suporte para Processos
7.8 Conclusões
7.9 Exercícios
Apêndice A - Manual de programador do PEPE
A.1 Pinos do módulo PEPE
A.2 Registos
A.3 Excepções
A.4 Conjunto de instruções
A.5 Programação do PEPE
Apêndice B - Manual de programador do CREPE
B.1 Pinos do módulo CREPE
B.2 Registos auxiliares
B.3 Funcionamento dos Periféricos
B.4 Excepções
B.5 Exemplo de utilização
Apêndice C - Introdução ao simulador (SIMAC)
C.1 Desenho de circuitos
C.2 Simulação de circuitos
Apêndice D - Computação em vírgula flutuante
D.1 Representação em vírgula flutuante
D.2 A norma IEEE 754
D.3 Operações aritméticas em vírgula flutuante
Apêndice E - Codificação de caracteres em ASCII
José Delgado
Professor Associado do Departamento de Engenharia Informática do Instituto Superior Técnico, lecciona há mais de 25 anos na área de arquitectura de computadores. É actualmente regente da cadeira de Arquitectura de Computadores e Coordenador da Licenciatura em Engenharia Informática e Computadores, no pólo do Taguspark.
Carlos Ribeiro
Professor Auxiliar do Departamento de Engenharia Informática do Instituto Superior Técnico, onde lecciona desde 1993 nas áreas de Arquitectura de Computadores e de Sistemas Operativos. É actualmente regente das cadeiras da área de Segurança.