Visão Geral

MO601 - Arquitetura de Computadores II

http://www.ic.unicamp.br/~rodolfo/mo601

Rodolfo Azevedo - rodolfo@ic.unicamp.br

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Como processadores evoluem?

  • Novas descobertas microarquiteturais
    • Caches
    • Predição de desvio
    • Renaming, ...
  • Melhorias tecnológicas
    • Velocidade relativa entre transistor e fios
  • Evolução de software
    • Novos softwares (desktop, mobile, servidor, UI, ...)
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Arquitetura vs Microarquitetura

  • Arquitetura é o modelo

    • x86, ARM, RISC-V, Power
  • Microarquitetura é a implementação

    • Intel i7 geração 11, AMD Ryzen 3, ARM Cortex-A53, RISC-V RV32IMAC, PowerPC 970
  • Conjunto de instruções pode ser visto como a borda

    • Pode facilitar ou dificultar a implementação em cada um dos lados
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

ISA é importante?

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Conjuntos de Instruções do Processador - ISA

  • "The portion of the computer that is visible to the programmer or the compiler writer." - Computer Architecture: A quantitative approach

  • "An instruction set architecture (ISA) is an abstract model of a computer. It is also referred to as architecture or computer arquiteture." - Wikipedia

  • "A contract HW and SW designers agreed to obey" - Minha definição de uma linha

  • "Um contrato em que os projetistas de hardware e software concordaram em obedecer" - Minha definição de uma linha

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Lei de Moore

  • Densidade de transistores dobra a cada 2 anos

    • 90nm, 65nm, 45nm, 32nm, 22nm, 14nm, 10nm, ...
  • Há um fator de entre cada geração, o que significa uma diminuição do tamannho de 1 para 0,7 em cada dimensão

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Classificações

  • RISC vs CISC
  • Pipeline vs Sem Pipeline
  • Execução Em Ordem vs Fora de Ordem
  • Escalar vs Superescalar
  • Vetorial
  • Multicore
  • Multithread
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

RISC vs CISC

  • O conjunto de instruções de um processador pode ser complexo ou simples
    • CISC: Complex Instruction Set Computer
    • RISC: Reduced Instruction Set Computer
  • Esse conceito foi mudando um pouco com o tempo, hoje temos ISAs RISC com muitas instruções e com um bom grau de complexidade
  • Arquiteturas RISC são baseadas em modelos load/store onde todo o acesso à memória só se dá através de instruções explicitas
  • É comum arquiteturas RISC possuírem mais registradores
  • É comum arquiteturas CISC possuírem instruções com mais sub-ações
  • É comum arquiteturas CISC serem implementadas total ou parcialmente com microinstruções
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline vs Sem Pipeline

  • Divide a execução de uma instrução em fases
  • Aumenta o ILP (Instruction Leval Parallelism)
  • Boa relação custo-benefício
  • Praticamente todos os processadores atuais
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Execução Em Ordem vs Fora de Ordem

  • Execução Em Ordem segue a sequência de instruções do código binário
  • Execução Fora de Ordem executa instruções assim que possível
  • Como um processador pode executar uma instrução antes da anterior?
    • O que é necessário?

    • O que acontece com o ILP?

    • O que acontece com a complexidade do hardware?

      a = 5;
      b = 7;
      
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Escalar vs superescalar

  • Processador escalar não pode executar mais de uma instrução em ao menos um de seus estágios de pipeline
    • IPC <= 1
  • Superescalar é capaz de executar mais de uma instrução em qualquer dos estágios de pipeline
    • IPC pode ser maior que 1
  • VLIW
    • Em ordem
    • Ordem indicada no código binário
    • Latências expostas ao programador/compilador
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Vetorial

  • Instruções que operam sobre vetores de dados
    • Antigamente eram grandes processadores com imensos vetores
    • Hoje são normalmente extensões para operações vetoriais
  • SIMD (Single Instruction, Multiple Data)
  • Intel AVX-2 possui vetores de até 512 bits
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Multicore

  • Múltiplos cores no mesmo chip (die)
  • Pode executar múltiplos programas ou múltiplas threads
    • Processo vs thread?
  • Cada core é, normalmente, completamente independente
  • Surge a necessidade de coerência de cache dentro do chip
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Multithread

  • Compartilha os recursos entre múltiplas threads no mesmo core (SMT)
  • Poucos recursos precisam de replicação
    • PC
    • Banco de Registradores
    • Alguns registradores de controle/status
  • Utiliza menos recursos que um multicore
  • Um processador multicore pode ser multithread
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Visão multithread

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Segmentos de Mercado

  • Servidores
    • Múltiplos processadores, desempenho, dissipação de energia
  • Desktop
    • Desempenho, barulho
  • Mobile
    • Consumo de energia, desempenho
  • Ultramobile
    • Consumo de energia
  • Embarcado
    • Múltiplos aspectos com tradeoffs entre eles como desempenho vs consumo de energia
MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline convencional de 5 estágios

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline convencional de 5 estágios

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline convencional de 5 estágios

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline convencional de 5 estágios

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline convencional de 5 estágios

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline convencional de 5 estágios

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0

Pipeline superescalar

MO601 - Arquitetura de Computadores II - Rodolfo Azevedo - CC BY-SA 4.0