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.
Principal: Computer Systems: A Programmer''s Perspective, 2/Ed , Randal E. Bryant, David R. O''Hallaron. Prentice Hall, 2011
Alternativo: Computer Organization and Design: The Hardware/Software Interface (revised Fourth Edition). David A. Patterson, John L. Hennessy. Morgan Kaufmann, 2011.
Complementar: C Programming Language (2nd Edition). Brian W. Kernighan, Dennis M. Ritchie. Prentice Hall, 1988.
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 | 61.0 | ||
Projectos e trabalhos | 120.0 | ||
Total de Horas | 252 | ||
ECTS | 9.0 |