Programa - Avaliação - Bibliografia - Informações - Exercícios - Materiais
Conteúdos Teóricos:
1. Memória interna
1.1. Introdução
1.1.1. Características dos sistemas de memória
1.1.2. Hierarquia
1.2. Memória de semicondutores
1.2.1. Tipos de memória
1.2.2. Organização
1.2.3. Correcção de erros
1.3. Memória oculta
1.3.1. Princípios
1.3.2. Elementos para desenho de memória oculta
2. Jogos de instruções: características e funções
2.1. Características das instruções máquina
2.1.1. Elementos de uma instrução máquina
2.1.2. Representação de instruções
2.1.3. Tipos de instruções
2.1.4. Número de endereços
2.1.5. Desenho de jogos de instruções
2.2. Tipos de operandos
2.2.1. Números
2.2.2. Caracteres
2.2.3. Dados lógicos
2.3. Tipos de operações
2.3.1. Transferência de dados
2.3.2. Aritméticas
2.3.3. Lógicas
2.3.4. Conversão
2.3.5. Entrada/Saída
2.3.6. Controlo de sistema
2.3.7. Transferência de controlo
2.4. Linguagem de montagem
3. Jogos de instruções: modos e formatos de endereçamento
3.1. Endereçamento
3.1.1. Endereçamento imediato
3.1.2. Endereçamento directo
3.1.3. Endereçamento indirecto
3.1.4. Endereçamento por registo
3.1.5. Endereçamento indirecto por registo
3.1.6. Endereçamento por deslocamento
3.1.7. Pilha
3.2. Formatos de instruções
3.2.1. Tamanho de instrução
3.2.2. Alocação de bits
3.2.3. Instrução de tamanho variável
4. Estrutura e funcionamento da UCP
4.1. Organização do processador
4.2. Organização dos registos
4.2.1. Registos visíveis ao utilizador
4.2.2. Registos de controlo e de estado
4.2.3. Exemplos de organização dos registos em microprocessadores
4.3. Ciclo de instrução
4.3.1. Ciclo indirecto
4.3.2. Fluxo de dados
4.4. Linha de encadeamento de instruções
4.4.1. Estratégia de encadeamento
4.4.2. Tratamento de derivações
5. Computadores com um reduzido jogo de instruções
5.1. Características da execução de instruções
5.1.1. Operações
5.1.2. Operandos
5.1.3. Invocação de procedimentos
5.1.4. Implicações
5.2. Utilização de múltiplos registos
5.2.1. Janelas de registos
5.2.2. Variáveis globais
5.2.3. Múltiplos registos versus memória ocuta
5.3. Optimização da utilização de registos, por parte do compilador
5.4. Arquitecturas RISC
5.4.1. Justificação das arquitecturas CISC
5.4.2. Características das arquitecturas RISC
5.4.3. Características CISC versus RISC
5.5. Linha de encadeamento RISC
5.5.1. Encadeamento de instruções regulares
5.5.2. Optimização
5.6. Controvérsia RISC versus CISC
Conteúdos Práticos:
· As notações Big-Endian e Little-Endian
· Representação de valores em vírgula flutuante
o A norma IEEE 754
· Assembly, segundo a arquitectura IA32, em ambiente Linux
o Caracterização da sintaxe do assembly IA32
o As instruções do assembly IA32
o Codificação de estruturas condicionais, em analogia com a linguagem C
o Codificação de estruturas de repetição, em analogia com a linguagem C
o Codificação de procedimentos
§ O stack frame
o Optimizações produzidas pelo compilador GCC
o A conjuntura dos problemas da referência a posições de memória fora dos limites válidos
Elemento de Avaliação | Valores |
Trabalhos Práticos ao longo do semestre |
4 |
Prova Escrita (parte teórica + parte prática) | 10 + 6 |
Computer Organization and Architecture - Designing for Performance,
William Stallings, 5th Ed., Prentice Hall, 2000
Página Web em http://www.prenhall.com/books/esm_0130812943.html
e em http://vig.prenhall.com/catalog/academic/product/1,4096,0130351199,00.html
Informação complementar em http://cwx.prenhall.com/bookbind/pubbooks/stallings9/chapter0/deluxe.html
Computer Systems: A Programmer's Perspective,
Randal Bryant and David O'Hallaron, Prentice Hall, 2002
O funcionamento de um sistema de computação sob a perspectiva de um programador, tomando como referência um sistema baseado num processador de 32 bits da Intel (designado por IA-32) e em ambiente Linux.
O capítulo 9, Measuring Program Execution Time, relaciona-se com a matéria sobre avaliação e medição de desempenho, leccionada nas aulas práticas.
Página Web em http://vig.prenhall.com/catalog/academic/product/1,4096,013034074X,00.html
Computer Organization and Design: the hardware/software interface,
D.Patterson, J.Henessy, Morgan Kaufmann Publishers, 2nd Ed., 1997
Página Web em http://www.mkp.com/books_catalog/catalog.asp?ISBN=1-55860-428-6
Textos de apoio às aulas teóricas,
2002-2003
Página Web em http://www.di.uminho.pt/~pina/textos/coa.html
Pauta do Exame de Recurso, de 23/07/2003: *.pdf
Alguns links interessantes sobre:
- Processadores e chipsets: Ars Technica
- Processador AMD Opteron (também já com tecnologia 64 bits): Tom's Hardware Guide
- Arquitectura Intel 64 bits (IA-64): Ars Technica
-
- Ficha de trabalho nº1: *.doc
- Ficha de trabalho nº2: *.doc
- Ficha de trabalho nº3 (a página 5 foi substituída a 09/09/03, à tarde): *.doc
Aulas Práticas:
- Livro da bibliografia: Computer Systems: A Programmer's Perspective,
Randal Bryant and David O'Hallaron, Prentice Hall, 2002 - *.pdf
- Acetatos das aulas (até à aula 9): *pdf
- Acetatos das aulas (a partir da aula 10): *doc
- Acetatos das aulas (completo): *doc
- Procedimentos em Assembly IA32: *pdf
- Introdução ao GNU Debugger: *.doc
- Exames AII 2001/2002: *.zip
Aulas Teóricas:
- Versão Provisória dos Capítulos 4 e 11: *.zip