Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
Arquitectura de Computadores e Sistemas Operativos
Departamento / Department
Departamento de Ciências e Tecnologias da Informação
Ano letivo / Execution Year
2024/2025
Pré-requisitos / Pre-Requisites
Esta disciplina não tem pré-requisitos formais em termos de aprovação em cadeiras anteriores. Contudo, é aconselhável que os estudantes saibam manipular e realizar operações aritméticas sobre números inteiros representados em diferentes bases de numeração.
Objetivos Gerais / Objectives
No final do semestre, o aluno deverá: - Compreender o funcionamento de um processador com uma arquitectura básica; - Conseguir enumerar técnicas utilizadas para melhorar o desempenho de um processador; - Conhecer a hierarquia de um sistema de memória actual; - Compreender o funcionamento das arquitecturas paralelas atuais.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
OA1. Compreender o significado de medidas de desempenho e saber quantificar o ganho trazido por modificações numa arquitectura. OA2. Saber de que modo são geralmente estruturadas as instruções-máquina. OA3. Saber de que forma se processa a execução de um programa, compreendendo os principais mecanismos nela envolvidos. OA4. Distinguir os principais elementos numa arquitectura básica de um processador e saber de que forma se relacionam entre si. OA5. Compreender o conceito de pipeline e saber identificar conflitos de estruturais, de dados e de controlo. OA6. Compreender o funcionamento de uma memória cache. OA7. Compreender o funcionamento e desenho das arquitecuras paralelas actuais. OA8. Saber como escrever um programa paralelo em MPI.
Conteúdos Programáticos / Syllabus
CP1. Medidas de desempenho - Análise do desempenho; - Factores que influenciam o desempenho; - Lei de Amdahl e speed-up; - Benchmarks CP2. Conjunto de instruções - Formatos de instrução - Operações com Registos e Memórias - Procedimentos e utilização da pilha - Compilação e optimização - RISC vs CISC: ARM, x86 CP3. Unidade aritmética - Representação em vírgula flutuante (FP); - Arquitectura para FP. CP4.Arquitectura básica de um processador - Fases de uma instrução - Unidade de controlo e datapath - Processamento uni-ciclo e multi-ciclo. - Pipelining: Desempenho, e conflitos: - Melhoria do desempenho CP5. Sistemas de memória - Hierarquias de memória; - Memória cache; CP6. Arquitecturas paralelas - Medidas de desempenho; - Arquitecturas de memória partilhada; - Arquitecturas de memória distribuída; - Arquitecturas baseadas em GPU.
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
A interligação entre os conteúdos programáticos (CP) e os objetivos de aprendizagem (OA) realiza-se da seguinte forma: - CP1. Medidas de desempenho: OA1 - CP2. Conjuntos de instruções: OA2, OA3 - CP3. Unidade aritmética: OA4 - CP4. Arquitectura básica de um processador: OA4, OA5 - CP5. Sistemas de memória: OA6 - CP6. Arquitecturas paralelas: OA7, OA8
Avaliação / Assessment
A avaliação pode ser efectuada ao longo do semestre ou apenas por exame final: A - Avaliação ao longo do semestre: A avaliação é feita por 2 testes escritos, um efectuado durante o período lectivo e o outro na data do exame de 1ª época. Cada teste conta 50% para a nota final e não tem nota mínima. B - Avaliação por exame: A avaliação é feita por um exame final (em 1ª época ou em 2ª época ou em época especial) com um peso de 100% na nota final. Nota mínima: 9.5 valores.
Metodologias de Ensino / Teaching methodologies
Esta disciplina inclui: - Aulas teóricas (1h30 por semana), onde a matéria teórica é apresentada; - Aulas teórico-práticas (1h30 por semana), usadas para consolidar os conhecimentos adquiridos através da exploração de exemplos e da resolução de exercícios práticos; - Aulas práticas-laboratoriais (1h30 por semana), usadas para consolidar os conhecimentos adquiridos através da implementação prática em laboratório. Além da assiduidade às aulas espera-se do aluno um tempo de trabalho autónomo de, em média, cerca de 3h30 semanais para consulta da bibliografia, revisão de matéria dada, resolução de exercícios propostos e preparação dos laboratórios.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
As metodologias de ensino visam o desenvolvimento das principais competências de aprendizagem dos alunos que permitam atingir cada um dos objectivos de aprendizagem. As principais interligações entre as metodologias de ensino e os respectivos objectivos de aprendizagem (OA) são as seguintes: - Aulas teóricas: OA1, OA2, OA3, OA4, OA5, OA6, OA7, OA8; - Aulas teórico-práticas: OA1, OA2, OA3, OA4, OA5, OA6, OA7, OA8. - Aulas práticas-laboratoriais: OA1, OA2, OA3, OA4, OA5, OA6, OA7, OA8. O documento de Planeamento de Unidade Curricular (PUC), detalhado para cada aula, evidencia a relação entre os métodos pedagógicos de ensino e os objectivos de aprendizagem. A relação entre cada instrumento de avaliação e os objectivos de aprendizagem é a seguinte: - Testes escritos: OA1, OA2, OA3, OA4, OA5, OA6, OA7, OA8; - Exame final: OA1, OA2, OA3, OA4, OA5, OA6, OA7, OA8.
Observações / Observations
Toda a documentação necessária ao acompanhamento dos conteúdos leccionados na unidade curricular está disponível na plataforma de e-learning do ISCTE-IUL (i.e., Moodle), onde também serão publicados os resultados da avaliação. A assiduidade não é contabilizada para a avaliação desta disciplina.
Bibliografia Principal / Main Bibliography
David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Bibliografia Secundária / Secondary Bibliography
Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 5ª Edição, IST Press, 2020. J. Cavanagh, X86 Assembly Language and C fundamentals, CRC Press, 2013. A. Tanenbaum, Structured Computer Organization , 6th Ed., Prentice Hall, 2012.
Data da última atualização / Last Update Date
2024-07-25