Saltar para:
Logótipo
Você está em: Início > EIC0016

Microprocessadores e Computadores Pessoais

Código: EIC0016     Sigla: MPCP

Áreas Científicas
Classificação Área Científica
OFICIAL Arquitectura de Computadores

Ocorrência: 2020/2021 - 2S Ícone do Moodle

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Eletrotécnica e de Computadores
Curso/CE Responsável: Mestrado Integrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MIEIC 265 Plano de estudos a partir de 2009/10 1 - 6 56 162
Mais informaçõesA ficha foi alterada no dia 2021-04-14.

Campos alterados: Fórmula de cálculo da classificação final, Componentes de Avaliação e Ocupação, Programa

Língua de trabalho

Português

Objetivos

ENQUADRAMENTO

Os computadores pessoais, seja como computadores de mesa ou como plataformas móveis, constituem uma ferramenta ubíqua nas sociedades modernas. A sua arquitetura reflete o avanço tecnológico atual, mas também estabelece os limites das suas capacidades e desempenho . Variantes do conjunto de instruções ARM são usadas na grande maioria das plataformas móveis (tablete, telemóveis) atualmente em uso. Tanto a arquitetura do sistema como o conjunto de instruções têm um impacto profundo na prática diária dos engenheiros informáticos.

OBJETIVOS ESPECÍFICOS

A unidade curricular de Microprocessadores e Computadores Pessoais tem por objectivo desenvolver, combinar e aplicar de forma integrada conceitos das áreas de Arquitectura de Computadores e de Linguagens de Programação. Por um lado, a unidade curricular explora as relações entre o conjunto de instruções do CPU e a programação de baixo nível (linguagem "assembly"). Por outro lado, reconhecendo que a arquitectura de computadores pessoais modernos vai muito para além da arquitectura do CPU, a unidade curricular abordará a arquitectura geral de um PC, incluindo o subsistema de armazenamento de dados e outros periféricos. Após a conclusão com sucesso desta unidade curricular, o estudante terá adquirido a capacidade de identificar e descrever a arquitectura das plataformas computacionais em uso actualmente, bem como a capacidade de aplicar as técnicas de programação "assembly" na implementação de algoritmos. 

DISTRIBUIÇÃO PERCENTUAL

  • Componente científica: 60%
  • Componente tecnológica: 40%

Resultados de aprendizagem e competências

Após completar esta unidade curricular, os estudantes serão capazes de:

  • Identificar e descrever os principais subsistemas de um computador pessoal;
  • Descrever e avaliar o desempenho de sistemas de aramazenamento de dados (discos magnéticos);
  • Descrever, selecionar e avaliar o desempenho de diferentes métodos de comunicação com periféricos ("polling", interrupções, DMA)
  • Explicar os princípios de funcionamento de barramentos de comunicação com periféricos.
  • Explicar e avaliar a contribuição de cada subsistema para o desempenho global;
  • Usar ferramentas de compilação e depuração ("assembler", depurador);
  • Descrever a arquitetura do conjunto de instruções ARMv8 (64-bit version);
  • Desenvolver curtos em linguagem "assembly" ARMv8;
  • Explicar o funcionamento de programas em "assembly" ARMv8;
  • Explicar os mecanismos de invocação de subrotinas;
  • Utilizar subrotinas para implementar programas modulares;
  • Processar dados em representação de vírgula flutuante;
  • Usar instruções SIMD para aproveitamento explícito de paralelismo de dados;
  • Estabelecer a correspondência entre código C/C++ e código "assembly".

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Pré-requisitos:

EIC0083: princípios da programação em linguagem "assembly" e de organização de computadores.

Co-requisitos:

EIC0012: princípios básicos de programação em linguagem C/C++.

Programa


  1. Introdução às plataformas computacionais.

  2. Memórias "cache" de mapeamento direto.

  3. Interface com periféricos: "polling", interrupções, DMA. Barramentos de comunicação com periféricos.

  4. Subsistema de armazenamento de dados.

  5. Modelo de programação da arquitetura ARMv8. Modos de endereçamento. Funcionalidade e organização de um "Assembler".

  6. Instruções de transferência de dados, aritméticas e lógicas. Instruções de controlo de fluxo: saltos incondicionais e condicionais.

  7. Sub-rotinas (invocação, passagem de parâmetros). Programação modular.

  8. Processamento de dados representados em vírgula flutuante.

  9. Instruções SIMD para  aproveitamento explícito de paralelismo de dados.

Bibliografia Obrigatória

David Patterson, John Hennessy; Computer Organization and Design: The Hardware/Software Interface ARM Edition, Elsevier / Morgan Kaufmann, 2016. ISBN: 9780128017333 (Notar que outras versões não usam o mesmo CPU.)
João Canas Ferreira; Apresentações das aulas teóricas

Bibliografia Complementar

Bruce Jacob; Spencer W. Ng ; David T.Wang; Memory Systems - Cache, DRAM, Disk (Existe no portal Knovel)

Observações Bibliográficas

O livro de Patterson & Hennessey está disponvel no portal Knovel

Métodos de ensino e atividades de aprendizagem

Aulas Teóricas: Exposição oral dos diversos temas da disciplina que serão acompanhados, sempre que se considere oportuno, com apresentação de exemplos e a respetiva discussão.

Aulas Práticas: A metodologia das aulas práticas baseia-se na apresentação, discussão e resolução de problemas que serão testados numa plataforma computacional ou num emulador de CPU.

Software

DS-5 Community Edition

Palavras Chave

Ciências Tecnológicas > Engenharia > Engenharia de computadores

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 50,00
Teste 20,00
Participação presencial 10,00
Trabalho prático ou de projeto 20,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 86,00
Frequência das aulas 56,00
Trabalho laboratorial 20,00
Total: 162,00

Obtenção de frequência

O estudante não pode exceder o número limite de faltas correspondente a 25% das aulas práticas previstas.

Apenas estão isentos de obter frequência os estudantes que a tenham obtido em 2018/19 ou 2019/2020.

Fórmula de cálculo da classificação final

A avaliação distribuída tem as seguintes componentes:

  1. Exercícios de programação em assembly AArch64 (A): 40% (4 melhores classificações de 5 exercícios).
  2. Teste escrito (T) : 40%.
  3. Participação interativa nas aulas TP (P): 20%.
    (Classificação atribuída pelo docente)

A nota da avaliação distribuída (AD) é calculada por:

AD = 0,4×A + 0,4×T + 0,2×P

A avaliação tem as seguintes componentes:

  • Avaliação distribuída (AD)
  • Exame final (E)

A classificação final é calculada por

Nota Final = máximo(0,5×E + 0,5×AD; E)

Componentes em falta valem 0.

O teste tem duas partes: 1)  escolha múltipla, com duração de 45 minutos; 2) questões de desenvolvimento, duração de 45 minutos.

A aprovação à unidade curricular exige cumulativamente:

  • Nota de avaliação distribuída igual ou superior a 5,0 valores (em 20) em alguma ocorrência da UC;
  • Nota de exame superior a 5,0 valores (em 20);
  • Nota final (arredondada às unidades) igual ou superior a 10 valores.

Melhoria de classificação

A classificação global pode ser melhorada através da realização de uma prova escrita de dificuldade semelhante à do exame.

Observações

O desenvolvimento de aplicações em Microcomputadores exige conhecimentos relacionados com Arquitetura de Computadores, constituição de Microcomputadores baseados em Microprocessadores, Programação em Linguagens de baixo nível (Assembly) e ligação a dispositivos físicos exteriores. Esta unidade curricular, surgindo no plano de estudos na sequência da disciplina de Arquitetura e Organização de Computadores, tem por objetivo desenvolver e aplicar estes conceitos no contexto da arquitetura AArch64.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-08-25 às 21:56:13 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias