u n i v e r s i d a d e d o m i n h o - d e p. i n f o r m á t i c a

 

Arquitectura de Computadores

 

Lic. Matemática e Ciências da Computação, 2ºano

2000/01


Notas(actualizado em 31.Jan.2001)     Ano 1999/00


 Lista de assuntos e material de consulta


Listagem dos docentes da disciplina e modos de os contactar

Definição sumária dos objectivos da disciplina

Programa proposto para o semestre, quer em termos de sessões teóricas, quer teórico-práticas

Plano das aulas teóricas e teórico-práticas para este ano lectivo

Lista da documentação necessária para um acompanhamento eficaz da disciplina

Metodologia de avaliação adoptada, e sua implementação ao longo do semestre

Listagem dos sumários das aulas (teóricas e teórico-práticas), a construir ao longo do semestre, e com eventuais links para locais com informação relevante.

Compilação da documentação produzida para apoio ao funcionamento da disciplina, em complemento da bibliografia recomendada. Contém essencialmente cópias de acetatos (a maioria comentados), e listas de exercícios. Contém ainda um enunciado de exame e respectiva sugestão de como responder ao exame.


Equipa docente

Luís Paulo Peixoto dos Santos (Assistente)
email: psantos@di.uminho.pt
Horário de atendimento:  

Segunda-feira 9h00m - 10h50m
Quarta-feira 9h00m - 10h50m
Quinta-feira 11h10m - 13h00m


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:

Para atingir estes últimos objectivos a disciplina segue uma estrutura e orientação que tira partido da formação de base dos estudantes em linguagens de programação: a partir de programas em C ou Pascal são introduzidas as características da linguagem máquina, com sessões teórico-práticas em metodologia de programação em linguagem máquina, baseadas no instruction set de um processador real simulado (MIPS R2000/R3000).


Programa proposto (resumo)


Introdução à organização e estrutura de um computador

Representação da informação num computador: de caracteres, de valores numéricos (com destaque para inteiros e reais), de instruções em linguagem máquina.

Introdução à organização interna de um computador: o processador principal, a memória (e respectiva hierarquia de organização), os barramentos e os periféricos (e respectivos controladores).

A estrutura interna dum processador e o seu funcionamento básico na execução de instruções. Operações e operandos num processador; formatos de instruções; a tomada de decisões.

Mecanismos e modelos na execução de programas

Níveis de abstracção num computador: do HLL à linguagem máquina.

Mecanismos na execução de programas: a edição do programa, a conversão entre níveis (compilador, interpretador, assembler), a junção de módulos e sua preparação para execução (linker e loader).

O modelo de programação em linguagem máquina: os registos visíveis ao programador, os modos de acesso aos operandos, os tipos de instruções.

Metodologia de construção de programas em assembly

Análise dum instruction set dum processador (MIPS): operações aritméticas e de transferência de informação, instruções para a tomada de decisões e para suporte à invocação de procedimentos.

Metodologia de construção de programas em assembly, com análise detalhada de exemplos, e com suporte a um simulador do processador no desenvolvimento de técnicas.

Aplicação da metodologia a processadores genéricos com características distintas (por exemplo, da linha Intel_x86), realçando as diferenças: no acesso a operandos em memória, na especificação de operandos em instruções lógicas/aritméticas, e na invocação de procedimentos/funções.

Computação aritmética

Especificação e construção de uma ALU para adição/subtracção de inteiros, a partir dos operadores AND, OR e INV.

Análise detalhada da realização de operações aritméticas e lógicas num processador (MIPS): adição/subtracção de inteiros, operações de manipulação de bits.

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; factores na arquitectura que influenciam o desempenho.

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

Organização hierárquica da memória

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

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.


Bibliografia

A disciplina Arquitectura de Computadores vai seguir essencialmente o livro:

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

nomeadamente os capítulos 1.Computer Abstractions and Technology, 2.The Role of Performance, 3.Instructions: Language of the Machine, 4.Arithmetic for Computers e 7.Large and Fast: Exploiting Memory Hierarchy, bem como o apêndice A (Assemblers, Linkers and the SPIM Simulator).

A empresa editora do livro tem disponível uma página Web com mais informação sobre o livro em http://www.mkp.com/books_catalog/1-55860-428-6.asp . Para os interessados, existem extensões Web a este livro, alguns dos quais eram apêndices da 1ª edição do livro; em particular, o antigo apêndice E que aparece agora como extensão Web - Web Extension III: Another Approach to Instruction Set Architecture--VAX - foi reformulado de modo a cumprir idênticos objectivos mas com referência à arquitectura do Intel 86.

As aulas teóricas serão leccionadas à base de acetatos, os quais contêm essencialmente os tópicos de cada assunto a ser analisado. Cópias desses acetatos, eventualmente com notas adicionais, serão igualmente disponibilizados (ver em Notas de estudo).

A componente de programação em linguagem máquina baseia-se num simulador (xspim) duma arquitectura RISC (MIPS R2000/R3000), instalado num sistema Unix do CIUM (athena), e acessível por terminal X. Existem também versões para computadores pessoais, que poderão ser copiadas por quem o desejar (versão DOS, versão Windows, ou versão Unix).

  

Bibliografia complementar recomendada para leitura adicional:


Avaliação

A disciplina de Arquitectura de Computadores está organizada em aulas teóricas (2*1h/sem) e em sessões teórico-práticas (2h/sem). A frequência às aulas teóricas não é obrigatória, mas é recomendada; a participação nas sessões teórico-práticas é obrigatória, existindo controlo de presenças; com mais de 1/3 de faltas o aluno poderá não ser admitido a exame.

As aulas teóricas são utilizadas para se transmitirem os conceitos necessários à compreensão da matéria. O material leccionado nestas aulas é encadeada, pelo que se torna indispensável o seu regular acompanhamento. A avaliação da capacidade de compreensão dos conhecimentos obtidos com o material leccionado nas aulas teóricas é realizada através de exames, e tem 50% do peso da disciplina.

As sessões teórico-práticas têm por objectivo aplicar os conceitos adquiridos nas teóricas e ainda desenvolver técnicas de programação em linguagem máquina. A prática na utilização destas técnicas de programação adquire-se com a resolução de exercícios e/ou construção de pequenos programas. A avaliação da componente prática é realizada em exame e tem também 50% do peso da disciplina.

Resumo dos pesos relativos das diversas componentes de avaliação:

 


Página mantida por psantos@di.uminho.pt
Ultima Modificação: 16 Out 2000