Arquitectura de Computadores I

2005 / 06

(2004 / 05)

Docentes | Objectivos | Programa | Bibiografia | Avaliação | Enunciado dos Exames

 

Novidades

02.mar.2006 Os exames (da chamada de recurso) podem ser consultados pelos alunos amanhã (dia 03.Fev). Das 09h30-09h40 desse dia, far-se-á a marcação dos alunos que poderão consultar os exames. A consulta inicia-se às 9h45 e cada aluno tem, no máximo, 12 min para rever a sua prova. O processo termina assim que todos tiverem revisto o seu exame.

27.fev.2006 Notas dos exames (1ª e 2ª chamadas e Recurso) e da componente prática.

07.fev.2006 Os exames (1ª e 2ª chamadas) podem ser consultados pelos alunos amanhã (dia 08.Fev), das 14h00-16h00 na lab. 3.21 (x. 4459)

06.fev.2006 Notas dos exames (1ª e 2ª chamadas) e da componente prática.

17.out.2005 Disponíveis acetatos das aulas T.

28.set.2005 Lista com a colocação dos alunos pelos turnos.

Equipa docente

bullet Docente responsável pela disciplina e aulas teóricas

João M. Fernandes (Prof. Auxiliar)
email: jmf(at)di(dot)uminho(dot)pt
Horário de atendimento: a definir

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

Vítor Oliveira (Assistente Convidado)
email: vspo(at)di(dot)uminho(dot)pt
Horário de atendimento: a definir

Carlos Machado (Assistente Convidado)
email: cmm(at)di(dot)uminho(dot)pt
Horário de atendimento: a definir

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.

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.

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

Módulos TP:

bulletMódulo 1
bulletMódulo 2
bulletMódulo 3
bulletMódulo 4
bulletMódulo 5
bulletMódulo 6
bulletMódulo 7
bulletMódulo 8
bulletMódulo 9

Acetatos T:

bulletDirectório com ficheiros PPT

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 aulas é obrigatória. O aluno que faltar a mais do que 2 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.

Avaliação:

Nota final = exame (0-19) + cotação perguntas das aulas TP (0-1)
O exame é constituído por questões teóricas (9,5) e práticas (9,5).
Cada um dos módulos das aulas práticas, incluirá no fim 1/2 perguntas sobre o assunto tratado.
Os alunos que entregarem respostas a essas perguntas, depois de assistirem completamente à aula, têm esse módulo feito.
A nota das “perguntas” é igual à percentagem de módulos feitos, relativamente ao total de módulos.

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 no exame escrito 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 e eventual instauração dum processo disciplinar;
bulletÉ proibida a utilização do telemóvel durante a prova;
bulletÉ aconselhada a utilização de uma calculadora.

Enunciado dos Exames  

bullet Exame da 1ª chamada
bullet Exame da 2ª chamada
bullet Exame de recurso
bullet Exame da época especial

Página mantida por João M. Fernandes

Última alteração: 02 Março, 2006