Arquitectura de Computadores II
Licenciatura em Engenharia de Sistemas e Informática - 3ºAno (LESI)
2004/05
I.
Arquitectura
interna dum processador
A unidade de controlo
Revisão do datapath dum processador (MIPS) e dos
sinais de controlo de uma ALU. Análise de uma implementação simples - com apenas
as instruções de lw, sw, beq, j e as instruções aritméticas/lógicas add, sub,
and, or e slt - e desenho da unidade de controlo principal do processador.
Extensão da
arquitectura para suportar implementações multi-ciclo; identificação dos
circuitos adicionais e redefinição dos sinais de controlo e respectiva máquina
de estados finita (FSM); implementação da FSM usando ROM ou PLA.
Técnicas alternativas
de implementação da unidade de controlo: microcódigo; definição de um formato
de microprogramação e construção de um microprograma.
Integração de
excepções e interrupções numa unidade de controlo.
Paralelismo ao nível da instrução
Introdução de pipeline no datapath dum processador (MIPS); análise dos 5 níveis típicos: IF,
ID/OF, Ex, Mem e WB; análise de uma unidade de controlo simples que suporta pipeline.
Identificação de
problemas em arquitecturas com pipeline
e propostas de resolução: dependência de dados e resolução com stalls e data forwarding; dependência de controlo em instruções de salto e
resolução com stalls e previsão de
saltos; e dependência de controlo em excepções.
Paralelismo ao nível
da instrução (ILP): arquitecturas super-escalares. Análise detalhada dos tipos
de dependências de dados: RAW (Read after Write), WAR (Write after Read) e WAW
(Write after Write). Técnicas de renomeação de registos e escalonamento
dinâmico de instruções para resolução das dependências WAR e WAW. Processadores
VLIW (Very Long Instruction Word) e vectoriais. Instruções vectoriais para
multimédia.
Análise do desempenho
de arquitecturas com pipeline e
super-escalaridade.
Análise de modelos de
implementação de algumas arquitecturas comerciais de última geração.
II. Processadores paralelos
Taxonomia de
classificação de arquitecturas baseadas em diversos processadores: sistemas de
memória partilhada e sistemas de memória distribuída.
Sistemas MIMD de
memória partilhada: estrutura dos nodos de computação, coerência de caches, modelos de programação.
Paralelismo ao nível dos fios de execução. Apresentação de sistemas multi-core.
Sistemas MIMD de
memória distribuída: estrutura dos nodos de computação, o modelos de
programação. Clusters de máquinas.
III. Periféricos
Análise das
características e do desempenho de alguns periféricos: discos, RAID, redes,
ecrã, etc. Análise de tipos e características de barramentos. Hierarquia de
barramentos e análise das características de
PC actuais.
Programação de
periféricos: E/S através de sondagem ou através de interrupções.
Desenvolvimento de aplicações para um periférico genérico (PG/04).
IV. Máquinas Virtuais
Análise das
características de uma máquina virtual. Estudo da arquitectura do conjunto de
instruções (ISA) da Java Virtual Machine.