Saltar para:
Logótipo
Você está em: Início > L.EIC006

Arquitetura de Computadores

Código: L.EIC006     Sigla: AC

Áreas Científicas
Classificação Área Científica
OFICIAL Engenharia Informática e Computação

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

Ativa? Sim
Unidade Responsável: Departamento de Engenharia Eletrotécnica e de Computadores
Curso/CE Responsável: Licenciatura 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
L.EIC 402 Plano Oficial 1 - 6 52 162
Mais informaçõesA ficha foi alterada no dia 2022-02-19.

Campos alterados: Objetivos, Resultados de aprendizagem e competências, Pre_requisitos, Métodos de ensino e atividades de aprendizagem, Fórmula de cálculo da classificação final, Bibliografia Complementar, Obtenção de frequência, Programa, Componentes de Avaliação e Ocupação, Bibliografia Obrigatória, Melhoria de classificação

Língua de trabalho

Português

Objetivos

ENQUADRAMENTO

A arquitetura de um computador reflete o avanço tecnológico atual, mas também estabelece os limites das suas capacidades e do seu desempenho. Variantes do conjunto de instruções ARM são usadas na grande maioria das plataformas móveis (tablete, telemóveis) atuais. 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 "Arquitetura de Computadores" tem por objetivo desenvolver, combinar e aplicar de forma integrada conceitos das áreas de Arquitetura de Computadores e de Linguagens de Programação.  Assim, a unidade curricular explora as relações entre o conjunto de instruções e a programação de baixo nível (linguagem "assembly"). Os mecanismos de apoio à execução eficiente de programas, como encadeamento de instruções e predição de saltos,  também serão tratados. Reconhecendo que a arquitetura de computadores vai muito para além da arquitetura do CPU, a unidade curricular abordará também os subsistemas de memória, armazenamento e periféricos. Após a conclusão com sucesso desta unidade curricular, o estudante terá adquirido a capacidade de identificar e descrever a arquitetura das plataformas computacionais em uso atualmente, 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 frequentar esta unidade curricular, o estudante deve ser capaz de:

  1. Explicar as convenções de chamada de procedimento e escrever programas em C++/”assembly”.
  2. Descrever instruções SIMD e aplicá-las em sub-rotinas de elevado desempenho.
  3. Explicar “pipelining” básico no nível das instruções e o seu efeito no desempenho.
  4. Explicar os mecanismos para lidar com dependências de dados e de controlo.
  5. Descrever organizações de memória “cache” e explicar o seu uso para melhorar o desempenho.
  6. Avaliar o desempenho dos processadores de núcleo único.
  7. Descrever a organização básica de um multiprocessador simétrico (com vários núcleos e memória partilhada).
  8. Explicar a interação do processador com os dispositivos de entrada / saída (E/S).
  9. Explicar o uso de interrupções.
  10. Descrever as características das atuais tecnologias de armazenamento secundário e avaliar o seu impacto sobre o desempenho.
  11. Descrever o comportamento de arquiteturas superescalares (emissão simultânea de instruções; execução fora de ordem).

Modo de trabalho

Presencial

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

Pré-requisito:

- Fundamentos de sistemas computacionais (L.EIC004) : princípios da programação em linguagem "assembly" (ARM) e de organização de computadores.

Correquisito:

- Programação (L.EIC009): princípios básicos de programação em linguagem C/C++.

Programa


  1. Introdução às plataformas computacionais (CPU, memória e periféricos).

  2. Arquitetura AArch64. Convenções de chamada entre linguagens (invocação, passagem de parâmetro).

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

  4. Implementação de ciclo único e implementação multi-ciclo

  5. Paralelismo a nível de instruções: “pipelining”; limitações; gestão de dependências de dados e de controle.

  6. Princípios básicos de avaliação de desempenho de um CPU.

  7. Organizações comuns de memórias “cache” e seu impacto no desempenho.

  8. Organização básica de um processador “multi-core”; coerência e sincronização de cache.

  9. Interface com periféricos: “polling”, interrupções, DMA.

  10. Subsistemas de armazenamento de dados (discos magnéticos, unidades de estado sólido, RAID).

  11. Estimação de desempenho de tarefas que envolvem atividade E/S significativa.

  12. Paralelismo em nível de instruções: emissão de múltiplas instruções; execução fora de ordem.

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.)
Bruce Jacob; Spencer W. Ng ; David T.Wang; Memory Systems - Cache, DRAM, Disk (Existe no portal Knovel)
Jain, A., & Lee, C; Cache Replacement Policies, Morgan & Claypool , 2019. ISBN: 9781681735764

Observações Bibliográficas

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

Métodos de ensino e atividades de aprendizagem

A unidade curricular tem uma componente teórica baseada em aulas de exposição dos diversos temas acompanhados da apresentação de exemplos e respetiva discussão. As aulas teórico-práticas incluem a apresentação, análise e resolução de um conjunto de questões e de casos de estudo, bem como a 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 (%)
Teste 100,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Estudo autónomo 110,00
Frequência das aulas 52,00
Total: 162,00

Obtenção de frequência

A obtenção de frequência requer que não seja excedido o limite de 3 faltas às aulas TP.

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

A avaliação distribuída é composta por dois testes (1h30 cada).

A nota final (NF) é dada por:

NF = T1 x 0,5 + T2 x 0,5  (valor final arredondado às unidades)

em que T1 e T2 são as notas do 1.º e 2.º teste, respetivamente (escala 0-20).

O recurso pode ser global (prova de 2H00) ou parcial (T1 ou T2, 1H30 cada).

Melhoria de classificação

A classificação pode ser melhorada através da realização de uma prova escrita sobre toda a matéria (2h00).

Para estudantes que realizem os testes neste semestre letivo é possível melhorar a classificação através de uma prova parcial (correspondente ao 1.º ou 2.º teste) de 1H30.

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-10-18 às 19:02:23 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias