Logotipo e link para a Universidade do Minho

Arquitectura de Computadores
Lic. Matemática & Ciências da Computação, 1º ano
2005/2006
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

(2004/2005)

Ultima Modificação: 20 Fev 2006

 

 departamento de informática

Equipa docente

Alberto José Proença
email: aproenca@di.uminho.pt
Horário de atendimento:  Quarta 14:00 - 18:00

 

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 (i) os conhecimentos de base relativos ao funcionamento dum computador, (ii) capacidades de utilização consciente e eficiente das suas funcionalidades, (iii) aptidões técnicas na utilização de instrumentos/ferramentas de análise, correcção e/ou melhoria de desempenho na execução de programas, e (iv) aptidões transversais no raciocínio crítico e criativo, no trabalho de grupo e na comunicação escrita e oral.
Mais concretamente, no caso das competências específicas, 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, capacidades e aptidões que compreendem:

O grau de compreensão e de profundidade dos conhecimentos, capacidades e aptidões 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 (2005/06): 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 (em especial o binário e o 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 - a variáveis escalares, arrays, estruturas de controlo e funções - 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 eventual defesa oral, e
- de comunicação escrita (noutra língua) e/ou oral em exposições de temas/tópicos

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

 

Topo...


Programa

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  


Introdução

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

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

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

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

Modelos de avaliação

Avaliação durante o semestre

  1. Avaliação da participação no processo de ensino-aprendizagem (10% do peso total), contemplando a frequência às aulas e sessões TP e  a realização dos TPC's
  2. Testes escritos (5, de 1/2h cada, com 60% do peso total), a realizar ao longo do semestre (em substituição do exame da época normal) e contendo 2 partes: 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. Trabalho prático (também designado por Projecto, com 30% do peso total), a realizar durante o semestre (conjunto integrado de tarefas), a ser avaliado em 3 datas pré-definidas (indicadas no calendário) e contendo 2 partes: 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).

Avaliação mista

  1. Exame escrito (2/3 do peso total), a realizar nas épocas calendarizadas e contendo 2 partes: 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. Trabalho prático (também designado por Projecto, com 1/3 do peso total), a realizar durante o semestre (conjunto integrado de tarefas), a ser avaliado em 3 datas pré-definidas (indicadas no calendário) e contendo 2 partes: 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".

 

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: 20 Fev 2006