Arquitectura e Organização de Computadores
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Arquitectura de Computadores |
Ocorrência: 2009/2010 - 1S
Ciclos de Estudo/Cursos
Língua de trabalho
Português - Suitable for English-speaking students
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. A análise da tecnologia de implementação física dos computadores (circuitos lógicos e de memória), associada à explicação das formas elementares de representação de informação em formato digital, permitirá aos alunos identificar e descrever princípios fundamentais da operação dos computadores, das linguagens de programação e do desenvolvimento de software.
Após completar esta unidade curricular, os alunos serão 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;
- descrever e interpretar formatos básicos de representação de informação numérica;
- explicar e efectuar operações aritméticas elementares em base binária;
- identificar e explicar o funcionamento de circuitos lógicos elementares;
- distinguir circuitos combinacionais e sequenciais;
- determinar os diagramas lógicos correspondentes a uma expressão booleana e vice-versa;
- explicar o funcionamento de circuito lógicos básicos como comparadores e somadores, bem como estabelecer as equações booleanas correspondentes;
- analisar o funcionamento de máquinas de estado do tipo Moore;
- criar máquinas de estados para controlar sistemas simples;
- 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.
Programa
1. 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.
2. 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.
3. Noções básicas de desempenho de CPUs. Equação básica de desempenho. Benchmarks (SPEC). Consumo de energia. Lei de Amdahl.
4. Representação de informação: representação binária de números inteiros (com e sem sinal). Bases 8 e 16. Operações aritméticas elementares (adição, subtracção, multiplicação, divisão). Códigos ASCII e Unicode. Representação em vírgula flutuante formato IEEE-754.
5. Circuitos lógicos combinacionais. Expressões booleanas. Portas lógicas elementares. Diagramas lógicos. Circuitos lógicos: comparador, multiplexador, somador/subtractor.
6. Circuitos síncronos. Elementos de memória. Máquinas de estados tipo Moore. Controladores baseados em máquinas de estados.
7. 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.
8. Conceitos básicos de programação em linguagem "assembly". Assemblador.
9. 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.
10. Memórias estáticas e dinâmicas: organização e modelo conceptual. Hierarquias de memória.
11. 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
Patterson, David A.;
Computer organization and design. ISBN: 978-0-12-374493-7
Métodos de ensino e atividades de aprendizagem
A unidade curricular tem uma componente teórica baseada em aulas de exposição dos diversos temas que serão acompanhados, sempre que considerado oportuno, da apresentação de exemplos e respectiva discussão. As aulas teórico-práticas incluem a apresentação, análise e resolução de um conjunto de questões e de casos de estudo, bem como a realização de curtos questionários.
Palavras Chave
Ciências Tecnológicas > Engenharia > Engenharia de computadores
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 |
68,00 |
|
|
Teste de avaliação nº 1 |
Exame |
18,00 |
|
|
Teste de avaliação nº 2 |
Exame |
18,00 |
|
|
|
Total: |
- |
0,00 |
|
Componentes de Ocupação
Descrição |
Tipo |
Tempo (Horas) |
Data Conclusão |
Estudo |
Estudo autónomo |
58 |
|
|
Total: |
58,00 |
|
Obtenção de frequência
A nota de frequência é baseada nos resultados de quatro questionários a serem realizados nas aulas teórico-práticas. Cada questionário tem a duração de 15 minutos e é realizado individualmente, sem consulta de apontamentos.
A nota de frequência (NFreq) é igual à média aritmética dos três melhores questionários (todos os questionários têm o mesmo peso).
Para obtenção de frequência, é necessário que NFreq >= 7,5.
As provas de avaliação não realizadas contam zero para as médias.
Fórmula de cálculo da classificação final
Para os alunos com frequência, a classificação final é determinada pela nota de frequência e pelas classificações obtidas em dois testes a efectuar durante o semestre.
Cada teste (sem consulta) tem a duração de 60 minutos. Ambos os testes têm o mesmo peso. As provas de avaliação não realizadas contam zero para as médias.
A classificação final (NFinal) é dada por: NFinal = 0, 7 x T + 0,3 x NFreq
Para obter aprovação à disciplina, NFinal deve ser superior ou igual a 10 valores, e a média aritmética dos testes (T) deve ser igual ou superior a 7,5 valores.
O teste nº 1 terá lugar no dia 20/Novembro/2009.
O teste nº 2 terá lugar no dia 02/Fevereiro/2010.
Provas e trabalhos especiais
Faltas justificadas a componentes de avaliação: alunos que tenham atempadamente apresentado justificação para eventuais faltas a alguma das componentes de avaliação, e desde que essas faltas sejam consideradas justificadas pela Direcção de curso, poderão submeter-se a provas de avaliação de substituição em datas a estabelecer pelos docentes da disciplina.
Avaliação especial (TE, DA, ...)
Alunos dispensados da presença nas aulas teórico-práticas deverão obrigatoriamente realizar os testes.
Neste caso, a nota final é dada pela média aritmética das classificações dos testes: NFinal = T.
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 frequência da disciplina no ano lectivo seguinte.