Logotipo e link para a Universidade do Minho

Arquitectura de Computadores
Lic. Matemática & Ciências da Computação, 2º ano
2004/2005
Docente responsável: A.J.Proença

Vista da Rua do Souto no Séc. XVI

 

Direitos de Autor & Copyright
Avisos
| Equipa docente | Objectivos  | Resultados da aprendizagem | Programa | Planificação | Bibliografia | Notas de apoio | FAQ | Sumários | Avaliação | Autoavaliação | Reflexão

(2003/2004)

Ultima Modificação: 24 Jan 2006

 

 departamento de informática

Equipa docente

Alberto José Proença
email: aproenca@di.uminho.pt
Horário de atendimento:  Terça 15:00 - 18:00 ; Quinta 09:00 - 11:00

Alexandra Silva
email: xana@correio.ci.uminho.pt
Horário de atendimento:  Quarta 14:00 - 16:00 na sala DI 0.02 ; outros períodos a acordar pontualmente

 

Topo...


Objectivos

Gerais

A Arquitectura de Computadores, enquanto integrada na área científica de Engenharia de Computadores (e da Computação), pode ser vista sob a perspectiva de um engenheiro - como funciona e como se constrói um computador - ou sob a perspectiva de um cientista - como funciona e como tirar partido de um computador.
Sendo esta disciplina leccionada a uma licenciatura em Ciências, a ênfase será colocada nos aspectos de compreensão da sua funcionalidade, na análise das suas limitações e no aproveitamento das suas potencialidades.

De formação

Os objectivos de formação definem, sob o ponto de vista da equipa docente, as expectativas desta, face ao funcionamento e resultados da disciplina.
Nesta perspectiva, a equipa pretende com esta disciplina que os alunos adquiram os conceitos fundamentais relativos ao funcionamento dum computador, capacidades de utilização consciente e eficiente das suas funcionalidades, e competências técnicas na utilização de instrumentos/ferramentas de análise, correcção e/ou melhoria de desempenho na execução de programas.
Nomeadamente, os objectivo de formação são:

 

Topo...


Resultados da aprendizagem

Gerais

Ao completar com sucesso a unidade curricular Arquitectura de Computadores, da Lic. Mat. e Ciências de Computação, cada estudante deverá demonstrar que adquiriu um conjunto de conhecimentos e capacidades que compreendem:

O grau de compreensão e de profundidade dos conhecimentos e competências adquiridas poderá variar de estudante para estudante, havendo necessidade de detalhar os níveis de exigência requeridos para a obtenção de classificações distintas entre os estudantes aprovados, numa escala de 10 a 20.

Resultados esperados do processo de aprendizagem: detalhe

A lista detalhada dos resultados esperados do processo de aprendizagem da unidade curricular Arquitectura de Computadores é apresentada numa tabela, a qual estrutura o conjunto de conhecimentos e competências - que cada estudante deverá demonstrar ter conseguido alcançar - pelos principais temas/tópicos abordados na disciplina.
Essa tabela identifica os elementos (dessa lista detalhada dos resultados) que deverão ser obrigatoriamente cumpridos para cada um dos vários graus de exigência/qualidade.

Assim, ao completar com sucesso a unidade curricular Arquitectura de Computadores, da Lic. Mat. e Ciências de Computação, cada estudante deverá demonstrar que adquiriu, de acordo com a tabela seguinte:
 - um conjunto mínimo de conhecimentos e capacidades (especificados na coluna A e resultando numa classificação final de 10); ou
 - conhecimentos e capacidades complementares que correspondem a uma classificação final razoável (na coluna R, entre 11 e 14); ou
 - conhecimentos e capacidades complementares que correspondem a uma boa classificação final (na coluna B, entre 15 e 18); ou
 - conhecimentos e capacidades complementares que correspondem a uma classificação final excelente (na coluna E, 19 ou 20).
 


Resultados esperados em MCC/AC (2004/05, 1º sem): demonstrar que consegue:
 


A

R

B

E

Conhecimentos e competências específicas de Arquitectura de Computadores

       

- Identificar formas de representação binária de informação num computador (textual, numérica, audio-visual ou de comandos de um processador), e
- descrever como essa informação é efectivamente representada num computador

Ö
-
Ö
Ö
Ö
Ö
Ö
Ö

- Analisar ficheiros de documentos (c/ texto) e distinguir entre formatos proprietários de formatos baseados em texto anotado

- Ö Ö Ö

- Reconhecer os sistemas de numeração binário e hexadecimal e aplicar técnicas de conversão entre sistemas

Ö Ö Ö Ö

- Explicar a representação de números inteiros e reais (norma IEEE 754), visualizar a sua representação em binário, em ambiente laboratorial Linux/IA-32,
- ilustrar a representação de casos concretos através da resolução de problemas, e
- analisar as limitações de um sistema finito na representação de informação numérica

Ö
-
-
Ö
Ö
-
Ö
Ö
Ö
Ö
Ö
Ö

- Descrever a estrutura interna de um computador tipo e caracterizar funcionalmente cada um dos seus principais módulos constituintes (CPU, memória, I/O e barramentos),
- caracterizar a melhoria de desempenho através da introdução de formas de paralelismo no hardware do CPU (SIMD, pipeline, superescalaridade) e da hierarquia de memória (níveis de cache e memória virtual)

Ö
-
Ö
-
Ö
Ö
Ö
Ö

- Identificar e caracterizar os principais níveis de abstracção presentes num computador (HLL, assembly, e linguagem máquina), ilustrar os mecanismos de conversão e análise entre níveis na sua utilização em laboratório (gcc, gdb, ...), ilustrar a execução, passo a passo, de uma instrução elementar em linguagem máquina, e
- explicar conceptualmente os mecanismos de conversão entre níveis

Ö

-
Ö

Ö
Ö

Ö
Ö

Ö

- Reconhecer as principais características de um instruction set (nomeadamente, analisar e avaliar as técnicas de especificação de operandos, caracterizar os registos necessários num CPU, identificar e relacionar formatos de instruções e identificar e caracterizar tipos de instruções),
- ilustrar a aplicação dessas características a CPU's diferenciados (CISC ou RISC)

Ö

-
Ö

-
Ö

Ö
Ö

Ö

- Identificar e caracterizar a operação das instruções mais comuns no IA-32 ( transferência de informação, operações aritméticas/lógicas, controlo do fluxo de execução), aplicar técnicas de codificação (de dados escalares e de estruturas de controlo) de uma HLL imperativa e analisar e interpretar código em assembly (no papel e no laboratório),
- compreender a estrutura do código e dos contextos gerados por um compilador para suporte à invocação de procedimentos e funções (em HLL) e analisá-la no laboratório,
- entender e aplicar técnicas de engenharia inversa a código binário (no papel e no laboratório),
- compreender a organização em memória e métodos de acesso e manipulação de dados estruturados em C, e respectiva análise da codificação para assembly, e
- analisar comparativamente a implementação de funções em modelos de arquitectura distintos (RISC versus IA-32)


Ö



-

-
-

-

Ö



Ö

-
-

-

Ö


Ö

Ö
Ö

-

Ö


Ö

Ö
Ö

Ö

- Identificar e descrever as métricas que caracterizam o desempenho da execução de programas, distinguir técnicas de optimização de desempenho dependentes e independentes da máquina, descrever, aplicar e avaliar as técnicas de desempenho independentes da máquina (as mais comuns),
- descrever, aplicar e avaliar técnicas de desempenho dependentes da máquina (processador e memória), aplicar técnicas de análise de desempenho baseadas no profiling de aplicações, e
- explicar as limitações na aplicação automática de técnicas de optimização pelos compiladores


-


-

-

Ö


-

-

Ö

Ö

-

Ö

Ö

Ö

- Distinguir escalas de tempo nos sistemas e técnicas de medição de desempenho,
- identificar e caracterizar técnicas de medição de tempos de execução de programas, e ilustrar a aplicação de contadores intervalares e de contadores de ciclos de clock

-
-
Ö
-
Ö
Ö
Ö
Ö

Competências genéricas

       

- Capacidade de utilizar adequada e correctamente os recursos electrónicos disponibilizados (Web, email), de aceder a toda a informação disponibilizada,
- de autonomamente aceder a fontes complementares de informação, e
- de selectivamente pesquisar, processar e arquivar informação complementar à disciplina

Ö
-
-
Ö
-
-
Ö
Ö
-
Ö
Ö
Ö

- Capacidade de interpretar correctamente os guiões e listas de problemas disponibilizados,
- de interpretar os manuais e interactuar eficientemente com as ferramentas informáticas de análise e debugging, e
- de criativamente resolver os problemas mais complexos com base na informação disponibilizada

Ö
-
-
Ö
Ö
-
Ö
Ö
Ö
Ö
Ö
Ö

- Capacidade de comunicação escrita (em Português) na resolução de problemas e nas provas escritas,
- de comunicação escrita na elaboração de textos sucintos (relatórios, questões de desenvolvimento, caderno da disciplina, ...), e
- de comunicação escrita (noutra língua) e/ou oral em exposições de temas/tópicos

Ö
-
-
Ö
-
-
Ö
Ö
-
Ö
Ö
Ö
         

 

Topo...


Programa (proposto no início do ano)

Organização e estrutura de um computador

Conceito de computador.
Representação da informação no computador: texto, números, informação multimédia e comandos codificados para o processador.
Sistemas de numeração e conversão de bases; representação binária de valores positivos e negativos.
Representação binária de valores reais em vírgula flutuante; a norma IEEE 754.

Análise da estrutura interna dum computador, com destaque para o processador e para a organização da memória.
Análise da execução de instruções num computador.
Níveis de abstracção num computador.
Mecanismos para execução de programas; introdução a um ambiente laboratorial (Intel IA-32 em Linux).

Análise da arquitectura do instruction set

Análise do funcionamento dum processador e respectivo instruction set: operações/operandos, acesso a dados, tipos e formatos de instruções, modelo de programação dum processador.

Análise do nível ISA do Intel IA-32 em Linux: operações aritméticas/lógicas e acesso a operandos, estruturas de controlo presentes em C, funcionamento das funções/procedimentos.

Análise comparativa do modelo de implementação numa arquitectura RISC versus IA-32.

Avaliação do desempenho de computadores

Metodologia de avaliação de desempenho de computadores.
Medição de tempos de execução de programas e respectiva análise prática e crítica.

Factores da arquitectura dum computador que influenciam o seu desempenho.
Breve introdução ao funcionamento dum processador em pipeline e respectivas limitações. 
Organização hierárquica da memória; noção e caracterização da cache.

 

Topo...


Bibliografia

Computer Organization and Architecture - Designing for PerformanceWilliam Stallings, Prentice Hall, 6th Ed., 2002

Computer Systems: A Programmer's Perspective (CS:APP), Randal Bryant and David O'Hallaron,  Prentice Hall, 2002

How Computers Work, Ron White, 7th Ed., QUE Corporation, October 2003

Structured Computer Organization, Andrew S. Tanenbaum, 4th Ed., Prentice Hall, 1999

Computer Organization and Design: the hardware/software interface, D.Patterson, J.Henessy, Morgan Kaufmann Publishers, 3rd Ed., 2004; estando a 2ª edição traduzida em 
Organização e Projeto de Computadores: a interface hardware/software,  Livros Técnicos e Científicos Ed. S.A., 2ª ed.,1999
 

Informação diversa para apoio ao estudo desta disciplina será disponibilizada electronicamente, e devidamente referenciada nos sumários.

 

Topo...

 


Avaliação  

Versão longa | Versão resumida

 

Versão Longa


O funcionamento da disciplina de Arquitectura de Computadores está organizado em:

A avaliação nesta disciplina tem 2 objectivos principais:

No 1º semestre de 2004/05, a avaliação desta disciplina do 2º ano pode ser efectuada de uma de 2 maneiras distintas:
 

Avaliação A

A Avaliação A destina-se essencialmente aos estudantes repetentes, seguindo um modelo com características idênticas aos de anos anteriores, com as seguintes partes:

O que varia neste ano de 2004/05 é a existência das 2 componentes acima referidas - uma de satisfação de mínimos, outra classificativa - que estará presente em cada uma destas partes da avaliação, quer no exame final, quer nas fichas de avaliação prática.

Em conclusão: a Avaliação A consiste em 2 partes:

  1. Exame escrito (2/3 do peso total), a realizar nas épocas calendarizadas e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 18); as classificações superiores a 18 deverão ser defendidas numa prova complementar contendo uma intervenção oral.
  2. Exame prático (1/3 do peso total), a realizar no início da semana que antecede a época normal de exames e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 20); a não satisfação de mínimos nesta prova conduz à classificação final na pauta de exames de "Não admitido".

Nota: A aprovação na disciplina exige a satisfação de mínimos em cada uma das provas que contêm essa exigência.
 

Avaliação B

Este tipo de avaliação destina-se essencialmente aos estudantes inscritos pela 1ª vez e que façam um contrato de ensino-aprendizagem com o docente responsável da disciplina (ver adiante o texto tipo), com as seguintes partes:

Em conclusão: a Avaliação B consiste em 3 partes:

  1. Avaliação do cumprimento do contrato de ensino-aprendizagem (15% do peso total)
  2. Testes escritos (60% do peso total), a realizar ao longo do semestre e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 18); as classificações superiores a 18 deverão ser defendidas numa prova complementar contendo uma intervenção oral.
  3. Fichas de avaliação prática (2 fichas, com 25% do peso total), a realizar durante o semestre e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 20).

Nota: A aprovação na disciplina exige a satisfação de mínimos em cada uma das provas que contêm essa exigência.
 

Texto tipo do contrato de ensino-aprendizagem

"1. Eu, xxxxx, estudante nº zzzz da UM inscrito na disciplina de Arquitectura de Computadores da Lic. MCC, aceito e concordo com os compromissos publicamente assumidos pelo docente responsável da disciplina, e em contrapartida comprometo-me a:
 (i)
participar nas sessões teóricas, tutoriais ou laboratoriais, quer de modo individual, quer integrada/o num grupo;
 (ii)
ler e apreender o conteúdo da documentação divulgada em cada semana, antes das sessões da semana seguinte;
 (iii) resolver individualmente ou em grupo os exercícios/problemas que forem semanalmente propostos, entregando apenas aqueles cuja resolução tenha compreendido;

 (iv)
manter um caderno da disciplina onde sejam anotadas todos as actividades de aprendizagem no âmbito da disciplina;
 (v) efectuar as provas de avaliação que forem calendarizadas durante o semestre.

2. Eu, Alberto José Proença, responsável pelas actividades de ensino e de avaliação da disciplina de Arquitectura de Computadores da Lic. MCC, comprometo-me perante as/os estudantes que expressamente aceitarem este contrato de ensino-aprendizagem,a:
 (i) preparar e leccionar as aulas de exposição teórica,dando o meu melhor;
 (ii) divulgar na Web os sumários e respectivo material de estudo necessário a cada sessão teórica, teórico-prática ou laboratorial;
 (iii) receber esses estudantes para esclarecimentos de dúvidas no horário de atendimento ou noutro acordado, ou disponibilizar idêntico atendimento de um aluno monitor;

 (iv)
avaliar com justeza as actividades que esses estudantes efectuarem ao longo do semestre, bem como as provas que realizarem, e segundo o modelo de Avaliação B;
 (v) disponibilizar-me para acompanhar o percurso de aprendizagem de cada estudante, e ainda a debater questões relacionadas com o modelo pedagógico e de avaliação da disciplina, com vista a melhorar a qualidade e o funcionamento da mesma.

3. O contrato será automaticamento rescindido se:
 (i) houver incumprimento inju
stificado dos termos deste contrato; ou
 (ii) ocorrer uma fraude; ou
 (iii) a/o estudante que não conseguir demonstrar a satisfação de mínimos.

4. No caso de rescisão do contrato, passará a vigorar o modelo de Avaliação A."

 

Versão Resumida

Avaliação A (apenas com avaliação após o período lectivo)

  1. Exame escrito (2/3 do peso total), a realizar nas épocas calendarizadas e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 18); as classificações superiores a 18 deverão ser defendidas numa prova complementar contendo uma intervenção oral.
  2. Exame prático (1/3 do peso total), a realizar no início da semana que antecede a época normal de exames e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 20); a não satisfação de mínimos nesta prova conduz à classificação final na pauta de exames de "Não admitido".

Nota: A aprovação na disciplina exige a satisfação de mínimos em cada uma das provas que contêm essa exigência.
 

Avaliação B (apenas durante o período lectivo, e exigindo a satisfação de um contrato de ensino-aprendizagem)

  1. Avaliação do cumprimento do contrato de ensino-aprendizagem (15% do peso total)
  2. Testes escritos (60% do peso total), a realizar ao longo do semestre e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 18); as classificações superiores a 18 deverão ser defendidas numa prova complementar contendo uma intervenção oral.
  3. Fichas de avaliação prática (2 fichas, com 25% do peso total), a realizar durante o semestre e contendo 2 componentes: uma de satisfação de mínimos ("Aprovado" ou "Reprovado") e outra classificativa (para atribuição, aos aprovados, de um valor numérico entre 10 e 20).

Nota: A aprovação na disciplina exige a satisfação de mínimos em cada uma das provas que contêm essa exigência.
 

 

Topo...


Direitos de Autor & Copyright

Esta publicação - incluindo a sua faculdade de impressão - e respectivos conteúdos - que poderão incluir reproduções parciais de obra(s) alheia(s) devidamente citadas, com a indicação do autor, título da obra, editor ou outra fonte - destinam-se exclusivamente aos alunos da disciplina de Arquitectura de Computadores, da Lic. Matemática e Ciências da Computação, da Universidade do Minho, para uso pessoal e fins de aprendizagem electrónica (e-learning) e não revestem qualquer finalidade lucrativa ou comercial.
Qualquer outra reprodução, total ou parcial, desta obra, por qualquer suporte, modo ou processo, nomeadamente processo electrónico, mecânico ou fotográfico, incluindo fotocópia, a modificação da obra, a sua comunicação pública, a sua distribuição através de aluguer ou comodato, sem qualquer autorização escrita do autor, é ilícita e passível de procedimento judicial contra o infractor.

Topo...

 


Página mantida por aproenca@di.uminho.pt
Ultima Modificação: 24 Jan 2006