
Arquitetura de Computadores
Código
11152
Unidade Orgânica
Faculdade de Ciências e Tecnologia
Departamento
Departamento de Informática
Créditos
9.0
Professor responsável
Pedro Abílio Duarte de Medeiros, Vítor Manuel Alves Duarte
Horas semanais
5
Total de horas
65
Língua de ensino
Português
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.
- Desenhar os componentes básicos de um CPU.
Pré-requisitos
Conhecimentos de Introdução à Programação e de Sistemas Lógicos.
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.
Bibliografia
Principal: Computer Systems: A Programmer''s Perspective, 2/Ed , Randal E. Bryant and David R. O''Hallaron, Prentice Hall, 2011
Alternativo: Computer Organization and Design: The Hardware/Software Interface (revised Fourth Edition). Por David A. Patterson, John L. Hennessy. Morgan Kaufmann, 2011.
Complementar: C Programming Language (2nd Edition). Por Brian W. Kernighan, Dennis M. Ritchie. Prentice Hall, 1988.
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
Componentes da avaliação
Avaliação prática de frequência NP. Serão avaliados 3 pequenos trabalhos individuais (TPC) e um trabalho maior em grupos de 2 alunos. A avaliação pode incluir discussão oral de qualquer trabalho.
NP = 40% trabs-pequenos + 60% trab-grupo
(alunos que obtiveram frequência em 2014/15, se quiserem, estão dispensados de fazer os trabalhos e ficam com a nota NP do ano passado -- não necessitam de estar inscritos nos turnos práticos)
Avaliação teorico-prática NT, constituída pela média de dois testes ou por um exame final (escritos, s/consulta).
Estas componentes são arredondadas às décimas.
Condições de aprovação na cadeira
1. Obter frequência por NP>=8,5;
2. Avaliação NT>= 8,5.
Nota final
Em caso de frequência, a nota final é calculada por média ponderada das componentes prática e testes ou exame:
NF = 20% NP + 80% NT