aula introdutória 1 arquitetura e organização de computadoresabdala/gbc036/gbc036_01.pdf ·...
TRANSCRIPT
Aula Introdutória
Universidade Federal de Uberlândia Faculdade de Computação
Prof. Dr. rer. nat. Daniel D. Abdala
GB
C0
36
– A
rq. e
Org
. de
Co
mp
uta
do
res
1
Arquitetura e Organização de Computadores
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?
5
Mundo Físico
Componentes Elétricos
Circuitos Elétricos
Portas Lógicas
Register Transfer Level
Microarchitecture
Instruction Set Architecture
Sistemas Computacionais
SOs/Máquinas Virtuais
Linguagens de Programação
Algoritmos
Aplicação • 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;
O que é um Computador?
• DEF (Britânica): Device for processing, storing and displaying information;
6
O que é arquitetura de Computadores?
7
Mundo Físico
Componentes Elétricos
Circuitos Elétricos
Portas Lógicas
Register Transfer Level
Microarchitecture
Instruction Set Architecture
Sistemas Computacionais
SOs/Máquinas Virtuais
Linguagens de Programação
Algoritmos
Aplicação
Arquitetura de Computadores
O que é arquitetura de Computadores?
8
Mundo Físico
Componentes Elétricos
Circuitos Elétricos
Portas Lógicas
Register Transfer Level
Microarchitecture
Instruction Set Architecture
Sistemas Computacionais
SOs/Máquinas Virtuais
Linguagens de Programação
Algoritmos
Aplicação
• Arquitetura de Computadores existe em um contexto;
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 (P1 e P2) valendo 100 pontos cada e correspondendo a 50% do conceito final da disciplina cada;
• 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
2
21 PPNF
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:
18
• Desktop
• Servidor
• Supercomputador
• Tablet
• Notebook
• Sistemas Embarcados
• Computadores de bordo
• etc...
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
21
Memória
Unidade de Controle
Unidade de Entrada
Unidade de Saída
Unidade Lógica e
Aritmética
UCP - Unidade Central de Processamento Periféricos
ULA
UC
Modelo de Barramento
22
CPU (ALU, Controle
e Registradores) Entrada e Saída Memória
Barramentos
Dados
Endereços
Controle
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