Código: | EEC0138 | Sigla: | COMP |
Áreas Científicas | |
---|---|
Classificação | Área Científica |
OFICIAL | Electrónica e Sistemas Digitais |
Ativa? | Sim |
Unidade Responsável: | Departamento de Engenharia Eletrotécnica e de Computadores |
Curso/CE Responsável: | Mestrado Integrado em Engenharia Electrotécnica e de Computadores |
Sigla | Nº de Estudantes | Plano de Estudos | Anos Curriculares | Créditos UCN | Créditos ECTS | Horas de Contacto | Horas Totais |
---|---|---|---|---|---|---|---|
MIEEC | 51 | Plano de estudos oficial | 3 | - | 8 | 70 | 216 |
Esta unidade curricular introduz os princípios de funcionamento de um computador moderno e a sua arquitetura geral, com especial ênfase na contribuição de cada subsistema para o desempenho global. Para além desta vertente de “Arquitetura de Computadores”, onde será dado um especial destaque à arquitetura MIPS, esta unidade curricular visa também dotar os estudantes de competências para projetar e manusear sistemas embutidos baseados em microprocessadores em geral, e no microcontrolador PIC32 em particular.
Após completar esta unidade curricular, os estudantes deverão ser capazes de:
- identificar e descrever os principais subsistemas de um computador pessoal: unidade de processamento, memória e periféricos;
- explicar e avaliar o desempenho de computadores em cenários simples envolvendo a equação fundamental do desempenho e a lei de Amdahl;
- classificar e caracterizar os tipos de instruções de uma unidade de processamento;
- explicar os princípio básicos da codificação de instruções e identificar o seu impacto sobre o desempenho;
- escrever programas simples em linguagem "assembly" envolvendo operações aritméticas e booleanas, testes e saltos;
- descrever o funcionamento de uma unidade de processamento uniciclo;
- descrever e explicar o conceito de "pipeline" e o seu impacto no desempenho;
- descrever o funcionamento de uma unidade de processamento em "pipeline";
- aplicar os conhecimentos de máquinas de estados à análise da unidade de controlo de uma unidade de processamento em "pipeline";
- identificar os conflitos de dados e de controlo que podem surgir numa unidade de processamento em "pipeline";
- calcular o impacto dos conflitos de "pipeline" no desempenho para cenários simples;
- distinguir entre memórias estáticas e dinâmicas, e identificar as respetivas áreas de utilização;
- explicar o princípio de funcionamento dos dois tipos de memórias;
- identificar os vários níveis da hierarquia de memória de um computador pessoal;
- explicar o princípio de funcionamento da memória "cache";
- descrever a organização de uma memória "cache" (associatividade) e o tratamento de falhas de acesso;
- avaliar numericamente a influência da hierarquia de memória sobre o desempenho;
Adicionalmente os estudantes deverão ser capazes de:
- projetar, montar e testar um microcomputador simples (CPU+Mem+I/O);
- recordar as características dos principais tipos de periféricos e interfaces (formas de interligação e barramentos de comunicação) em microcontroladores em geral e do PIC32 em particular;
- escrever código em linguagem assembly e em C para o microprocessador PIC32;
- usar o IDE MPLAB da Microchip para escrita e debug de programas;
- desenvolver pequenos sistemas, incluindo a identificação dos periféricos necessários, a sua interligação ao microcontrolador através das interfaces e barramentos mais apropriados, e a escrita do código que satisfaça os requisitos funcionais apresentados.
- descrever na forma dum relatório, o trabalho prático desenvolvido.
- Introdução. Áreas de aplicação de computadores e suas características. Programas: linguagens de alto nível, linguagens de baixo nível. Modelo conceptual da execução de um programa.
- Componentes de um computador: CPU (percurso de dados e unidade de controlo), memória, periféricos de entrada/saída. Evolução da tecnologia de processadores e memórias.
- Noções básicas de desempenho de CPUs. Equação básica de desempenho. Benchmarks (SPEC). Consumo de energia. Lei de Amdahl.
- Conjunto de instruções de um processador. Tipos de instruções: aritméticas, lógicas, comparação e salto. Modos de endereçamento. Codificação de instruções.
- Conceitos básicos de programação em linguagem "assembly". Assemblador.
- Organização de uma unidade de processamento. Organização uniciclo de um CPU. Conceito de pipelining. Organização de um percurso de dados em pipeline. Controlo de pipeline. Conflitos de pipeline: conflitos de dados e de controlo. Estratégias de tratamento dos conflitos. Impacto dos conflitos sobre o desempenho.
- Memórias estáticas e dinâmicas: organização e modelo conceptual. Hierarquias de memória.
- Memórias cache: princípio de funcionamento, organização interna, associatividade, tratamento de falhas de cache. Desempenho de CPU com memória cache. Redução das penalidades associadas a falhas de acesso.
Nas aulas teóricas serão expostos os assuntos sobre a arquitetura de computadores em geral e a arquitetura MIPS em particular, acompanhados da resolução de exercícios.
Nas aulas laboratoriais será apresentado o microcontrolador PIC32 com especial ênfase na sua programação em linguagem C. As primeiras aulas serão se apresentação dos diversos periféricos embutidos no PIC32 após o que se seguirá um projeto a desenvolver pelos estudantes.
Designação | Peso (%) |
---|---|
Teste | 70,00 |
Trabalho laboratorial | 30,00 |
Total: | 100,00 |
Designação | Tempo (Horas) |
---|---|
Elaboração de relatório/dissertação/tese | 10,00 |
Estudo autónomo | 70,00 |
Frequência das aulas | 70,00 |
Trabalho laboratorial | 60,00 |
Total: | 210,00 |
• Presença nas aulas laboratoriais de acordo com o estipulado nas Normas Gerais de Avaliação.
• Obtenção de nota positiva na componente laboratorial (L).
Nota final = 70% x T + 30% x L
T: Média pesada dos 2 Testes (60% para o melhor e 40% para o pior).
L: Somatório das componentes: Projeto e Relatório.
IMPORTANTE: L não pode exceder T em mais de 4 valores!
RECURSO: Estudantes que não obtenham aprovação pela fórmula anterior, poderão efetuar um teste de recurso sobre a matéria de ambos os testes, que caso seja positivo permitirá a obtenção duma nota final igual a 10 valores. Para se candidatarem à realização deste teste, os estudantes terão que possuir:
- uma componente L de pelos menos 10 valores.
- uma componente T de pelo menos 6 valores.
Provas:
2 testes (sem consulta) com duração de 75 minutos, a realizar durante o período de aulas.
Trabalhos Especiais:
Projeto a realizar nas aulas laboratoriais e que terminará com a realização dum relatório final.
Não se aplica.
A melhoria de ambas as componentes pode ser efetuada no ano letivo seguinte:
- a componente T pela realização dum exame que cobrirá a matéria dada nas aulas teóricas
- a componente L pela realização dum novo projeto