Prévia do material em texto
1 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Introdução à Arquitetura de Computadores Anderson Oliveira da Silva Ph. D. Ciências em Informática Engenheiro de Computação anderson@inf.puc-rio.br Departamento de Informática PUC-Rio 2 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Referências Livros – Arquitetura e Organização de Computadores » Willian Stallings – Ed. Pearson – Introdução à Organização de Computadores » Mário A. Monteiro – Ed. Campus 3 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Conceitos Básicos e Evolução do Computador – Conceitos Básicos » Arquitetura de Computadores x Organização de Computadores » Funções do Computador x Estrutura do Computador • Computador Simples com um Único Processador • Computador com Múltiplos Processadores (multicore) – Sistemas Embarcados e Fortemente Embarcados » Processadores para aplicações x Processadores Dedicados » Microprocessador x Microcontroladores – Evolução dos Computadores – Evolução da Arquitetura Intel x86 – Evolução da Arquitetura ARM – Computação em Nuvem – Internet das Coisas (IoT) Parte I – Introdução 4 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte I – Introdução Questões de Desempenho – Projeto com foco no desempenho » Técnicas para Aumentar a Velocidade do microprocessador » Técnicas para Melhorar a Interligação com a memória » Técnicas para Melhorar o Tratamento dos Dispositivos de E/S » Mudanças na Organização e Arquitetura do Processador – Desempenho dos sistemas paralelos e multicore » Multicore, MICs e GPGPUs » Lei de Amdhal » Lei de Little – Medidas básicas de desempenho do computador » Velocidade de clock » Taxa de execução de instrução (MIPS e MFLOPS) » Benchmarks da SPEC 5 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte II – Unidade Central de Processamento Estrutura e Função do Processador – Organização do Processador » UC, ALU, Registradores, Barramento Interno – Organização dos Registradores » Registradores visíveis ao usuário x Registradores de controle e estado – Ciclo da Instrução » Buscar, Executar e Interromper – Pipeline de Instruções » Estratégia do pipeline » Desempenho do pipeline » Hazards do pipeline – Família de Processadores x86 – Processadores ARM 6 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte II – Unidade Central de Processamento Computadores com Conjunto Reduzido de Instruções – Características da Execução de Instruções » Operações, Operandos, Chamadas de Procedimentos – Uso de um Grande Banco de Registradores » Janelas de Registradores, Variáveis Globais, Registradores x Cache – Otimização de Registradores baseada em Compiladores » Estratégias para maximizar o uso dos registradores – Arquitetura RISC » Principais características da arquitetura RISC » CISC x RISC – Pipeline no RISC » Pipeline com instruções regulares » Otimização de pipeline 7 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte II – Unidade Central de Processamento Processamento de Instruções Vetoriais – Aula Prática – Intel Streaming SIMD Extensions Technology » SSE2, SSE3, SSE4, AVX, AVX2, FMA e AVX-512 » Registrados especiais usados pelas instruções vetoriais » Conjunto de instruções vetoriais – Intel Intrinsics – Parte 1 » Biblioteca de primitivas em linguagem C » Exemplos práticos 1 » Exercício prático 1 – Intel Intrinsics – Parte 2 » Biblioteca de primitivas em linguagem C » Exemplos práticos 2 » Exercício prático 2 8 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte II – Unidade Central de Processamento Paralelismo em Nível de Instruções e Processadores Superescalares – Visão Geral » Superescalar x Superpipeline – Aspectos de Projeto » Paralelismo em nível de instrução e paralelismo de máquina – Microarquitetura Intel Core – ARM Cortex-A8 – ARM Cortex-M3 9 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte III – Organização Paralela Processamento Paralelo – Organização de Múltiplos Processadores » Taxonomia de Flynn – Multiprocessadores Simétricos » Características e Organização – Coerência de Cache e Protocolo MESI » Soluções por software e hardware – Multithreading e Chips Multiprocessadores – Clusters – Acesso Não Uniforme à Memória (NUMA) 10 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte III – Organização Paralela Processamento Paralelo (Threads) – Aula Prática – Conceito de Thread » Threads Modo Usuário, Threads Modo Kernel e Threads Híbridas – Threads POSIX x Threads Nativas – Biblioteca PThread – Parte 1 » Exemplos Práticos 1 » Exercício Prático 1 – Problemas de Concorrência e Sincronização » Semáforos Mutex » Semáforos Contadores » Monitores (Signal e Wait) – Biblioteca PThread – Parte 2 » Exemplos Práticos 2 » Exercício Prático 2 11 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte III – Organização Paralela Clusters de Computadores – Características dos clusters de computadores – Tipos de cluster de computadores » Alta disponibilidade (HA – High Availability) » Alto desempenho de computação (HPC – High Performance Computing) » Balanceamento de carga (LB – Load Balancing) – Estrutura Física dos Clusters » Cluster Simétrico x Cluster Assimétrico – Estrutura Lógica dos Clusters – Tolerância a falhas » Configuração Ativa/Passiva » Configuração Ativa/Ativa » Configuração N-to-1 – Compartilhamento de Dados » Armazenamento Compartilhado x Replicação de Dados 12 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte III – Organização Paralela Computadores Multicore – Questões sobre Desempenho de Hardware – Questões sobre Desempenho de Software – Organização Multicore – Organização Multicore Heterogênea » Arquitetura de conjunto de instruções diferentes • CPU combinada com GPU » Arquitetura de conjunto de instruções equivalentes • Core de Alto Desempenho combinado com Core de Baixo Consumo de Energia – Intel Core I7-990X – ARM Cortex-A15 MPCore 13 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte III – Organização Paralela Unidades de Processamento Gráfico de Uso Geral – Aula Prática – Arquitetura da GPGPU da NVIDIA » Arquitetura SIMT (Single Instruction, Multiple Thread) » Compute Capability – Noções Básicas sobre o Toolkit CUDA - NVIDIA » Comandos básicos » Fluxo de processamento básico » Controle de alocação de memória » Definição de uma função kernel » Processamento de kernels multidimensional » Exemplos práticos » Exercícios práticos 14 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte IV – Sistema de Computação Interconexão do Computador – Interconexão de Barramento – Interconexão Ponto a Ponto » Quick Path Interconnect (QPI) da Intel – Barramento PCI » PCI Express (PCIe) 15 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte IV – Sistema de Computação Memória Cache – Visão Geral do Sistema de Memória » Localização, Capacidade, Unidade de Transferência, Método de Acesso, Desempenho, Tipo Físico, Características Físicas e Organização – Princípios da Memória Cache » Relação entre cache L1, L2 e L3 – Elementos de Projeto da Cache » Endereços da Cache » Política de Escrita » Função de Mapeamento » Número de Caches » Algoritmo de Substituição • LRU, FIFO, LFU e Aleatória 16 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte IV – Sistema de Computação Memória Interna – Tipos de Memória Semicondutora » DRAM – Dynamic RAM e SRAM – Static RAM » SDRAM – Synchronous DRAM » DDR-SDRAM – Double-Data-Rate SDRAM » ROM, PROM, EPROM e EEPROM » Memória Flash (NOR e NAND) – Correção de Erro » SEC – Single-Error-Correcting » SEC-DED – SEC Double-Error-Detecting – Novas Tecnologias de Memória de Estado Sólido Não Voláteis » STT-RAM – Spin-Transfer Torque RAM » PCRAM – Phase-Change RAM » ReRAM – Resistive RAM 17 Prof. Anderson Oliveirada Silva - anderson@inf.puc-rio.br Parte IV – Sistema de Computação Memória Externa – Disco Magnético » Leitura Magnética e Mecanismo de Gravação » Organização e Formatação de Dados » Características Físicas » Parâmetros de Desempenho – RAID (Redundant Array of Independent Disks) » RAID nível 0, 1, 2, 3, 4, 5 e 6 – Drives de Estado Sólido (SSD) » SSD x HDD » Organização de SSD – Memória Óptica » CD, DVD e Blu-ray DVD – Fita Magnética » Métodos de leitura e gravação 18 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte IV – Sistema de Computação Entrada/Saída – Dispositivos Externos » Teclado, Monitor e Drive de Disco – Módulo de E/S – E/S Programada – E/S Controlada por Interrupção – Acesso Direto à Memória (DMA) – Acesso Direto à Cache (DCA) – Processadores e Canais de E/S – Padrões de Interconexão Externa » USB, FireWire, SCSI, Thunderbolt, InfiniBand » PCI Express, SATA, Ethernet e Wi-Fi 19 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Parte V – Unidade de Controle Unidade de Controle do Microcontrolador – Aula Prática – Arquitetura do Microcontrolador ATmega328p » Diagrama de Bloco da Arquitetura AVR – Projeto Arduino » Arduino Uno R3 » Shields para o Arduino Uno R3 » Shield Multi-função para o Arduino Uno R3 – Toolkit do Arduino » Ambiente de Desenvolvimento (Arduino IDE) » Exemplos práticos » Exercícios práticos 20 Prof. Anderson Oliveira da Silva - anderson@inf.puc-rio.br Critério de Aprovação Critério 7 da PUC-Rio – A avaliação do desempenho do aluno na disciplina INF1029 será feita por uma composição de notas obtidas em 6 trabalhos práticos (T1, T2, T3, T4, T5 e T6) realizados em grupo de 2 alunos e 2 provas (P1 e P2) realizadas individualmente sobre o conteúdo dos assuntos apresentados nas aulas. – Os cálculos dos graus G1 e G2 são mostrados a seguir. • G1 = 0,2 * T1 + 0,2 * T2 + 0,2 * T3 + 0,4 * P1 • G2 = 0,2 * T4 + 0,2 * T5 + 0,2 * T6 + 0,4 * P2 • NF = (G1 + G2) / 2 Se G1 e G2 >= 3,0 e NF >= 6,0, então: • MÉDIA = NF Em outros casos o aluno faz G3: • MÉDIA = ( (G1 + G2 + (G3*2) ) / 4