MAC0344 - Arquitetura de Computadores 2021 |
Tdodas as informações desta página também estão disponíveis na E-Disciplinas USP (procure "MAC0344").
Notas da Recuperação - 2.a Avaliação.
A recuperação consiste em completar ou algumas listas de exercícios não feitas ainda, ou completar a monografia ou, se quiser, entregar tanto listas de exercíos como a monografia. A nota da 2.a avaliação segue a mesma fórmula da 1.a avaliação. O prazo para entrega de exercícos e/ou monografia é dia 4 de março de 2022.
Para os vídeos das outras aulas e os assuntos tratados, clique aqui.
Para um vídeo sobre o contéudo da disciplina, clique em Apresentação da disciplina MAC0344 e informações.
Informações sobre como será a Monografia a ser feita por vocês.
Prazos:
Professor responsável: Siang Wun Song
Homepage do Prof. Siang: http://www.ime.usp.br/~song/index.html
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 2021.
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 (2020), consulte
http://www.ime.usp.br/~song/mac0344-2020.html.
Aula 1 (17/08/2021):
Breve descrição da disciplina (.pdf 650 Kbytes) :
ementa, bibliografia, material didático, cálculo
da média de aproveitamento, etc.
Apresentação do conteúdo da disciplina (.pdf 3.2 Mbytes) .
Informações sobre a monografia e prazos (.pdf 24 Kbytes) .
Arquitetura e organização de computadores - Introdução
(.pdf 657 KBytes): Explicar a diferença entre
arquitetura e organização.
Aula 2 (19/08/2021):
Arquitetura e organização de computadores - Introdução
: continuação - explicar estrutura e função dos
componentes de um computador.
História da evolução do computador (.pdf 9.4 Mbytes):
Ábaco, régua de cálculo, computaadores mecânicos, computadores da
primeira geração (válvulas): Colossus, ENIAC etc.
Aula 3 (24/08/2021):
História 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.
MAC0344 Vídeo da Aula 03 Parte 1.
MAC0344 Vídeo da Aula 03 Parte 2.
Aula 4 (26/08/2021):
Evolução da computação de alto desempenho
sob a ótica da lista TOP500 (.pdf 2.4 Mbytes).
A última lista completa TOP500 de junho/2021 (.html) está disponível.
Passar a lista de exercício número 1.
Aula 5 (31/08/2021):
Introdução a tecnologia VLSI (circuitos integrados) (.pdf 3 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 circuitos 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.
MAC0344 Vídeo da Aula 05 - Introdução a tecnologia VLSI (circuitos integrados)
(em mp4).
Aula 6 (2/09/2021):
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 (9/09/2021):
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 (16/09/2021):
Concluir a aula passada: Estado-de-Arte da tecnologia VLSI: tecnologia de 7 nanômetros. Quando teremos
a tecnologia de 5 nanômetros?
Processo de fabricação VLSI e breve introdução a arrays sistólicos TPU
(.pdf 2.9 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 (21/09/2021):
Evolução do desempenho do processador (.pdf 1.6 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 (23/09/2021):
Evolução do desempenho do processador - Continuação.
Anti-dependência e dependência de saída.
Remoção da anti-dependência e dependência de saída.
Algoritmo de Tomasulo.
Passar a lista de exercícios 3.
Aula 11 (28/09/2021):
Evolução do desempenho do processador - Continuação.
VLIW, processador multicore, predicção de desvio, execução especulativa.
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.
Aula 12 (30/09/2021):
:
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 (05/10/2021):
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 (07/10/2021):
Dia da Ada Lovelace (.pdf 888 Kbyes): Uma breve apresentação sobre o
Dia da Ada, comemorada na 2.a terça-feira de outubro.
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:
História da evolução do computador -
(em mp4).
Aula 15 (14/10/2021): Memória interna e código de Hamming (.pdf 1.4 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 (19/10/2021): Memória interna e código de Hamming - Continuação. Memória flash. Código de detecção de erro (usando bit paridade). Código de Hamming.
Aula 17 (21/10/2021): 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 (26/10/2021): 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 (28/10/2021): 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 (4/11/2021): Slides sobre memória externa (.pdf 1.1 Mbytes). Memória externa: disco magnético HD, 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). SSD (Solid State Drive) e comparação SSD versus HD.
Aula 21 (9/11/2021): Memória virtual - paginação e segmentação (.pdf 2.3 Mbytes). Memória virtual: paginação e segmentação. 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 (11/11/2021): 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 (23/11/2021): CISC (Complex Instruction Set Computer) - Microprogramação (.pdf 3 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 (25/11/2021): 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 (30/11/2021): 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.
Aula 26 (02/12/2021): CISC (Complex Instruction Set Computer) - Microprogramação - Continuação: Leitura e escrita de memória: precisam de dois ciclos. 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. O microprograma completo tem apenas 79 microinstruções. Descrever o microprograma ilustrando as primeiras microinstruções. Microinstruções horizontis e verticais.
Aula 27 (07/12/2021): Interrupções (.pdf 631 Kbytes). Apoio de hardware para agilizar a mudança de contexto. Começar a falar sobre arquitetura RISC.
Aula 28 (09/12/2021): Introdução a arquitetura RISC (.pdf 1 Mbytes) (Reduced Instruction Set Computer): motivação e características de arquitetura RISC.
Aula 29 (14/12/2021): Não haverá aula. Dúvidas: mande-me email.
Aula 30 (16/12/2021): Não haverá aula. Dúvidas: mande-me email.