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

1998/99


Painel de mensagens


Equipa docente

Listagem dos docentes da disciplina e modos de os contactar

Objectivos

Definição sumária dos objectivos da disciplina

Programa

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

Bibliografia

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

Avaliação

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

Sumários

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.

Notas para estudo

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.


Página do ano lectivo 1997/98

 


Equipa docente

 

Docente responsável pela leccionação teórica:

Alberto José Proença (Prof. Associado)
email:
aproenca@ci.uminho.pt
Horário de atendimento: Ter 10:00-13:00; Qui 9:00-11:00; Sex 11:00-13:00

Docentes responsáveis pela leccionação teórico-prática:

Paulo Jorge Alves (Assistente Convidado)
email:
paulo@dcl.pt
Horário de atendimento: Seg 14:00-18:00 ; Qui 11:00-13:00

Vítor Oliveira (Monitor)
email:
vspo@tnsj.pt
Horário de atendimento: Ter 13:00-14:00 ; Qua 18:00-20:00


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:

a organização e estrutura dum computador
o interface do processador com os programas escritos em linguagens imperativas de alto nível
a metodologia de programação em linguagem máquina

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 RISC (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 um processador CISC (i86), 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 RISC (MIPS): adição/subtracção de inteiros, operações de manipulação de bits, algoritmos para a multiplicação/divisão de inteiros, algoritmos nas operações em vírgula flutuante.

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 i86.

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 para 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:

 How Computers Work, Ron White, Ziff-Davis Press, October 1997 (nova edição em September 98)
 Computer Organization and Architecture - Designing for Performance, William Stallings, 4th Ed., Prentice Hall, 1996
 Computer Architecture - Single and Parallel Systems, Mehdi R. Zargham, Prentice Hall, 1996
 


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, os quais serão propostos semanalmente para resolução fora das aulas; alguns destes são de resolução individual e entrega obrigatória para avaliação, outros são apenas para teste dos conhecimentos adquiridos. A avaliação do trabalho desenvolvido ao longo destas sessões tem também 50% do peso da disciplina, repartido por duas componentes:

Os inscritos com estatuto de trabalhador-estudante - ou outros impossibilitados de frequentar as sessões teórico-práticas, devidamente justificados - poderão substituir a componente de avaliação relativa à participação nas sessões (com 10% do peso) por outra alternativa e equivalente, desde que dêem conhecimento da sua situação no início do semestre.

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

 


Página mantida por aproenca@di.uminho.pt
Ultima Modificação: 05 Out 1998