Disciplina: Arquitetura de Computadores

Área Científica:

Informática

HORAS CONTACTO:

80 Horas

NÚMERO DE ECTS:

7,5 ECTS

IDIOMA:

Português

Objetivos Gerais:

1 - Identificar os componentes fundamentais de um computador.
2 - Rever o principio de funcionamento dos circuitos digitais básicos e estudar os circuitos digitais mais utilizados num computador.
3 - Desenhar uma arquitectura simplificada de um computador elementar a partir de circuitos digitais com um conjunto mínimo de instruções em linguagens de descrição de hardware.
4 - Estudar o conjunto de instruções de um processador.
5 - Programar processadores em linguagem assembly e estudar o mapeamento entre as linguagens de alto nível e a linguagem assembly.
6 - Descrever e explicar em detalhe o funcionamento de um computador.
7 - Estudar aprofundadamente o funcionamento do núcleo de um processador e conceber e implementar a camada de suporte de um computador a um sistema operativo.

Conteúdos / Programa:

1 - Introdução aos computadores: ciclo de desenvolvimento dos computadores; paralelismo entre o homem e o computador; características de um computador; estrutura básica de um computador; funcionamento em ciclo; arquitectura simplificada de um computador; perspectiva histórica dos computadores.
2 - Revisão dos circuitos digitais: circuitos electrónicos analógicos; circuitos digitais; funções lógicas, circuitos combinatórios; multiplexers; ALU, descodificadores, ROMs, circuitos sequências; registos; banco de registos; portas lógicas de 3 estados; contadores; registos de deslocamento; elementos de memória; SRAMs; DRAMs; máquinas de estados; diagramas de estados; representação de números inteiros; computação em vírgula flutuante; circuitos digitais para realizar operações aritméticas.
3 - Projecto de um computador elementar: componentes de um computador; unidade de dados; unidade de controlo; memórias; periféricos; interligação dos componentes; sinais de controlo; instruções; programação em código máquina; linguagem assembly; sintetização de um computador elementar.
4 - Conjunto de instruções assembly de um processador: banco de registos; memória(s); codificação das instruções; registos especiais; bits de estados; modos de endereçamento; instruções de transferência de dados; instruções de salto; instruções aritméticas; instruções lógicas; instruções de deslocamento, outras instruções.
5 - Programação de um computador: modelação de problemas com fluxogramas: programação em alto nível; mapeamento da programação de alto nível em linguagem assembly; apontadores; instruções de atribuição; expressões lógicas; instruções de decisão; instruções de interacção; pilha; funções em linguagens de alto nível; variáveis locais; passagem de parâmetros; rotinas em linguagem assembly; recursividade; estrutura de dados; desenvolvimento de programas; sistemas embebidos.
6 - Estrutura de um computador: interligação dos componentes de um computador; barramento de dados; barramento de endereços; barramento de controlo; descodificação de endereços; organização da memória; ciclos de acesso à memória; excepções; periféricos; evolução dos computadores; avaliação de desempenho dos computadores.
7 - Arquitectura de um processador: núcleo do processador; caminho de dados; banco de registos; gerador de constantes; unidade aritmética e lógica; unidade de excepções; processamento em estágios; interface de memória; organização das caches; políticas de substituição de blocos; políticas de escrita nas caches; memória virtual; suporte para processos; multiprocessadores.

Bibliografia / Fontes de Informação:

J. D. Barros , 2009 , Apontamentos de Arquitectura de Computadores ,
J. D. Barros , 2009 , Folhas de exercícios e projectos de Arquitectura de Computadores ,
J. Delgado e C. Ribeiro , 2007 , Arquitectura de Computadores , FCA
D. A. Patterson and J. L. Hennessy , 2005 , Computer Organization and Design, The hardware/software interface , Elsevier
W. Stallings , 2006 , Computer Organization and Architecture, Designing for Performance , Prentice Hall
M. M. Mano and C. R. Kime , 2008 , Logic and Computer Design Fundamentals , Prentice Hall
D. M. Harris and S. L. Harris , 2007 , Digital Design and Computer Architecture , Elsevier MK
B. B. Brey , 2009 , Intel Microprocessors, Architecture, Programming, and Interfacing , Prentice Hall
G. Arroz, J. Monteiro e A. Oliveira , 2007 , Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores , IST Press

Métodos e Critérios de Avaliação:

Tipo de Classificação: Quantitativa (0-20)

Metodologia de Avaliação:
Frequências (50%): as frequências têm por objectivo avaliar os conhecimentos teóricos e teórico-práticos dos alunos sobre as matérias leccionadas. Trabalhos práticos (50%): os trabalhos práticos de avaliação têm por objectivo avaliar a capacidade de aplicação dos conhecimentos das matérias leccionadas. Provas orais: nas provas orais os alunos fazem uma apresentação dos trabalhos práticos e respondem a um conjunto de perguntas, essencialmente técnicas, para avaliar o grau de conhecimento.