Sistemas de Microprocessadores

Ano
1
Ano lectivo
2021-2022
Código
01000340
Área Científica
Sistemas Digitais e Computadores
Língua de Ensino
Português
Outras Línguas de Ensino
Inglês
Modo de Ensino
Presencial
Duração
Semestral
Créditos ECTS
6.0
Tipo
Obrigatória
Nível
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 sumariam os conceitos a ser discutidos em cada sessão e encaminham para os capítulos dos livros recomendados. Estes slides são disponibilizados com aproximadamente 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 nas teóricas, cujos enunciados são disponibilizados com aproximadamente 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 lecionados 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ão

Programa

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

-Convenções de chamada de funções, registos e passagem de parâmetros

-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
Trabalho laboratorial ou de campo: 10.0%
Mini Testes: 40.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.