Arquitectura de Computadores I
2003 / 04
Novidades
[16.Set.2004] - Resultados da Época Especial 2003/04 | |
[27.Fev.2004] - Resultados da Época Normal+Recurso 2003/04 | |
[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. | |
[05.Fev.2004] - Estão disponiveis os enunciados da 1ª e 2ª chamadas da Época Normal. | |
[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. |
Equipa docente
(para os emails acrescentar: @di.uminho.pt)
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
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:
Pretende-se com esta disciplina - relacionada com a engenharia dos computadores - que os alunos adquiram os conceitos fundamentais relativos ao funcionamento dum computador, nomeadamente:
a organização e estrutura dum computador (na sequência dos conhecimentos obtidos no 1º ano em CSI) | |
o interface do processador com os programas escritos em linguagens imperativas de alto nível | |
o interface do processador com os restantes componentes de um computador (memória, I/O) | |
a avaliação do desempenho do computador e factores que o afectam | |
mecanismos 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.
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:
constantes | |
variáveis escalares | |
estruturas de controlo de fluxo | |
variáveis estruturadas | |
invocaçã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.
Bibliografia essencial
"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
“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:
"Computer Organization and Architecture - Designing for Performance" William Stallings, 5th Ed., Prentice Hall, 2000 http://www.prenhall.com/books/esm_0130812943.html |
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:
5 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); | |
2 fichas práticas resolvidas na primeira metade de 2 aulas teórico-práticas. Esta componente vale 10% da nota final (2 valores) | |
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:
O exame é individual | |
Cada aluno pode consultar uma folha A4 manuscrita, com o conteúdo que entender útil; | |
Classificaçõ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; | |
Os alunos devem colocar em cima da carteira o respectivo cartão de estudante; | |
Tentativas 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; | |
É proibida a utilização do telemóvel durante a prova; | |
É aconselhada a utilização de uma calculadora. |
Página mantida por Luís Paulo Peixoto dos Santos ( psantos@... )
Última alteração: 16 Setembro, 2004