Arquitectura de Computadores I

2002 / 03

(2001 / 02)

AC 1 - Sumários AC1 - Calendarizacao AC 1 - Mat. apoio AC 1 - TPs AC 1 - TPCs AC 1 - Fichas Avaliação AC 1 - Notas AC 1 - Exames

horizontal rule

                               

horizontal rule

Novidades

bullet

[15.Set.2003] Estão disponíveis na página "Notas" os resultados da época especial.

bullet

[1.Mar.2003] Estão disponíveis na página "Notas" os resultados da época de recurso.

bullet

[7.Fev.2003] Estão disponíveis na página "Notas" os resultados da 2ª chamada da época Normal.

bullet

[6.Fev.2003] Estão disponíveis na página "Notas" os resultados da 1ª chamada da época Normal.

bullet

[31.Jan.2003] Está disponível na página "Exames" o Exame da 2ª chamada da época normal.

bullet

[7.Jan.2003] Está disponível na página "Notas" a classificação da componente teórico-prática de todos os turnos.

bullet

[24.Dez.2002] Está disponível na página "Exames" o Exame Tipo.

bullet

[14.Dez.2002] Resumo da matéria leccionada com apontadores para as referências bibliográficas, acetatos e módulos teórico-práticos.

bullet

[13.Dez.2002] Para compensar o facto dos módulos 6 e 8 não terem sido resolvidos nalguns dos turnos Teórico-Práticos, são disponibilizadas as suas resoluções: Módulo 6 e Módulo 8.

bullet

[11.Out.2002] O conjunto completo de instruções do Intel Pentium 4 pode ser consultado na página "Material de Apoio". Note que se trata de um manual com 1000 páginas e que usa uma notação diferente da adoptada pelo GAS (GNU Assembler).

bullet

[9.Out.2002] Verificar em "Metodologia de Avaliação" o regime de excepção para os alunos que, justificadamente, não podem cumprir a componente teórico-prática.

bullet

[4.Out.2002] Na página "Material de apoio" estão disponíveis em formato PDF os capítulos 1, 2 e 3 do livro "Computer Systems: A Programmers's Perspective" de R. Bryant e D. Hallaron. O capítulo 3 é essencial para o acompanhamento de grande parte da matéria desta disciplina.

bullet

[4.Out.2002] Na página "Material de apoio" encontram-se os conjuntos de instruções e registos do IA32 e MIPS32. Esta material é INDISPENSÁVEL para as próximas aulas TP.

bullet

[2.Out.2002] Na página "Material de apoio" pode encontrar as fontes e instruções para instalar o gcc para MIPS numa máquina Linux/Intel x86

 

horizontal rule

(ficheiro Word)

Equipa docente

bullet

Docente responsável pela disciplina e aulas teóricas

Luís Paulo Peixoto dos Santos (Prof. Auxiliar)
psantos@di.uminho.pt
Horário de atendimento: 2as. feiras 14h .. 17h ; 4as. feiras 10h .. 12h

bullet

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

Luís Paulo Peixoto dos Santos

António Joaquim André Esteves (Prof. Auxiliar)
esteves@di.uminho.pt
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
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. São comparados 2 conjuntos de instruções com filosofias diferentes: IA32 e 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 e número de operandos e modos de endereçamento.

Comparação de  dois instruction sets concretos: o MIPS R2000/R3000 e o 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

Comparação entre código gerado para o MIPS e o IA32.

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.

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 e memória que influenciam o desempenho.

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.

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.

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.  

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;

horizontal rule

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

Última alteração: 15 Setembro, 2003