Arquitetura de Computadores
Código
0106025Créditos ECTS
6Objetivos
1. Identificar os componentes fundamentais numa arquitetura de computador e o seu papel no conjunto.
2. Identificar e projetar os componentes fundamentais num processador elementar.
3. Aplicar o conceito de interrupção, nomeadamente nas operações de transferência de dados, e escolher a interface externa adequada à ligação com um periférico.
4. Utilizar uma estrutura hierárquica de memória no contexto das arquiteturas de computadores.
5. Programar um computador em linguagem assembly.
Programa
Objetivos de aprendizagem
- Identificar os componentes fundamentais numa arquitetura de computador e o seu papel no conjunto.
- Identificar os componentes fundamentais num processador e o seu papel no conjunto; projetar os componentes fundamentais de um processador elementar.
- Aplicar o conceito de interrupção, nomeadamente nas operações de transferência de dados.
- Escolher o interface externo adequado à ligação com um periférico.
- Utilizar uma estrutura hierárquica de memória no contexto das arquiteturas de computadores.
* - Identificar as vantagens e restrições inerentes ao funcionamento de um computador decorrentes das evoluções face à arquitetura original.
- Programar um computador em linguagem “Assembly”.
Conteúdos programáticos
1. Arquitetura e organização de um computador
1.1. Componentes principais - modelo de von Neumann
1.2. História e evolução dos computadores
2. Unidade processamento principal (CPU)
2.1. Registos e unidades funcionais
2.2. Execução das instruções: interrupções, "pipelining" e paralelismo
3. Unidade de controlo
3.1. Funções e componentes
3.2. Implementações - microprogramação
4. Arquiteturas de processadores
4.1. RISC e CISC
4.2. Multi-core
5. Memórias
5.1. Interna - cache e RAM
5.2. Externa - discos magnéticos, óticos e flash
6. Buses
6.1. Tipos, estrutura e temporização
6.2. Implementações (exemplos)
7. Entradas e saídas
7.1. Módulos e técnicas de E/S
7.2. Interfaces externas - comunicação com os periféricos
8. Linguagem "assembly"
8.1. Instruções e tipos de dados
8.2. Entrada e saída de dados
8.3. Modos de endereçamento
Métodos de Ensino
Aulas teóricas
Exposição dos conceitos e apresentação de exemplos; resolução de exercícios teórico-práticos.
Realização de testes de diagnóstico no final de cada capítulo.
Aulas práticas laboratoriais
Montagem de componentes num computador e ligação de periféricos.
Construção de programas em linguagem "assembly"; utilização de uma ferramenta para codificação e teste de programas numa linguagem "assembly" em particular.
Utilização do sistema de gestão de aprendizagem Moodle, onde estão disponíveis recursos e atividades diversas, como complemento às aulas presenciais.
Bibliografia
Essencial
José Delgado e Carlos Ribeiro, Arquitectura de Computadores, 5a. Edição, FCA, 2014.
William Stallings, Computer Organization and Architecture, 9th Edition, Prentice-Hall, 2013.
Andrew S. Tanenbaum, Structured Computer Organization, 6th Edition, Prentice-Hall, 2013.
Complementar
Guilherme Arroz et al., Arquitectura de Computadores, 3a. Edição, IST Press, 2014.
John L. Hennessy and David A. Petterson, Computer Organization and Design, 5th Edition, Morgan Kaufman, 2014.