GBC036 Arq. e Org. de Computadores 1 Aula Introdutória Arquitetura e Organização de Computadores Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala
Nesta Aula Apresentação da disciplina GBC036; Apresentação do plano da disciplina; Conteúdo programático; Apresentação do sistema de avaliação; Bibliografia: Básica Suplementar 2
Por que Estudar AOC? Todos os sistemas computacionais modernos utilizam as ideias gerais apresentadas nesta disciplina; AOC é a disciplina onde aprendemos acerca de processadores, como eles funcionam, etc; Conhecimento geral acerca de AOC habilita o profissional de computação a tirar o máximo dos sistemas computacionais; Conhecer AOC habilita o aluno a desenvolver programas eficientes e seguros. 3
Máxima We live in a society exquisitely dependent on science and technology, in which hardly anyone knows anything about science and technology. Carl Sagan 4
O que é arquitetura de Computadores? Aplicação Algoritmos Linguagens de Programação SOs/Máquinas Virtuais Sistemas Computacionais Instruction Set Architecture Microarchitecture Register Transfer Level Portas Lógicas Circuitos Elétricos Componentes Elétricos Mundo Físico Arquitetura de Computadores pode ser vista como uma pilha de abstrações; Ela se enquadra em uma pilha muito mais complexa que permite utilizarmos conceitos físicos para a criação de aplicações complexas; 5
O que é um Computador? DEF (Britânica): Device for processing, storing and displaying information; 6
O que é arquitetura de Computadores? Aplicação Algoritmos Linguagens de Programação SOs/Máquinas Virtuais Sistemas Computacionais Instruction Set Architecture Microarchitecture Register Transfer Level Portas Lógicas Circuitos Elétricos Componentes Elétricos Mundo Físico Arquitetura de Computadores 7
O que é arquitetura de Computadores? Aplicação Algoritmos Linguagens de Programação SOs/Máquinas Virtuais Sistemas Computacionais Instruction Set Architecture Microarchitecture Register Transfer Level Portas Lógicas Circuitos Elétricos Componentes Elétricos Mundo Físico Arquitetura de Computadores existe em um contexto; 8
O que estudaremos em AOC? A história da computação (ponto de vista arquitetural); Tecnologias que habilitaram, habilitam e potencialmente habilitarão computação no futuro; Visão detalhada da arquitetura von Neumann; Interfaces do processador com o SO e com os fenômenos físicos; Diferenças entre arquiteturas RISC e CISC; ISA MIPS32; Organização MIPS32 Monociclo; 9
O que estudaremos em AOC? ALU; Unidade de Controle Combinacional; Pipelining; Organização MIPS32 multiciclo; Hierarquia de Memórias; Comunicação com o Mundo externo; 10
Calendário de Aulas Conteúdo Aula Data Conteúdo Programático 1 08/08 Apresentação da Disciplina, Plano de Ensino, Avaliação e Bibliografia. 2 09/08 Histórico da Evolução dos Computadores 1944-2016 3 16/08 Visão Geral da Arquitetura von Neumann 4 22/08 Organização Estruturada de Sistemas Computacionais Modernos 5 23/08 Arquitetura de Computadores - ISA (Arquitetura de Conjunto de Instruções) 6 29/08 Apresentação do Simulador MARS e Estrutura Básica de um Prog. 7 30/08 Linguagem Assembly, Montadores e Ligadores 8 05/09 Operações Lógicas e Aritméticas no MIPS3000 9 06/09 Operações de Controle de Fluxo e Acesso a Memória no MIPS3000 10 12/09 Chamadas do Sistema (Syscalls) 11 13/09 Suporte a Subrotinas 12 19/09 Modelo de Memória e Alocação Dinâmica de Memória 11
Calendário de Aulas Conteúdo Aula Data 13 20/09 Macros e Prog. Modular 14 26/09 Exercícios de Programação 15 27/09 Exercícios de Programação 16 03/10 Instruções de Suporte ao SO e Proteção de Hardware 17 04/10 Primeira Avaliação (50% do conceito final) 18 10/10 Avaliando e Compreendendo o Desempenho de UCPs 19 11/10 Organização de Computadores (μarquitetura) 20 17/10 Implementação da ULA e da Unidade de Controle 21 18/10 Caminho de Dados / Subsistema de Busca / Instruções do Tipo R 22 24/10 Integra UFU 23 25/10 Integra UFU 24 31/10 Implementação de Instruções do Tipo I 12
Calendário de Aulas Conteúdo Aula Data 25 01/11 Implementação de Instruções do Tipo J 26 07/11 Considerações Implementação Monociclo e Introdução a Pipelining 27 08/11 Pipelining 28 21/11 Considerações Desempenho do Implementação com Pipelining 29 22/11 Hierarquia de Memória 30 28/11 Memórias Cache 31 29/11 Exercícios e Dúvidas 32 05/12 Segunda Avaliação (50% do conceito final) 33 06/12 Aula de Dúvidas e Exercícios 34 12/12 Recuperação 35 13/12 Vista da Recuperação 36* 10/12 Estudo Dirigido 13
Sistema de Avaliação Duas provas (P 1 e P 2 ) valendo 100 pontos cada e correspondendo a 50% do conceito final da disciplina cada; NF P 1 P 2 2 Adicionalmente, o aluno deve possuir frequência em aula superior a 75% e nota final superior a 59 para ser aprovado; Para os casos regularmente previstos nas Normas de Graduação, haverá uma prova substitutiva; Para alunos com média entre 20 e 59 será ofertada uma prova de recuperação. A média final após a recuperação será igual a média aritmética entre a média antés da recuperação e a nota da recuperação. 14
Arquitetura vs Organização de Computadores 15
Arquiteturas de Computadores Refere-se ao comportamento funcional de um computador; Ponto de vista do programador; Termo Arquitetura Introduzido pela IBM, Lyle R. Johnson, Muhammad Usman Khan e Frederick P. Brooks, Jr. Em 1959 Descreve um nível de compatibilidade entre diferentes processadores de uma mesma linha/família a nível de instruções. Exemplos de Arquiteturas: IA-86, X-86 MIPS SPARC VAX PowerPC 16
Arquitetura Definição da ISA Instruction Set Architecture; Instruções em Hardware (Assembly); Formato de Instrução; Representação numérica; Tamanho das palavras; etc... 17
Organização de Computadores Refere-se aos aspectos estruturais que definem um processador; Tipos (classes) de sistemas computacionais: Desktop Servidor Supercomputador Tablet Notebook Sistemas Embarcados Computadores de bordo etc... 18
Organização de Computadores Elementos da organização de computadores: Implementação da ISA Instruction Set Architecture; Hierarquia de Memória; Registradores; Palavras; Coprocessadores; Interrupções; Barramentos; Interfaces de comunicação; Processador(es); Frequência de clock; etc... Como correlacionar estes elementos para a composição de um sistema computacional? 19
Organização de Computadores Como Implementar uma ISA; Tradeoffs (Velocidade, Energia, Custo,...) Como organizar a memória; Qual a profundidade do Pipeline; Largura de Barramentos; etc. 20
O Modelo von Neumann Memória ULA Unidade Lógica e Aritmética UC Unidade de Controle Unidade de Entrada Unidade de Saída UCP - Unidade Central de Processamento Periféricos 21
Modelo de Barramento CPU (ALU, Controle e Registradores) Memória Entrada e Saída Barramentos Dados Endereços Controle 22
Prolar Leitura: Patterson: capítulo 1 Hennessy: capítulo 1 Stallings: capítulo 1 Tanenbaum: capítulo 1 (até 1.1.3) Leia o verbete sobre computador da Wikipedia e outras enciclopedias e aponte as diferenças e discrepâncias em relação a definição vista em aula. 23
Bibliografia Comentada PATTERSON, D. A. e HENNESSY, J. L. 2014. Organização e Projeto de Computadores A Interface Hardware/Software. Elsevier/ Campus 4ª edição. HENNESSY, J. L. e PATTERSON, D. A. 2012. Arquitetura de Computadores Uma Abordagem Quantitativa. Elsevier/ Campus 5ª edição. 24
Bibliografia Comentada MONTEIRO, M. A. 2001. Introdução à Organização de Computadores. s.l. : LTC, 2001. MURDOCCA, M. J. e HEURING, V. P. 2000. Introdução à Introdução de Computadores. 2000. 85-352-0684-1. 25
Bibliografia Comentada STALLINGS, W. 2002. Arquitetura e Organização de Computadores. 2002. TANENBAUM, A. S. 2007. Organização Estruturada de Computadores. 2007. 26