Aula 1: Apresentação do Curso
Diego Passos
Universidade Federal Fluminense
Fundamentos de Arquiteturas de Computadores
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
1 / 30
.
Estrutura da Disciplina
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
2 / 30
.
Informações Gerais
Salas e Horários
Quartas, 20:00 às 22:00, sala 213.
Sextas, 20:00 às 22:00, sala 213.
Contato
[email protected]ff.br
http://www.midiacom.uff.br/˜diego/disciplinas/2015_2/FAC/
▶
▶
▶
▶
Calendário.
Material didático.
Informações.
Avisos.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
3 / 30
.
Focos da Disciplina
Como informações são representadas por um computador.
Quais são os componentes de um computador.
Como estes componentes se inter-relacionam para processar dados.
Como um programa de alto nível é executado.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
4 / 30
.
Conteúdo Programático (E Provas)
P1
P2
Histórico das arquiteturas.
Unidade Central de Processamento.
Bases de numeração e conversões.
Instruções.
Aritmética binária e hexadecimal.
Pipeline.
Representações numéricas inteiras.
Dispositivos de E/S.
Estouro.
Métodos de transferência de dados.
Representação em Ponto Flutuante.
Arquiteturas avançadas.
Memória Principal.
RISC vs. CISC.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
5 / 30
.
Bibliografia e Material de Apoio
Bibliografia Básica
D.A. Patterson e J.L. Hennessy , Organização e Projeto de Computadores, Editora LTC,
Quarta Edição, 2014.
Bibliografia Complementar
W. Stallings, Arquitetura e Organização de Computadores, Prentice Hall.
M. A. Monteiro, Introdução à Organização de Computadores, Editora LTC.
Outras Referências
Andrew S. Tanenbaum, Organização Estruturada de Computadores, Prentice Hall, Quinta
Edição.
Links, slides, notas de aula, listas de exercícios e ferramentas na página do curso.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
6 / 30
.
Critério de Avaliação
Provas
Duas provas de mesmo peso:
Mp =
P1 + P2
2
Reposição: toda a matéria.
Trabalhos
Três trabalhos pequenos de implementação:
▶
▶
▶
T1 : programa de conversão entre bases.
T2 : programa de representação em ponto flutuante.
T3 : crivo de Eratóstenes em linguagem de montagem.
Cada um vale 1,0 ponto na média final.
Média Final
0, 7 × Mp + T1 + T2 + T 3
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
7 / 30
.
Calendário (Sujeito a Alterações)
11
13
18
20
25
27
01
03
08
10
15
17
22
24
29
01
06
08
13
15
Março
Apresentação do Curso
Histórico
Conceitos básicos; medidas de desempenho
Bases numéricas
Conversões entre bases
Aritmética binária e hexadecimal
Abril
Sinal e Magnitude; Representação em Excesso
Sexta-feira Santa
Complemento a Um e Dois; Estouro
Aula de laboratório: Representações de Inteiros
Representação em Ponto Flutuante
Aula de laboratório: Ponto Flutuante
Representação de dados não-numéricos
Memória Principal: organização e conceitos
Memória Principal: barramentos e registradores
Maio
Dia do Trabalho
Memória Principal: operações e cache
Tipos de instruções e endereçamento
P1
Vista (P1); Ciclo de execução; intr. ao pipeline
20
22
27
29
03
05
10
12
17
19
24
26
01
03
08
10
15
17
UCP:
UCP:
UCP:
UCP:
conceitos e componentes
unidade de controle
unidade lógica-aritmética
construindo um caminho de dados
Junho
UCP: ciclo único vs. multi-ciclo
Corpus Christi (Recesso)
UCP: implementando um pipeline
Linguagem de Montagem
Aula de laboratório: linguagem de montagem
Noções de compilação, montagem, etc
E/S: dispositivos típicos e barramentos
E/S: métodos de transferência de dados
Julho
Arquiteturas RISC vs. CISC
Dúvidas
P2
VR (se necessária)
Vista de Prova (P2, VR)
VS (se necessária)
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
8 / 30
.
Datas e Informações sobre os Trabalhos
Documentos de especificação já estão na página da disciplina.
Mas trabalhos dependem de matérias vistas em aula.
▶
▶
▶
Primeiro trabalho depende da aula de 25/03.
Segundo trabalho depende da aula de 15/04.
Terceiro trabalho depende da aula de 12/06.
Todos os trabalhos terão prazo de entrega de 4 semanas após a aula da respectiva
matéria.
▶
▶
▶
Primeiro trabalho: entrega até 22/04.
Segundo trabalho: entrega até 13/05.
Terceiro trabalho: entrega até 10/07.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
9 / 30
.
Datas e Informações sobre os Trabalhos (Mais)
Os trabalhos deverão ser entregues por e-mail ([email protected]ff.br).
▶
▶
Deverão conter todo o código fonte necessário para compilação.
Os prazos de entrega sempre contam até as 22:00.
Os trabalhos podem ser feitos em grupos de até 4 integrantes.
▶
Os integrantes do grupo devem ser identificados no e-mail.
Dúvidas podem ser tiradas em sala de aula ou por e-mail.
Os prazos de 4 semanas a partir da aula da respectiva matéria não serão estendidos.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
10 / 30
.
Visão Geral da Matéria
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
11 / 30
.
Computação e Camadas de Abstração
Aplicações
Bibliotecas
SO
Hardware
Computação é baseada em níveis de abstração.
Tornam problemas/sistemas complexos mais
simples/tratáveis.
Cada nível oferece “serviços” aos superiores.
▶
Níveis superiores montam serviços maiores.
Entre dois níveis adjacentes, existe uma interface.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
12 / 30
.
Computação e Camadas de Abstração (Mais)
Aplicações
Bibliotecas
SO
Considere um software de aplicação, por exemplo:
▶
Hardware
▶
▶
▶
Escrito em linguagem de alto-nível (Java, Pascal, C,
. . . ).
Inclui chamadas a funções de bibliotecas.
Algumas funcionalidades requerem o auxílio do SO.
No nível mais baixo, tudo é executado de fato no
hardware.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
13 / 30
.
Visão Geral da Matéria
Boa parte das disciplinas de computação do curso de SI se preocupam com aspectos de
software.
▶
Programação básica, estrutura de dados, engenharia de software, . . .
Nesta disciplina, estudaremos o hardware.
▶
▶
▶
▶
Como
Como
Como
Como
o computador funciona?
a informação é representada/processada?
ela é armazenada?
código de alto nível é executado?
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
14 / 30
.
Nível de Profundidade
O hardware de um computador moderno é um sistema bastante complexo.
Podemos estudá-lo em vários níveis:
▶
▶
▶
▶
Macro-componentes.
Portas lógicas.
Eletrônica.
...
Neste curso, o foco é no nível de macro-componentes.
▶
▶
Consideraremos abstrações como um bit da memória, um multiplexador, um somador, um
registrador, . . .
Sem nos preocuparmos em como estes componentes são implementados.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
15 / 30
.
Nível de Profundidade (Mais)
Nos preocuparemos com a maneira pela qual estes componentes são conectados.
Veremos também que há várias formas de alcançar um mesmo objetivo.
▶
▶
▶
Nem sempre há uma definitivamente melhor que as outras.
Será preciso discutir as vantagens e desvantagens.
Analisar o que é melhor para um caso específico.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
16 / 30
.
Importância da Disciplina
Por que devemos estudar Arquiteturas de Computadores?
Existem diversos motivos:
▶
▶
▶
▶
Grande variabilidade de plataformas.
Rápida evolução.
Impacto no desempenho do software.
Impacto no comportamento do software.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
17 / 30
.
Variabilidade de Plataformas
Todos os computadores são iguais?
▶
Não!
Existe uma enorme variabilidade de “tipos” de computadores.
Eles variam em vários aspectos:
▶
▶
▶
▶
▶
Classe de aplicação.
Recursos.
Família/Arquitetura.
Modelo.
...
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
18 / 30
.
Variabilidade de Plataformas: Classes de Aplicação
Podemos dividir os computadores modernos em três classes:
▶
Computadores Pessoais.
⋆
⋆
⋆
▶
Servidores.
⋆
⋆
⋆
⋆
▶
Desktops, laptops, . . .
Geralmente, usados por um único usuário por vez.
Rodam navegadores, editores de texto, imagens, . . .
Servidores web, de e-mail, mainframes, supercomputadores, . . . .
Suportam grandes cargas de trabalho.
Normalmente, diversos usuários simultâneos.
Ênfase em confiabilidade e paralelismo.
Dispositivos Embarcados.
⋆
⋆
⋆
⋆
Computadores automotivos, smartphones, roteadores, . . .
Número enorme de aplicações.
Hoje, são praticamente ubíquos.
Normalmente, rodam poucas aplicações específicas e relacionadas.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
19 / 30
.
Variabilidade de Plataformas: Classes de Aplicação (Exemplos)
Servidor
Computador Pessoal
Dispositivo Embarcado
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
20 / 30
.
Variabilidade de Plataformas: Classes de Aplicação (Popularidade)
Fonte: Patterson e Hennessy.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
21 / 30
.
Variabilidade de Plataformas: Classes de Aplicação (Mais)
Cada classe possui seus requisitos.
▶
▶
▶
▶
▶
▶
▶
Confiabilidade.
Escalabilidade.
Tempo de resposta.
Consumo energético.
Tamanho.
Preço.
...
Profissionais de TI devem ser capazes de entender estes requisitos e escolher um hardware
capaz de atendê-los.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
22 / 30
.
Variabilidade de Plataformas: Outras Diferenças
Mesmo para uma dada classe de aplicações, existem outras diferenças entre os
computadores.
Computadores podem diferir em termos de família/arquitetura:
▶
e.g., x86 vs. PowerPC.
Ou também em relação aos recursos disponíveis:
▶
e.g., muitos núcleos vs. clock mais alto.
Diferenças podem ser relevantes para certos cenários.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
23 / 30
.
Impacto no Desempenho do Software
O hardware tem impacto óbvio no desempenho do software.
▶
Um processador com clock mais alto normalmente executa programas mais rapidamente.
Mas existem vários outros fatores mais sutis.
▶
▶
▶
▶
Organização da memória.
Tamanho da palavra.
Grau de paralelismo.
...
Dado um hardware específico, há maneiras específicas de se escrever software otimizado.
Dado um software específico, há hardwares mais adequados.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
24 / 30
.
Impacto no Funcionamento do Software
O impacto do hardware no software não está confinado ao desempenho.
Muitas vezes, um mesmo programa se comporta de formas diferentes em hardwares
diferentes.
Exemplos de fatores relevantes:
▶
▶
Ordem de bytes.
Representação de números em ponto flutuante.
Não levar em conta estes fatores pode resultar em comportamentos inesperados/errados.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
25 / 30
.
Velocidade de Evolução
A computação (eletrônica) é uma área relativamente recente.
▶
Desde o final da década de 1940.
No entanto, a evolução tem ocorrido de forma muito rápida.
Fonte: Patterson e Hennessy.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
26 / 30
.
Velocidade de Evolução (Mais)
A evolução não é apenas quantitativa.
▶
▶
▶
Memória maior.
Clock mais alto.
...
Ocorrem também evoluções tecnológicas/arquiteturais.
▶
▶
▶
▶
Memória cache.
Múltiplos núcleos.
SSDs.
...
Ser capaz de acompanhar a evolução é fundamental.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
27 / 30
.
Importância da Disciplina: Resumo
Para a enorme maioria das funções desempenhadas por profissionais de SI, ter algum nível
de conhecimento de Arquiteturas de Computadores é fundamental.
Conhecimentos são requeridos em diversas áreas:
▶
▶
▶
▶
Desenvolvimento de software.
Suporte.
Gerenciamento de processos
...
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
28 / 30
.
Conhecimentos Esperados
Ao final desta disciplina, espera-se que o aluno:
▶
▶
▶
▶
▶
▶
Conheça os principais macro-componentes de uma arquitetura de computadores.
Entenda como estes componentes se comunicam.
Entenda como informações são armazenadas e processadas.
Saiba que aspectos do hardware determinam ou influenciam o desempenho.
Como programas são executados no hardware.
Saiba avaliar qual a melhor arquitetura para um dado tipo de aplicação.
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
29 / 30
.
Próxima Aula
Faremos um histórico sobre a evolução dos computadores.
▶
▶
▶
Primeiros computadores.
Tecnologias empregadas ao longo dos anos.
Onde estamos hoje?
.
Diego Passos (UFF)
Apresentação do Curso
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
FAC
.
.
.
.
.
.
.
30 / 30
.
Download

Aula 1: Apresentação do Curso - Universidade Federal Fluminense