Arquitetura de Computadores
1
2012-2013
01000096
Informática
Português
Inglês
Presencial
Semestral
6.0
Obrigatória
1º Ciclo - Licenciatura
Conhecimentos de Base Recomendados
Tecnologias dos Computadores; Introdução à Programação e Resolução de Problemas.
Métodos de Ensino
Distribuição das 5h de contacto semanais:
- 2h de teórica, suportadas por slides e estudo dos capítulos de livro recomendados;
- 1h de teórico-prática, que incidem na resolução de problemas;
- 2h de prática laboratorial, onde se realiza um conjunto de trabalhos, esclarecem dúvidas e avalia o trabalho realizado.
Resultados de Aprendizagem
Proporcionar ao aluno uma noção global do funcionamento de um sistema computacional, na perspetiva do programador e do projetista de sistemas digitais, com especial enfoque em: (i) conhecimentos sobre arquiteturas de computadores atuais e compromissos que devem ser tidos em consideração no desenvolvimento de um sistema computacional; (ii) programação em linguagem Assembly; e (iii) compreensão da forma como o software interage com o hardware e consequente consolidação das competências de programação em linguagem C.
De uma forma geral, aquisição de competências em análise e síntese, resolução de problemas, trabalho de grupo, raciocínio crítico, entendimento da linguagem de outros, aprendizagem autónoma, adaptabilidade a novas situações, e adaptação prática dos conhecimentos teóricos.
Estágio(s)
NãoPrograma
Módulo 1: Introdução à Arquitetura de Computadores
- Organização e funcionamento do CPU (unidade de lógica e controlo (ALU) e datapath)
- Execução paralela usando Pipelining
- Hierarquia de memória
- Pooling e Interrupções (se houver tempo disponível)
Módulo 2: Programação em Assembly para o MIPS
- Instruções aritméticas básicas
- Instruções de leitura e escrita da memória
- Mecanismos para controlo do fluxo de execução
- Codificação de instruções
- Números e representação em floating-point
- Criação de um executável (compilação, assemblagem, linkagem, etc.)
Módulo 3: A Linguagem C e o Hardware (se houver tempo disponível)
- Linguagem C (revisão de conceitos básicos)
- Ponteiros e endereçamento de memória
- Zonas de memória: código, alocação estática, pilha, e “heap” para alocação dinâmica
- Gestão de memória dinâmica
Portos de I/O e programação de hardware
Docente(s) responsável(eis)
Gabriel Falcão Paiva Fernandes
Métodos de Avaliação
Avaliação
Frequência: 25.0%
Desempenho nas aulas laboratoriais: 25.0%
Exame: 50.0%
Bibliografia
1. Slides das Aulas / Slides from the Theoretical Courses
2. D.A. Patterson and J. L. Hennessy. “Computer Organization and Design: The Hardware/Software Interface”, 4th edition, Morgan Kaufmann.
3. B. W. Kernighan and D. M. Ritchie. “The C Programming Language”, 2nd edition, Prentice Hall.