Arquitectura de Computadores I

2003 / 04

(2002 / 03)

AC 1 - Sumários AC 1 - Material de apoio AC 1 - Teórico-Práticas AC 1 - Trabalhos para casa AC 1 - Fichas Avaliação

horizontal rule

                               

horizontal rule

Novidades

bullet

[16.Set.2004] - Resultados da Época Especial 2003/04

bullet

[27.Fev.2004] - Resultados da Época Normal+Recurso 2003/04

bullet

[11.Fev.2004] - Apenas são admitidos a Oral os alunos cuja nota no EXAME (e apenas no exame) estiver entre 8,0 e 9,4 valores e que ainda assim não obtiveram aprovação à disciplina.

bullet

[05.Fev.2004] - Estão disponiveis os enunciados da e chamadas da Época Normal.

bullet

[29.Dez.2003] - De acordo com a metodologia de avaliação estabelecida, os alunos podem levar para o exame uma calculadora e uma folha A4 manuscrita, não fotocopiada, para consulta. Os conjuntos de instruções do IA32 e MIPS serão fornecidos juntamente com o enunciado do exame.

horizontal rule

(ficheiro Word)

Equipa docente
(para os emails acrescentar: @di.uminho.pt)

bullet

Docente responsável pela disciplina e aulas teóricas

Luís Paulo Peixoto dos Santos (Prof. Auxiliar)
email: psantos@...
Horário de atendimento: 5ªs - 14h30 .. 17h30

bullet

Docentes responsáveis pelas aulas teórico-práticas

Luís Paulo Peixoto dos Santos

António Joaquim André Esteves (Prof. Auxiliar)
email: esteves@...
Horário de atendimento: 3ªs - 14h00 .. 17h00

João Miguel Lobo Fernandes (Prof. Auxiliar)
email: jmf@...
Horário de atendimento:

horizontal rule

Objectivos

Pretende-se com esta disciplina - relacionada com a engenharia dos computadores - que os alunos adquiram os conceitos fundamentais relativos ao funcionamento dum computador, nomeadamente:

bulleta organização e estrutura dum computador (na sequência dos conhecimentos obtidos no 1º ano em CSI)
bulleto interface do processador com os programas escritos em linguagens imperativas de alto nível
bulleto interface do processador com os restantes componentes de um computador (memória, I/O)
bulleta avaliação do desempenho do computador e factores que o afectam
bulletmecanismos de aceleração do desempenho: hierarquia de memória e pipeline

Para atingir estes objectivos a disciplina segue uma estrutura e orientação que tira partido da formação de base dos estudantes em linguagens de programação: são introduzidas as características da linguagem máquina que dão suporte a construções de alto-nível presentes na linguagem C. A análise destas características recorre à utilização de um compilador (gcc) em ambiente Linux. O conjunto de instruções mais utilizado é o da arquitectura Intelx86, complementado com uma comparação com o conjunto de instruções do MIPS.

A componente de avaliação do desempenho acompanha a matéria leccionada nas aulas teóricas, incluindo progressivamente mais parâmetros como a organização do processador (single cycle, multiciclo, pipeline) e a hierarquia de memória.

horizontal rule

Programa

Introdução à arquitectura e organização dos computadores

A máquina de Von Neumann.

Organização de um computador actual: barramentos e componentes fundamentais.

Níveis de abstração: aplicação, linguagens de alto nível, sistema operativo, assembly, instruction set architecture (ISA), micro-arquitectura, nível lógico. Mecanismos de conversão entre níveis.

Estágios de execução de uma instrução: fetch, decode, execute.

A arquitectura do conjunto de instruções

Tamanho da palavra, registos visíveis, tipos de instruções, número de operandos e modos de endereçamento.

O conjunto de instruções IA32.

Suporte a construções de linguagens de alto nível

O assembly como interface do processador com linguagens imperativas de alto nível: 

bulletconstantes
bulletvariáveis escalares
bulletestruturas de controlo de fluxo
bulletvariáveis estruturadas
bulletinvocação de funções e procedimentos

A arquitectura do conjunto de instruções: comparação RISC vs. CISC

Diferenças na filosofia de concepção do conjunto de instruções: RISC vs. CISC

O conjunto de instruções do MIPS: tipos de instruções, número de operandos, modos de endereçamento e formato de instruções.

O conjunto de instruções do MIPS: suporte a construções de linguagens de alto-nível.

Medição do desempenho de computadores

Identificação das características a medir num computador (latência e throughput), e suas influências nos tempos de execução dum programa.

Métricas na medição do desempenho: CPI, #I, clock cycle time.

Factores na organização do processador, barramentos e memória que influenciam o desempenho.

Impacto da codificação em assembly no desempenho dos programas: estruturação do código e dados, opções de optimização dos compiladores.

Selecção de programas para o cálculo do desempenho (benchmarks), com análise do SPEC.

Hierarquia de memória

Introdução aos princípios da localidade (espacial e temporal) e propriedades numa hierarquia de memória (inclusão e consistência).

Conceitos associados a cada nível da hierarquia: bloco (linha/página), hit, miss, colocação e modo de acesso aos blocos, estratégias de substituição de blocos e estratégias de escrita.

Medição do desempenho dum sistema com várias organizações de memória.

Interface com periféricos

Análise do esquema de interligação entre o CPU/memória e os controladores de periféricos : barramentos.

Interface de periféricos com o CPU/memória: sequência de acções e papel do sistema operativo (SO). Funções do SO na comunicação com periféricos: mecanismos de comunicação e transferência de informação com e sem intervenção directa do CPU.

Mecanismos de interrupção e identificação de causas de excepção/interrupção; manuseamento de excepções/interrupções.

Organização interna dum CPU (MIPS)

Identificação do conjunto de instruções a suportar no modelo de arquitectura a projectar, com apresentação dum modelo genérico de implementação do MIPS.

Construção dos principais blocos no datapath do MIPS para a execução do subconjunto de instruções previamente definido.

Desenho do datapath e controlo para uma abordagem single cycle.

Vantagens e desvantagens associadas com uma abordagem multiciclo.

Pipeline: conceitos, data e branch hazards, superescalaridade e pipeline dinâmico.

horizontal rule

Bibliografia essencial

bullet"Computer Organization and Design: the hardware/software interface"
D.Patterson, J.Henessy, Morgan Kaufmann Publishers,
2nd Ed., 1997

Página www com extensões ao livro: http://www.mkp.com/cod2e

SPIM: Simulador do MIPS - http://www.cs.wisc.edu/~larus/spim.html

bullet“Computer Systems: A Programmer's Perspective”
 Randal E. Bryant, David R. O'Hallaron;
 Prentice-Hall; ISBN 013034074X; Agosto, 2002
http://csapp.cs.cmu.edu/

Bibliografia complementar:

bullet"Computer Organization and Architecture - Designing for Performance"
William Stallings, 5th Ed., Prentice Hall, 2000
http://www.prenhall.com/books/esm_0130812943.html

 

horizontal rule

Metodologia de avaliação  

A disciplina de Arquitectura de Computadores I está organizada em aulas teóricas (2*1h / semana) e aulas teórico-práticas (TP) (2h /sem).
As aulas teóricas são usadas para discussão e transmissão dos conceitos fundamentais relacionados com a arquitectura e organização dos computadores. Embora a frequência destas aulas não seja obrigatória, é altamente recomendada.
As aulas teórico-práticas são usadas para consolidação dos conceitos e técnicas apresentadas nas aulas teóricas, através da resolução de exercícios. A frequência destas aula também não é obrigatória. No entanto, o aluno que faltar a mais do que 3 aulas TP perde o seu lugar no turno em que está inscrito, podendo este ser ocupado por outro interessado. Apenas serão admitidos na aula TP os alunos acompanhados de uma impressão do módulo a resolver nessa aula.

A avaliação tem 3 componentes:

bullet5 trabalhos para casa (TPC), distribuídos via www e a serem entregues em manuscritos impreterivelmente no princípio da aula TP designada para tal; as resoluções serão discutidas no início de cada aula, podendo a classificação ser penalizada se o aluno não demonstrar ser capaz de explicar a sua resolução. Esta componente vale 10% da nota final (2 valores);
bullet2 fichas práticas resolvidas na primeira metade de 2 aulas teórico-práticas. Esta componente vale 10% da nota final (2 valores)
bullet exame final, correspondendo 50% à componente teórica e 50% à componente teórico-prática, valendo 80% da nota final (16 valores)

Aqueles alunos que, justificadamente, não reúnam condições para entregar os TPC ou participar nas fichas práticas, deverão responder a mais uma questão no exame, correspondente aos 4 valores em falta, sendo-lhes concedidos 20 minutos extra para o fazer.  Estes alunos devem contactar o docente nas 4 primeiras semanas de aulas (até 10 de Outubro).

Regras para os exames:

bulletO exame é individual
bulletCada aluno pode consultar uma folha A4 manuscrita, com o conteúdo que entender útil;
bulletClassificações de 8 a 9,4 valores possibilitam a realização de uma prova oral, onde o aluno tem a oportunidade de demonstrar que a classificação obtida na prova escrita não corresponde ao seu nível real de conhecimentos;
bulletOs alunos devem colocar em cima da carteira o respectivo cartão de estudante;
bulletTentativas de fraude (incluindo conversas com os vizinhos, utilização de cábulas, utilização de telemóveis, etc.) resultam na anulação imediata da prova;
bulletÉ proibida a utilização do telemóvel durante a prova;
bulletÉ aconselhada a utilização de uma calculadora.

horizontal rule

Página mantida por Luís Paulo Peixoto dos Santos ( psantos@... )

Última alteração: 16 Setembro, 2004