MAC 344 - Arquitetura de Computadores 2020 |
Saíram as Notas!
Informações sobre como será a Monografia a ser feita por vocês.
Nota de aproveitamento final A = 0.4 E + 0.6 M
Professor responsável: Siang Wun Song
Monitor da disciplina: Não há.
Disciplina oferecida: ao Bacharelado de Ciência da Computação - IME
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.
Bibliografia:
. Para informações sobre prazos de matrículas, trancamento, dias sem aula, etc. veja o
Calendário da Graduação para 2020.
Não há prazo para entrega(*). Mas recomendo fazer logo que é passado o exercício.
(*) Obs: Encerrado o semestre letivo, não serão aceitas entregas de exercícios
e monografias.
Para ver o que foi dado no ano passado (2019), consulte
http://www.ime.usp.br/~song/mac344-2019.html.
Vídeos gravados estão disponibilizados na E-Disciplinas
(procure MAC0344).
Aula 1 (01/09/2020):
Breve descrição da disciplina (.pdf 652 Kbytes) :
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 449 KBytes): arquitetura e organização, estrutura e função.
Aula 2 (03/09/2020):
Histórico da evolução do computador (.pdf 8.9 Mbytes):
Ábaco, régua de cálculo, computaadores mecânicos, computadores da
primeira geração (válvulas): Colossus, ENIAC etc.
Aula 3 (08/09/2020):
Histórico da evolução do computador - continuação:
Segunda geração - transistor, Primeiro computador na USP e a criação
do Centro de Cálculo Numérico CCN com suas contribuições,
Terceira geração - VLSI, ciclo de relógio e
frequência, Supercomputador Sunway, Supercomputador Fugaku.
Aula 4 (10/09/2020):
Evolução da computação de alto desempenho
sob a ótica da lista TOP500 (.pdf 3.8 Mbytes).
A
última lista completa TOP500 de junho/2020 (.html) está disponível.
Passar a lista de exercício número 1.
Aula 5 (15/09/2020):
Introdução a tecnologia VLSI (circuitos integrados) (.pdf 2.9 Mbytes)
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.
Mostrar o princípio de funcionamento de um transistor MOS:
ele pode funcionar como uma chave abre-fecha e também para
armazenamento (com carga 1 ou sem carga 0).
Veremos que o transistor MOS pode ainda funcionar como uma resistância.
Aula 6 (17/09/2020):
Introdução a tecnologia VLSI (circuitos integrados) - Continuação
Um transistor em estado de condução (deixando passar corrente)
apresenta uma pequena resistência que é diretamente proporcional
ao comprimento L e inversamente proporcional à
largura W.
Mostrar como podemos usar dois transistores MOS para
construir uma porta NOT.
Aula 7 (22/09/2020):
Introdução a tecnologia VLSI (circuitos integrados) - Continuação.
Uma vez conhecida a porta NOT, é fácil mostrar o funcionamento das portas
NOR e NAND.
Mostrar o uso de portas NOR ou NAND para produzir qualquer função booleana.
Exemplo de projetos VLSI: multiplexador 4 para 1. Relógio de duas fases.
Estado-de-Arte da tecnologia VLSI: tecnologia de 7 nanômetros. Quando teremos
a tecnologia de 5 nanômetros?
Passar a lista de exercícios 2.
Aula 8 (24/09/2020):
Processo de fabricação VLSI e breve introdução a arrays sistólicos TPU
(.pdf 2.8 Mbytes)
Mostrar processo de fabricação de
pastilhas VLSI NMOS.
Uso de VLSI para projeto de ASICs (Application Specific
Integrated Circuits).
Arrays sistólicos e Google TPU (Tensor Processing Unit).
Aula 9 (29/09/2020):
Evolução do desempenho do processador (.pdf 1.3 Mbytes).
Diversas técnicas são adotadas para melhorar o desempenho do
processador:
pipelining, 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, anti-dependência,
dependência de saída.
Aula 10 (01/10/2020):
Evolução do desempenho do processador - Continuação.
Remoção da anti-dependência e dependência de saída.
Algoritmo de Tomasulo,
VLIW,
execução especulativa.
Passar a lista de exercícios 3.
Aula 11 (06/10/2020):
Evolução do desempenho do processador - Continuação.
Processador multicore. 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.
Falar sobre como será a Monografia a ser feita por vocês.
Aula 12 (08/10/2020):
:
Hierarquia de memória e memória cache. (.pdf 2 Mbytes)
Hierarquia de memória: registradores, memória cache (L1, L2 e L3),
memória principal (RAM), armazenamento
secundário (disco e fita magnética), outros de armazenamento remotos
(arquivos distribuidos, servidores web, nuvem).
Memória cache, funções de mapeamento, mapeamento direto.
Aula 13 (13/10/2020):
Dia da Ada Lovelace (.pdf 1M): Uma breve apresentação sobre o
Dia da Ada, comemorada na 2.a terça-feira de outubro.
Hierarquia de memória e memória cache - Continuação:
Mapeamento direto e o fenômeno de thrashing.
Mapeamento associativo, mapeamento associativo por conjunto,
algoritmos de substituição na cache, algoritmo LRU, algoritmo
pseudo-LRU, cache write-through e write-back.
Aula 14 (15/10/2020):
Vulnerabilidades Meltdown e Spectre. (.pdf 1 Mbytes).
Exploram efeitos colaterais de algumas técnicas como
execução especulativa, predicção de desvio e uso de memória cache
para acessar memória do sistema e de outros usuários.
Aula 15 (20/10/2020):
Memória interna e código de Hamming (.pdf 1.3 Mbytes).
Memória dinâmica (DRAM) e memória estática (SRAM), ambas memória
voláteis. Memória ROM. Implementação com NOR ou NAND.
Aula 16 (22/10/2020):
Memória interna e código de Hamming - Continuação.
Os vários tipos (ROM, PROM, EPROM, EEPROM),
memória flash. Código de detecção de erro (usando paridade). Códgio
de Hamming.
Aula 17 (27/10/2020):
Memória interna e código de Hamming - Continuação.
Código de correção de erro de um bit (Hamming). Ilustrar o caso de
um dado de M=4 bits com K=3 bits adicionais.
Deduzir o valor de K necessário para o caso geral de um dado de M bits.
Mostrar o valor de K se M é potência de 2.
Aula 18 (05/11/2020):
Memória interna e código de Hamming - Continuação.
Código de correção de erro de um bit (Hamming).
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.
Passar a lista de exercícios 4.
Aula 19 (10/11/2020):
Memória interna e código de Hamming - Continuação.
Dar um exemplo sobre como obter o código de Hamming,
dados 7 bits de dados. Escolher um bit do código formado
e fazer de conta que esse bit foi lido com erro.
Mostrar como corrigir esse erro.
Mostrar uma maneira simples mas engenhoso para usar
o código de Hamming em comunicação de dados,
podendo corrigir erros de um intervalo contíguo de bits errados.
Aula 20 (12/11/2020):
Slides sobre memória externa (.pdf 1.1 Mbytes).
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 ( Redundant Array of Independent Disks).
Aula 21 (17/11/2020):
Memória virtual - paginação e segmentação (.pdf 1.7 Mbytes).
Apoio de hardware ao Sistema Operacional,
swapping, fragmentação da memória e compactação,
endereço lógico e físico.
Paginação: lista de blocos livres, tabela de páginas.
Aula 22 (19/11/2020):
Slides sobre memória virtual - Continuação.
Paginação: TLB (Translation Lookaside Buffer),
tradução de endereço lógico para endereço físico.
Segmentação, segmentação com paginação.
Aula 23 (24/11/2020):
CISC (Complex Instruction Set Computer) - Microprogramação
(.pdf 2.9 Mbytes):
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 e os respectivos sinais de
controle para: registrador, A latch e B latch.
Aula 24 (26/11/2020):
CISC (Complex Instruction Set Computer) - Microprogramação
- Continuação:
Microarquitetura MIC e os componentes básicos e os respectivos sinais de
controle para: AMUX, ALU, Shifter, MAR e MBR. Formato de uma microinstrução.
Aula 25 (01/12/2020):
CISC (Complex Instruction Set Computer) - Microprogramação
- Continuação:
Formato de uma microinstrução.
Explicar o uso do campo COND e ADDR na microinstrução
para desvios (incondicional e condicional).
ROM contendo o control store (microprograma).
Introduzir micro-assembler.
Leitura e escrita de memória: precisam de dois ciclos.
Aula 26 (03/12/2020):
CISC (Complex Instruction Set Computer) - Microprogramação
- Continuação:
Como escrever microprograma eficiente.
Passar a lista de exercícios 5.
Uso do relógio de 4 fases para controlar o andamento das
atividades de um ciclo composto por 4 subciclos.
Aula 27 (08/12/2020):
CISC (Complex Instruction Set Computer) - Microprogramação
- Continuação:
O microprograma completo tem apenas 79 microinstruções.
Descrever o microprograma ilustrando as primeiras microinstruções.
Microinstruções horizontis e verticais.
Interrupções (.pdf 631 Kbytes):
Aula 28 (10/12/2020):
Interrupções - Continuação.
Introdução a arquitetura RISC (.pdf 1 Mbytes)
(Reduced Instruction Set Computer):
motivação e características de arquitetura RISC.
Aula 29 (15/12/2020):
Responder a dúvidas.
Aula 30 (17/12/2020):
Responder a dúvidas.
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.
Gravação (vídeo mp4) e assuntos de cada aula:
Last modified: Mon Sep 30 17:16:29 BRT 2019