Arquitetura de Computadores

Objectivos

Conhecimentos

  • Organização geral do hardware de um sistema computacional.
  • Representação no hardware de dados e instruções.
  • Processo de tradução entre os programas em C, o assembly, e a linguagem máquina.
  • Interface de baixo nível para os dispositivos de entradas/saídas.
  • Características das unidades de memória.

Aptidões e competências

  • Programação em C, assembly, e a tradução entre ambos.
  • Compreensão profunda dos vários componentes da arquitetura de Von Neumann 

Caracterização geral

Código

11152

Créditos

9.0

Professor responsável

Hervé Miguel Cordeiro Paulino

Horas

Semanais - 5

Totais - 65

Idioma de ensino

Português

Pré-requisitos

Conhecimentos de Introdução à Programação e de Sistemas Lógicos.

Bibliografia

Computer Systems: A Programmer''''s Perspective, 2/Ed , Randal E. Bryant, David R. O''''Hallaron. Prentice Hall, 2011

Operating Systems: Three Easy Pieces v1.00 (2018) , Remzi Arpaci-Dusseau e Andrea Arapci-Dusseau, disponível em https://pages.cs.wisc.edu/~remzi/OSTEP/#book-chapters

 

C Programming Language (2/Ed). Brian W. Kernighan, Dennis M. Ritchie. Prentice Hall, 1988.

How to Think Like a Computer Scientist - C VersionThomas Scheffler and Allen B. Downey,  June 27th, 2019, disponível em PDF em https://github.com/tscheffl/ThinkC/


Método de ensino

Nas aulas teóricas explicar-se-ão e discutir-se-ão os sucessivos tópicos do programa da cadeira. No último terço de cada aula proceder-se-á, sempre que possível, à resolução de um problema prático cuja solução requeira a aplicação dos conhecimentos aprendidos no início da aula.

Nas aulas práticas serão desenvolvidos diversos trabalhos práticos de programação, cujo objectivo é aplicar e consolidar os conceitos que foram aprendidos nas aulas teóricas. Após concluírem os trabalhos práticos de programação, os alunos devem também discutir com os docentes o comportamento dos programas desenvolvidos e o seu encadeamento com os conceitos aprendidos ao longo da cadeira

Método de avaliação

As notas de todos os elementos de avaliação são arredondadas às décimas.

Componentes da avaliação

- Componente prática NP:

Serão avaliados 4 trabalhos individuais (TI). A avaliação pode incluir discussão oral ou prova prática em laboratório desses TI.

Além dos TI haverá pequenos exercícios para casa (TPCs).  Cada TPC será composto por um dos exercídos da ficha da aula prática dessa semana. A entrega dos TPCs não é obrigatória, mas a sua a avalaição

NP = média dos 4 trabalhos

 

Além dos TI, haverá 9 pequenos exercícios para casa (TPCs). Cada TPC será composto por um dos exercídos da ficha da aula prática dessa semana. A entrega dos TPCs não é obrigatória, mas a nota da sua avaliação (NTPCs abaixo) poderá ser utilizada para substituir o TI com nota mais baixa no cálculo da NP. Tal, no entanto, só é admissível caso a nota do TI a substituir seja superior a 7.0.

 

NTPCs = média dos 9 TPCs

Alunos que obtiveram em anos anteriores uma nota igual ou superior à nota mínima podem usar essa nota na corrente edição da cadeira. Podem também melhorar essa nota neste ano letivo se o entenderem.

A nota mínima nesta componente é 8,0 valores.

Componente teorico-prática, NT:

Serão realizados 2 testes e um exame final, presenciais e sem consulta.

NT é a média das notas dos 2 testes ou a nota do exame final.

Alunos que obtiveram em anos anteriores uma nota igual ou superior à nota mínima podem usar essa nota na corrente edição da cadeira. Podem também melhorar essa nota neste ano letivo se o entenderem.

A nota mínima nesta componente é 8,0 valores.

Nota final

se NP < 8,0 então NF = NP

se NT < 8,0 então NF = NT

se NT >= 8,0  e NP >= 8,0 então NF = 0,3 * NP + 0,7 *  NT 

 

Melhoria de nota ( após inscrição no CLIP)

Apenas é possível melhorar a componente teórico-prática no exame de recurso. A fórmula de cálculo da nota final é a que aparece acima.

 

Conteúdo

1. Programação em C

2. Representação numérica

3. Linguagem assembly: tipos de instruções, formato das instruções, procedimentos e convenção de chamadas a procedimentos.

4. Compilação, ligação, assemblagem, e carregamento.

5. Organização interna da unidade de processamento. Processador de ciclo único. Pipelines. Conceitos avançados do desenho de microprocessadores.

6. Caches e unidades memória. Introdução breve à memória virtual.

7. Entradas / saídas.

Cursos

Cursos onde a unidade curricular é leccionada: