Arquitetura de Computadores
Objetivos
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 Version, Thomas 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.