MAC 344 - Arquitetura de Computadores 2017 |
Avisos:
Importante: informações sobre Monografia.
Monografia: Lista das equipes de temas escolhidos.
Para saber sobre os assuntos tratados na última aula, clique aqui.
Em cada aula será passada lista de presença.
Disciplina oferecida pela Unidade: Instituto de Matemática e Estatística
Departamento: Departamento de Ciência da Computação
Professor responsável: Siang Wun Song
Sala do Professor: Sala 10 (Térreo) - Bloco C do IME
Telefones: 3091-6141 (minha sala), 3091-6135 (secretária)
Monitor da disciplina: Não há.
Disciplina oferecida: ao Bacharelado de Ciência da Computação - IME
Local das aulas: Sala 143 - Bloco B - 1.o andar - IME
Horário das aulas: 2.a feira: 10:00 - 11:50 e 4.a feira: 8:00 - 9:50
Objetivos: Introduzir os conceitos de organização e arquitetura de computadores.
Ementa:
Conceitos básicos de arquitetura.
Histórico dos computadores e gerações.
Desempenho: pipeline, RISC, instruções superescalares, multicore.
Memória cache, tipos e implementações. Estrutura interna da memória:
DRAM, SDRAM, Flash, correções de erros. Memória externa: disco
magnéticos, estado sólido, discos óicos, RAID.
Paginação e segmentação, TLBs, memória virtual.
Instruções de máquina, RISC e CISC, execução fora de ordem, modos de
endereçamento, interrupçõs e proteção.
Critérios de avaliação: Provas, exercícios e/ou monografia e apresentação
Bibliografia:
Regime de oferecimento: Cada semestre (2.o semestre de cada ano)
Duração: do início de agosto ao início de dezembro
Carga horária semanal e número de créditos: 4 horas - 4 créditos
Datas das provas:
Prova regular: Dia 23 de outubro de 2017 - segunda feira (prova com consulta).
Prova substitutiva: Dia 11 de dezembro de 2017 - segunda feira (toda a matéria, prova com consulta).
Haverá uma prova substitutiva no final do semestre (com toda a matéria dada).
Pode fazer a prova substitutiva mesmo quem fez a prova regular:
vale a maior nota das duas provas feitas.
Nota de aproveitamento final A = 0.2 E + 0.4 P + 0.4 M
. Para informações sobre prazos de matrículas, trancamento, dias sem aula, etc.
veja o
Calendário da Graduação para 2017.
Monografia: Lista das equipes de temas escolhidos.
Programação das apresentações das monografias.
(A ser definida mais tarde.)
Os grupos selecionados para apresentação da monografia
devem enviar para mim o arquivo com os slides na véspera da sua
apresentação ou antes
Prazos:
Até dia 6 de novembro de 2017:
Até dia 15 de dezembro de 2017
As apresentações serão programadas em breve.
O grupo pode, caso queira, sugerir um tema diferente, com a concordância do professor.
Aula 1 (02/08/2017):
Breve descrição da disciplina:
ementa, bibliografia, material didático, cálculo
da média de aproveitamento, etc.
Breve descrição da disciplina, motivando sua importância.
Arquitetura e organização de computadores - uma visão geral
(.pdf 353 KBytes): arquitetura e organização, estrutura e função..
Aula 2 (07/08/2017):
Continuação da aula anterior, sobre uma visão geral: arquitetura
e organização, estrutura e função.
Histórico da evolução dos computadores (.pdf 7 Mbytes):
3 principais gerações: válvula, transistores e
circuitos integrados VLSI. Inclui e uma breve apresentação do sistema Sunway,
o computador mais veloz do mundo hoje.
Aula 3 (09/08/2017):
Continuação da aula anterior mostrando a evolução dos computadores.
Aula 4 (14/08/2017):
Os
slides sobre o estado de arte dos computadores mais
velozes do mundo segundo a lista TOP 500 (.pdf 3.882 Mbytes).
A
última lista completa TOP500 de junho/2017 (.html) está disponível.
Passar a lista de exercício número 1.
Aula 5 (16/08/2017):
Motivação da importância da tecnologia de microeletrônica ou VLSI: o transistor
MOS é a base para construir portas lógicas minúsculas, que são as
unidades básicas (tijolos) para construir ciruitos lógicos digitais.
Introdução a tecnologia MOS (circuitos integrados) (.pdf 1.2M):
mostrar o princípio de funcionamento de um transistor MOS
(chave abre-fecha).
Mostrar como podemos usar dois transistores MOS para
constuir uma porta NÃO.
Aula 6 (21/08/2017):
Continuar a aula anterior sobre porta NÃO, usando os mesmos slides da
aula anterior.
Uma vez conhecida a porta NÃO, é fácil mostrar o funcionamento das portas
NOR e NAND.
Passar a lista de exercícios 2.
Mostrar o uso de portas NOR ou NAND para produzir qualquer função booleana.
Aula 7 (23/08/2017):
Mostrar de forma informal o processo de fabricação de
pastilhas VLSI NMOS (não cai em provas :-):
Breve explicação sobre o processo de fabricação (.pdf 1,9M).
Primeiro chip foi fabricado na Texas Instruments
em 1958 por Jack Kilby, que ganhou o
Prêmio Nobel 2000 de Física.
Aula 8 (28/08/2017):
Evolução do desempenho do processaodr (.pdf 1,1M).
Diversas técnicas são adotadas para tornar melhorar o desempenho do
processador:
pipelinining, pré-busca de instruções, predicção de desvio,
processador superescalar e análise de fluxo de dados, tipos
de dependências: dependência verdadeira.
Aula 9 (30/08/2017):
Continuação da aula anteior sobre evolução
do desempenho do processaodor, (sando os mesmos slides da aula
passada: tipos de de), dependência verdadeira, anti-dependência,
dependência de saída, breve explicação do algoritmo de Tomasulo, VLIW,
execução especulativa, multicore.
Aula 10 (11/09/2017):
Continuação da aula anteior sobre evolução
do desempenho do processaodor, (sando os mesmos slides da aula
passada: tipos de de):
Computação paralela e a lei de Amdahl,
paralelização de laços (loops) com dependência dentro da própria
iteração do laço, com dependências que cruzam iterações.
Passar a lista de exercícios 3.
Aula 11 (13/09/2017):
Slides sobre hierarquia de memória e memória cache.
de memória (.pdf 419K).
Hierarquia de memória: registradores, on-chip cache,
off-chip cache, memória principal (RAM), armazenamento
secundário (discos), outros de armazenamento remotos
(arquivos distribuidos, servidores web).
Memória cache, funções de mapeamento, mapeamento direto, fenômeno
de thrashing.
Aula 12 (18/09/2017):
Continuação da aula anterior, usando os mesmos slides:
Mapeamento associativo, mapeamento associativo por conjunto,
algoritmos de subsituição na cache, algoritmo LRU, algoritmo
pseudo-LRU, cache write-through e write-back.
Aula 13 (20/09/2017):
Slides sobre memória interna e correção de erros (.pdf 753K).
Memória dinâmica (DRAM) e memória estática (SRAM), ambas memórias
voláteis, memória ROM baseada nas portas NOR e NAND.
Aula 14 (25/09/2017):
Continuação da aula anterior, usando os mesmos slides.
Memória ROM e eus vários tipos (ROM, PROM, EPROM, EEPROM),
memória flash. Código de deteção de erro (usando bit paridade).
Código de correção de erro de um bit (Hamming).
Aula 15 (27/09/2017):
Continuação da aula anterior, usando os mesmos slides.
Código de correção de erro de um bit (Hamming). Caso de
$M=4$ bits, caso geral para formar um código de Hamming,
método de correção quando o código de Hamming lido tem um
bit errado, uso inteligente do código de Hamming para comunicação de dados,
podendo corrigir erros de um intervalo contíguo de bits errados.
Passar a lista de exercícios 4.
Aula 16 (2/10/2017):
Slides sobre memória externa (.pdf 1,1M).
Memória externa: disco magnético, organização em trilhas e setores,
disco de cabeça móvel e cabeça fixa, seek time e latência
rotacional, RAID ({\it Redundant Array of Independent Disks}).
Aula 17 (4/10/2017):
Continuação da aula anterior usando os mesmos slides.
RAID ({\it Redundant Array of Independent Disks}).
Aula 18 (16/10/2017):
Slides sobre memória virtual (.pdf 743K).
Apoio de hardware ao Sistema Operacional,
swapping, fragmentação da memória e compactação,
endereço lógico e físico, paginação.
Aula 19 (18/10/2017):
Continuação da aula anterior usando o mesmo conjunto de slides:
Paginação: tabela de páginas, TLB (Translation Lookaside Buffer),
tradução de endereço lógico para endereço físico.
Aula 20 (23/10/2017):
Prova.
Aula 21 (25/10/2017):
Continuação da aula anterior usando o mesmo conjunto de slides:
Segmentação, segmentação com paginação, endereço virtual e
endereço linear, tradução de endereço virtual para endereço físico.
Falar sobre Monografia.
Aula 22 (30/10/2017):
Introdução a microprogramação (.pdf 748K):
arquitetura CISC (Complex Instruction Set Computer) e
e exemplos de máquinas CISC.
Arquitetura MAC: conjunto de instruções.
Microarquitetura MIC e os componentes básicos.
Aula 23 (01/11/2017):
Essa aula e as seguintes usam os mesmos slides da aula passada.
Explicar a microarquitetura MIC e os componentes básicos:
ALU, shifter, MUX, registradores, MAR, MBR.
Micro instruções:
sinais de controle para controlar a
microarquitetura. Explicar o uso do campo COND e ADDR na microinstrução.
Aula 24 (06/11/2017):
Continuação das aulas sobre CISC usando os mesmos slides.
Microinstrução da arquitetura MIC.
Formato da microinstrução.
ROM contendo o micro-store (micro-programa).
Desvios (incondicional e condicional).
Introduzir micro-assembler.
Aula 25 (08/11/2017):
Exemplos de microinstruções usando
micro-assembler: operações usando ALU, shifter,
desvios (incondicional e condicional).
Leitura e escrita de memória: precisam de dois ciclos.
Descrever o microprograma.
(O microprograma completo do MIC tem apenas 79 microinstruções.)
Passar a lista de exercícios 5.
Aula 26 (22/11/2017):
Como escrever microprogramas eficientes.
Exercício em classe.
Fazer um exercício e classe sobre como escrever
um microprograma eficiente.
Microinstruções horizontis e verticais.
Um seminário sobre como preparar um seminário (.pdf 98K).
Logo após,
usando os slides disponíveis em (ver o item Presentation 101 for
graduate students)
http://www.cyto.purdue.edu/Education/index.htm,
apresentarei algumas orientações sobre como apresentar um seminário.
Serão destacados vários aspectos: postura do palestrante,
abertura e conclusão, uso de cor, tamanho dos fonts, uso de
apontador laser, animação, etc.
Aula 27 (27/11/2017):
Introdução a arquitetura RISC (.pdf 134K)
(Reduced Instruction Set Computer):
motivação e características de arquitetura RISC.
Avaliação:
Avisos:
Monografias
Informar ao professor por email o tema escolhido e os nomes do grupo (no
máximo 3 alunos).
Entrega da monografia (pode mandar por email).
Temas:
A serem definidos mais tarde.
Os temas sugeridos (por mim e pelo Prof. Alfredo Goldman quando ele ministrou
a disciplina em 2010) são os
seguintes. O grupo pode escolher qualquer tema.
Exercícios:
A entrega de exercícios pode ser ou em papel ou por email.
Se prefere entregar em papel, entregue em aula ou na
Secretaria do MAC no Bloco C.
Se voce entregar por
email, mande para song"at"ime"ponto"usp"br".
Curiosidades e links úteis sobre assuntos relacionados com nosso curso:
Aqui colocarei links sobre assuntos interessantes relacionados ocm essa
disciplina. Sua colaboração
será bem apreciada: mandem-me links que voces acharem interessantes.
IBM cria computador sem processador que funciona até 200 vezes mais
rápido.
Uma nova forma de computação chamada "In-memory computing".
Ver também:
IBM Scientists Demonstrate In-memory Computing with 1 Million Devices for
Applications in AI.
O artigo completo na revista Nature:
Temporal correlation detection using computational phase-change memory.
Assuntos tratados em aulas