u n i v e r s i d a d e   d o   m i n h o   -   d e p.   i n f o r m á t i c a

Arquitectura de Computadores

Alberto José Proença

Lic. Matemática e Ciências da Computação, 2º ano

2001/02

Sumários

Semana: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12  

 Nota: As referências nos sumários a textos de consulta estão abreviadas para NE (Notas de Estudo), MC (Material Complementar, normalmente de apoio às aulas teórico-práticas), HCW (revista electrónica com a série de referência "How Computers Work"), P&H (livro de Hennessy & Patterson), Sta (livro/resumo de Stallings) e Tan (livro de Tanenbaum); são normalmente seguidas do respectivo capítulo/secção, e quando existe em formato electrónico é indicado o respectivo link.

 

Semana 1

01-Out-01 (TP1+TP2)
Não houve aula (ainda não houve aula teórica de apresentação)

02-Out-01 (T)
Apresentação. Introdução ao funcionamento da disciplina: apresentação da documentação a fornecer (em formato electrónico, e relativo ao ano em curso, em gec.di.uminho.pt/mcc/ac/) e da metodologia de trabalho e de avaliação.

02-Out-01 (TP3)
Não houve aula (para sincronizar com outras turmas)

03-Out-01 (T)
Organização e arquitectura dum computador: Representação da informação no computador: texto e respectivos alfabetos, números, informação multimédia e comandos codificados para o processador; introdução à organização interna dum computador, e em particular a ligação entre o processador central e a memória. 
(NE (Cap1), Sta (Ch1.1 e 1.2), HCW (H1) )

Semana 2

08-Out-01 (TP1+TP2)
Sistemas de numeração e conversão de bases. Representação binária de valores positivos e negativos (sinal + magnitude, complemento para 1, complemento para 2, e representação por excesso).
(NE (Anexo A), Sta (Ch 8.2, 8.3), P&H (Ch4.2), Tan (Annex A) )

09-Out-01 (T)
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.
Estrutura interna dum computador (o processador, a memória, módulos de I/O e o sistema de interligação), com destaque para o processador (a unidade de controlo, o conjunto de registos e as unidades funcionais) e para a organização da memória (noção de endereço e de célula).
(NE (Cap1), Sta (Ch1.1 e 1.2), P&H (Ch1.1, 1.2) )

09-Out-01 (TP3)
Sistemas de numeração e conversão de bases. Representação binária de valores positivos e negativos (sinal + magnitude, complemento para 1, complemento para 2, e representação por excesso).
(NE (Anexo A), Sta (Ch 8.2, 8.3), P&H (Ch4.2), Tan (Annex A) )

10-Out-01 (T)
Funcionamento básico dum computador: modelo de execução de instruções; introdução aos conceitos de registo de instrução, registo apontador para a próxima instrução, e mecanismo de busca de instruções à memória - utilizando os barramentos de endereços, controlo e de dados.
(NE (Cap1), Sta (Ch3.1) )

Semana 3

15-Out-01 (TP1+TP2)
Resolução de exercícios com binários inteiros. Representação binária de valores fraccionários e introdução à representação de valores reais em vírgula flutuante (noção e vantagens duma normalização). 
(NE (Anexo B), ME (TP1, TP2), Sta (Ch8.4), P&H (Ch4.8), Tan (Annex B) )

16-Out-01 (T)
Funcionamento básico dum computador (cont.): mecanismo de busca de instruções à memória, a descodificação das instruções e introdução à execução de operações.

(NE (Cap1), Sta (Ch3.3) )

16-Out-01 (TP3)
Resolução de exercícios com binários inteiros. Representação binária de valores fraccionários e introdução à representação de valores reais em vírgula flutuante (noção e vantagens duma normalização). 

(NE (Anexo B), ME (TP1, TP2), Sta (Ch8.4), P&H (Ch4.8), Tan (Annex B) )

17-Out-01 (T)
Funcionamento básico dum computador (cont.): interface genérico entre o CPU e os módulos de I/O, e mecanismo detalhado de: busca de instruções à memória e sua descodificação e execução
das operações especificadas na instrução.
(NE (Cap1), Sta (Ch3.1, 3.2, 3.3, 3.4) )

Semana 4

22-Out-01 (TP1+TP2)
Apresentação da norma IEEE 754 na representação de valores em vírgula flutuante, com análise de exemplos.
Introdução à metodologia de análise/diálogo sobre terminologia e gíria informática (tema da aula seguinte).
(NE (Anexo B), ME (TP3), Sta (Ch8.4), P&H (Ch4.8), Tan (Annex B);  recomenda-se a ainda uma leitura sobre a história do IEEE 754, bem como uma visita ao site oficial da norma IEEE 754)

23-Out-01 (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).

(NE (Cap2), P&H (Ch3.1, 3.2, 3.3, 3.4, 3.5) )

23-Out-01 (TP3)
Apresentação da norma IEEE 754 na representação de valores em vírgula flutuante, com análise de exemplos.
Introdução à metodologia de análise/diálogo sobre terminologia e gíria informática (tema da aula seguinte).
(NE (Anexo B), ME (TP3), Sta (Ch8.4), P&H (Ch4.8), Tan (Annex B);  recomenda-se a ainda uma leitura sobre a história do IEEE 754, bem como uma visita ao site oficial da norma IEEE 754)

24-Out-01 (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).
(NE (Cap2), P&H (Ch3.1, 3.2, 3.3, 3.4, 3.5) )

Semana 5

29-Out-01 (TP1+TP2)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática dos processadores e de memórias.
( HCW (artigos em discussão/diálogo: H1 e H2, 565KB)

30-Out-01 (T)
Análise do funcionamento dum processador e respectivo instruction set: continuação da análise das operações de transferência de informação; modo e número de operandos a especificar em operações aritméticas e lógicas (0-, 1-, 2- e 3-operandos) e análise de casos concretos
(NE (Cap4), P&H (Ch3.1, 3.2, 3.3, 3.4, 3.5) )

30-Out-01 (TP3)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática dos processadores e de memórias.
( HCW (artigos em discussão/diálogo: H1 e H2, 565KB)
)

31-Out-01 (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; modos de acesso aos operandos, instruções de input/output, e ordenação de bytes numa palavra (little-endian, big-endian); apresentação de um instruction set típico.
(NE (Cap4), P&H (Ch3.1, 3.2, 3.3, 3.4, 3.5) )

Semana 6

05-Nov-01 (TP1+TP2)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática dos processadores e de memórias.
( HCW (artigos em discussão/diálogo: H1 e H2, 565KB); exercício de FP em atraso: enunciado e soluções )

06-Nov-01 (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 genérico, e num em particular (MIPS), com exemplos de utilização; análise do formato dessas instruções em binário (no MIPS).
(NE (Cap5), P&H (Ch3.1, a 3.6, Annex A1 e A10) )

06-Nov-01 (TP3)
Análise/diálogo/avaliação sobre terminologia e gíria informática em redor da temática dos processadores e de memórias.
( HCW (artigos em discussão/diálogo: H1 e H2, 565KB); exercício de FP em atraso: enunciado e soluções )

07-Nov-01 (T)
Metodologia de construção de programas em assembly: análise detalhada da implementação de instruções para controlo do fluxo de execução (inc. invocação e retorno de rotinas/funções) num processador genérico, e num em particular (MIPS), com exemplos de utilização; análise do formato dessas instruções em binário (no MIPS).
(NE (Cap5), P&H (Ch3.1, a 3.6, Annex A1 e A10) )

Semana 7

12-Nov-01 (TP1+TP2)
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 - pré-compilador, compilador e assembler - e ligação de ficheiros objecto num executável (linker); análise do formato dum ficheiro objecto; o papel do loader na execução de programas. Introdução ao ambiente laboratorial em Linux/IA32 (gcc, hexdump, as, gdb)
(NE (Cap3), P&H (Annex A1 a A4); o ambiente laboratorial é introduzido em Basic concepts (Ch1 a 8) e nos manuais de comandos do Linux; enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 11h00 de segunda 19-Nov-01, para avaliação)

13-Nov-01 (T)
Análise do nível ISA dum caso concreto: Intel IA-32 em Linux. Introdução da arquitectura da família x86 da Intel,  nomeadamente a estrutura de registos visíveis ao programador/compilador, os formatos de instruções e os tipos e localização de operandos.
(Tan (textos/figuras relativos ao Pentium no Ch5); alguns dos acetatos usados são os da aula 5 do Prof. Bryant (CMU); material complementar disponibilizado em Machine-Level Programs on Linux/IA32 (Ch1 a 3) )

13-Nov-01 (TP3)
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 - pré-processador, compilador e assembler - e ligação de ficheiros objecto num executável (linker); análise do formato dum ficheiro objecto; o papel do loader na execução de programas. Introdução ao ambiente laboratorial em Linux/IA32 (gcc, hexdump, as, gdb)
(NE (Cap3), P&H (Annex A1 a A4); o ambiente laboratorial é introduzido em Basic concepts (Ch1 a 8) e nos manuais de comandos do Linux; enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 11h00 de segunda 19-Nov-01, para avaliação)

14-Nov-01 (T)
Análise do nível ISA do IA-32 em Linux: análise das instruções mais comuns para transferência de informação, e para execução de operações aritméticas/lógicas.
(Alguns dos acetatos usados são os da aula 5 do Prof. Bryant (CMU); material complementar disponibilizado em Machine-Level Programs on Linux/IA32 (Ch3 e 4) )

Semana 8  

19-Nov-01 (TP1+TP2)
Resolução interactiva/participativa dos “Exercícios de Programação 1” propostos para avaliação, com complemento da análise do nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula 5 do Prof. Bryant (CMU); material complementar disponibilizado em
Basic concepts (Ch8 e 9 da Versão 2); enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 11h00 de segunda 26-Nov-01, para avaliação)

20-Nov-01 (T)
Análise do nível ISA do IA-32 em Linux: revisão de técnicas na execução de operações aritméticas/lógicas e no controlo do fluxo de execução de instruções (códigos de condição e codificação de jumps).
(Alguns dos acetatos usados são os da
aula 5 do Prof. Bryant (CMU); material complementar disponibilizado em Basic concepts (Ch8 a 10 da Versão 2) e em Machine-Level Programs on Linux/IA32 (Ch3 a 5) )

20-Nov-01 (TP3)
Resolução interactiva/participativa dos “Exercícios de Programação 1” propostos para avaliação, com complemento da análise do nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula 5 do Prof. Bryant (CMU); material complementar disponibilizado em
Basic concepts (Ch8 e 9 da Versão 2); enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 11h00 de segunda 26-Nov-01, para avaliação)

21-Nov-01 (T)
Análise do nível ISA do IA-32 em Linux: técnicas de codificação de estruturas de controlo presentes em C, incluindo o controlo de ciclos; introdução ao modelo de funcionamento das funções/procedimentos em HLL (C em particular) e sua implementação ao nível da linguagem máquina do IA-32.
(Alguns dos acetatos usados são os da
aula 6 do Prof. Bryant (CMU); material complementar disponibilizado em Basic concepts (Ch10 e 11 da Versão 2) e em  Machine-Level Programs on Linux/IA32 (Ch5 e 6) )

Semana 9

26-Nov-01 (TP1+TP2)
Não houve aula; será compensada com uma sessão extraordinária a 05-Dez-01.
(Enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 10h00 de terça 04-Dez-01, para avaliação)

27-Nov-01 (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 comparativa do modelo de implementação numa arquitectura RISC versus IA-32.
(Alguns dos acetatos usados são os da aula 7 do Prof. Bryant (CMU); NE (Cap5), P&H (Ch 3.10, Annex A6 ), Machine-Level Programs on Linux/IA32 (Ch6) )

27-Nov-01 (TP3)
Resolução interactiva/participativa dos “Exercícios de Programação 2” propostos para avaliação, com complemento da análise do nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula 6 do Prof. Bryant (CMU); material complementar disponibilizado em Basic concepts (Ch10 e 11 da Versão 2); enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 10h00 de terça 04-Dez-01, para avaliação)

28-Nov-01 (T)
Metodologia de construção de programas em assembly: análise de exemplos de funções com IA-32.
(Acetatos usados: da aula 7 do Prof. Bryant (CMU) )

Semana 10

03-Dez-01 (TP1+TP2)
Resolução interactiva/participativa dos “Exercícios de Programação 2” propostos para avaliação, com complemento da análise do nível ISA do IA-32 em Linux.
(Alguns dos acetatos usados são os da aula 6 do Prof. Bryant (CMU); material complementar disponibilizado em Basic concepts (Ch10 e 11 da Versão 2); enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 11h00 de segunda 10-Dez-01, para avaliação)

04-Dez-01 (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). 
(NE (Cap10), P&H (Ch2.1) )

04-Dez-01 (TP3)
Resolução interactiva/participativa dos “Exercícios de Programação 3” propostos para avaliação.
( Machine-Level Programs on Linux/IA32 (Ch6);
enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 11h00 de segunda 10-Dez-01, para avaliação )

05-Dez-01 (T)
Medição de desempenho de computadores: noção de processo e de comutação de processos, e sua influência na medição do desempenho; 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. 
(NE (Cap10), P&H (Ch2.2, e 2.3); alguns dos acetatos usados são os das aula 16aula 18 do Prof. Bryant (CMU), e referentes à Sec.2 do Ch.8 e ao Ch.9 do seu livro)

05-Dez-01 (TP1+TP2)
(Sessão extraordinária para compensação da falta à aula de 26-Nov-01)
Resolução interactiva/participativa dos “Exercícios de Programação 3” propostos para avaliação.
( Machine-Level Programs on Linux/IA32 (Ch6); enunciado do trabalho de casa aqui, para ser entregue, impreterivelmente, no lab. da disciplina até às 11h00 de segunda 10-Dez-01, para avaliação )

 

Semana 11 

10-Dez-01 (TP1+TP2)
Resolução interactiva/participativa dos “Exercícios de Programação 4” propostos para avaliação.

11-Dez-01 (T)
Medição de desempenho de computadores: análise da equação para cálculo do CPUtime para um dado programa e factores da arquitectura que influenciam o seu desempenho. Breve introdução ao funcionamento dum processador em pipeline e respectivas limitações.
(NE (Cap10), P&H (Ch2.2, e 2.3); as introduções ao cap. 6 de P&H (e em 6.4 e 6.5), complementadas com parte de NE (Cap13), contêm informação relativa ao pipeline)

11-Dez-01 (TP3)
Resolução interactiva/participativa dos “Exercícios de Programação 4” propostos para avaliação.

12-Dez-01 (T)
Medição de tempos de execução de programas: aplicação de conceitos à análise prática de desempenho de sistemas baseados em IA-32 em ambiente Linux; referência à medição de tempos com contadores intervalares (do Unix) e com contadores de ciclos de clock (no IA-32);
(Acetatos usados são os das aula 16aula 18 do Prof. Bryant (CMU), e referentes à Sec.2 do Ch.8 e ao Ch.9 do seu livro

Semana 12

17-Dez-01 (TP1+TP2)
Análise da resolução de exercícios pendentes. Realização dos inquéritos de avaliação da disciplina. Comentários finais ao funcionamento da disciplina.

18-Dez-01 (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.
(NE (Cap11), P&H (Ch7.1, 7.2, e 7.4))

18-Dez-01 (TP3)
Análise da resolução de exercícios pendentes. Realização dos inquéritos de avaliação da disciplina. Comentários finais ao funcionamento da disciplina.

19-Dez-01 (T)
Organização hierárquica da memória: caracterização quantitativa de níveis da hierarquia e sua influência no desempenho. 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. Impacto da hierarquia de memória no desempenho dum computador.
(NE (Cap11), P&H (Ch7.1, 7.2, e 7.4))