Organização e Arquitetura de Computadores - CI212 (2010-2)

pipeline Arquitetura de Computadores é a ciência (há quem diga "arte") de selecionar e interconectar componentes de hardware para produzir computadores que atendam a requisitos funcionais, de desempenho e de custo. Nesta disciplina estudaremos a estrutura de um computador programável moderno, investigando as leis básicas da avaliação de desempenho, usando como exemplo o projeto dos circuitos de dados e de controle de um processador similar ao MIPS, com execução paralela de instruções por segmentação e super-escalaridade, bem como o projeto de sistemas eficientes de memória e de armazenamento. O conteúdo desta disciplina pressupõe familiaridade com: (i) análise e projeto de circuitos digitais (ci210); (ii) programação em linguagem de máquina (ci064); e (iii) programação em C e estruturas de dados (ci056).

Ementa: Componentes do fluxo de dados e sua organização. Unidade lógica e aritmética. Unidade de controle. Memória. Vias de acesso. Elementos de um conjunto de instruções. Arquitetura Von Newman. Arquitetura de entrada e saída. Otimização de arquitetura.

Objetivo: Fornecer ao aluno conhecimentos básicos sobre a organização, a arquitetura e microarquitetura (técnicas básicas de projeto). Capacitá-lo a avaliar e comparar diferentes arquiteturas. Capacitá-lo a apontar e diagnosticar problemas relacionados ao desempenho de sistemas ou sub-sistemas, bem como a prescrever soluções para optimizar o uso e desempenho de sistemas computacionais.

Pré-requisito: CI210

Importante: Esta disciplina têm uma das maiores taxas de reprovação do Bacharelado em Ciência da Computação.
        É imprescindível que o livro texto seja lido e compreendido. As transparências não substituem o livro!

Avaliação: duas provas
nota = P1*0,5 + P2*0,5
Não há segunda chamada, exceto nos casos previstos na Resolução 37-97.

Programa: aulas nas 3as e 5as as 13:30, na sala PD-11

data  livro     assunto  (rev 1.5-10nov)
---------------------------------------------------------------------------.
10ago 1.1-8,2   apresentação, revisão do conjunto de instruções do MIPS
12    2.1-10    conj de instr do MIPS: acesso a dados, funções
17    2.1-10    conj de instr do MIPS: funções
19    3.1-5     aritmética em ponto fixo
24    3.6       aritmética em ponto flutuante
26    5.1-4     circuito de dados, implementação ciclo longo
31    5.1-4     circuito de dados, implementação ciclo longo
02set 5.5-12    circuito de dados, implementação multiciclos
14    5.5-12    implementação multiciclos, controle
16    4.1-6     multiciclos exceções, avaliação de desempenho
21    6.1-4     segmentação do circuito de dados, riscos
23    6.1-6     segmentação do circuito de dados, bloqueios, adiantamento
28    1-6.4     segmentação, exercícios
30    ---       primeira prova
05out 6.9-10    resolução da prova; dependências de controle, exceções
07    6.9-10    processadores superescalares
14    7.2-3     cálculo de endereços, memória cache
19    7.2-3     cache: organização e projeto
21    7.2-3     cache: organização e projeto
26    7.6-10    desempenho da memória cache
28    7.5-10    memória virtual 
04nov 7.5-10    memória virtual, TLB
09    7.5-10    memória virtual, hierarquias de memória
16    8.1-5     dispositivos, barramentos, vazão e latência
18    8.5-11    interfaces com CPU+SO, desempenho
23    7.1-3     (4a.Ed) multiprocessadores com memória compartilhada
25    7.4-6,8   (4a.Ed) outros modelos, redes
30    6-71-4+   revisão e exercícios
02dez 1-8       segunda prova
14dez 1-8       final
---------------------------------------------------------------------------

Listas de Exercícios: ponto flutuante, assembly e aritmética, CPUs, segmentação, caches, mem virtual, TLB e TP, E/S.
Provas de períodos anteriores: 10-2, 08-2, 07-2, 07-1, 06-2, 06-1, 05-2, 02-2, 02-1, 01-2, 01-1, 00-2, 00-1

Bibliografia:

Material auxiliar e documentação:


Última revisão: 17nov10
volta para: encargos |página