Arquitetura de Computadores PLANO DE ENSINO DISCIPLINA: Arquitetura de Computadores CARGA HORÁRIA DA DISCIPLINA: 80 h APRESENTAÇÃO A informatização de diversos processos é tônica do movimento evolutivo da humanidade nos últimos anos. Consequentemente, o desenvolvimento e uso de dispositivos computacionais, em especial os computadores, evoluiu na mesma velocidade e proporção com a criação de diversas técnicas de implementação e programação dos mesmos. Ainda no contexto evolutivo, deve-se destacar que os computadores diminuíram vertiginosamente o consumo de energia e seu tamanho e paralelamente, aumentou a capacidade computacional e área de atuação. Encontramos computadores instalados em quase tudo que conhecemos, como por exemplo, nos televisores, nos rádios dos automóveis, em hospitais, até mesmo em sapatos. Na disciplina Arquitetura de Computadores será possível conhecer a história da evolução dos computadores, com destaque aos pilares básicos de projetos, as técnicas de implementação das unidades operacionais, bem como podemos classificar os computadores. Ainda, é promovida uma revisão básica dos conceitos de sistemas numéricos e digitais, visando facilitar o entendimento da disciplina. OBJETIVO GERAL DA DISCIPLINA Tornar o aluno capaz de avaliar, analisar e criticar os diversos tipos de dispositivos computacionais disponíveis no mercado. Conhecer o processo evolutivo dos computadores e paralelamente entender como o uso da tecnologia está cada vez mais forte na nossa sociedade. Capacitar o aluno a trabalhar com diversos sistemas numéricos. Promover o desenvolvimento do raciocínio lógico matemático para facilitar o projeto e uso de sistemas digitais. Também oferecer meios para que o aluno realize a tomada de decisões e resolva problemas computacionais de forma otimizada. EMENTA DA DISCIPLINA Introdução, evolução e desempenho de computadores. Apresentação das arquiteturas Pilha, Acumulador e Registrador. Comparações entre Processadores. Análise de desempenho dos computadores. Linguagem de máquina Assembly. O uso de Pipeline. Arquiteturas RISC X CISC. Arquitetura de Computadores CONTEÚDO PROGRAMÁTICO Unidades Unidade 1 Introdução Unidade 2 Sistemas numéricos Unidade 3 Representação numérica computacional Unidade 4 Sistemas digitais Unidade 5 Organização básica de um computador Unidade 6 Modelos de programação Tópicos Objetivos Específicos: Conceitos introdutórios Arquitetura de computadores Computadores origem e evolução * Apresentar e discutir os conceitos iniciais da computação; * Conhecer e entender o processo evolutivo dos computadores; * Compreender a necessidade e a importância de domínio da matemática no âmbito computacional; * Conhecer modelos abstratos que podem representar um computador moderno; * Permitir análise funcional dos modelos abstratos de computadores. * Rever conceitos sobre organização numérica; * Saber representar números em bases numéricas diferentes; * Habilidades para operações de conversões entre bases; * Conhecer alternativas para representação numérica. Sistemas posicionais Base de um sistema numérico Decimal Binário Hexadecimal Octal Conversões entre bases Números inteiros (ponto fixo) Representação em Sinal e magnitude Representação em complemento a (base-1) Aritmética em complemento Números reais (ponto flutuante) Operadores lógicos básicos Operadores lógicos compostos Circuitos lógicos Sequenciais Combinacionais Blocos lógicos Modelo de máquinas Von Neumann Harward Estrutura interna da UCP ULA UCON Funcionamento da UCP Projeto de nível ISA Programação assembly Arquitetura pilha Arquitetura acumulador Arquitetura RUG * Conhecer formatos de representação numérica para números inteiros e reais; * Operar com o processo de conversão entre as representações; * Conhecer o processo aritmético para números inteiros e reais; * Resolver problemas que envolvam o armazenamento de dados; * Interpretar os mecanismos de representação numérica. * Aplicar as propriedades da álgebra booleana; * Resolver problemas matemáticos usando circuitos lógicos; * Interpretar o funcionamento de circuitos digitais; * Reconhecer e construir blocos lógicos. * Reconhecer as diferentes implementações de computadores; * Identificar os elementos que compõem uma unidade central de processamento; * Entender o relacionamento dos blocos internos da UCP; * Compreender o funcionamento da UCP; * Conhecer o ciclo de busca de instruções; * Interpretar o processo de execução de uma instrução. * Conhecer os modelos de implementação de UCP; * Trabalhar com a linguagem assembly; * Desenvolver programas em cada uma das arquiteturas; * Identificar as características de cada um dos modelos de programação. Arquitetura de Computadores Unidade 7 Classificação do conjunto de instruções Unidade 8 Desempenho dos computadores Implementação Monociclo Multiciclo Classificação Projeto RISC Projeto CISC Cálculo do tempo de execução de um programa Desempenho de um computador Uso de Pipeline Tratamento de conflitos do pipeline Uso de memória Cache * Classificar o conjunto de instruções de uma máquina; * Identificar as diferenças entre as implementações de máquinas; * Conhecer as vantagens de cada implementação; * Relacionar as classes de conjunto de instruções com os computadores disponíveis no mercado; * Conhecer técnicas para cálculo de tempo de execução de um programa; * Entender o que é “performance” de computadores; * Comparar as diversas implementações de computadores; * Resolver problemas de desempenho de computadores; * Entender o conceito e uso de memória cache; * Conhecer técnicas de programação visando o desempenho. BIBLIOGRAFIA BÁSICA PATTERSON, David A.; HENESSY, Jonh L. Organização e Projeto de Computadores. 2. ed. Rio de Janeiro: LTC Editora S/A, 1998. STALLINGS, W. Arquitetura e Organização de Computadores. 5. ed. São Paulo: Pearson Education do Brasil, 2002. TANENBAUM, A. Organização Estruturada de Computadores. 4. ed. São Paulo : Prentice-Hall, 2006. BIBLIOGRAFIA COMPLEMENTAR LORIN, Harold. Introdução à arquitetura e organização de computadores. ISBN 8570011911 Rio de Janeiro: Campus, 1985. 362p. MURDOCCA, Miles; HEURING, Vicent. Introdução a Arquitetura de Computadores. Rio de Janeiro: Ed. Campus, 2000. STALLINGS, William. Arquitetura e organização de computadores: projeto para o desempenho. 5. ed. ISBN 85-87918-53-2. São Paulo: Prentice-Hall, 2002. 786 p. TORRES, Gabriel. Hardware: curso completo. 4. ed. ISBN 85-7323-165-3. Rio de Janeiro: Axcel Books, 2001. 1398 p. WEBER, Raul Fernando. Fundamentos de Arquitetura de Computadores. Série Livros Didáticos. 2.ed. ISBN 8524106352. Porto Alegre: Sagra Luzzatto, 2001. 299p.