Unidade Curricular:Código:
Arquitetura de Computadores1093ACPT
Ano:Nível:Curso:Créditos:
2LicenciaturaEngenharia Informática6 ects
Período Lectivo:Língua de Instrução:Nº Horas:
Primeiro SemestrePortuguês/Inglês78
Objectivos de Aprendizagem:
Este curso tem como objetivo estudar a arquitectura e operação interna de um computador com foco na programação do microprocessador e na interface entre o hardware e o software.
Ao completar com sucesso esta unidade curricular os alunos devem ser capazes de:
1. Descrever os componentes básicos da estrutura interna dum computador
2. Utilizar a representação binária de inteiros com e sem sinal
3. Descrever a arquitectura do conjunto de instruções MIPS.
4. Descrever o ciclo de instrução do processador.
5. Desenvolver programas simples em linguagem “assembly” MIPS.
6. Utilizar subrotinas para implementar programas modulares.
7. Traduzir programas simples em C para “assembly” MIPS e vice-versa.
8. Processar dados em representação de vírgula flutuante.
9. Explicar as funções do ligador, compilador e assemblador.
10. Analisar técnicas de aumento de desempenho dos processadores.
11. Identificar os mecanismos de entrada e saída de baixo nível usados pelo processador.
Conteúdos Programáticos:
1. Introdução. Conceitos básicos, tecnologia. Representação numérica de inteiros. Operações aritméticas com inteiros.
2. Conjunto de Instruções. Arquitectura do MIPS. Acesso à memória. Tomada de decisões. Procedimentos. Representação de instruções. Traduzindo e iniciando um programa.
3. Representação em vírgula flutuante. IEEE 754. Operações Aritméticas. Vírgula flutuante no MIPS.
4. O Processador: Dados e Controlo. Uma Implementação básica do MIPS. O ciclo de instrução no Hardware.
5. Introdução ao “pipelining”. Problemas associados ao “pipelining”. “Pipelining” no MIPS.
6. Hierarquia de Memórias. Desenho de sistemas de “cache”. Análise do desempenho.
7. Mecanismos de entrada/saída de baixo nível. Entrada/Saída programada e por interrupções. Suporte a entrada/saída no MIPS.
Demonstração da Coerência dos Conteúdos Programáticos com os Objectivos da Unidade Curricular:
Sendo uma unidade curricular de introdução à Arquitectura de Computadores, os conteúdos são organizados por forma a cobrir os componentes principais do computador com enfase na estrutura, operação e programação do microprocessador. Os conceitos fundamentais da organização e estrutura interna dos computadores são apresentados no capítulo introdutório, o conjunto de instruções, a representação de informação e a optimização são apresentados nos capítulos seguintes e finalmente são estudados os mecanismos de I/O de baixo nível. Os objectivos da aprendizagem são atingidos complementando os conceitos teóricos com exemplos concretos executados em ambiente de laboratório recorrendo a simuladores e equipamentos físicos.
Metodologias de Ensino (Avaliação Incluída):
A transmissão de conhecimentos nesta unidade curricular será efetuada recorrendo a aulas de cariz teórico-prático e prático em ambiente laboratorial. Nas aulas teóricas são apresentados os conceitos fundamentais à compreensão dos temas do programa. Nas aulas práticas os alunos são confrontados com problemas reais que têm que resolver eventualmente recorrendo a ferramentas apropriados (i.e., simulador Mars). A avaliação será calculada de acordo com a seguinte fórmula:
Nota Prática = 0.9 * (Trabalho Prático 1 + Trabalho Prático 2) + 0.1 * (Fichas Práticas)
Nota Teórica = (Teste Teórico 1 + Teste Teórico 2) / 2
Nota Final = (2 * Nota Teórica + Nota Prática) / 3
Os momentos de avaliação, assim como os protocolos dos trabalhos, serão divulgados e apresentados pelos docentes em sala. Estes encontrar-se-ão também disponíveis no LMS. Caso pretendam mais informações relativamente as avaliações, deverão consultar o docente e/ou a normativa académica em vigor disponibilizada pela UFP.
Demonstração da Coerência das Metodologias de Ensino com os Objectivos de Aprendizagem da Unidade Curricular:
Os objectivos de aprendizagem estão centrados na compreensão do funcionamento interno do computador, do conhecimento dos seus componentes, e da utilização do conjunto de instruções do processador. A resolução de fichas de exercícios e um trabalho prático de programação permitem aos alunos adquirirem as competências necessárias.
Bibliografia:
[1] Hennessy & Patterson – Computer organization and design: The Hardware/Software Interface, 5th edition – Morgan Kauffman 2013.
[2] A.S. Tanenbaum - Structured Computer Organization 6th edition – Prentice Hall 2013
[3] Stallings, W –Computer Organization and Architecture 10th edition – Prentice Hall 2015.
[4] Delgado, J., Ribeiro, C. - Arquitectura de Computadores, 5ª Edição. FCA 2014.
[5] Patterson, D.- Computer Organization and Design Mips Edition. Morgan Kaufmann Publisher 2020.
[6] Null, L., Lobur, J. - Essentials of Computer Organization and Architecture. Burlington: Jones & Bartlett Learning 2018.
Docente (* Responsável):
Christophe Soares (csoares@ufp.edu.pt)
João Viana (jviana@ufp.edu.pt)