Arquitetura de Computadores

Código

0106025

Créditos ECTS

6

Objetivos

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.

Método de Avaliação