Os alunos irão adquirir conhecimentos teóricos e práticos de arquitectura de computadores, sendo esta última categoria adquirida através de aulas de laboratório e uma série de trabalhos de casa práticos e projectos.Esta cadeira permitirá aos alunos compreender as linguagens assembly, e a relação destas com as linguagens de alto nível (exemplo da linguagem C). Adicionalmente, os alunos compreenderão de que forma o assembly é traduzido para linguagem máquina, e como é executado pelo hardware, focando-se vários aspectos da sua organização, incluindo o processador, a memória, ou as entradas/saídas para os restantes componentes.
Conhecimentos
Aptidões e competências
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.
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 emhttps://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 andAllen B. Downey,June 27th, 2019, disponível em PDF emhttps://github.com/tscheffl/ThinkC/
Conhecimentos de Introdução à Programação e de Sistemas Lógicos.
Horas por crédito | 28 | ||
Horas p/ semana | Semanas | Horas | |
Aulas práticas e laboratoriais | 26.0 | ||
Aulas teóricas | 39.0 | ||
Avaliação | 6.0 | ||
Estudo | 60.0 | ||
Projectos e trabalhos | 120.0 | ||
Total de Horas | 251 | ||
ECTS | 9.0 |