Computadores
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Electrónica e Sistemas Digitais |
Ocorrência: 2010/2011 - 1S
Ciclos de Estudo/Cursos
Língua de trabalho
Português
Objetivos
Esta unidade curricular introduz os princípios de funcionamento de um computador moderno e a sua arquitectura geral, com especial ênfase na contribuição de cada subsistema para o desempenho global. Para além desta vertente de “Arquitectura de Computadores”, onde será dado um especial destaque à arquitectura MIPS, esta unidade curricular visa também dotar os estudantes de competências para projectar 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;
• especificar extensões simples da unidade de processamento;
• 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 respectivas á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;
• explicar os problemas associados à utilização de memórias "cache" em sistemas com múltiplos processadores.
Adicionalmente os estudantes deverão ser capazes de:
• projectar, 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.
• explicar oralmente (na forma de apresentações formais ao colegas de turma) as opções tomadas na realização desse trabalho.
Programa
• 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. Instruções de sincronização.
• Conceitos básicos de programação em linguagem "assembly". Assemblador.
• Organização de uma unidade de processamento. Unidade 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. Aspectos básicos da interacção entre memórias cache e múltiplas unidades de processamento.
Bibliografia Obrigatória
David A. Patterson, John L. Hennessy;
Computer organization and design. ISBN: 978-0-12-374493-7
Lucio Di Jasio; Programming 32-bit Microcontrollers in C: Exploring the PIC32, Newnes, 2008. ISBN: 978-0-75-068709-6
Software
PCSpim @ http://pages.cs.wisc.edu/~larus/spim.html
PIC32 Starter Kits Software @ http://www.microchip.com
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Descrição |
Tipo |
Tempo (Horas) |
Peso (%) |
Data Conclusão |
Participação presencial (estimativa) |
Participação presencial |
70,00 |
|
|
1º miniteste |
Exame |
1,00 |
|
2010-10-22 |
2º miniteste |
Exame |
1,00 |
|
2010-12-17 |
Projecto PIC32 |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
80,00 |
|
2010-12-14 |
Relatório |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
15,00 |
|
2010-12-14 |
Apresentação |
Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese |
5,00 |
|
2010-12-14 |
|
Total: |
- |
0,00 |
|
Componentes de Ocupação
Descrição |
Tipo |
Tempo (Horas) |
Data Conclusão |
Preparação para o 1º miniteste |
Estudo autónomo |
20 |
2010-10-22 |
Preparação para o 2º miniteste |
Estudo autónomo |
20 |
2010-12-17 |
|
Total: |
40,00 |
|
Obtenção de frequência
• 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).
Fórmula de cálculo da classificação final
Nota final = 60% x T + 40% x L
T: Média dos 2 Testes.
L: Somatório das componentes: Projecto, Relatório e Apresentações.
Importante: L não pode exceder T em mais de 4 valores!
Provas e trabalhos especiais
Provas:
2 testes (sem consulta) com duração de 75 minutos, a realizar durante o período de aulas.
Trabalhos Especiais:
Projecto a realizar nas aulas laboratoriais e que terminará com a realização dum Relatório final. Sensivelmente a meio e no fim do trabalho os estudantes deverão fazer breves Apresentações públicas (na sala de aula para os colegas) sobre o andamento/conclusão do mesmo.
Avaliação especial (TE, DA, ...)
Não se aplica.
Melhoria de classificação
Como se trata de uma unidade curricular de avaliação distribuída sem exame final, a melhoria de classificação é possibilitada pela repetição da frequência no ano lectivo seguinte.