Arquitectura de Computadores |
Sumários
Semana: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13
Ultima Modificação: 24 Jan 2006
departamento de informática |
Nota 1: Os sumários das aulas que já ocorreram estão a preto, enquanto as propostas de sumário para as sessões seguintes estão a cinzento. Sempre que haja documentação a disponibilizar pertinente para uma sessão que ainda não decorreu, essa indicação deixa de estar a cinzento.
Nota 2: As referências nos sumários a textos de consulta estão abreviadas para Sta (livro/resumo de Stallings), Bry (livro/resumo de Bryant), ISC (Introdução aos Sistemas de Computação, notas de estudo), P&H (livro de Patterson & Hennessy ), 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
22-Fev-05 (T)
Metodologia de
funcionamento da disciplina: princípios básicos, objectivos de formação, resultados
da aprendizagem, modo de funcionamento, elementos e modelos de avaliação,
informação complementar (em formato electrónico, e relativo ao ano em
curso, em gec.di.uminho.pt/mcc/ac/).
(Slides apresentados: IntroAC )
22-Fev-05 (TP1)
Não houve aula (ainda não houve aula teórica com matéria)
24-Fev-05 (T)
Introdução aos conceitos de "computador" e de "informação" no contexto de um computador.
Representação da informação no computador utilizando números binários (bits): texto (referência
a caracteres
alfanuméricos), números
(referência a inteiros e reais) e comandos para o processador (noção de instruction
set).
(Notas de estudo: cópia dos slides
ISC_1 e
texto ISC
(Cap.1); complementar: Sta (Ch1.1
e 1.2) ).
25-Fev-05 (TP2+TP3+TP4)
Apresentação e debate de guias e regras para a elaboração com sucesso de
trabalhos em grupo.
Introdução aos sistemas de numeração e conversão de bases.
(Notas de estudo: cópia dos slides
TeamWork; texto ISC (Anexo A) ).
Semana 2
01-Mar-05 (T)
Não houve aula (participação
em sessões da JOIN'05)
01-Mar-05 (TP1)
Apresentação e debate de guias e
regras para a elaboração com sucesso de trabalhos em grupo.
Introdução aos sistemas de numeração e conversão de bases.
(Notas de estudo: cópia dos slides
TeamWork; texto ISC (Anexo A) ).
03-Mar-05 (T)
Representação da informação no computador (cont.): texto e respectivos
alfabetos (análise dos códigos Baudot, ASCII 7/8 bits e UNICODE),.
(Notas de estudo: as mesmas que na aula anterior ).
04-Mar-05 (TP2+TP3+TP4)
Sistemas de numeração e conversão de bases. Representação binária
de valores positivos e negativos (sinal e amplitude, complemento para 1, complemento para
2, e representação por excesso).
(Notas de estudo: texto
ISC
(Anexo A); complementar: Sta
(Ch
8.2, 8.3), Tan (Annex A); enunciado do TPC1, para ser entregue, impreterivelmente,
no Gab. Técnicos do DI, até
às 09h00 de sexta 11-Mar-05, para avaliação).
Semana 3
08-Mar-05 (T)
Representação da informação no computador (cont.): codificação de
audio-visuais e introdução às técnicas de compactação.
Formatos de representação de textos em ficheiros de documentos.
(Notas de estudo: mesmas que da aula anterior )
08-Mar-05 (TP1)
Sistemas de numeração e conversão de bases. Representação binária
de valores positivos e negativos (sinal e amplitude, complemento para 1, complemento para
2, e representação por excesso).
(Notas de estudo: texto
ISC
(Anexo A); complementar: Sta
(Ch
8.2, 8.3), Tan (Annex A); enunciado do TPC1, para ser entregue, impreterivelmente,
no Gab. Técnicos do DI, até
às 12h00 de terça 15-Mar-05, para avaliação).
10-Mar-05 (T)
Estrutura interna dum computador: estrutura e funções do processador (a unidade
de controlo, o conjunto de registos e as unidades funcionais), a organização da
memória (noção de endereço e de célula) e o sistema de interligação (conjunto de
sinais em cada módulo, CPU, memória, I/O).
(Notas de estudo: cópia dos slides
ISC_2 e texto
ISC (Cap. 2); complementar:
Sta (Ch
3.1, 3.2) ).
11-Mar-05 (TP2+TP3+TP4)
Resolução de exercícios com binários inteiros.
Representação binária de valores reais em vírgula flutuante (noção e vantagens
duma normalização) e apresentação da norma IEEE 754 na representação de valores
em vírgula flutuante.
(Notas de estudo: texto
ISC
(Anexo B); complementar: Sta
(Ch8.4), Tan (Annex
B); ficheiro
TPC1r com os resultados dos
exercícios propostos em TPC1; enunciado do
TPC2,
cuja resolução deverá ser entregue, impreterivelmente, no Gab.
Técnicos do DI, até às 09h00 de sexta 18-Mar-05, para avaliação; recomenda-se a ainda uma leitura sobre a
história
do IEEE 754, bem como uma visita ao
site
oficial da norma IEEE 754).
Semana 4
15-Mar-05 (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) e respectivos
mecanismos de conversão (compilação, assembly (montagem) e
interpretação).
(Notas de estudo: texto
ISC (Cap. 3, 4.1 e 4.2) e
slides ISC_3 ; complementar:
Sta (Ch
3.2) )
15-Mar-05 (TP1)
Resolução de exercícios com binários inteiros.
Representação binária de valores reais em vírgula flutuante (noção e vantagens
duma normalização) e apresentação da norma IEEE 754 na representação de valores
em vírgula flutuante.
(Notas de estudo: texto
ISC
(Anexo B); complementar: Sta
(Ch8.4), Tan (Annex
B); ficheiro TPC1r com os resultados dos
exercícios propostos em TPC1; enunciado do
TPC2,
cuja resolução deverá ser entregue, impreterivelmente, no Gab.
Técnicos do DI, até às 12h00 de terça 22-Mar-05, para avaliação; recomenda-se a ainda uma leitura sobre a
história
do IEEE 754, bem como uma visita ao
site
oficial da norma IEEE 754 ).
17-Mar-05 (T)
Execução de instruções num computador; análise passo a passo da execução de uma
instrução em linguagem máquina: a busca de uma instrução à memória,
carcaterizando os barramentos de endereços, controlo e de dados, a actualização do
apontador para a próxima instrução (IP), a descodificação duma instrução e a sua execução
(incluindo a busca de operando à memória).
Análise do funcionamento dum processador ao nível do seu instruction set:
(i) introdução às operações num processador, com análise do n.º de operandos em
cada instrução e à localização de operandos (escalares em registos, e
estruturados em memória), (ii) registos visíveis ao programador (em
arquitecturas RISC e no IA32),
e (iii) modos de acesso aos operandos (em arquitecturas RISC e no IA32).
(Notas de estudo: texto
ISC (Cap. 5.1 e 5.2 ) e
slides ISC_3
(conclusão) e ISC_4
; recomenda-se ainda a leitura dos slides
ISC_5,
relativo a comunicação de dados e redes, elaborados essencialmente com base no
livro "Introdução às Tecnologias de Informação. Bloco II", de Artur A. Azul,
Porto Editora, 2005 (Cap. 6.1))
18-Mar-05 (TP2+TP3+TP4)
Análise crítica da resolução de exercícios com valores em vírgula
flutuante.
Início das tarefas de análise e pesquisa necessários para o TPC3.
(Notas de estudo: ficheiro
TPC2r
com os resultados dos exercícios propostos em TPC2; enunciado do
TPC3, cuja resolução deverá ser entregue, por
email, até
segunda 04-Abr-05,12h00, para avaliação;
texto do Guião_1 para utilização na
1ª aula
laboratorial depois da Páscoa, e para ser lido e entendido antes da aula)
Semana 5
22-Mar-05 (T)
Análise do funcionamento dum processador ao nível do seu instruction set
(cont.): (iv) tipos de instruções num CPU (aritméticas/lógicas, de transferência
de informação, de controlo de fluxo, ...).
(Notas de estudo: texto
ISC (Cap. 5.3 a 5.7 ) e
continuação dos slides ISC_4 )
22-Mar-05 (TP1)
Análise crítica da resolução de exercícios com valores em vírgula
flutuante.
Início das tarefas de análise e pesquisa necessários para o TPC3.
(Notas de estudo: ficheiro
TPC2r
com os resultados dos exercícios propostos em TPC2; enunciado do
TPC3, cuja resolução deverá ser entregue, por
email, até
segunda 04-Abr-05,12h00, para avaliação;
texto do Guião_1 para utilização na
1ª aula
laboratorial depois da Páscoa, e para ser lido e entendido antes da aula)
**************** Férias da Páscoa **********************
31-Mar-05 (T)
Análise do funcionamento dum processador ao nível do seu instruction set
(cont.): (v) formatos de instruções (comprimento, campos numa instrução,
exemplos de formatos), (vi) instruções de input/output, e (vii) ordenação de bytes numa palavra (little-endian, big-endian).
Caracterização das arquitecturas RISC (resumo)
01-Abr-05 (TP2+TP3+TP4)
Treino das capacidades de visualização de conceitos sobre sistemas de
computação, através de um exercício experimental com estudantes-actores: 8 actores
irão representar a execução
de instruções em linguagem máquina (corpo de uma função em C compilada para
IA16).
(Notas de estudo: o texto do
Guião_1 para apoio à elaboração deste exercício
foi divulgado no sumário da aula anterior)
Semana 6
05-Abr-05 (T)
Análise do nível ISA do IA32 em Linux: modelo de desenvolvimento de
programas.
(Notas de estudo: a
bibliografia de base desta e das próximas aulas sobre o nível ISA segue quase
exclusivamente o livro CSAPP, com destaque para o Ch.3; as noções apresentadas e analisadas nos dois primeiros capítulos
do livro foi sendo coberta pelo texto entretando disponiblilizado (ISC),
enquanto esta aula e a seguinte seguem essencialmente as secções 3.4 e 3.5 do livro; o
ficheiro electrónico com a versão preliminar dos três primeiros capítulos do
livro encontra-se disponível, para estudo,
aqui,
1.51MB; slides ISA_1 )
05-Abr-05 (TP1)
Treino das capacidades de visualização de conceitos sobre sistemas de
computação, através de um exercício experimental com estudantes-actores: 8 actores
irão representar a execução
de instruções em linguagem máquina (corpo de uma função em C compilada para
IA16).
(Notas de estudo: o texto do Guião_1 para apoio à elaboração deste exercício
foi divulgado no sumário da aula anterior)
07-Abr-05 (T)
Análise do nível ISA do IA32 em Linux (cont): análise das instruções mais comuns para transferência de informação,
e para execução de operações aritméticas/lógicas.análise das instruções mais comuns
para transferência de informação, e para execução de operações
aritméticas/lógicas.
08-Abr-05 (TP2+TP3+TP4)
Introdução aos níveis
de abstracção dum computador, em ambiente laboratorial em Linux/IA32, e
respectivos mecanismos de conversão e análise
(gcc,
objdump,
gdb).
(Notas de estudo: texto do Guião_2
e respectivas sugestões de leitura; enunciado do
TPC4,
cuja resolução deverá ser entregue, no Gab. Técnicos do DI, até 2h antes do
início da próxima sessão TP, para
avaliação)
Semana 7
12-Abr-05 (T)
Análise do nível ISA do
IA32 em Linux (cont.):
controlo do fluxo de execução de instruções
(conceito de códigos de condição e estrutura da codificação de jumps);
técnicas de codificação
de estruturas de controlo presentes em C (if-else).
(Notas de estudo: Bry (Ch 3.6) e slides
ISA_2 )
12-Abr-05 (TP1)
Introdução aos níveis
de abstracção dum computador, em ambiente laboratorial em Linux/IA32, e
respectivos mecanismos de conversão e análise
(gcc,
objdump,
gdb).
(Notas de estudo: texto do Guião_2
e respectivas sugestões de leitura; enunciado do
TPC4,
cuja resolução deverá ser entregue, no Gab. Técnicos do DI, até 2h antes do
início da próxima sessão TP, para
avaliação)
14-Abr-05 (T)
Análise do nível ISA do IA32 em Linux:
técnicas
de codificação das restantes estruturas de controlo presentes em C (do-while,
while, for, switch).
(Notas de estudo: Bry (Ch 3.6)
e slides
ISA_2 )
15-Abr-05 (TP2+TP3+TP4)
Resolução do TPC4 (operações e acessos a operandos do IA32 em Linux), em
ambiente laboratorial.
(Notas de estudo: exercícios resolvidos do
TPC4r ; enunciado do TPC5 e Guião
3,
cuja resolução deverá ser entregue, no Gab. Técnicos do DI, até 2h antes do
início da próxima sessão TP, para avaliação)
Semana 8
19-Abr-05 (T)
Análise do nível ISA do IA-32 em Linux:
análise detalhada da estrutura do código e dos contextos para suporte à invocação de
procedimentos/funções em HLL (C em particular) .
(Notas de estudo: Bry (Ch 3.7)
e slides
ISA_3 em formato PDF, e sub-conjunto desses slides, com animações,
em PowerPoint )
19-Abr-05 (TP1)
Resolução do TPC4 (operações e acessos a operandos do IA32 em Linux), em
ambiente laboratorial.
(Notas de estudo: exercícios resolvidos do
TPC4r
; enunciado do TPC5 e Guião 3,
cuja resolução deverá ser entregue, no Gab. Técnicos do DI, até 2h antes do
início da próxima sessão TP, para avaliação)
21-Abr-05 (T)
Análise do nível ISA do IA-32 em Linux:
análise detalhada da implementação
de procedimentos/funções ao nível do assembly do IA-32 (e respectiva
utilização da stack);
análise da stack no caso de funções aninhadas
e recursivas.
(Notas de estudo: mesmas que da aula anterior )
22-Abr-05 (TP2+TP3+TP4)
Análise laboratorial do código C compilado por ferramentas
da Gnu em Linux, contendo instruções de salto e estruturas de controlo do IA32, com utilização do depurador
gdb.
(Notas de estudo: o manual de utilização do depurador disponibilizado pela GNU está em
Debugging
with DBG , mas existe uma cópia local da versão em PDF
aqui
(1.64MB);
J. Clark na Univ. Nebraska disponibiliza um pequeno
tutorial de introdução
ao GDB que recomendo)
Semana 9
26-Abr-05 (T)
Análise do nível ISA do IA-32 em Linux:
análise comparativa do modelo de implementação de
funções numa arquitectura RISC (MIPS) versus IA-32.
(Notas de estudo: Bry (Ch 3.7 e 3.8)
e slides
ISA_4 )
26-Abr-05 (TP1)
Análise laboratorial do código C compilado por ferramentas
da Gnu em Linux, contendo instruções de salto e estruturas de controlo do IA32, com utilização do depurador
gdb.
(Notas de estudo: o manual de utilização do depurador disponibilizado pela GNU está em
Debugging
with DBG , mas existe uma cópia local da versão em PDF
aqui
(1.64MB);
J. Clark na Univ. Nebraska disponibiliza um pequeno
tutorial de introdução
ao GDB que recomendo)
28-Abr-05 (T)
Análise do nível ISA do IA-32 em Linux:
organização em memória e métodos de acesso e manipulação de dados
estruturados em C, com respectiva análise da codificação para assembly
(arrays uni- e multi-dimensionais).
(Notas de estudo: mesmas que da aula anterior)
29-Abr-05 (TP2+TP3+TP4)
Conclusão da sessão laboratorial anterior, complementada com a análise da
stack frame associada a uma função.
(Notas de estudo: versão revista do TPC5 e Guião 3;
exercícios resolvidos do
TPC5r
)
Semana 10
03-Mai-05 (T)
Análise do nível ISA do IA-32 em Linux:
organização em memória e métodos de acesso e manipulação de dados
estruturados em C, com respectiva análise da codificação para assembly
(array de apontadores para
arrays, structures); alinhamento de dados na
memória (em Windows e Linux)
(Notas de estudo: Bry (Ch 3.9) e slides
ISA_5
03-Mai-05 (TP1)
Conclusão da sessão laboratorial anterior, complementada com a análise da
stack frame associada a uma função.
(Notas de estudo: versão revista do TPC5 e Guião 3;
exercícios resolvidos do
TPC5r
)
05-Mai-05 (T)
Teste nº 4.
06-Mai-05 (TP2+TP3+TP4)
Defesa do Projecto (fase 2).
(Notas de
estudo: enunciado do Guião 4, para
preparação da próxima sessão laboratorial )
Semana 11
17-Mai-05 (T)
Avaliação de desempenho na execução de programas: objectivos e
metodologias.
Objectivos: (i) construção/ avaliação do desempenho de computadores -
introdução às métricas e relação da expressão de cálculo
do CPUtime para um dado programa, com factores da arquitectura que
influenciam o seu desempenho; (ii) melhorar o desempenho da execução de
programas - introdução às técnicas de optimização (independente/dependente
da máquina) e de medição (microscópica e macroscópica).
(Notas de estudo: Bry (Ch. 3.15, Ch. 5.1 a 5.3, Ch. 9.0 e 9.3); sugere-se a
leitura de P&H (Ch2.2, e 2.3), resumido
aqui,
para uma melhor compreensão das métricas orientadas à construção/avaliação do
desempenho de computadores; e slides
AvDes_1 )
17-Mai-05 (TP1)
Execução de funções com deficiências (no IA32 em Linux), e respectiva análise do
código gerado pelo compilador (em ambiente laboratorial).
(Notas de estudo: enunciado do Guião 5,
e código associado
(compactado), para aopio à aula seguinte)
19-Mai-05 (T)
Metodologias: de optimização independente da máquina (code motion, strength
reduction, partilha de sub-expressões), e de medição (escalas temporais,
utilização de contadores de ciclos com extensões ASM em C).
Avaliação de desempenho na execução de programas: aprofundamento da análise
de algumas técnicas de optimização independentes da máquina, com discussão de
métrica de avaliação de desempenho de aplicações de processamento numérico
de arrays (nomeadamente as componentes para o cálculo dos Ciclos Por
Elemento, CPE).
(Notas de estudo: Bry (Ch. 5.3 a 5.6); slides: os mesmos que da aula anterior )
20-Mai-05 (TP2+TP3+TP4)
Execução de funções com deficiências (no IA32 em Linux), e respectiva análise do
código gerado pelo compilador (em ambiente laboratorial).
(Notas de estudo: enunciado do Guião 5,
e código associado
(compactado), para aopio à aula seguinte)
Semana 12
24-Mai-05 (T)
Avaliação de desempenho na execução de programas:
introdução aos factores da arquitectura que maior impacto têm no desempenho (pipeline,
superescalaridade, hierarquia de memória), indispensável à compreensão das
técncias de optimização dependentes da máquina; introdução ao modelo de
representação de um par processador-memória (chip do Pentium III), com
destaque para os modelos de representação do pipeline e da
superescalaridade; análise de técnicas de optimização dependentes da máquina,
nomeadamente a análise do comportamento dum Pentium em operações iterativas e
respectivas consequências - loop unroll,.
(Notas de estudo: Bry (Ch. 5.7) e slides
AvDes_2 )
24-Mai-05 (TP1)
Introdução e análise de técnicas de optimização de desempenho e
respectivas medições no IA32 em Linux (Guião 5 e
código associado compactado).
(Notas de estudo: dicas
para a resolução do Guião 4 )
26-Mai-05 (T)
Feriado
27-Mai-05 (TP2+TP3+TP4)
Introdução e análise de técnicas de optimização de desempenho e
respectivas medições no IA32 em Linux (Guião 5 e
código associado compactado).
(Notas de estudo: dicas
para a resolução do Guião 4 )
Semana 13
31-Mai-05 (T)
Avaliação de desempenho na execução de programas: análise
do comportamento dum Pentium em operações iterativas com a introdução de paralelismo
e de hierarquia de memória.
Outras técnicas de optimização de desempenho na execução de programas: análise
de técnicas usadas pelo GCC; uso de program profilers na identificação
dos gargalos de desempenho.
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; noção de processo
e de comutação de processos; referência à medição de tempos
com (i) contadores intervalares (do Unix), (ii) contadores de ciclos de clock
(só disponíveis a partir do P6 e nalguns CPU's); a função gettimeofday().
(Notas de estudo: Bry (Ch. 5.8, 5.10, 5.11, 5.14, 5.15, 6.4 e 6.5; Ch. 9); slides
AvDes_3 e
AvDes_4)
31-Mai-05 (TP1)
Resolução de exercícios de revisão da matéria.
(Notas de estudo:
dicas para a resolução do Guião 5 )
02-Jun-05 (T)
Teste 5.
Realização dos inquéritos de avaliação da disciplina.
03-Jun-05 (TP2+TP3+TP4)
Defesa do Projecto (fase 3).
(Notas de estudo:
dicas para a resolução do Guião 5 )