Uploaded by Eva Martins

1 Introducao IAC 2023

advertisement
Introdução à Arquitetura de
Computadores
Um pouco sobre mim
• João Barreto
• Percurso académico
• LEIC + MEIC + DEIC, IST
• Durante o PhD, passei temporadas no EPFL (Lausanne, Suiça) e Sorbonne
Université (Paris, França)
• Professor universitário há ~15 anos
• Principalmente em disciplinas relacionadas com as camadas “sistema”
• Sistemas Operativos, Sistemas Distribuídos, e agora IAC
• Investigação: ajudar os programadores a fazer o melhor uso das
arquiteturas de computadores modernas
• Com a ajuda de muitos alunos de mestrado e doutoramento
• https://www.dpss.inesc-id.pt/~jpbarreto/
2
Uma (r)evolução permanente
EDSAC I, June 1948, University of Cambridge
A revolução, hoje
• Em declínio: Lei de Moore e Dennard Scaling
• Em crescimento: Aceleradores
• Novas aplicações
• Telemóveis (5G, 6G)
• Internet (e.g., World Wide Web)
• Motores de busca, redes sociais, streaming
• Inteligência artificial
• Bioinformática
• Etc.
Os computadores estão em
todo o lado!
Desempenho dos processadores e Lei de Moore
Principais desafios: eficiência energética, paralelismo (instruções), latência (memória)
Em resumo
• Nos últimos 50 anos, a Lei de Moore comandou os avanços tecnológicos
• Melhorias de desempenho/energia sem ter de mudar o software
• “daqui a 18 meses temos um processador 2x mais rápido ao mesmo custo”
• Na última década, este crescimento entrou em declínio
•
•
•
•
Fim da Dennard scaling (levando à estagnação da frequência dos relógios do CPU)
Desaceleração brusca da Lei de Moore (custo/transístor)
Falta de alternativa à tecnologia CMOS
Eficiência energética é o principal constrangimento
• Já não há “almoços grátis” para os programadores
• Paralelização e distribuição dos sistemas
• Aceleradores: novas arquiteturas “application-specific” (ML, crypto, redes)
Tipos de computadores
• Computadores pessoais (PCs)
• De uso geral (“general purpose”), com uma grande variedade de software
• Necessidade de bom compromisso custo/desempenho
• Servidores
• Baseados em rede
• Elevada capacidade, desempenho e fiabilidade
Tipos de computadores
• Supercomputadores
• Servidor “especial” para cálculos científicos e de engenharia altamente
complexos
• Elevadíssimo desempenho mas representando uma fração pequena do
mercado global
• Computadores embebidos
• “Escondidos” como componentes de múltiplos sistemas (industriais,
automóveis, IoT, etc.)
• Restrições muito fortes no compromisso energia/desempenho/custo
A era pós-PC
“Por baixo” dos vossos programas
• Software da aplicação
• Escrito numa linguagem de alto nível (C, Java, etc.)
• Software do sistema
• Compilador: traduz o vosso código em código-máquina
• Sistema operativo
• Comunicações com dispositivos de entrada e saída
• Gerir memória e armazenamento
• Agendar tarefas e partilhar recursos
• Hardware
• Processador, memória, controladores de E/S
Abstraindo os bits
• Linguagem de alto nível
• Nível de abstração próximo do domínio do
problema
• Foco na produtividade e portabilidade
• Linguagem Assembly
• Representação textual das instruções
• Representação no hardware
• Bits
• Instruções e dados codificados
A disciplina
O que vão aprender
• Como é que os programas são traduzidos em linguagem máquina
• E como é que o hardware executa esses programas
• A interface hardware/software
• O que determina o desempenho de um programa
• E como pode ser melhorado
• Como é que a arquitetura do hardware pode melhorar o
desempenho
• As bases arquiteturais para disciplinas como Sistemas Operativos,
Organização de Computadores e Compiladores
7 ideias fundamentais
• Usar abstrações para simplificar o desenho
• Acelerar o caso comum
• Desempenho através de paralelismo
• Desempenho através de pipelining
• Desempenho através de predição
• Hierarquia de memórias
• Confiabilidade através de redundância
Competências
• Teóricas
• Funcionamento básico de um computador: circuitos digitais, representação
de números, arquitetura básica de um computador, execução das instruções
• O computador como um Sistema: programação em assembly e C, instruções,
rotinas, periféricos, interrupções
• Outros aspetos: estrutura interna do processador, microprogramação,
pipelines, caches e memória virtual
• Laboratórios
• Montagem e implementação de circuitos digitais (em simulador)
• Desenvolvimento e execução de programas em linguagem assembly
Bibliografia
• Principal
[Delgado&Ribeiro_2014]
Arquitetura de computadores, 5ª edição
• Secundária
[Patterson&Hennessy_2021]
Computer Organization and Design. The
Hardware/Software Interface. RISC-V Edition, 2nd edition
[Arroz&Monteiro&Oliveira_2020]
Arquitectura de Computadores: dos Sistemas Digitais aos
Microprocessadores, 5ª edição
Aulas teóricas
• 5 horas/semana (2 x 2h + 1h)
• Aulas teórico-práticas:
• exposição da matéria
• resolução de exercícios
• avaliação (testes) nas próprias aulas
• Procurem estudar o livro antes ou depois de cada teórica
• A aprendizagem é contínua: o truque para o sucesso é nunca perder
o contacto com a matéria
Laboratórios
• 3 horas/semana (2 x 1.5h)
• Começam na segunda semana
• Grupos de, preferncialmente, 3 alunos (menos só se houver espaço)
• Formados dentro do turno laboratorial em que estão inscritos
• Inscrições no Fenix abrem a seguir às teóricas de hoje
• Guiões de laboratório:
• Estão orientados ao auto-estudo e para o projeto
• Podem ser feitos em qualquer altura
• Irão sendo disponibilizados algum tempo antes da aula
Avaliação
• Competências:
• teóricas (60%): três MAP45 (20% cada), no horário das aulas
• práticas (40%): projeto (10% versão inicial, 30% versão final)
• Nota final = somatório pesado das notas das competências teóricas e
práticas
• Nota mínima para média dos testes = 8,0 valores
• Nota mínima para nota prática = 8,0 valores
• Na data do exame (30 junho, 8h00):
• Podem melhorar só um, dois ou os três MAPs
• Conta a melhor nota entre um MAP e a parte respetiva do exame
Provas de avaliação
• MAPs (individuais):
• Nas aulas teóricas (30 min, a 22 maio, 30 maio e 12 junho)
• Exame (30 junho)
• Projeto (em grupo, mas notas individuais):
•
•
•
•
•
Enunciado disponível em breve
Versão intermédia (26 maio, 23h59, no Fenix)
Entrega final (9 junho, 23h59, no Fenix)
Há aulas de apoio ao projeto antes de cada entrega
Discussões na última semana de aulas (horário normal do laboratório, horas a
divulgar para cada grupo)
Material de apoio
• Site da disciplina no Fenix
• Fóruns de discussão: moodle.dei.tecnico.ulisboa.pt
• Ambiente de aprendizagem: simulador
• Microprocessador pedagógico (PEPE – Processador Especial Para Ensino)
• Simulador: processador, memória e dispositivos
• Trabalhos práticos (guiões do laboratório ou projeto) podem ser feitos
fora das aulas
Simulador
Não esquecer
• Laboratórios só arrancam na próxima semana
• Inscrevam-se nos vossos grupos laboratoriais no Fénix
Bibliografia
Recomendada
• [Delgado&Ribeiro_2014]
• Cap. 1
Secundária/adicional
• [Patterson&Hennessy_2021]
• Cap. 1
Download