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 .