Arquitectura de Computadores: Dos Sistemas Digitais aos Microprocessadores - 6ª Edição

Arquitectura de Computadores: Dos Sistemas Digitais aos Microprocessadores - 6ª Edição

Guilherme Arroz, José Monteiro, Arlindo Oliveira

IST Press (Instituto Superior Técnico)

10/2024

824

Mole

Português

9789728469542

9728469543

5 dias

1371

O presente texto foi desenvolvido com o objectivo de apoiar o ensino de disciplinas introdutórias, ao nível do ensino superior, nas áreas dos sistemas digitais e das arquitecturas de computadores. A abordagem proposta neste livro proporciona uma visão realista dos processadores como sistemas físicos, que têm de obedecer a numerosas restrições e compromissos impostos por diversos factores. É, por essa razão, a mais adequada para alunos de áreas de Engenharia que exijam conhecimento específico da tecnologia dos processadores, tais como as áreas das Engenharia Electrotécnica, Informática, Electrónica, de Telecomunicações, Aeronáutica e Mecatrónica, entre outras. Além do texto propriamente dito, é disponibilizado um conjunto de materiais de apoio, que incluem um assembler e um simulador para uma arquitectura descrita no livro, o Pequeno Processador Pedagógico P3, uma placa com uma implementação deste processador ligado a um número de periféricos e diverso material pedagógico adicional.
PREFÁCIO
1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO
1.1 Bases de Numeração
1.1.1 Representação de Números Inteiros em Base b
1.1.2 Representação de Números em Base 2
1.1.3 Representação de Números Fraccionários em Base 2
1.1.4 Representação de Números em Bases Potências de 2
1.2 Operações Aritméticas em Bases 2, 8 e 16
1.2.1 Somas em Base 2
1.2.2 Multiplicações em Base 2
1.2.3 Operações Aritméticas em Outras Bases
1.3 Códigos
1.3.1 Codificação
1.3.2 Códigos Numéricos
1.3.3 Códigos Reflectidos
1.3.4 Códigos Alfanuméricos
1.4 Representação Digital da Informação
2 FUNÇÕES LÓGICAS
2.1 Álgebra de Boole Binária
2.1.1 Funções Lógicas de Uma Variável
2.1.2 Funções de Duas Variáveis
2.1.3 As Funções AND e OR
2.1.4 Função Conjunção
2.1.5 Função Disjunção
2.1.6 Princípio da Dualidade
2.1.7 Prioridade na Execução de Operações
2.1.8 Teoremas Envolvendo Conjunção e Disjunção
2.1.9 Definição Formal de Álgebra de Boole
2.1.10 Funções NAND e NOR
2.1.11 Função XOR
2.1.12 Funções de n Variáveis
2.1.13 Manipulação de Expressões Lógicas
2.2 Representação de Funções Lógicas
2.2.1 Forma Canónica Normal Disjuntiva
2.2.2 Forma Canónica Normal Conjuntiva
2.2.3 Representação de Funções Usando Um só Tipo de Função
2.3 Minimização de Expressões Lógicas
2.3.1 Método de Karnaugh
2.3.2 Método de Quine-McCluskey
3 REALIZAÇÃO FÍSICA DE CIRCUITOS LÓGICOS
3.1 Circuitos Integrados Digitais
3.1.1 Famílias Lógicas
3.1.2 Portas Básicas
3.1.3 Níveis de Tensão e Níveis Lógicos
3.1.4 Atrasos
3.1.5 Energia
3.1.6 Dispositivos Especiais
3.2 Realização de Funções Lógicas Usando Portas Básicas
3.2.1 Lógica Positiva e Negativa
3.2.2 Lógica de Polaridade
3.3 Detecção de Falhas
3.3.1 Tipos de Falhas em Circuitos Digitais
3.3.2 Ponta de Prova Lógica
3.3.3 Estratégias para Detecção de Falhas
3.3.4 Exemplos de Localização e Detecção de Falhas
3.4 Características Temporais
3.4.1 Análise de Atrasos em Circuitos
3.4.2 Transições Espúrias em Circuitos Combinatórios
3.5 Realização Directa
3.5.1 Realização Usando ROM
3.5.2 Realização Usando Matrizes Lógicas Programáveis
4 MÓDULOS COMBINATÓRIOS DE MÉDIA COMPLEXIDADE
4.1 Modularidade
4.2 Descodificadores
4.2.1 Descodificadores Binários
4.2.2 Interligação de Descodificadores
4.3 Codificadores
4.3.1 Codificadores Binários
4.4 Multiplexadores
4.4.1 Realização de Multiplexadores
4.4.2 Tipos de Multiplexadores
4.4.3 Expansão de Multiplexadores
4.4.4 Multiplexagem e Desmultiplexagem
4.5 Realização de Funções Lógicas com Módulos de Média Complexidade
4.5.1 Realizações com Descodificadores
4.5.2 Realizações com Multiplexadores
4.6 Circuitos Iterativos
5 CIRCUITOS ARITMÉTICOS
5.1 Somadores
5.1.1 Semi-somador de 1 Bit
5.1.2 Somador de 1 Bit
5.1.3 Interligação em Cadeia de Circuitos Somadores
5.1.4 Somadores Rápidos
5.2 Números com Sinal
5.2.1 CodiÞcação
5.2.2 Extensão de Sinal
5.2.3 Operações com Números em Complemento para 2
5.2.4 Excesso
5.3 Subtractores
5.3.1 Circuito Subtractor
5.3.2 Subtracção Usando Somadores
5.3.3 Circuito Somador/Subtractor
5.4 Multiplicadores e Divisores
5.4.1 Multiplicação de Números sem Sinal: Multiplicador em Matriz
5.4.2 Análise do Circuito Multiplicador em Matriz
5.4.3 Multiplicação de Números com Sinal
5.4.4 Divisores
5.5 Virgula Fixa
5.5.1 Representação em Vírgula Fixa
5.5.2 Operações em Vírgula Fixa Usando Unidades Inteiras
5.5.3 Limitações da Representação em Vírgula Fixa
5.6 Representações em Vírgula Flutuante
5.6.1 Mantissa e Expoente
5.6.2 Operações em Vírgula Flutuante
5.6.3 A Recomendação IEEE - 754
6 CIRCUITOS SEQUENCIAIS BÁSICOS
6.1 Comportamento Sequencial de Circuitos
6.2 Básculas Sensíveis ao Nível
6.2.1 Báscula SR
6.2.2 Realização de Básculas SR com Sinal de Activação
6.2.3 Báscula D
6.3 Sinal de Relógio
6.3.1 Circuitos Sequenciais Síncronos e Assíncronos
6.3.2 Características do Sinal de Relógio
6.4 Básculas Actualizadas no Flanco do Relógio
6.4.1 Tipos de Amostragem
6.4.2 Tipos de Básculas
6.4.3 Sinais de Controlo Imediato
6.4.4 Parâmetros Temporais das Básculas
6.5 Registos
6.5.1 Registos Básicos
6.5.2 Sinais de Controlo de Registos
6.5.3 Registos de Deslocamento
6.5.4 Sinais de Estado de Registos
6.6 Contadores
6.6.1 Contadores Assíncronos
6.6.2 Contadores Síncronos
6.6.3 Interligação de Contadores
6.6.4 Aplicações de Contadores
6.7 Métodos de Interligação de Registos
6.7.1 Interligação Usando Multiplexadores
6.7.2 Interligação Usando um Barramento Único
6.7.3 Bancos de Registos
6.8 Memórias
6.8.1 Memórias de Acesso Directo
6.8.2 Memórias Dinâmicas
6.8.3 Memórias FIFO
7 ANÁLISE E PROJECTO DE CIRCUITOS SEQUENCIAIS
7.1 Circuitos Sequenciais Síncronos e Assíncronos
7.2 Máquinas de Mealy e de Moore
7.3 Projecto de Circuitos Sequenciais Síncronos
7.3.1 Diagramas de Estados
7.3.2 Minimização do Número de Estados
7.3.3 Especificação Usando Fluxogramas
7.4 Realização de Circuitos Sequenciais Síncronos
7.4.1 Codificação de Estados
7.4.2 Tabela de Transição de Estados
7.4.3 Síntese do Circuito
7.5 Técnicas para Realização de Circuitos Sequenciais Complexos
7.5.1 Controladores Realizados com Lógica Discreta
7.5.2 Controladores Baseados em Contadores
7.5.3 Controladores Microprogramados
8 CIRCUITOS PARA TRANSFERÊNCIA DE DADOS
8.1 Níveis de Abstracção
8.2 Separação entre Circuito de Dados e Circuito de Controlo
8.2.1 Exemplo de Motivação
8.2.2 Circuito de Dados
8.2.3 Unidade de Controlo
8.3 Linguagem de Descrição de Hardware
8.3.1 Linguagem de Transferência entre Registos
8.3.2 Exemplo: Máximo Divisor Comum
8.4 Unidades Lógicas e Aritméticas
8.4.1 Estrutura de uma ULA
8.4.2 Bits de Estado
8.4.3 Unidade Aritmética
8.4.4 Unidade Lógica
8.4.5 Unidade de Deslocamento
8.4.6 Tabela de Controlo da ULA
8.4.7 Exemplo Revisitado: Máximo Divisor Comum
9 ARQUITECTURA DE UM COMPUTADOR
9.1 Perspectiva Histórica
9.2 Tipos de Computadores
9.3 Tipos de Processadores
9.4 Organização Interna de um Computador
9.5 Estrutura Interna de um Processador
9.6 Interacção com o Exterior
9.7 Níveis de Abstracção de um Computador
9.8 Componentes de um Computador
10 CONJUNTOS DE INSTRUÇÕES
10.1 Linguagens de Programação
10.2 Instruções Assembly
10.3 EspeciÞcação dos Operandos
10.3.1 Registos Internos
10.3.2 Constantes EspeciÞcadas na Própria Instrução
10.3.3 Memória e Portos de Entrada/Saída
10.3.4 Modos de Endereçamento
10.3.5 Utilização de Pilhas
10.3.6 Tipos de Operandos
10.4 Codificação das Instruções
10.5 Controlo da Sequência de Execução
10.5.1 Instruções de Salto
10.5.2 Chamadas a Subrotinas
10.5.3 Interrupções
10.6 Conjunto de Instruções do Processador P3
10.6.1 Instruções Aritméticas
10.6.2 Instruções Lógicas
10.6.3 Instruções de Deslocamento
10.6.4 Instruções de Controlo
10.6.5 Instruções de Transferência de Dados
10.6.6 Outras Instruções
10.6.7 Exemplos de Utilização
10.7 Formato das Instruções do Processador P3
10.7.1 Instruções sem Operandos
10.7.2 Instruções com Um Operando
10.7.3 Instruções com Dois Operandos
10.7.4 Instruções de Controlo
10.7.5 Exemplos de Codificação
10.8 Um Assembler para o Processador P3
11 PROGRAMAÇÃO EM LINGUAGEM ASSEMBLY
11.1 Tradução de Linguagem de Alto Nível para Assembly
11.1.1 Variáveis
11.1.2 Manipulação de Dados
11.1.3 Estruturas de Controlo
11.1.4 Chamadas a Sub-rotinas
11.2 Técnicas de Programação em Assembly
11.2.1 Programação Estruturada
11.2.2 Comentários
11.2.3 Constantes
11.2.4 Indentação do Código
11.3 Exemplos de Programação
11.3.1 Manipulação de Listas
11.3.2 Máquina de Estados
11.4 Exemplo Ilustrativo Completo
12 ESTRUTURA INTERNA DE UM PROCESSADOR
12.1 Circuito de Dados
12.1.1 Banco de Registos
12.1.2 Unidade Lógica e Aritmética
12.1.3 Registo de Instrução
12.1.4 Registo de Estado
12.1.5 Barramentos de Interligação
12.1.6 Controlo do Circuito de Dados
12.2 Unidade de Controlo
12.2.1 Formato das Microinstruções
12.2.2 Microssequenciador
12.2.3 Teste de Condições
12.2.4 Unidade de Mapeamento
12.2.5 Controlo do Banco de Registos
12.2.6 Circuito de Controlo
12.3 Microprogramação
12.3.1 Carregamento do Registo de Instrução
12.3.2 Carregamento dos Operandos
12.3.3 Execução das Instruções
12.3.4 Escrita do Resultado
12.3.5 Teste de Interrupções
12.3.6 Geração do Microcódigo
13 SISTEMAS DE MEMÓRIA
13.1 Organização de Sistemas de Memória
13.1.1 Planos de Memória
13.1.2 Mapas de Memória
13.1.3 Geração dos Sinais de Controlo
13.2 Hierarquia de Memória
13.2.1 Caches
13.2.2 Memória Virtual
13.3 Organização de Sistemas de Cache
13.3.1 Mapeamento de Dados em Caches
13.3.2 Blocos de Cache
13.3.3 Políticas de Substituição
13.3.4 Políticas de Escrita
13.3.5 Bits de Controlo
13.4 Memória Virtual
13.4.1 Tabelas de Páginas
13.4.2 Política de Substituição
13.4.3 Política de Escrita
13.4.4 Bits de Controlo
13.4.5 Translation Lookaside Buffers
13.4.6 Interligação da Memória Virtual com as Caches
14 ENTRADAS, SAÍDAS E COMUNICAÇÕES
14.1 Arquitectura de Entradas/Saídas
14.1.1 Interfaces
14.1.2 Tipos de Endereçamento dos Portos
14.2 Periféricos
14.2.1 Teclados
14.2.2 Monitores
14.2.3 Discos Magnéticos
14.3 Comunicação Paralela
14.3.1 Interfaces sem Sincronização
14.3.2 Protocolos de Sincronização em Interfaces Assíncronas
14.3.3 Interfaces Síncronas
14.4 Comunicação Série
14.4.1 Comunicação Assíncrona
14.4.2 Comunicação Síncrona
14.5 Sistema de Interrupções
14.5.1 Funcionamento das Interrupções
14.5.2 Linhas de Interrupção Independentes
14.5.3 Linha de Interrupção Partilhada
14.6 Modos de Transferência de Dados
14.6.1 Transferência Controlada por Programa
14.6.2 Transferência Controlada por Interrupções
14.6.3 Acesso Directo à Memória
14.6.4 Transferência Usando Um Processador de Entrada/Saída
15 TÓPICOS AVANÇADOS DE ARQUITECTURA DE COMPUTADORES
15.1 Desempenho de Microprocessadores
15.1.1 Factores Limitativos do Desempenho
15.1.2 Computadores CISC e RISC
15.2 O Processador P4
15.2.1 Modos de Endereçamento
15.2.2 Conjunto de Instruções do Processador P4
15.3 O Pipeline do Processador P4
15.3.1 Andares do Pipeline do Processador P4
15.3.2 Pipeline Completo do Processador P4
15.3.3 Conflitos Estruturais
15.3.4 Conflitos de Dados
15.3.5 Conflitos de Controlo
15.4 Comparação do Desempenho entre o P3 e o P4
15.5 Técnicas Avançadas de Exploração de Paralelismo
A O PROCESSADOR P3
A.1 Conjunto de Instruções do P3
A.1.1 Registos
A.1.2 Bits de Estado
A.1.3 Memória
A.1.4 Entradas/Saídas
A.1.5 Interrupções
A.1.6 Conjunto de Instruções
A.1.7 Modos de Endereçamento
A.2 Implementação do P3
A.2.1 Assembler
A.2.2 Periféricos
A.2.3 Placa P3
A.2.4 Simulador
Este título pertence ao(s) assunto(s) indicados(s). Para ver outros títulos clique no assunto desejado.