Sistemas de Microprocessadores
1
2019-2020
01000340
Sistemas Digitais e Computadores
Português
Inglês
Presencial
Semestral
6.0
Obrigatória
1º Ciclo - Licenciatura
Conhecimentos de Base Recomendados
Programação de Computadores (preferencialmente em linguagem C); Laboratório de Sistemas Digitais
Métodos de Ensino
As aulas teóricas são suportadas por slides que sumarizam os conceitos a ser discutidos em cada sessão e encaminham para os capítulos dos livros recomendados. Estes slides são disponibilizados com um mínimo de 8 dias de antecedência, e os alunos são incentivados a lê-los previamente de forma a tirarem o máximo partido da aula de exposição que tipicamente é muito interativa e participada.
A componente laboratorial consiste num conjunto de trabalhos que acompanham e ilustram os conceitos discutidos na nas teóricas, cujos enunciados são disponibilizados com um mínimo de 8 dias de antecedência.
Resultados de Aprendizagem
Sistemas de microprocessadores pretende dar ao aluno uma noção global do funcionamento de um sistema computacional, estabelecendo um ponte clara entre os conteúdos leccionados nas disciplinas de linguagens de programação e sistemas digitais. No fim da unidade curricular espera-se o desenvolvimento das seguintes competências: (i) compreensão da forma como o software interage com o hardware e consequente consolidação das competências de programação em C, (ii) programação em assembly, (iii) conhecimentos sobre as arquiteturas de computadores atuais e “trade-offs” que têm que ser tidos em consideração durante o desenho de um sistema computacional, e (iv) compreensão dos princípios de abstração por camadas que permitem o desenho e implementação de sistemas complexos.
Estágio(s)
NãoPrograma
Módulo 1: A Linguagem C e o Hardware
-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 E/S, interrupções e programação de hardware
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
-make-ing an Executable (compilação, assemblagem, linkagem, etc)
Módulo 3: Introdução à Arquitectura de Computadores
-Organização e funcionamento do CPU (datapath e lógica de controlo)
-Execução paralela usando Pipelining
-Hierarquia de memória-
-Novas tendências na arquitetura de computadores
Docente(s) responsável(eis)
Nuno Miguel Mendonça da Silva Gonçalves
Métodos de Avaliação
Avaliação
Frequência: 25.0%
Trabalho laboratorial ou de campo: 25.0%
Exame: 50.0%
Bibliografia
• Computer Organization and Design: The Hardware/Software Interface (5th Edition), by D. Patterson and J. Hennessy, 2013
• The C Programming Language (2nd Edition) by Kernighan and Ritchie, ISBN 0131103628
• The Datacenter as a Computer (2nd Edition) by Barroso and Holzle, 2013