Alberto José Proença
Lic. Matemática e Ciências da Computação, 2º ano
1999/00
Sumários
Semana: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13
Semana 1
04-Out-99 (TP3)
Não houve aula (ainda não houve aula teórica de apresentação)
06-Out-99 (T)
Não houve aula
06-Out-99 (TP1, TP2)
Não houve aula (ainda não houve aula teórica de apresentação)
07-Out-99 (T)
Não houve aula (apresentação de comunicação
científica em conferência)
Semana 2
11-Out-99 (TP3)
Não houve aula (ainda não houve aula teórica de apresentação)
13-Out-99 (T)
Apresentação.
13-Out-99 (TP1, TP2)
Não houve aula (ainda não houve aula teórica de apresentação)
14-Out-99 (T)
Introdução ao funcionamento da disciplina: apresentação
da documentação a fornecer (em formato electrónico) e da metodologia de trabalho e de
avaliação.
Semana 3
18-Out-99 (TP3)
Sessão de multimédia a efectuar em 21/Nov/1999
20-Out-99 (T)
Organização e arquitectura dum computador: Introdução à organização interna dum computador, e em particular a ligação entre o processador central e a memória. Representação da informação no computador: os símbolos do "alfabeto" e as "palavras" com informação.
20-Out-99 (TP1, TP2)
Introdução ao funcionamento da componente teórico-prática. Sistemas de numeração e conversão de bases. Representação binária de valores positivos e negativos (representação por excesso, complemento para um e complemento para 2).
21-Out-99 (T)
Estrutura interna dum processador: a unidade de controlo, o conjunto de registos e as unidades funcionais. Funcionamento básico dum computador: modelo de execução de instruções e respectivos passos para o implementar; introdução aos conceitos de registo de instrução, registo apontador para a próxima instrução, mecanismo de busca de instruções à memória - utilizando os barramentos de endereços, controlo e de dados - a descodificação das instruções e a execução das operações especificadas na instrução. Introdução aos níveis de abstracção presentes num computador: o nível HLL, o nível da linguagem assembly e o da linguagem máquina.
Semana 4
25-Out-99 (TP3)
Introdução ao funcionamento da componente teórico-prática. Sistemas de numeração e conversão de bases. Representação binária de valores positivos e negativos (representação por excesso, complemento para um e complemento para 2).
27-Out-99 (T)
Funcionamento básico dum computador na relação entre o CPU e os periféricos: o interface genérico com os controladores de periféricos e a análise de alguns periféricos (dum rato, dum monitor gráfico, duma porta série e modem, ...).
27-Out-99 (TP1, TP2)
Representação binária de valores fraccionários. Valores reais em vírgula flutuante. Norma IEEE 754. Resolução de exercícios.
28-Out-99 (T)
Análise
do funcionamento dum processador e respectivo instruction set:
introdução às operações num processador - análise do n.º de operandos em cada
instrução, com introdução às operações aritméticas básicas, e localização de
operandos (escalares em registos, e estruturados em memória) - e às operações de
transferência de informação.
Semana 5
01-Nov-99 (TP3)
Feriado.
03-Nov-99 (T)
Análise do funcionamento dum processador e respectivo instruction set: introdução às operações de transferência de informação - com análise de formatos de instruções (comprimento, campos numa instrução, variação de formatos e pseudo-instruções) - e às instruções para tomada de decisões - saltos condicionais e incondicionais.
03-Nov-99 (TP1, TP2)
Introdução à estrutura e funcionamento dum computador (com apoio dum CD multimedia). Contacto com alguns equipamentos e componentes de diversas gerações.
04-Nov-99 (T)
Mecanismos
para execução de programas: edição de texto (de programas source),
tradução de programas source para níveis de abstracção mais baixos -
compilador e assembler - e ligação de ficheiros objecto num executável;
conversão do programa assembler para linguagem máquina.
Semana 6
08-Nov-99 (TP3)
Representação binária de valores fraccionários. Valores reais em vírgula flutuante. Norma IEEE 754. Resolução de exercícios.
10-Nov-99 (T)
Mecanismos para execução de programas: análise do formato dum ficheiro objecto; o papel do loader na execução de programas.
10-Nov-99 (TP1, TP2)
Introdução à programação em linguagem assembly e linguagem máquina. Instruction set do MIPS Introdução ao ambiente de simulação do MIPS (SPIM/XSPIM). Formatos de instruções R, I e J. Exercício usando reverse engineering.
11-Nov-99 (T)
Modelo
de programação dum processador: registos visíveis ao programador em arquitecturas
RISC (para inteiros e para fp, e em detalhe no MIPS) e noutras arquitecturas; convenção
na utilização dos registos no MIPS.
Semana 7
15-Nov-99 (TP3)
Introdução à programação em linguagem assembly e linguagem máquina. Instruction set do MIPS Introdução ao ambiente de simulação do MIPS (SPIM/XSPIM). Formatos de instruções R, I e J. Exercício usando reverse engineering.
17-Nov-99 (T)
Modelo de programação dum processador: modos de acesso aos operandos, instruções de input/output, e ordenação de bytes numa palavra (little-endian, big-endian).
17-Nov-99 (TP1, TP2)
Codificação elementar em assembly e em binário (formatos R e I), com ênfase em transferências de informação e operações aritméticas, manuseando variáveis escalares e estruturadas (arrays e records). Técnicas de programação em assembly.
18-Nov-99 (T)
Metodologia
de construção de programas em assembly: análise detalhada da estrutura do
conjunto de instruções presentes num processador RISC, para transferência de
informação, e em operações aritméticas e lógicas.
Semana 8
22-Nov-99 (TP3)
Codificação elementar em assembly e em binário (formatos R e I), com ênfase em transferências de informação e operações aritméticas, manuseando variáveis escalares e estruturadas (arrays e records). Técnicas de programação em assembly.
24-Nov-99 (T)
Metodologia de construção de programas em assembly: análise detalhada da implementação de instruções (para transferência de informação, e operações aritméticas/lógicas) num processador em particular (MIPS), com exemplos de utilização; análise do formato dessas instruções em binário (no MIPS).
24-Nov-99 (TP1, TP2)
Codificação elementar em assembly de baixo nível, com ênfase em estruturas de controlo. Exercícios.
25-Nov99 (T)
Metodologia
de construção de programas em assembly: análise detalhada dos modelos de
implementação de instruções de controlo de fluxo num qualquer processador, e o caso
particular de um em particular (MIPS), com exemplos de utilização; análise do formato
dessas instruções em binário (no MIPS); revisão global dum instruction set
(MIPS).
Semana 9
29-Nov-99 (TP3)
Codificação elementar em assembly de baixo nível, com ênfase em estruturas de controlo. Exercícios.
01-Dez-99 (T)
Feriado
01-Dez-99 (TP1, TP2)
Feriado
02-Dez-99 (T)
Metodologia
de construção de programas em assembly: análise detalhada da estrutura de
instruções para invocação/retorno de rotinas e suporte à invocação de
procedimentos/funções; análise dum exemplo de construção de rotinas em assembly
a partir da especificação de procedimentos em C (swap e sort).
Semana 10
06-Dez-99 (TP3)
Codificação em assembly de baixo nível e em binário (formatos R, I e J) de exemplos mais complexos.
08-Dez-99 (T)
Feriado
08-Dez-99 (TP1, TP2)
Feriado
09-Dez-99 (T)
Alternativas
às arquitecturas genéricas RISC: objectivos genéricos dos modelos RISC e CISC;
organização dos registos em arquitecturas CISC (i86); diferenças na programação, em
linguagem máquina, de arquitecturas RISC e duma CISC, ix86 (acesso a operandos em
memória, operandos em operações lógicas e aritméticas); modelo de programação de
procedimentos/funções.
Semana 11
13-Dez-99 (TP3)
Não houve aula.
15-Dez-99 (T)
Alternativas às arquitecturas genéricas RISC: modelo de programação de procedimentos/funções e análise comparativa dum exemplo (sort ) entre o programa em linguagem máquina no MIPS e no i86.
15-Dez-99 (TP1, TP2)
Codificação em assembly de baixo nível e em binário (formatos R, I e J) de exemplos mais complexos.
16-Dez-99 (T)
Computação
aritmética: construção de uma Unidade Lógica e Aritmética (ALU) - blocos
constituintes (and, or, inv e selctor/multiplexador), ALU de
1-bit (com as operações lógicas AND e OR, e um somador completo com suporte à
subtracção); construção duma ALU com 32-bits e apresentação do símbolo universal
para a ALU.
Semana 12
03-Jan-00 (TP3)
Codificação de programas HLL com funções / procedimentos respeitando a convenção para utilização de registos em MIPS.
05-Jan-00 (T)
Medição de desempenho de computadores: identificação das características a medir num computador - latência e throughput - e no tempo de execução de programas em computador (inc. CPUtime). Métricas na medição do desempenho do par processador-memória, com dedução de equação para cálculo do CPUtime para um dado programa; factores da arquitectura que influenciam o seu desempenho.
05-Jan-00 (TP1, TP2)
Codificação de programas HLL com funções / procedimentos respeitando a convenção para utilização de registos em MIPS.
06-Jan-00 (T)
Medição
de desempenho de computadores: selecção de programas para o cálculo do desempenho:
identificação das características que uma boa suite de benchmarks deve
possuir. Análise resumida da SPEC Benchmark suite.
Semana 13
10-Jan-00 (TP3)
Resolução de exercícios.
12-Jan-00 (T)
Organização hierárquica da memória: introdução aos princípios da localidade - espacial e temporal - com uso de metáfora, às alternativas de implementação (cache, memória virtual e disco), e propriedades - inclusão e consistência. Conceitos associados a cada nível da hierarquia: bloco (linha/página), hit, hit rate, miss, page fault, miss rate, miss penalt. Influência no desempenho.
12-Jan-00 (TP1, TP2)
Resolução de exercícios.
13-Jan-00 (T)
Organização
hierárquica da memória: caracterização quantitativa de níveis da hierarquia.
Análise de implementação de memória cache: colocação e modo de acesso às
linhas, estratégias de substituição de linhas e estratégias de escrita. Realização
dos inquéritos de avaliação da disciplina. Comentários finais ao funcionamento da
disciplina.