Objetivos

Ao completar com sucesso a UC cada estudante deverá demonstrar que adquiriu os seguintes conhecimentos, capacidades e aptidões:

  • reconhecer a organização e estrutura funcional dum computador;
  • adquirir capacidades para acompanhar a evolução da estrutura dos sistemas de computação;
  • reconhecer as principais características da arquitetura de um instruction set;
  • analisar a funcionalidade de programas imperativos (tipo C), com recurso ao assembly e a linguagem máquina;
  • aplicar técnicas com impacto no desempenho na execução de código;
  • analisar código compilado para linguagem máquina;
  • aptidões transversais, nomeadamente a ter desenvolvido a capacidade de raciocínio na resolução de problemas, e a capacidade de comunicação escrita e oral

Programa

  1. Organização e estrutura de um computador
    A informação num computador: representação da informação (texto, números, imagens e comandos para o processador); representação binária de inteiros e de valores reais (inc. norma IEEE 754). Estrutura interna dum computador; execução de instruções; níveis de abstração; execução de programas num ambiente laboratorial (x86 em Linux).
  2. Arquitetura do instruction set
    Estrutura dum instruction set: operações/operandos, acesso a dados, tipos e formatos de instruções, modelo de programação dum processador. O nível ISA do x86 em Linux: operações aritméticas e acesso a operandos, estruturas de controlo em C, funções/procedimentos. Análise comparativa do instruction set de outras arquiteturas com a do IA-32.
  3. Avaliação do desempenho de computadores
    Metodologia de avaliação de desempenho. Fatores da arquitetura dum computador no seu desempenho

Bibliografia

  • Computer Systems: A Programmer’s Perspective (CS:APP), Randal Bryant and David O’Hallaron, Pearson, 3rd Ed., 2015
  • Computer Organization and Design: the hardware/software interface, D.Patterson, J.Henessy, Morgan Kaufmann Publishers, 4th Ed., 2011

Atualizado: