MAC 344 - Arquitetura de Computadores 2018 |
Avisos:
BOAS FÉRIAS!
Para saber quais 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 138 - Bloco B - 1.o andar - IME
Horário das aulas: 3.a feira: 10:00 - 11:50 e 5.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
Prova regular: 23/10/2018 (prova com consulta).
Prova substitutiva: 4/12/2018 (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 2018.
Informações detalhadas sobre a monografia a serem fornecidas mais tarde.
Prazos:
Até 1 de novembro de 2018:
Informar ao professor por email o tema escolhido e os nomes do grupo (no
máximo 3 alunos).
Até 7 de dezembro de 2018
Entrega da monografia (pode mandar por email).
As apresentações serão programadas mais tarde.
O grupo pode, caso queira, sugerir um tema diferente, com a concordância do professor.
Aula 1 (02/08/2018): 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/2018): 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/2018): Continuação da aula anterior mostrando a evolução dos computadores.
Aula 4 (14/08/2018): Os slides sobre o estado de arte dos computadores mais velozes do mundo segundo a lista TOP 500 (.pdf 4 Mbytes). A última lista completa TOP500 de junho/2018 (.html) está disponível. Passar a lista de exercício número 1.
Aula 5 (16/08/2018): 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.3 Mbytes): mostrar o princípio de funcionamento de um transistor MOS (chave abre-fecha). 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.
Aula 6 (21/08/2018): Continuar a aula anterior, usando o mesmo conjunto de slides da aula anterior. Mostrar como podemos usar dois transistores MOS para constuir uma porta NÃO. Uma vez conhecida a porta NÃO, é fácil mostrar o funcionamento das portas NOR e NAND. Mostrar o uso de portas NOR ou NAND para produzir qualquer função booleana. Passar a lista de exercícios 2.
Aula 7 (23/08/2018): 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 6.6 Mbytes). 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/2018): Evolução do desempenho do processaodr (.pdf 1.3 Mbytes). Diversas técnicas são adotadas para 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/2018): 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/2018): 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/2018): Slides sobre hierarquia de memória e memória cache. de memória (.pdf 884 Kbytes). 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/2018): 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/2018): Slides sobre memória interna e correção de erros (.pdf 1.3 Mbytes). 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/2018): 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/2018): 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/2018): Não houve aula. WSCAD 2018.
Aula 17 (4/10/2018): 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}). Falar sobre Monografia.
Aula 18 (16/10/2018): Continuação da aula anterior sobre discos usando os mesmos slides. Discutir Flash Memory e predicção do futuro sobre o seu uso. Uma apresentação sobre as vulnerabilidade Meltdown e Spectre. Slides da apresentação Meltdown e Spectre (pdf)
Aula 19 (18/10/2018): Revisão da matéria dada em preparação à prova do dia 23/10/2018.
Aula 20 (23/10/2018): Prova.
Aula 21 (25/10/2018): 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: tabela de páginas, TLB (Translation Lookaside Buffer), tradução de endereço lógico para endereço físico. 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.
Aula 22 (30/10/2018): 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/2018): 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. Microinstrução da arquitetura MIC. Formato da microinstrução. ROM contendo o micro-store (micro-programa). Desvios (incondicional e condicional).
Aula 24 (06/11/2018): Continuação das aulas sobre CISC usando os mesmos slides. Introduzir micro-assembler. 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 25 (08/11/2018): Não houve aula.
Aula 26 (22/11/2018): Não houve.
Aula 27 (27/11/2018): 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 28 (29/11/2018): Introdução a arquitetura RISC (.pdf 134K) (Reduced Instruction Set Computer): motivação e características de arquitetura RISC.
Aula 29 (04/12/2018): Prova substitutiva.
Aula 30 (06/12/2017): Não haverá.