Prévia do material em texto
<p>REVISÃO ARQUITETURA DE COMPUTADORES</p><p>1. Primeiros Computadores</p><p>- O ENIAC foi um dos primeiros computadores eletrônicos de propósito geral,</p><p>desenvolvido durante a Segunda Guerra Mundial. Ele marcou o início da era da</p><p>computação eletrônica, utilizando válvulas eletrônicas para realizar cálculos de</p><p>forma rápida e eficiente. Outros dispositivos importantes, como o Ábaco e o Altair</p><p>8800, também são marcos históricos da computação, mas com funcionalidades</p><p>limitadas em comparação ao ENIAC.</p><p>2. Modelo de Von Neumann</p><p>- Proposto por John Von Neumann, o modelo define que as instruções de um</p><p>programa devem ser armazenadas na memória do computador e executadas</p><p>sequencialmente pela unidade de controle. As três principais características desse</p><p>modelo são:</p><p>- Programa armazenado: Instruções e dados estão na mesma memória.</p><p>- Unidade aritmética: Realiza operações matemáticas e lógicas.</p><p>- Unidade de controle: Sequência e controle da execução das instruções.</p><p>3. Unidade Lógica e Aritmética (ULA)</p><p>- A ULA é um componente crítico da CPU responsável por realizar operações</p><p>aritméticas (como adição e subtração) e operações lógicas (como AND, OR, NOT).</p><p>Ela opera diretamente sobre os dados armazenados nos registradores e interage</p><p>com outras partes do processador, como a unidade de controle, para executar as</p><p>instruções.</p><p>4. Ciclo de Execução de Instruções</p><p>- O ciclo de execução de instruções em um sistema baseado na arquitetura de Von</p><p>Neumann segue quatro etapas principais:</p><p>- Busca: A unidade de controle busca a próxima instrução da memória.</p><p>- Decodificação: A instrução é decodificada para determinar o que precisa ser feito.</p><p>- Execução: A ULA executa a operação.</p><p>- Armazenamento: O resultado é armazenado em registradores ou na memória.</p><p>5. Memória e Armazenamento</p><p>- Existem dois tipos principais de memória:</p><p>- Memória primária (RAM): Volátil e usada para armazenar dados temporariamente</p><p>enquanto o computador está em funcionamento.</p><p>- Memória secundária (HD, SSD): Não volátil, usada para armazenamento de</p><p>longo prazo. Os SSDs são mais rápidos que os HDs, e fitas magnéticas ainda são</p><p>usadas para backups em grandes sistemas.</p><p>6. RFID (Identificação por Radiofrequência)</p><p>- A tecnologia RFID usa etiquetas com microchips que podem ser lidos</p><p>remotamente via ondas de rádio, sem contato físico. Aplicações comuns incluem</p><p>controle de estoques e rastreamento de mercadorias. Existem dois tipos principais</p><p>de sistemas RFID:</p><p>- Ativo: Possui fonte de energia própria.</p><p>- Passivo: Obtém energia do sinal emitido pelo leitor de RFID.</p><p>7. Componentes da CPU</p><p>- A CPU é composta por vários componentes-chave, como:</p><p>- Registradores: Memória de alta velocidade que armazena dados temporários</p><p>para a CPU.</p><p>- Barramentos: Caminhos que permitem a comunicação entre componentes da</p><p>CPU e a memória.</p><p>- Unidade de controle: Coordena a execução das instruções.</p><p>- ULA: Executa operações aritméticas e lógicas.</p><p>8. Sistemas Monolíticos</p><p>- Em um sistema monolítico, todo o sistema operacional é executado no espaço de</p><p>núcleo, ou seja, no nível mais alto de privilégio. Isso significa que todas as funções</p><p>essenciais e de controle de hardware são executadas juntas, sem separação clara</p><p>entre diferentes componentes.</p><p>9. Programação Paralela e Distribuída</p><p>- Programação paralela envolve a execução de várias threads ou processos</p><p>simultaneamente em uma única máquina para melhorar o desempenho.</p><p>- Programação distribuída envolve o uso de várias máquinas (nós) para executar</p><p>processos em paralelo, aproveitando arquiteturas de cluster e rede.</p><p>10. Plataformas de Programação Paralela</p><p>- Existem diversas plataformas que facilitam a programação paralela. Algumas delas</p><p>são:</p><p>- OpenMP: Usada para programação paralela em sistemas de memória</p><p>compartilhada.</p><p>- MPI: Usada para comunicação entre processos em sistemas distribuídos.</p><p>- PVM: Facilita a execução de programas paralelos em sistemas heterogêneos.</p><p>11. Memória Compartilhada em CUDA</p><p>- Na programação CUDA (usada em GPUs), a memória compartilhada é um espaço</p><p>de memória rápido acessível a todas as threads de um bloco. Essa memória pode</p><p>ser configurada pelo programador para otimizar o desempenho, particularmente em</p><p>operações que requerem troca constante de dados entre threads.</p><p>12. Ferramentas de Profiling</p><p>- Ferramentas de profiling são usadas para analisar o desempenho de aplicações,</p><p>ajudando a identificar gargalos. A nvprof e o Visual Profiler são exemplos de</p><p>ferramentas que traçam uma timeline de execução em GPUs, permitindo visualizar</p><p>as movimentações de dados e otimizar o desempenho de código paralelo.</p><p>Bons estudos!</p><p>Prof Esp. Fabio Paula.</p>