Sistemas de Informação - Ciência da
Computação - Graduação
INF1029 - Intrudução à Arquitetura
de Computadores
Material Didático:
Parte I - Introdução
Slides Vol.1 - 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 da Arquitetura de Computadores – Evolução da Arquitetura
Intel x86 – Evolução da Arquitetura ARM – Computação em Nuvem –
Internet das Coisas (IoT).
Slides Vol.2 - 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 – Mediadas
básicas de desempenho do computador » Velocidade de clock » Taxa de
execução de instrução (MIPS e MFLOPS) » Benchmarks da SPEC
Parte II – Unidade Central de Processamento
Slides Vol.3 - Estrutura e Função do Processador
– Organização do Processador » UC, ALU, Registradores, Barramento
Interno – Organização dos Registradores » Registradores de 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.
Slides Vol.4 - 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.
Slides Vol.5 -
Processamento de Instruções Vetorias
- 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.
Slides Vol.6 - 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.
Parte III - Organização Paralela
Slides Vol.7 - 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 –
Acesso Não Uniforme à Memória (NUMA).
Slides Vol.8 - Processamento
Paralelo (Threads) - Aula Prática
– Conceito de Thread » Threads Modo Usuário » Threads Modo Kernel »
Threads Híbridas – Threads POSIX x Threads Nativas – Biblioteca
PThread – Parte 1 » Exemplos Práticos 1 – Exercíco 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
Slides Vol.9 -
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.
Slides Vol.10 - 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.
Slides Vol.11 - Unidades de
Processamento Gráfico de Uso Geral
– Noções Básicas sobre a CUDA – GPU x CPU – Visão Geral da
Arquitetura de uma GPU – CUDA Toolkit »
Descrição da biblioteca » Controle de alocação de memória: Controle
manual do programador; Controle automático via Unified Memory »
Exemplos práticos.
Parte IV – Sistema de Computação
Slides Vol.12 - Interconexão do
Computador
– Interconexão de Barramento – Interconexão Ponto a Ponto » Quick
Path Interconnect (QPI) da Intel – Barramento PCI » PCI Express
(PCIe).
Slides
Vol.13 - 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.
Slides Vol.14 - 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.
Slides Vol.15 - 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.
Parte V – Unidade de Controle
Slides Vol.16 - Unidade de Controle do Microcontrolador
– Arquitetura do Microcontrolador ATmega328p – Biblioteca/Toolkit do
Arduino Uno – Exemplos
Material de laboratório
Prática 1
- Instruções Vetoriais (AVX/AVX2/FMA) - Exemplos
Prática 1
- Instruções Vetoriais (AVX/AVX2/FMA) - Exercícios
Prática 1
- Instruções Vetoriais (AVX/AVX2/FMA) - Trabalho1
Prática
2
- Processamento Paralelo - Threads - Exemplos
Prática
2
- Processamento Paralelo - Threads - Exercícios
Prática
2
- Processamento Paralelo - Threads - Trabalho2
Prática
3
- Processamento Paralelo - GPGPU - Exemplos
Prática
3
- Processamento Paralelo - GPGPU - Exercícios
Prática 3 - Processamento Paralelo - GPGPU - Trabalho3
Prática
4
- Programação de Microcontrolador - Arduino - Exemplos
Prática
4
- Programação de Microcontrolador - Arduino - Exercícios
Prática
4
- Programação de Microcontrolador - Arduino - MultFuncShield-Lib
Roteiros dos trabalhos
Trabalho
1 - Aritmética de matrizes com processamento vetorial
Trabalho
2 - Aritmética de matrizes com processamento vetorial e paralelo
Trabalho
3 - Aritmética de matrizes com processamento paralelo em GPU
Trabalho
4 - Programação de Microcontrolador com Arduino
Listas de Exercícios
Exercícios Conceituais e Práticos
- Parte I
Exercícios Conceituais e Práticos
- Parte II Datas
das Provas
P1 - 7/Outubro/2019 - Sala L110
P2 - 4/dezembro/2019 - Sala L206
Resultado
2019.2
Publicação das notas dos trabalhos e provas.
Saída da
execução dos trabalhos durante a correção.
Referência Bibliográfica Principal
Arquitetura e Organização de Computadores, Willian Stallings
10a edição - Editora Pearson - 2018
![](Arquitetura_e_Organizacao_de_Computadores_Willian_Stallings.png)
Referência Bibliográfica Complementar
Clusters de Alta Disponibilidade, Ribeiro, M.A.D.
Orientador: da Silva, A.O. - TCC Especilização em Redes
DI/CCE/PUC-Rio - 2011 |