Abstrações e desempenho de computadores

Veja como um sistema computacional é construído em camadas, dos aplicativos e do sistema operacional, passando pelo conjunto de instruções, até as portas lógicas e os transistores, e como uma linha de código se torna instruções de máquina. Depois, aprenda a medir corretamente o desempenho: tempo de execução e vazão, tempo de CPU, frequência de clock e ciclos por instrução, combinados na equação de desempenho. Use a lei de Amdahl para prever o ganho que uma melhoria ou núcleos adicionais de processador podem de fato proporcionar e veja por que os limites de potência encerraram a corrida por clocks mais rápidos e levaram aos processadores de múltiplos núcleos.

IntermediárioAula 1 de 6 do curso Curso de Organização e arquitetura de computadores

O que você vai aprender

  1. Explicar como as camadas de abstração conectam um aplicativo aos transistores que o executam, acompanhar um comando do código de alto nível às instruções de máquina e identificar a arquitetura do conjunto de instruções como o contrato entre software e hardware.
    • Percorrer as camadas de abstração dos aplicativos aos transistores
      Identificar as camadas de um sistema computacional, dizer o que cada uma oferece e oculta e explicar por que a abstração torna possível projetar sistemas complexos.
    • Acompanhar um programa do código de alto nível às instruções de máquina
      Descrever como compiladores, montadores, ligadores e carregadores transformam um programa de alto nível em instruções de máquina binárias e acompanhar um comando até seu padrão de bits.
    • Explicar a arquitetura do conjunto de instruções como interface entre hardware e software
      Distinguir a ISA, a interface binária de aplicação e a implementação e explicar por que uma ISA pode ter muitas implementações com desempenhos diferentes.
  2. Usar tempo de execução e vazão para definir desempenho, comparar corretamente dois computadores e medir os tempos relevantes para um programa.
    • Comparar computadores pelo tempo de resposta e pela vazão
      Definir tempo de resposta e vazão, expressar o desempenho como o inverso do tempo de execução e informar corretamente quantas vezes um computador é mais rápido que outro.
    • Medir o tempo decorrido, o tempo de CPU e os ciclos de clock
      Separar o tempo decorrido do tempo de CPU, interpretar medições de tempo e converter entre período e frequência de clock com as unidades corretas.
  3. Relacionar o tempo de CPU à contagem de instruções, aos ciclos por instrução e à frequência de clock, calcular qualquer um deles a partir dos demais e avaliar quais escolhas de projeto e afirmações sobre desempenho realmente alteram o tempo de execução.
    • Relacionar o tempo de CPU aos ciclos de clock e à frequência de clock
      Calcular o tempo de CPU a partir dos ciclos e da frequência de clock e resolver problemas de projeto em que um clock mais rápido custa ciclos adicionais.
    • Calcular o CPI a partir de uma distribuição de instruções
      Definir ciclos por instrução, calcular o CPI médio como uma média ponderada das classes de instruções e usá-lo para comparar sequências de código.
    • Aplicar a equação clássica de desempenho
      Usar tempo de CPU = contagem de instruções × CPI × período de clock para calcular e comparar tempos de execução e identificar quais fatores são alterados pelo algoritmo, linguagem, compilador, ISA, organização e tecnologia.
    • Avaliar afirmações sobre desempenho e resumos de testes de desempenho
      Explicar por que MIPS e frequência de clock podem enganar, como conjuntos de testes de desempenho como o SPEC CPU apresentam resultados como razões e por que a média geométrica é usada para resumi-los.
  4. Calcular a aceleração global quando apenas uma parte de um programa fica mais rápida, encontrar o limite dessa aceleração e aplicar o mesmo raciocínio a programas executados em muitos núcleos de processador.
    • Calcular a aceleração global decorrente de uma melhoria
      Aplicar a lei de Amdahl a uma melhoria parcial, encontrar a melhoria necessária para uma aceleração desejada e reconhecer quando uma meta é impossível.
    • Usar a lei de Amdahl para analisar a aceleração com múltiplos núcleos
      Calcular a aceleração e a eficiência de um programa parcialmente paralelo em muitos núcleos, explicar por que as acelerações reais são menores e comparar problemas de tamanho fixo com problemas de tamanho crescente.
  5. Calcular como tensão, frequência e capacitância determinam a potência e a energia de um chip, explicar por que o aumento da potência encerrou a era de núcleos únicos cada vez mais rápidos e explicar por que os processadores passaram a ter múltiplos núcleos e o que isso exige do software.
    • Calcular a potência dinâmica e a energia dinâmica em chips CMOS
      Usar as relações entre capacitância, tensão, frequência, potência e energia para estimar o efeito de alterações de projeto e distinguir potência dinâmica de estática.
    • Explicar a barreira de potência e o fim do escalonamento de Dennard
      Descrever como a redução dos transistores antes proporcionava clocks mais rápidos com densidade de potência constante e por que a fuga e o limite de tensão impediram o aumento das frequências de clock após meados dos anos 2000.
    • Explicar por que os processadores passaram a ter múltiplos núcleos e o que isso exige do software
      Mostrar com a equação de potência por que vários núcleos mais lentos podem superar um núcleo rápido e explicar por que obter velocidade de processadores de múltiplos núcleos depende de software paralelo.

Guia de estudo de Desempenho de computadores

5 capítulos

1

Conecte o software ao hardware

Uma linha de código-fonte atravessa várias interfaces antes que um processador possa executá-la. Os aplicativos dependem do software de sistema, as instruções de máquina dependem de uma ISA e os projetistas de hardware implementam essas instruções com lógica e transistores. Acompanhar esse caminho permite separar o comportamento exigido de um programa das escolhas de projeto que determinam sua velocidade e entender por que processadores compatíveis podem ter desempenhos muito diferentes.

1.1 Dos aplicativos às chaves físicas

Uma abstração mostra o que um componente faz enquanto oculta os detalhes de seu funcionamento. Um navegador pode pedir ao sistema operacional que leia um arquivo sem controlar os circuitos do dispositivo de armazenamento. Interfaces definidas permitem projetar, testar e substituir partes de um sistema sem reconstruir todas as camadas de uma vez.

As camadas e suas funções

Uma ordem comum, da tarefa do usuário aos dispositivos físicos, é:

  1. O software aplicativo realiza tarefas como editar uma planilha ou navegar na web.
  2. O software de sistema fornece serviços compartilhados e traduz programas. Inclui sistemas operacionais, compiladores, montadores, ligadores e bibliotecas.
  3. A arquitetura do conjunto de instruções (ISA) define as instruções de máquina e outros comportamentos visíveis ao software de baixo nível.
  4. A microarquitetura, ou organização, implementa essa ISA com um caminho de dados, uma unidade de controle, pipelines e caches.
  5. A lógica digital constrói operações e armazenamento a partir de portas, somadores, multiplexadores e registradores.
  6. Os circuitos conectam componentes eletrônicos para realizar essa lógica.
  7. Os dispositivos, principalmente transistores, fornecem o comportamento físico de comutação.

Esses limites são visões úteis de uma mesma máquina. Diagramas diferentes podem agrupar camadas vizinhas. Um sistema operacional é software: a CPU executa suas instruções, inclusive instruções privilegiadas que o ajudam a gerenciar recursos com segurança.

Acompanhe uma adição

Considere o comando C total = price + tax;. Um compilador escolhe onde os valores ficam e quais instruções realizam a adição. Ele pode escolher uma instrução de adição sem projetar um somador. Quem projeta a microarquitetura associa essa instrução ao hardware de execução. Quem projeta a lógica constrói o somador a partir de portas; quem projeta os circuitos lida com os detalhes elétricos por trás dessas portas. Cada pessoa usa uma interface mais simples para o nível inferior.

O computador físico tem cinco componentes clássicos: entrada, saída, memória, caminho de dados e unidade de controle. O caminho de dados opera sobre dados. A unidade de controle dirige as operações e coordena a memória e a entrada e saída. Juntos, o caminho de dados e a unidade de controle formam o processador, ou CPU.

ArmazenamentoFunção principalMantém os dados sem alimentação?
DRAMMemória principal de trabalhoNão
SRAMCaches pequenas e rápidas próximas ao processadorNão
Flash ou disco magnéticoArmazenamento secundárioSim

Um transistor funciona como uma chave controlada eletricamente. Um circuito integrado, ou chip, reúne muitos transistores em uma única peça de silício. Essas chaves sustentam a lógica; a lógica sustenta as instruções; as instruções sustentam o software.

Mais transistores e velocidades diferentes

A lei de Moore começou com a observação de Gordon Moore em 1965 e foi revisada em 1975 para uma tendência de duplicação da contagem de transistores aproximadamente a cada dois anos. Dez dessas duplicações multiplicam uma contagem por 210=1024, ao longo de cerca de 20 anos. Essa é uma tendência de fabricação, não uma garantia física; seu ritmo diminuiu.

Cumprir uma interface preserva o comportamento prometido por ela. Isso não determina desempenho, consumo de energia ou custo. Dois processadores podem implementar corretamente a mesma instrução de adição usando circuitos, caches e frequências de clock diferentes. O aplicativo obtém o mesmo resultado calculado, mas espera por tempos diferentes.

Principais conclusões

  • Uma abstração expõe um comportamento útil e oculta detalhes de implementação.
  • As camadas conectam aplicativos, software de sistema, ISA, microarquitetura, lógica, circuitos e dispositivos.
  • A CPU combina caminho de dados e unidade de controle; memória e entrada e saída completam a visão clássica de cinco componentes.
  • DRAM e SRAM são voláteis; flash e discos magnéticos preservam dados sem alimentação.
  • A lei de Moore descreve uma tendência na contagem de transistores, não um crescimento garantido de desempenho.
  • Interfaces compatíveis preservam o comportamento especificado, enquanto velocidade e energia continuam dependendo das camadas inferiores.

1.2 Como o código-fonte se torna instruções

Um processador executa linguagem de máquina, instruções codificadas em bits. O código de alto nível descreve um cálculo com variáveis, expressões, laços e funções. A tradução conecta essas duas visões, frequentemente expandindo um comando curto em várias instruções.

O caminho de um programa compilado

Para um programa em C, as etapas principais são:

EtapaEntrada e resultado
CompiladorTraduz o código-fonte para linguagem de montagem ou diretamente para código objeto
MontadorTransforma a linguagem de montagem simbólica em código de máquina em um arquivo objeto
LigadorCombina arquivos objeto e código de bibliotecas, resolvendo referências entre eles
CarregadorMapeia o executável na memória e inicia o programa

Um arquivo objeto pode conter código de máquina sem ainda ser um programa executável completo. Por exemplo, uma chamada a uma função definida em outro arquivo precisa que o ligador resolva essa referência. O carregador faz parte do suporte à execução do sistema operacional, não é outro tradutor de código-fonte.

Acompanhe um comando C

Suponha que price esteja no registrador x6, tax esteja em x7 e o compilador coloque total em x5. Então:

total = price + tax;

pode se tornar esta instrução RISC-V:

add x5, x6, x7

O destino aparece primeiro no texto da linguagem de montagem. A instrução soma os valores em x6 e x7 e escreve o resultado em x5. Sua codificação no formato R de 32 bits coloca os campos em uma ordem diferente:

CampoSignificado aquiBits
funct7Seleciona a operação de adição com os outros campos de operação0000000
rs2Registrador de origem 700111
rs1Registrador de origem 600110
funct3Seletor da operação000
rdRegistrador de destino 500101
opcodeFamília da instrução0110011

A união dos campos resulta em 0000000 00111 00110 000 00101 0110011, ou 0x007302B3. Os espaços tornam os campos legíveis; eles não são armazenados como parte da instrução.

Um comando do código-fonte não significa necessariamente uma instrução. Mesmo com todos os operandos em registradores, f = (g + h) - (i + j); precisa de duas adições e uma subtração. Carregar operandos da memória acrescenta instruções. Portanto, a contagem de instruções executadas depende da tradução e da ISA, não apenas do número de linhas do código-fonte.

Outros caminhos para o código de máquina

Um programa de alto nível frequentemente pode ser recompilado para outra ISA. Seu executável existente está vinculado à sua ISA e às convenções do sistema operacional. Um executável x86-64 precisa de recompilação, emulação ou tradução binária para ser executado em uma máquina Arm ou RISC-V que não possa executá-lo nativamente.

Bytecode é um formato intermediário de instruções para um ambiente de execução de linguagem. O CPython compila o código-fonte Python para bytecode e o interpreta com um programa interpretador. Máquinas virtuais Java costumam usar compilação em tempo de execução (JIT) para transformar bytecode usado com frequência em código de máquina enquanto o programa é executado. Em ambos os casos, a CPU física acaba executando instruções de máquina.

A linguagem de montagem continua sendo texto, mesmo quando uma linha se parece muito com uma instrução real. Uma pseudoinstrução é uma facilidade aceita pelo montador: em RISC-V, mv x5, x6 torna-se addi x5, x6, 0. O controle exato das instruções pode ser útil em código de sistema operacional e em laços críticos, mas abre mão de parte da portabilidade e da liberdade do compilador proporcionadas pelo código de alto nível.

Principais conclusões

  • Compilação, montagem, ligação e carregamento realizam funções diferentes.
  • A linguagem de montagem é texto simbólico; o código de máquina é a codificação binária que o processador executa.
  • Um comando de alto nível pode executar várias instruções, inclusive operações de memória.
  • Interpretadores e compiladores JIT ainda dependem de instruções de máquina no nível do hardware.
  • Um programa-fonte pode ser recompilado para outra ISA; seu executável existente geralmente não é portável.

1.3 A ISA, a ABI e o projeto do processador

A arquitetura do conjunto de instruções (ISA) é o contrato entre o hardware e o software de nível mais baixo. Ela informa a quem programa em linguagem de máquina quais operações existem e o que elas significam. O projeto interno de um processador pode mudar enquanto esse contrato permanece estável.

O que o contrato especifica

Uma ISA define instruções e suas codificações binárias, registradores visíveis a quem programa, comportamento de endereçamento, tipos de dados suportados e mecanismos arquiteturais usados para acessar a entrada e saída. Um compilador tem essas características como alvo quando transforma um cálculo em instruções.

Uma implementação é um projeto físico que obedece à ISA. Sua microarquitetura descreve escolhas internas como unidades de execução, estágios de pipeline, tamanhos de cache e predição de desvios. Essas escolhas afetam fortemente o tempo de execução.

PerguntaTipo de escolha
Existe uma instrução de multiplicação e qual resultado ela produz?ISA
Essa multiplicação leva um ciclo ou quatro?Microarquitetura
Quais registradores transportam argumentos de função?Convenção da ABI
Qual é o tamanho da cache de primeiro nível?Microarquitetura

A distinção diz respeito ao comportamento prometido. Um programa deve receber o resultado de multiplicação especificado. Geralmente, não precisa saber como o multiplicador foi construído para obter esse resultado.

Por que uma ISA sozinha não basta para a compatibilidade binária

A interface binária de aplicação (ABI) acrescenta à ISA de nível de usuário a interface do sistema operacional e as convenções binárias. Ela especifica convenções de chamada, como os registradores de argumentos, além da organização dos dados e das convenções de chamadas de sistema. Duas máquinas podem executar as mesmas codificações de instruções, mas discordar sobre como uma função recebe um argumento.

A compatibilidade binária exige suporte aos recursos de ISA e à ABI do programa. Mesmo na família x86, que começou com o 8086 da Intel em 1978, o suporte do sistema operacional e os modos de execução são importantes. A compatibilidade retroativa preservou muitos programas antigos enquanto as implementações dos processadores mudaram, mas compartilhar um nome de família não garante que todo executável histórico seja executado em todos os ambientes.

Uma arquitetura, muitas implementações

Intel e AMD implementam x86-64 com projetos internos diferentes. Arm e RISC-V também permitem implementações com orçamentos de potência e desempenho muito diferentes. RISC-V surgiu na Universidade da Califórnia em Berkeley, em 2010, e é uma ISA aberta e livre de royalties. Seus conjuntos básicos para inteiros incluem RV32I e RV64I; as extensões padronizadas incluem M para multiplicação e divisão de inteiros e F e D para operações de ponto flutuante.

Um programa que usa uma extensão opcional precisa de uma implementação que a suporte. A existência de uma base compartilhada não torna toda extensão universal. O exemplo de adição em RISC-V ilustra a mesma fronteira entre hardware e software encontrada em Arm e x86, embora suas instruções e codificações sejam diferentes.

Riqueza de instruções e tempo de execução

Uma ISA pode expressar mais trabalho em uma instrução, reduzindo a contagem de instruções. Essa instrução também pode levar mais ciclos ou exigir um ciclo mais longo. O cálculo relevante é o produto completo:

tempo de CPU=contagem de instruc¸o˜es×CPI×perıˊodo de clock.

Um conjunto de instruções mais rico não basta para determinar qual máquina é mais rápida. Uma ISA compartilhada também não estabelece velocidades iguais: processadores compatíveis podem usar clocks, caches e unidades de execução diferentes para produzir os mesmos resultados exigidos.

Principais conclusões

  • A ISA especifica o comportamento da máquina visível a quem programa; a microarquitetura o implementa.
  • A ABI acrescenta as convenções binárias e a interface do sistema operacional necessárias aos executáveis.
  • A compatibilidade binária exige os recursos relevantes da ISA, o ambiente de execução e a ABI.
  • RISC-V combina uma ISA básica para inteiros com extensões padronizadas opcionais.
  • A riqueza de instruções altera os compromissos entre contagem de instruções, CPI e período de clock.
2

Meça o desempenho que importa

O desempenho começa com o trabalho que alguém precisa concluir: uma tarefa, um fluxo de requisições ou uma combinação dos dois. A medida de tempo adequada depende dessa necessidade. Separe o tempo que um usuário espera do tempo que um processador passa processando e, depois, converta entre frequência de clock e duração do ciclo. Essas distinções evitam que um processador rápido, um servidor de alta capacidade e um aplicativo responsivo se tornem três afirmações diferentes ocultas pela mesma palavra.

2.1 Tempo para uma tarefa e trabalho por segundo

Uma pessoa que espera a conversão de um arquivo quer um tempo de resposta curto. Um serviço que processa muitas conversões também precisa de alta vazão. Essas medidas respondem a perguntas diferentes, mesmo quando ambas descrevem o mesmo computador.

Escolha a grandeza adequada à tarefa

O tempo de resposta, também chamado de tempo de execução ou latência, vai do início da tarefa até sua conclusão. Inclui processamento, acessos à memória e ao armazenamento, entrada e saída e atividade relevante do sistema operacional. Se a tarefa espera em uma fila após ser enviada, essa espera contribui para o tempo de resposta percebido pelo usuário.

Vazão é o trabalho concluído por unidade de tempo. Suas unidades podem ser requisições por segundo ou tarefas por hora. Uma máquina pode concluir muitas tarefas por hora enquanto cada tarefa individual ainda leva muito tempo.

NecessidadeMedida útilMelhoria
Concluir uma requisição interativaTempo de respostaMenos segundos por requisição
Processar uma grande carga de trabalho independenteVazãoMais requisições por segundo
Atender a muitas pessoas de forma aceitávelAmbasMais trabalho concluído com esperas aceitáveis

Adicionar processadores pode aumentar a vazão ao executar tarefas independentes simultaneamente. Isso não precisa reduzir o processamento da própria tarefa, embora possa reduzir o tempo gasto esperando por um processador livre. Um processador mais rápido frequentemente ajuda ambas as medidas.

Compare o desempenho no sentido correto

Para a mesma tarefa, defina:

DesempenhoX=1TX.

Se A leva 10 s e B leva 15 s, o desempenho de A em relação ao de B é:

DesempenhoADesempenhoB=TBTA=1510=1,5.

A é 1,5 vez mais rápido. O desempenho de B é dois terços do de A. Coloque o maior tempo de execução sobre o menor ao informar quantas vezes a máquina mais rápida é mais veloz.

Para uma melhoria, aceleração é o tempo antigo dividido pelo novo. Uma compilação que cai de 60 s para 48 s tem aceleração:

6048=1,25.

Sua redução de tempo é:

60−4860=0,20=20%.

O desempenho aumentou 25%, enquanto o tempo caiu 20%. Essas porcentagens usam denominadores diferentes. Dizer “20% mais rápido” pode obscurecer qual grandeza mudou; a razão e os tempos medidos tornam a afirmação clara.

A mesma vazão pode ocultar esperas diferentes

Um serviço que conclui 1.200 requisições por minuto entrega 20 requisições por segundo. Essa taxa pode resultar do processamento de uma requisição a cada 50 ms, com cada requisição levando 50 ms. Também pode resultar do processamento de dez requisições em paralelo, cada uma levando 500 ms: dez conclusões a cada meio segundo novamente resultam em 20 por segundo.

A segunda organização tem a mesma vazão, mas dez vezes o tempo de processamento por requisição. Um resultado de vazão, por si só, não determina a latência experimentada por um usuário. Compare o mesmo trabalho concluído, informe o intervalo de tempo e mantenha as unidades ao converter entre minutos e segundos.

Principais conclusões

  • O tempo de resposta mede quanto tempo uma tarefa leva; a vazão mede o trabalho concluído por unidade de tempo.
  • Para a mesma tarefa, o desempenho é o inverso do tempo de execução.
  • A aceleração é o tempo antigo dividido pelo novo; a redução percentual do tempo usa o tempo antigo como denominador.
  • Processadores adicionais podem aumentar a vazão sem reduzir o processamento de uma tarefa sequencial.
  • A mesma vazão pode coexistir com latências de requisição muito diferentes.

2.2 Leia resultados de tempo e converta unidades de clock

Um cronômetro mede tudo entre o início e o fim. A equação de desempenho da CPU mede o trabalho do processador. Manter essas visões separadas evita atribuir a uma atualização do processador a redução de um tempo de espera que ela não pode eliminar.

Tempo decorrido e tempo de processador

O tempo decorrido, ou tempo de relógio de parede, inclui processamento, espera por arquivos ou pela rede e intervalos em que outros processos são executados. O tempo de CPU registra o tempo do processador atribuído à tarefa. O tempo de CPU do usuário executa o código do programa; o tempo de CPU do sistema executa código do sistema operacional em nome dele.

Suponha que o comando time do Unix informe “real 2,50 s, user 1,80 s, sys 0,20 s”. O programa usou:

1,80+0,20=2,00 s

de tempo de CPU. Para este exemplo de medição com uma única thread, os 0,50 s restantes representam tempo não atribuído à execução na CPU, como espera ou tempo fora de execução por decisão do escalonador. Se uma melhoria no processador reduzir pela metade a parte da CPU enquanto essa espera permanece fixa, o tempo decorrido se torna:

0,50+2,002=1,50 s.

Reduzir pela metade os 2,50 s completos aceleraria incorretamente também a espera. O desempenho da CPU frequentemente se concentra no tempo do usuário; o desempenho do sistema é avaliado pelo tempo decorrido sob carga controlada do sistema.

Para um programa paralelo, o tempo de CPU é somado em suas threads e núcleos. Quatro núcleos trabalhando durante a maior parte de um segundo podem produzir 3,6 s de tempo de usuário durante 1,0 s de tempo decorrido. Nesse caso, subtrair o tempo de CPU somado do tempo decorrido não mede a espera.

A frequência de clock é o inverso do período

Um clock fornece um ritmo de sincronização ao hardware síncrono. O período de clock é dado em segundos por ciclo; a frequência de clock é dada em ciclos por segundo:

perıˊodo=1frequeˆncia.

A 4 GHz, a frequência é de quatro bilhões de ciclos por segundo. Um ciclo dura:

14×109 s=0,25 ns=250 ps.

A 2,5 GHz, o período é 400 ps. No sentido oposto, 312,5 ps por ciclo resultam em:

1312,5×10−12 Hz=3,2 GHz.
Prefixo ou unidadeValor
GHz109 ciclos/s
ns10−9 s
ps10−12 s
KiB210=1024 bytes
GiB230=1.073.741.824 bytes

Os prefixos de tempo e frequência usam potências decimais. Os prefixos binários de memória usam potências de dois. Rótulos como “GB” às vezes são usados de modo impreciso para quantidades binárias, portanto verifique o significado antes de converter um tamanho.

Interprete uma medição como uma execução

A frequência anunciada de um processador não registra cada momento da execução. Aumentos temporários de frequência, gerenciamento de energia e redução de desempenho por limitação térmica alteram a frequência. O conteúdo da cache e a atividade em segundo plano também alteram o tempo medido. Repetir uma medição e informar um valor típico, como a mediana, ajuda a distinguir um resultado estável de uma execução excepcionalmente favorável. Use medições de tempo e frequência do mesmo intervalo de execução ao relacioná-las às contagens de ciclos.

Principais conclusões

  • O tempo decorrido inclui espera; o tempo de CPU inclui os tempos de usuário e de sistema atribuídos à tarefa.
  • O tempo de CPU somado em vários núcleos pode ultrapassar o tempo decorrido.
  • O período e a frequência de clock são inversos; mantenha a coerência entre segundos, nanossegundos e picossegundos.
  • GHz usa potências decimais de dez; KiB e GiB usam potências binárias de dois.
  • Aumentos temporários de frequência, limitação térmica, caches e trabalho em segundo plano podem alterar o resultado entre execuções.
  • Uma aceleração da CPU reduz a parte do tempo decorrido correspondente à CPU, mantendo as esperas não afetadas.
3

Calcule e compare o tempo de CPU

O tempo de CPU de um programa resulta de quantas instruções ele executa, de quantos ciclos essas instruções exigem e de quanto dura cada ciclo. Esses fatores podem variar em sentidos opostos quando um compilador ou processador muda. Examine orçamentos de ciclos e distribuições de instruções antes de comparar tempos completos de execução e, depois, use essas mesmas relações para avaliar afirmações sobre frequência de clock, taxa de instruções e resumos de testes de desempenho.

3.1 Transforme um orçamento de ciclos em tempo de CPU

Um ciclo de clock é uma unidade de tempo do processador, não uma instrução. Algumas instruções precisam de muitos ciclos, e a execução sobreposta pode concluir várias instruções por ciclo. Comece pelo total de ciclos necessários para o programa inteiro.

Divida ciclos por ciclos por segundo

Se um programa precisa de um número conhecido de ciclos, seu tempo de CPU é:

T=ciclos×perıˊodo=ciclosfrequeˆncia de clock.

Para seis bilhões de ciclos a 3 GHz:

T=6×1093×109=2 s.

As unidades explicam a divisão: ciclos divididos por ciclos por segundo resultam em segundos. Multiplicar ciclos pela frequência produziria ciclos ao quadrado por segundo, não uma duração. Multiplicar pelo período funciona porque sua unidade é segundos por ciclo.

A mesma equação pode determinar outra incógnita. Multiplique o tempo pela frequência para obter os ciclos; divida os ciclos pelo tempo desejado para encontrar a frequência necessária. Mantenha a frequência em Hz quando o tempo estiver em segundos ou cancele explicitamente os fatores correspondentes da ordem de bilhões.

Quando um clock mais rápido exige mais ciclos

O processador A executa um programa em 10 s a 3 GHz. Seu orçamento de ciclos é:

10×3×109=3×1010 ciclos.

Uma proposta de projeto B aumenta essa contagem de ciclos em 20%. Portanto, B deve executar:

1,2×3×1010=3,6×1010 ciclos.

Para terminar em 9 s, B precisa de:

fB=3,6×10109=4×109 Hz=4 GHz.

A razão entre as frequências de clock é quatro terços, aproximadamente 1,33. A aceleração real é apenas dez nonos, aproximadamente 1,11, pois B precisa de mais pulsos para concluir o trabalho. Tratar a contagem antiga de ciclos como inalterada levaria à previsão de uma frequência de clock baixa demais para atingir a meta.

Compare um compromisso sem escolher um tamanho de programa

Suponha que um projeto multiplique a contagem antiga de ciclos por um fator a e a frequência antiga de clock por um fator b. Então:

TnovoTantigo=ab.

O projeto é mais rápido quando o fator de crescimento da contagem de ciclos é menor que o fator de crescimento da frequência. Se ambos crescerem pelo mesmo fator, o tempo de CPU permanece inalterado. Essa razão é útil quando uma proposta de projeto informa mudanças percentuais, mas não fornece uma contagem absoluta de ciclos.

Por que o período tem um limite físico

Entre registradores, sinais percorrem a lógica combinacional e precisam se estabilizar antes que seus resultados sejam capturados. O caminho necessário mais lento é o caminho crítico. A tecnologia dos circuitos e a quantidade de trabalho atribuída a um estágio limitam quão curto pode ser um período de clock seguro.

Uma pessoa projetista pode dividir o trabalho em estágios de pipeline mais curtos para permitir um clock mais rápido, mas a reorganização também pode alterar a contagem de ciclos. Portanto, mais GHz é uma afirmação sobre a frequência dos pulsos. Para estabelecer uma melhoria de desempenho, combine essa informação com os ciclos de que o programa realmente precisa nesse projeto.

Principais conclusões

  • O tempo de CPU é igual aos ciclos multiplicados pelo período do ciclo, ou aos ciclos divididos pela frequência de clock.
  • O tempo multiplicado pela frequência de clock fornece os ciclos; os ciclos divididos pelo tempo desejado fornecem a frequência de clock necessária.
  • Compare o fator da contagem de ciclos com o fator da frequência quando ambos mudam.
  • O caminho crítico limita o período de clock, e reorganizar o trabalho pode alterar a contagem de ciclos.

3.2 Pondere o CPI pelas instruções executadas

Ciclos por instrução (CPI) é o total de ciclos de CPU de um programa dividido pela contagem de instruções executadas. É uma média de uma execução, portanto pode ser fracionária e depende de quais instruções são executadas e de como interagem com a máquina.

Some os ciclos antes de calcular a média

Para classes de instruções com contagens Ci e CPIs por classe ci:

ciclos=∑iCici,CPI=∑iCici∑iCi.

De forma equivalente, multiplique o CPI de cada classe por sua fração da contagem de instruções e some as contribuições. As frações devem descrever instruções executadas, não linhas de código-fonte nem o número de tipos de instrução.

Suponha que instruções da ULA levem 1 ciclo, cargas e armazenamentos levem 4 e desvios levem 2. Uma distribuição de 50%, 30% e 20% resulta em:

0,50(1)+0,30(4)+0,20(2)=0,50+1,20+0,40=2,1.

Para cinco bilhões de instruções a 3 GHz, o total é de 10,5 bilhões de ciclos e o tempo de CPU é 3,5 s. A média não ponderada dos custos das três classes, cerca de 2,33, está errada: as classes não aparecem com a mesma frequência.

Mais instruções ainda podem significar menos ciclos

Duas versões de um compilador usam os mesmos custos por classe:

ClasseCiclos por instruçãoVersão 1, milhõesVersão 2, milhões
ULA1400600
Carga/armazenamento4300150
Desvio2100100

A versão 1 executa 800 milhões de instruções. Suas contribuições em ciclos são 400, 1.200 e 200 milhões, totalizando 1.800 milhões. Seu CPI é:

1800800=2,25.

A versão 2 executa 850 milhões de instruções. Suas contribuições são 600, 600 e 200 milhões, totalizando 1.400 milhões. Seu CPI é:

1400850≈1,65.

A 3 GHz, os tempos são 0,60 s e cerca de 0,467 s. A versão 2 é cerca de 1,29 vez mais rápida, apesar de executar 50 milhões de instruções a mais. Substituir muitas instruções de memória custosas por mais instruções de ULA baratas pode fazer esse compromisso valer a pena.

O CPI pertence a uma carga de trabalho em uma máquina

Paradas de memória, faltas na cache, comportamento dos desvios e escolhas do compilador alteram o CPI efetivo. Um único “CPI do processador” não pode descrever todos os programas. Contadores de desempenho de hardware ou um simulador podem medir os totais de instruções e ciclos da carga de trabalho analisada.

Instruções por ciclo (IPC) usa os mesmos totais na ordem inversa:

IPC=1CPI.

Um IPC de 2,5 resulta em CPI 0,4. Várias instruções podem se sobrepor em um processador que emite e conclui várias instruções por ciclo. Uma média abaixo de um não significa que todo o percurso de uma instrução individual termine em uma fração de um pulso de clock.

Principais conclusões

  • Calcule o total de ciclos somando a contagem de cada classe multiplicada por seu CPI.
  • O CPI médio pondera os custos das classes pelas frações de instruções executadas.
  • Uma sequência mais longa de instruções pode ser executada mais rapidamente se sua contagem total de ciclos for menor.
  • O CPI depende do programa, do compilador e do comportamento da máquina durante a execução.
  • O IPC é o inverso do CPI; a execução sobreposta pode produzir CPI abaixo de um.

3.3 Combine contagem de instruções, CPI e frequência de clock

A equação de desempenho da CPU reúne os três fatores de tempo:

T=I×CPI×tciclo=I×CPIf.

Aqui I conta as instruções executadas e f é a frequência de clock em vigor durante a execução. Instruções multiplicadas por ciclos por instrução resultam em ciclos. Dividir por ciclos por segundo resulta em segundos.

Calcule um tempo e encontre uma incógnita

Um programa executa dois bilhões de instruções com CPI 1,5 em um processador de 2,5 GHz. Primeiro encontre o total de ciclos e depois converta-o em tempo:

2×109×1,5=3×109 ciclos, T=3×1092,5×109=1,2 s.

Para inferir o CPI a partir do tempo medido, rearranje a mesma equação:

CPI=TfI.

Para 1,6 bilhão de instruções em 0,8 s a 3,2 GHz, há 2,56 bilhões de ciclos. Dividir por 1,6 bilhão de instruções resulta em CPI 1,6.

Compare produtos completos

Dois processadores executam o mesmo programa compilado com a mesma contagem de instruções. A tem 4 GHz e CPI 1,8; B tem 2,5 GHz e CPI 1,0. Seus tempos por instrução são:

1,84×109=0,45 ns,1,02,5×109=0,40 ns.

B é 1,125 vez mais rápido. Seu CPI menor compensa mais do que suficientemente seu clock mais lento. A contagem de instruções é cancelada aqui porque é igual; ela não seria cancelada se os dois programas seguissem sequências de instruções diferentes.

Da mesma forma, uma opção do compilador que reduz a contagem de instruções em 10%, mas aumenta o CPI em 15%, na mesma frequência, altera o tempo por um fator de:

0,90×1,15=1,035.

O tempo aumenta 3,5%. A redução das instruções, isoladamente, aponta na direção errada.

Relacione escolhas de projeto aos fatores
EscolhaFatores que pode alterar
AlgoritmoContagem de instruções e possivelmente CPI
Linguagem de programação ou compiladorContagem de instruções e CPI
ISAContagem de instruções, CPI e frequência de clock
OrganizaçãoCPI e frequência de clock
Tecnologia de circuitosFrequência de clock

Essas relações são úteis para análise, não são controles independentes que sempre possam ser ajustados sem consequências. Uma cache reduz os ciclos de espera pela memória, diminuindo o CPI efetivo. A segmentação em pipeline sobrepõe instruções sucessivas e pode reduzir o CPI efetivo ou permitir um período de clock mais curto. Essas mudanças podem introduzir outros custos que aparecem nos totais medidos.

Mantenha o intervalo de medição consistente

Meça tempo de CPU, contagem de instruções, ciclos e frequência para o mesmo trabalho. Contadores ou simulação fornecem as contagens de instruções e ciclos. Os GHz nominais de um produto não são o registro da frequência de uma execução que aumenta ou reduz sua frequência. Quando a frequência varia, a média correspondente é o total de ciclos contados dividido pelo tempo de CPU nesse intervalo.

A equação prevê o tempo de execução da CPU. A espera por armazenamento ou rede faz parte do tempo decorrido e deve ser incluída separadamente quando esse é o resultado de que o usuário precisa.

Principais conclusões

  • O tempo de CPU é a contagem de instruções multiplicada pelo CPI e dividida pela frequência de clock.
  • Rearranje a equação para inferir CPI, contagem de instruções ou frequência necessária a partir das grandezas medidas.
  • Cancele a contagem de instruções apenas quando as execuções comparadas tiverem a mesma contagem.
  • Alterações no compilador e no hardware podem melhorar um fator enquanto pioram outro.
  • Use a frequência e as contagens da mesma execução, não uma frequência de clock anunciada.
  • Acrescente separadamente as esperas não afetadas ao prever o tempo decorrido.

3.4 Avalie pontuações de testes de desempenho e afirmações sobre taxas de instruções

Uma afirmação útil sobre desempenho diz respeito ao trabalho que importa para o usuário. Um teste de desempenho executa uma carga de trabalho escolhida para medir o desempenho. Um conjunto de testes de desempenho amostra várias cargas quando um aplicativo não consegue representar toda a necessidade.

Identifique o tipo de resultado SPEC

O SPEC CPU 2026, lançado em maio de 2026, sucede o SPEC CPU 2017. Seus conjuntos exercitam processadores, sistemas de memória e compiladores. O SPECspeed mede o tempo de conclusão de uma cópia de um programa; essa cópia pode usar várias threads. O SPECrate mede a vazão usando várias cópias. Os conjuntos para inteiros e para ponto flutuante atendem a diferentes tipos de carga de trabalho, e o produto também oferece métricas de energia.

Uma razão de velocidade para um programa compara o tempo de referência com o tempo medido:

r=TrefereˆnciaTmedido.

Um tempo de referência de 3.000 s e um tempo medido de 250 s resultam em 12. Quanto maior, melhor. Uma razão de vazão inclui o número de cópias concluídas no intervalo medido. Compare métricas equivalentes e a mesma versão do conjunto; uma pontuação de velocidade e uma pontuação de vazão respondem a perguntas diferentes.

Resuma razões com uma média geométrica

Para razões positivas, o conjunto usa:

G=r1r2⋯rnn.

As razões 2, 8 e 4 resultam em um produto de 64 e uma raiz cúbica de 4. Sua média aritmética é cerca de 4,67, um resultado diferente.

A comparação por médias geométricas não depende de qual máquina de referência determina as razões. Suponha que X leve 10 s e 40 s em dois programas, enquanto Y leva 20 s e 25 s. Tempos de referência de 100 s para ambos resultam nas razões 10 e 2,5 para X e 5 e 4 para Y. As médias geométricas são 5 e cerca de 4,47, portanto X lidera por cerca de 1,12.

Altere os tempos de referência para 50 s e 200 s: X obtém as razões 5 e 5, e Y obtém 2,5 e 8. Suas médias geométricas permanecem 5 e cerca de 4,47. Já as médias aritméticas mudam de 6,25 contra 4,5 para 5 contra 5,25, invertendo a classificação. A normalização pela referência não deve decidir qual máquina parece mais rápida.

Por que MIPS pode favorecer código mais lento

MIPS, milhões de instruções por segundo, é:

MIPS=ITCPU×106=fCPI×106.

As instruções realizam quantidades diferentes de trabalho útil entre ISAs. Mesmo em uma única máquina, MIPS muda conforme o programa, e uma taxa maior de instruções pode acompanhar um tempo de execução mais longo.

A 3 GHz, suponha que instruções de ULA, carga e armazenamento e desvio custem 1, 4 e 2 ciclos. O código Q executa 400, 300 e 100 milhões delas: 800 milhões de instruções, 1.800 milhões de ciclos, 0,60 s, cerca de 1.333 MIPS. O código P executa 1.500, 100 e 100 milhões: 1.700 milhões de instruções, 2.100 milhões de ciclos, 0,70 s, cerca de 2.429 MIPS. P conclui instruções mais rapidamente, mas termina a tarefa mais tarde.

Taxas de pico descrevem a capacidade ideal do hardware. Cargas de trabalho reais podem alcançar muito menos por causa de dependências, esperas pela memória e outros limites. Use o tempo real da tarefa para avaliar seu desempenho; frequência, MIPS e taxas de pico explicam apenas partes selecionadas dele.

Principais conclusões

  • Escolha testes de desempenho que representem a carga de trabalho pretendida.
  • O SPECspeed mede o tempo de conclusão de uma cópia; o SPECrate mede a vazão entre cópias.
  • Uma razão maior entre tempo de referência e tempo medido indica melhor desempenho.
  • Use a média geométrica para resumir razões normalizadas positivas sem classificações dependentes da referência.
  • MIPS pode aumentar enquanto uma tarefa fica mais lenta, e instruções de ISAs diferentes realizam quantidades diferentes de trabalho.
  • Taxas de pico descrevem capacidade ideal, não o tempo de execução medido de uma tarefa.
4

Encontre os limites de uma melhoria

Uma melhoria só importa durante a parte de uma tarefa que pode usá-la. Uma unidade aritmética mais rápida não altera as esperas por arquivos, e núcleos adicionais deixam o trabalho sequencial em um único núcleo. A lei de Amdahl transforma essa divisão em um orçamento de tempo, tornando visíveis os ganhos prováveis e os limites incontornáveis. O mesmo raciocínio ajuda a escolher uma otimização, calcular de trás para frente a partir de uma meta e explicar por que cargas paralelas de tamanho fixo e de tamanho crescente contam histórias diferentes.

4.1 Calcule o ganho ao melhorar parte de uma tarefa

A lei de Amdahl começa dividindo o tempo de execução original em uma parte afetada e uma parte não afetada. Acelere apenas o tempo afetado e depois some novamente as partes. Isso evita aplicar uma melhoria local a um trabalho que ela não pode alterar.

Construa o novo tempo a partir dos tempos antigos

Se a parte afetada se tornar s vezes mais rápida:

Tnovo=Tafetados+Tna˜o afetado.

Seja f a fração afetada do tempo de execução original. Dividir pelo tempo original fornece a forma de aceleração:

S=1(1−f)+f/s.

Um programa de 120 s passa 90 s em trabalho de ponto flutuante e 30 s em outras atividades. Assim, a fração afetada é 0,75. Tornar o ponto flutuante três vezes mais rápido reduz seu tempo para 30 s:

Tnovo=903+30=60 s,S=12060=2.

O trabalho de ponto flutuante ganha um fator de três; o programa completo ganha um fator de dois. Os 30 s inalterados explicam a diferença.

Calcule de trás para frente a partir de uma meta

Para concluir a mesma tarefa em 40 s, o trabalho inalterado ainda precisa de 30 s. Restam apenas 10 s para a parte de ponto flutuante que levava originalmente 90 s. Portanto:

40=90s+30,s=9010=9.

Uma meta de 30 s deixaria tempo zero para esse trabalho. Nenhuma aceleração finita faz uma quantidade positiva de trabalho afetado levar exatamente zero tempo. À medida que a aceleração local cresce sem limite, a aceleração global se aproxima de:

Slimite=11−f.

Aqui o limite é 4, do qual a aceleração se aproxima por baixo. Com uma fração não afetada de um meio, o limite é 2. Quando todo o trabalho é afetado, não há tempo positivo inalterado para impor esse teto finito.

Otimize onde o tempo é gasto

O princípio torne o caso comum rápido significa identificar onde o tempo de execução é realmente gasto. A análise de perfil de execução mede essa distribuição. Dobrar a velocidade de uma parte responsável por 60% do tempo resulta em:

S=10,40+0,60/2≈1,43.

Uma melhoria de dez vezes em uma parte de 10% resulta em apenas:

S=10,90+0,10/10≈1,10.

Um grande fator local pode perder para uma melhoria modesta aplicada a uma parte maior da tarefa.

A fração afetada deve ser uma fração de tempo. Se cargas e armazenamentos representam 30% das instruções, mas consomem 60% dos ciclos, sua fração de tempo em uma frequência de clock fixa é 0,60. Contar as instruções igualmente deixaria de considerar seu custo maior.

Aplique a mesma divisão à espera

Para uma tarefa com 2,00 s de trabalho de CPU e 0,50 s de espera fixa por arquivos, dobrar a velocidade da CPU resulta em 1,50 s no total. Sua aceleração é cerca de 1,67. O mesmo orçamento de tempo funciona para melhorias em hardware, software e entrada e saída: identifique exatamente qual tempo original muda antes de aplicar o fator.

Principais conclusões

  • A lei de Amdahl acelera o tempo afetado e mantém o tempo não afetado no total.
  • A fração afetada é uma fração do tempo original, não das instruções ou linhas de código-fonte.
  • Use o tempo desejado menos o tempo não afetado para encontrar a melhoria local necessária.
  • Uma fração não afetada positiva define um limite de aceleração igual a um dividido por essa fração.
  • A análise de perfil de execução ajuda a identificar melhorias que afetam uma grande parcela do tempo de execução.

4.2 Estime a aceleração e a eficiência entre núcleos

Mais núcleos só reduzem a duração de uma tarefa quando o trabalho pode ser executado simultaneamente. Divida o tempo original de uma tarefa fixa em um único núcleo em uma parte sequencial e uma parte paralela e considere o que os núcleos adicionais podem alterar.

Lei de Amdahl para uma tarefa de tamanho fixo

Seja p a fração paralelizável do tempo original em um único núcleo. Com divisão perfeita entre N núcleos e sem sobrecarga:

S(N)=1(1−p)+p/N.

Para uma fração paralelizável de 0,95, a fração sequencial é 0,05. Oito núcleos resultam em:

S(8)=10,05+0,95/8≈5,93.

Com 100 núcleos, a aceleração é cerca de 16,8; com 1.000 núcleos, é cerca de 19,6. Os 5% sequenciais mantêm a aceleração de tamanho fixo abaixo de 20, independentemente de quantos núcleos sejam adicionados.

A eficiência paralela é a aceleração dividida pelo número de núcleos. A eficiência com oito núcleos é cerca de 0,74, ou 74%. Com 100 núcleos, é cerca de 17%. Uma aceleração maior pode vir com eficiência menor porque cada núcleo adicional contribui menos para a tarefa fixa.

Por que os ganhos medidos podem ser menores

O modelo ideal divide o trabalho paralelo em partes iguais e não atribui custo à coordenação. Programas reais se comunicam e se sincronizam, e alguns núcleos recebem mais trabalho que outros.

Para 100 unidades iguais de trabalho independente em quatro núcleos idênticos, uma distribuição equilibrada dá 25 unidades a cada um. Se um receber 40 unidades enquanto os demais terminam antes, a conclusão espera pelo núcleo mais ocupado. A aceleração é 100 dividido por 40, ou 2,5, mesmo antes de acrescentar os custos de comunicação. Somar os tempos em que os outros núcleos terminaram mais cedo não forneceria o tempo de conclusão: o último resultado necessário o determina.

Um programa com uma única thread não tem fração paralelizável para distribuir. Mais núcleos ainda podem executar outros programas e melhorar a vazão do sistema, mas não dividem automaticamente o fluxo de instruções desse programa.

Trabalho fixo e trabalho crescente levantam perguntas diferentes

A escalabilidade forte mantém o tamanho total do problema fixo e pergunta quanto mais rápido mais processadores podem concluí-lo. A escalabilidade fraca aumenta o trabalho total proporcionalmente ao número de processadores, de modo que o trabalho por processador permaneça aproximadamente constante. Uma simulação maior pode usar uma malha mais fina mantendo aproximadamente a mesma carga de trabalho por processador.

A lei de Gustafson descreve o trabalho escalado quando o tempo sequencial permanece fixo enquanto o trabalho paralelo cresce. Sua fração sequencial s é medida na execução paralela, diferentemente da fração original de Amdahl em um único núcleo:

Sescalada=s+(1−s)N.

Para uma fração sequencial medida de 0,05 em 100 núcleos, a aceleração escalada é 95,05. Isso não contradiz o limite de Amdahl de 20 para uma tarefa fixa cuja fração sequencial original era 5%. O tamanho da tarefa e a base de medição da fração são diferentes.

O software paralelo deve expor trabalho independente, equilibrá-lo e coordenar os resultados. Mais hardware fornece capacidade; a estrutura do programa determina quanto dessa capacidade reduz seu tempo de conclusão.

Principais conclusões

  • Para escalabilidade ideal de tamanho fixo, divida apenas o tempo paralelo original pelo número de núcleos.
  • A fração sequencial original estabelece o limite de aceleração de Amdahl para múltiplos núcleos.
  • A eficiência paralela é a aceleração dividida pelo número de núcleos.
  • Comunicação, sincronização e distribuição desigual do trabalho reduzem os ganhos.
  • A escalabilidade forte fixa o trabalho total; a escalabilidade fraca mantém aproximadamente fixo o trabalho por processador.
  • A lei de Gustafson usa uma fração sequencial medida na execução paralela para uma carga de trabalho crescente.
5

Relacione os limites de potência ao projeto de múltiplos núcleos

Um processador deve concluir o trabalho dentro de um orçamento de tempo e de um orçamento de potência. A comutação dos transistores consome energia, a tensão afeta fortemente esse custo e o calor limita a intensidade com que um chip pode funcionar. Relacione esses fatores ao fim do escalonamento ideal de transistores e à transição para múltiplos núcleos. O resultado explica por que mais transistores ainda podem ser úteis mesmo quando clocks mais rápidos, por si só, não conseguem proporcionar o próximo ganho de desempenho.

5.1 Calcule a potência de comutação e a energia de uma tarefa

Processadores CMOS consomem energia quando os sinais comutam e também por fuga enquanto estão alimentados. A energia dinâmica está associada à comutação; a potência estática é consumida mesmo sem comutação útil. Suas parcelas relativas dependem do chip e de sua carga de trabalho.

A tensão tem efeito quadrático

A energia associada a uma transição varia com a capacitância e o quadrado da tensão de alimentação. Uma expressão comum usa metade da capacitância multiplicada pela tensão ao quadrado; um pulso completo de carga e descarga varia com a capacitância multiplicada pela tensão ao quadrado. Para a potência dinâmica média, use:

Pdinaˆmica=αCV2f.

Aqui C é a carga capacitiva, V é a tensão de alimentação, f é a frequência de clock e α descreve a atividade de comutação segundo a convenção de contagem escolhida. Algumas convenções incorporam um fator de um meio ao fator de atividade. Os cálculos de razões funcionam diretamente quando a convenção de atividade é mantida consistente.

Para capacitância e atividade inalteradas, reduzir a tensão e a frequência em 20% resulta em:

PnovaPantiga=0,82×0,8=0,512.

A nova potência dinâmica é 51,2% da original. Reduzir apenas a tensão em 10% resulta em um fator de 0,81, uma redução de 19% na potência dinâmica e na energia por transição.

Uma tensão menor também torna a comutação dos transistores mais lenta. O ajuste dinâmico de tensão e frequência (DVFS) ajusta tensão e frequência em conjunto para que o circuito ainda possa operar na velocidade escolhida.

Potência e energia respondem a perguntas diferentes

Potência é uma taxa, medida em watts; um watt é um joule por segundo. A energia de uma tarefa é a potência média multiplicada pela duração:

E=PmeˊdiaT.
ExecuçãoPotência médiaTempoEnergia
A20 W3 s60 J
B30 W1,5 s45 J

B consome mais potência durante a execução, mas usa menos energia para concluir a tarefa. O resfriamento deve lidar com a taxa de produção de calor; o uso da bateria e o consumo de eletricidade acumulam energia ao longo do tempo.

Para um trabalho fixo com a mesma contagem de transições, tensão e atividade, reduzir apenas a frequência distribui essas transições por mais tempo. A potência dinâmica cai, mas a energia dinâmica da tarefa permanece inalterada. Reduzir a tensão também reduz a energia de cada transição. Se a potência estática persistir durante toda a execução mais longa, diminuir a velocidade pode até aumentar essa parte da energia da tarefa.

Fuga e hardware ocioso

Transistores nominalmente desligados ainda deixam passar corrente de fuga. Dispositivos menores e tensões de limiar mais baixas tornam a fuga uma questão importante de projeto. O desligamento seletivo da alimentação desconecta a alimentação de uma região ociosa para reduzir seu consumo estático.

Um servidor com pouca carga ainda pode consumir uma fração considerável de sua potência de pico. Fazer o consumo acompanhar o trabalho útil, chamado de proporcionalidade energética, é uma meta de projeto. Concluir uma tarefa rapidamente e entrar em um estado de baixo consumo pode economizar energia ao reduzir o intervalo durante o qual há consumo por fuga e outras fontes de potência em segundo plano. Portanto, desempenho e eficiência energética podem melhorar juntos.

Principais conclusões

  • A potência dinâmica varia com a atividade de comutação, a capacitância, a tensão ao quadrado e a frequência.
  • A redução de tensão diminui a energia por transição e geralmente exige um ajuste de frequência.
  • A energia de uma tarefa é a potência média multiplicada pela duração; uma execução de maior potência pode usar menos energia.
  • Reduzir apenas a frequência mantém inalterada a energia dinâmica de uma tarefa com número fixo de transições.
  • A fuga causa potência estática, e o desligamento seletivo da alimentação reduz o consumo em regiões ociosas.
  • Baixa utilização não garante baixa potência; a proporcionalidade energética é uma meta de projeto.

5.2 Por que clocks mais rápidos encontraram um limite de potência

Durante décadas, transistores menores trouxeram mais dispositivos e comutação mais rápida dentro de um orçamento de calor controlável. A barreira de potência surgiu quando a tensão já não podia continuar caindo o suficiente para sustentar esse padrão. Ela mudou a maneira como projetistas transformavam novos transistores em desempenho útil.

A relação ideal do escalonamento de Dennard

No modelo ideal de escalonamento desenvolvido por Robert Dennard e colegas em 1974, seja um fator k>1 que descreve a redução. Dimensões, capacitância, tensão e atraso são divididos por esse fator. A frequência pode ser multiplicada pelo fator. Portanto, a potência dinâmica por transistor muda por:

1k×1k2×k=1k2.

A área por transistor também cai pelo quadrado do fator de redução. A mesma área pode conter essa quantidade a mais de transistores, compensando a potência menor por dispositivo. A densidade de potência, em watts por unidade de área, permanece aproximadamente constante nesse modelo ideal.

Para um fator de 1,4, a capacitância e a tensão caem para cerca de 0,71 de seus valores originais e a frequência aumenta por um fator de 1,4. A potência por transistor cai para cerca de 0,51. Cabem cerca de 1,96 vez mais transistores, de modo que a potência total na mesma área permanece aproximadamente inalterada.

Por que a tensão deixou de acompanhar o tamanho

Os transistores precisam de um limiar de comutação utilizável. Reduzir demais a tensão de limiar aumenta acentuadamente a fuga. Em meados dos anos 2000, a tensão de alimentação já não podia diminuir no mesmo ritmo das dimensões dos transistores. Com tensão quase fixa, uma frequência maior aumenta a potência dinâmica, e colocar mais transistores ativos em uma área aumenta o calor que deve ser removido.

Os números históricos mostram a escala da mudança anterior: os clocks de computadores de mesa aumentaram de cerca de 10 MHz no início dos anos 1980 para 3,8 GHz em 2004, enquanto as tensões de alimentação caíram de aproximadamente 5 V para perto de 1 V. Esses são valores históricos gerais, não especificações universais. Cerca de 100 W já era um orçamento de resfriamento difícil para muitos projetos comuns daquele período.

O cancelamento pela Intel, em 2004, do planejado Pentium 4 de 4 GHz e do projeto Tejas marcou essa mudança para projetos atentos à potência e núcleos duplos. As frequências de clock permaneceram posteriormente na escala de alguns gigahertz, em vez de seguir a rápida ascensão anterior. A microarquitetura continuou melhorando o desempenho de um único núcleo, mas os aumentos de frequência forneceram uma parcela muito menor do ganho.

Gerencie o orçamento térmico

A potência de projeto térmico (TDP) é uma meta de projeto térmico usada para dimensionar uma solução de resfriamento sob condições de operação especificadas. Ela não é uma medição instantânea de potência nem um máximo universal. Quando os limites térmicos são atingidos, a redução de desempenho por limitação térmica diminui a velocidade de operação para reduzir o calor.

Se um chip contém mais hardware do que seu orçamento de potência pode executar simultaneamente em velocidade máxima, algumas regiões precisam ser desaceleradas ou desligadas. Silício escuro é o nome dado a essa diferença entre os transistores disponíveis e o hardware ativo utilizável simultaneamente.

A lei de Moore e o escalonamento de Dennard descrevem tendências diferentes: contagens de transistores e comportamento de escalonamento considerando a potência. O fim do segundo não significou que as contagens de transistores deixaram de crescer. O obstáculo ao aumento indefinido da frequência é principalmente a potência e o calor, não uma incapacidade repentina de os transistores comutarem mais rapidamente.

Principais conclusões

  • O escalonamento ideal de Dennard reduzia a tensão com o tamanho dos dispositivos e mantinha a densidade de potência aproximadamente constante.
  • Restrições de fuga e de limiar de comutação impediram que a tensão continuasse a diminuir de forma ideal.
  • Sem reduções correspondentes de tensão, clocks mais rápidos e mais dispositivos ativos aumentam a densidade de potência.
  • A TDP orienta o projeto de resfriamento sob condições especificadas; a limitação térmica reduz a velocidade nos limites térmicos.
  • Silício escuro descreve hardware que não pode estar inteiramente ativo em velocidade máxima dentro do orçamento de potência.
  • A tendência de contagem de transistores de Moore é distinta da relação de escalonamento de Dennard.

5.3 Use mais núcleos dentro de um orçamento de potência

Um processador de múltiplos núcleos coloca vários núcleos em um único chip. Cada núcleo executa um fluxo de instruções, enquanto os núcleos compartilham a memória principal e frequentemente algumas caches. Projetos comuns de computadores de mesa e notebooks passaram a usar dois núcleos por volta de 2005–2006, à medida que aumentar o clock de um único núcleo se tornava cada vez mais custoso em potência.

Compare dois núcleos mais lentos com um núcleo mais rápido

Considere um núcleo a 4 GHz e 1,2 V contra dois núcleos a 3 GHz e 1,0 V. Mantenha iguais a capacitância por núcleo e a atividade de comutação nessa comparação. A potência dinâmica relativa é:

2×(1,01,2)2×34≈1,04.

Com trabalho igual por ciclo e trabalho independente suficiente para ambos os núcleos, a vazão ideal muda por um fator de:

2×34=1,5.

O par oferece cerca de 50% mais vazão com cerca de 4% mais potência dinâmica. O efeito quadrático da redução de tensão torna o núcleo adicional viável nesse modelo. Potência estática, limites da memória compartilhada e custos de coordenação ainda são importantes ao avaliar um chip completo.

Para um programa sequencial que usa apenas um núcleo novo, o desempenho cai para três quartos do original, com trabalho igual por ciclo. Ele leva quatro terços do tempo. Combinar as duas frequências de 3 GHz em “6 GHz” ocultaria esse resultado: nenhum dos núcleos opera a 6 GHz.

O software deve expor o trabalho

Antes da barreira de potência, frequências maiores e a sobreposição em hardware frequentemente aceleravam o código existente sem grandes mudanças. Núcleos adicionais precisam de fluxos independentes de instruções. Um programa se beneficia deles ao dividir seu trabalho em tarefas concorrentes, equilibrar as atribuições e coordenar os resultados. Bibliotecas paralelas podem fornecer essa estrutura, mas o trabalho ainda deve ter uma forma paralela útil.

O paralelismo em nível de instrução sobrepõe instruções em um fluxo, usando técnicas de hardware e de compilador como segmentação em pipeline e emissão múltipla. O paralelismo em nível de thread executa threads diferentes em vários núcleos. Essas são fontes diferentes de concorrência: a primeira não garante que um programa possa ocupar todos os núcleos.

Requisições independentes a servidores naturalmente fornecem muitos fluxos, portanto múltiplos núcleos podem melhorar a vazão mesmo quando cada requisição permanece sequencial. Reduzir o processamento de uma requisição exige paralelismo dentro dela. Sua fração sequencial então impõe o limite de Amdahl.

Use transistores em tipos eficientes de trabalho

Mais transistores podem sustentar caches maiores, vários núcleos de propósito geral ou hardware especializado. GPUs e aceleradores de domínio específico são voltados a cargas como processamento gráfico, aprendizado de máquina e codificação de vídeo. Chips também podem combinar núcleos rápidos e de alta potência com núcleos menores e mais eficientes, como nos projetos Arm big.LITTLE.

Sob um orçamento fixo de potência, o desempenho por watt compara o desempenho útil com o consumo de potência. O SPEC CPU 2026 também oferece medições de energia junto com métricas de desempenho. Uma boa decisão de projeto considera o tempo de conclusão da carga de trabalho, seu custo energético e a potência que o sistema pode sustentar.

Principais conclusões

  • Chips de múltiplos núcleos executam vários fluxos de instruções em núcleos separados.
  • Menor tensão e frequência por núcleo podem melhorar a vazão total dentro de um orçamento semelhante de potência dinâmica.
  • Uma tarefa sequencial não ganha capacidade extra de execução com núcleos não usados.
  • A sobreposição em nível de instrução e o paralelismo em nível de thread são mecanismos diferentes.
  • Requisições independentes podem melhorar a vazão do sistema sem reduzir o tempo de processamento de cada requisição.
  • Hardware especializado e com núcleos heterogêneos oferece outras maneiras de usar transistores com eficiência.

Exercícios resolvidos de Desempenho de computadores

5 Lições Interativas

1

Acompanhe um cálculo do código ao hardware

16 passos
Acompanhe uma adição pelas camadas do sistema, pela tradução e pelas interfaces que permitem que diferentes processadores executem software compatível.
  1. 1
    IntroduçãoUma adição, várias visões

    O comando C total = price + tax; descreve um resultado, mas deixa implícitos os registradores, as codificações de instruções e os circuitos de comutação. Esses detalhes ficam em camadas diferentes, cada uma delas uma abstração que oculta seu trabalho atrás de uma interface.

    Acompanhe a adição pelas camadas inferiores e depois pergunte o que deve corresponder para que um binário seja executado em outra máquina: a ISA e suas convenções. Isso separa o comportamento de que o software depende das escolhas de hardware que determinam seu desempenho.

  2. 2
    ExplicaçãoUma interface oculta o trabalho interno

    Uma abstração expõe um serviço útil enquanto oculta sua implementação interna. Um aplicativo pode solicitar a leitura de um arquivo sem controlar a eletrônica do armazenamento.

    Um caminho comum pelas camadas inferiores é aplicativos → software de sistema → ISA → microarquitetura → lógica digital → circuitos → transistores. Cada visão torna o sistema administrável ao fornecer uma fronteira na qual outra pessoa projetista pode trabalhar.

  3. 3
    ExemploQuem escolhe o quê para a adição?

    Para total = price + tax;, o compilador pode escolher registradores e uma instrução de adição. Ele não precisa projetar as portas do somador.

    Quem projeta a microarquitetura escolhe o hardware de execução; quem projeta a lógica constrói um somador a partir de portas; projetistas de circuitos lidam com o comportamento elétrico. Cumprir as interfaces permite que cada escolha se encaixe no cálculo completo sem expor todos os detalhes inferiores a quem programa.

  4. 4
    ConexãoIdentifique os componentes físicos

    Os cinco componentes clássicos são entrada, saída, memória, caminho de dados e unidade de controle. A CPU combina caminho de dados e unidade de controle: um opera sobre os dados, a outra dirige o trabalho.

    A DRAM mantém a memória de trabalho, a SRAM fornece pequenas caches rápidas e ambas são voláteis. Flash e discos magnéticos preservam dados sem alimentação. Um sistema operacional gerencia esses recursos como software executado na CPU.

  5. 5
    DesafioIdentifique a camada alterada

    Uma pessoa engenheira substitui as portas dentro de um somador. Suas instruções de máquina ainda produzem todos os mesmos resultados exigidos. Ela necessariamente alterou a ISA? Explique.

    ---reveal---

    Não. A pessoa engenheira alterou a implementação de lógica digital. A ISA especifica o comportamento visível da adição; diferentes arranjos de portas podem cumprir essa mesma especificação. Eles podem, ainda assim, diferir em atraso, potência ou área.

  6. 6
    Ideia-chaveMais dispositivos não determinam o tempo de uma tarefa

    Um transistor funciona como uma chave controlada eletricamente, e um chip integra muitos desses dispositivos. A lei de Moore descreve a tendência histórica de duplicar aproximadamente a contagem de transistores a cada dois anos.

    Dez duplicações resultam em um fator de 1.024 ao longo de cerca de 20 anos. Essa tendência de fabricação, cujo ritmo diminuiu, não determina a velocidade de execução de um programa. Os dispositivos adicionais ainda precisam de uma organização útil e de um orçamento de potência viável.

  7. 7
    ExplicaçãoConstrua um executável

    Um compilador traduz código-fonte de alto nível para linguagem de montagem ou código objeto. Um montador codifica a linguagem de montagem em um arquivo objeto. Um ligador combina arquivos objeto e código de bibliotecas, resolvendo referências entre eles.

    O carregador então mapeia o executável na memória e o inicia. Essas funções são distintas: o código traduzido ainda pode precisar que uma referência a uma biblioteca seja resolvida antes de formar o executável usado na execução.

  8. 8
    ExemploSelecione registradores e uma instrução

    Suponha que price esteja em x6, tax em x7 e que o resultado deva ficar em x5. A adição em C pode se tornar:

    add x5, x6, x7
    

    O destino aparece primeiro nessa sintaxe de linguagem de montagem. A instrução lê os dois registradores de origem, soma seus valores e escreve o resultado no destino. O texto é uma instrução simbólica; o processador precisa de sua codificação binária.

  9. 9
    ExemploCodifique a mesma adição

    Os campos de codificação do tipo R, na ordem dos bits armazenados, são:

    • funct7: 0000000
    • rs2: 00111
    • rs1: 00110
    • funct3: 000
    • rd: 00101
    • opcode: 0110011

    Juntos, eles codificam 0x007302B3. Os campos dos registradores de origem precedem o campo de destino na disposição dos bits, embora o destino apareça primeiro no texto da linguagem de montagem. As posições dos campos permitem que o hardware interprete os mesmos bits de maneira consistente.

  10. 10
    DicaConte operações, não linhas de código-fonte

    Mesmo com operandos já em registradores, f = (g + h) - (i + j); precisa de duas adições e uma subtração. Cargas acrescentam instruções quando os dados estão inicialmente na memória.

    Formas abreviadas da linguagem de montagem também podem ocultar uma etapa de tradução: mv x5, x6 torna-se addi x5, x6, 0. O CPython interpreta bytecode intermediário e o Java comumente usa compilação JIT, mas, em todos os caminhos, a CPU física acaba executando instruções de máquina.

  11. 11
    DesafioLocalize uma função não resolvida

    A linguagem de montagem foi convertida em código objeto, mas uma chamada ainda se refere a uma função em outro arquivo objeto. Qual etapa trata essa referência e qual etapa posterior inicia o programa?

    ---reveal---

    O ligador resolve a referência enquanto combina os arquivos objeto. O carregador depois mapeia o executável resultante na memória e o inicia. O carregamento não substitui o trabalho de tradução e resolução de referências das etapas anteriores de construção.

  12. 12
    ExplicaçãoSepare o contrato de sua implementação

    A ISA especifica instruções, codificações, registradores, endereçamento e outros comportamentos visíveis da máquina. A microarquitetura escolhe pipelines internos, unidades de execução, caches e estruturas relacionadas.

    A existência de multiplicação e o resultado que ela retorna são questões da ISA. Se essa multiplicação leva um ciclo ou quatro é uma questão de implementação. Dois processadores compatíveis podem, portanto, calcular o mesmo resultado em velocidades diferentes.

  13. 13
    ConexãoAcrescente as convenções binárias

    A ABI acrescenta à ISA de nível de usuário interfaces do sistema operacional e convenções como registradores de argumentos e organização dos dados. Um binário precisa dos recursos de instrução que usa e de um ambiente de execução compatível.

    RISC-V oferece as bases RV32I e RV64I, além de extensões opcionais, incluindo M para multiplicação e divisão de inteiros e F e D para ponto flutuante. Compartilhar apenas uma ISA básica não garante todas as extensões ou a ABI que um programa espera.

  14. 14
    DesafioEscolha o que a compatibilidade realmente exige

    Um binário é executado em uma nova máquina com tamanho de cache diferente, mas falha em outra máquina que não possui uma extensão de instruções que ele usa. O que explica os resultados diferentes?

    ---reveal---

    O tamanho da cache é uma escolha de implementação que pode afetar a velocidade enquanto preserva o comportamento exigido pela ISA. A extensão ausente elimina o suporte a instruções de que o binário precisa. Reutilizar o binário exige os recursos relevantes da ISA e a ABI; caches idênticas não fazem parte desse requisito.

  15. 15
    DesafioAvalie a afirmação sobre instruções mais ricas

    Uma instrução proposta para uma ISA substitui várias instruções antigas. Quem a projetou afirma que isso, por si só, prova que um programa será mais rápido na nova máquina. O que mais deve ser comparado?

    ---reveal---

    Compare a contagem de instruções, a média de ciclos por instrução e o período de clock para a tarefa completa. A nova instrução pode reduzir a contagem enquanto aumenta o custo em ciclos ou exige um período mais longo. O benefício da tradução só se torna um ganho de desempenho por meio do produto completo de tempo.

  16. 16
    RecapitulaçãoExamine o caminho completo

    Uma expressão do código-fonte torna-se instruções por meio da tradução e da ligação e depois é executada em hardware que implementa uma ISA. A ABI acrescenta as convenções necessárias ao ambiente do executável.

    Use esse caminho para localizar uma mudança: escolhas de código alteram o fluxo de instruções; escolhas de implementação alteram como ele é executado. A compatibilidade diz respeito ao comportamento exigido, enquanto o desempenho depende do trabalho e dos tempos nas camadas inferiores.

2

Escolha e interprete uma medida de desempenho

12 passos
Compare o tempo de uma tarefa com a vazão do sistema e depois leia medições de tempo de CPU e converta unidades de clock.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoDecida o que significa concluir
  2. 2
    ExplicaçãoMeça uma tarefa ou um fluxo
  3. 3
    ExemploInverta a razão entre os tempos
  4. 4
    DesafioA mesma taxa pode significar a mesma espera?
  5. 5
    ExplicaçãoLeia os tempos real, de usuário e de sistema
  6. 6
    Ideia-chaveOs segundos de CPU em paralelo se somam
  7. 7
    ExemploCalcule o inverso em segundos
  8. 8
    DicaMantenha separados os prefixos decimais e binários
  9. 9
    DesafioDetermine um período de clock
  10. 10
    DicaDescreva uma execução real
  11. 11
    DesafioPreveja o tempo decorrido após uma atualização da CPU
  12. 12
    RecapitulaçãoAssocie a unidade correta à afirmação
3

Construa e teste uma previsão de tempo de CPU

21 passos
Combine ciclos, distribuição de instruções e frequência de clock e depois verifique se as afirmações sobre desempenho descrevem o trabalho concluído.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoTrês fatores formam um tempo de execução
  2. 2
    ExplicaçãoComece pelo orçamento de ciclos
  3. 3
    ExemploEncontre os ciclos antes de alterar o projeto
  4. 4
    ConexãoO clock não pode superar a lógica necessária
  5. 5
    DesafioO aumento de clock é suficiente?
  6. 6
    ExplicaçãoO CPI é uma média ponderada pela execução
  7. 7
    ExemploCalcule uma distribuição de instruções
  8. 8
    ExemploUm fluxo mais longo pode ter um total menor de ciclos
  9. 9
    Ideia-chaveUma média abaixo de um é possível
  10. 10
    DesafioCalcule os ciclos e a taxa inversa
  11. 11
    ExplicaçãoConverta instruções até chegar ao tempo
  12. 12
    ExemploCompare duas contagens iguais de instruções
  13. 13
    ConexãoIdentifique o fator de projeto
  14. 14
    DesafioDetermine um CPI medido
  15. 15
    ExplicaçãoEscolha a métrica do teste de desempenho
  16. 16
    ExemploMultiplique as razões e depois calcule a raiz
  17. 17
    DesafioInterprete uma razão de vazão
  18. 18
    ExemploVerifique o que um resultado alto de MIPS favorece
  19. 19
    DicaInterprete valores de pico como capacidade
  20. 20
    DesafioCombine as alterações no compilador e no hardware
  21. 21
    RecapitulaçãoAvalie a afirmação completa
4

Descubra qual parte limita uma aceleração

15 passos
Use orçamentos de tempo para avaliar uma melhoria local, uma meta de aceleração e a execução paralela em mais núcleos.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoMantenha o trabalho inalterado no orçamento
  2. 2
    ExplicaçãoDivida o tempo original antes de acelerá-lo
  3. 3
    ExemploAcelere a parte de ponto flutuante
  4. 4
    ExemploCalcule de trás para frente a partir do tempo desejado
  5. 5
    Ideia-chaveAnalise o perfil da parte custosa
  6. 6
    DesafioEscolha a melhor melhoria
  7. 7
    ExplicaçãoUse os núcleos apenas para o tempo paralelo
  8. 8
    ExemploAdicione muitos núcleos a uma tarefa 95% paralelizável
  9. 9
    ExplicaçãoDivida a aceleração pelos núcleos para encontrar a eficiência
  10. 10
    ExemploA conclusão espera pelo núcleo mais ocupado
  11. 11
    DesafioDetermine a restrição sequencial
  12. 12
    ConexãoMude a pergunta quando o trabalho cresce
  13. 13
    DesafioVerifique se duas afirmações entram em conflito
  14. 14
    DesafioInclua o trabalho de CPU e a espera por arquivos
  15. 15
    RecapitulaçãoPrimeiro encontre o tempo restante
5

Explique a barreira de potência e a resposta com múltiplos núcleos

19 passos
Calcule a potência dinâmica e a energia, acompanhe o fim do escalonamento ideal e avalie o benefício de núcleos mais lentos.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoO desempenho tem um orçamento de calor
  2. 2
    ExplicaçãoConte comutação e fuga separadamente
  3. 3
    ExemploAplique o quadrado da tensão
  4. 4
    ExemploCompare a energia durante uma tarefa completa
  5. 5
    Ideia-chaveUma frequência menor não elimina transições
  6. 6
    DesafioMantenha o componente estático inalterado
  7. 7
    ExplicaçãoA redução ideal mantinha a densidade de potência estável
  8. 8
    ExemploVerifique uma geração ideal de tecnologia
  9. 9
    ExplicaçãoA tensão não pôde continuar acompanhando o tamanho
  10. 10
    ConexãoInterprete os limites térmicos como restrições de operação
  11. 11
    DesafioDiagnostique a falha do escalonamento
  12. 12
    ExplicaçãoMais núcleos fornecem fluxos separados
  13. 13
    ExemploCalcule o custo de potência dinâmica de dois núcleos mais lentos
  14. 14
    ExemploPergunte se a carga de trabalho pode usar o par
  15. 15
    ConexãoDiferencie a sobreposição de instruções e de threads
  16. 16
    ConexãoUse hardware especializado para trabalho adequado
  17. 17
    DesafioEscolha um projeto para trabalho independente
  18. 18
    DesafioCombine redução de velocidade, energia e tempo de conclusão
  19. 19
    RecapitulaçãoAjuste o projeto ao seu trabalho útil

Questões de Desempenho de computadores

50 Questões de Prática em 5 conjuntos

Conjunto 1: Relacione as camadas e as medidas básicas de desempenho10 Questões de Prática

Questão 1 de 10

Uma pessoa desenvolvedora trata a leitura de um arquivo como um serviço do sistema operacional sem controlar a eletrônica do armazenamento. Qual ideia torna essa separação possível?
  1. Compilação para um novo conjunto de instruções
  2. Adição de armazenamento físico à memória principal
  3. Abstração por meio de uma interface definida
  4. Combinação do caminho de dados com a lógica de controle
Mostrar respostaOcultar resposta
Resposta: C
A abstração expõe o serviço de que a pessoa desenvolvedora precisa enquanto oculta sua implementação. A interface do sistema operacional permite que o programa solicite a leitura de um arquivo sem gerenciar os circuitos do dispositivo. A compilação traduz código, mas não é a ideia que explica por que um serviço pode ocultar seus detalhes internos.

Questão 2 de 10

Um arquivo objeto chama uma função definida em outro arquivo objeto. Qual ferramenta resolve essa referência ao construir o executável?
  1. O ligador
  2. O compilador
  3. O montador
  4. O carregador
Mostrar respostaOcultar resposta
Resposta: A
O ligador combina arquivos objeto e resolve referências entre seus códigos e dados. Um montador pode produzir código de máquina deixando sem resolução uma referência a uma função externa. O carregador inicia o executável resultante; ele não substitui a etapa de ligação descrita aqui.

Questão 3 de 10

Um serviço conclui 1.800 tarefas em 90 s. Qual é sua vazão?
  1. 30 tarefas/s
  2. 0,05 tarefas/s
  3. 1.710 tarefas/s
  4. 20 tarefas/s
Mostrar respostaOcultar resposta
Resposta: D
A vazão é o trabalho concluído dividido pelo intervalo de tempo, portanto 1.800 dividido por 90 resulta em 20 tarefas por segundo. Dividir no sentido inverso resulta em 0,05 segundo por tarefa, um tempo por conclusão. Esse inverso não é uma vazão em tarefas por segundo.

Questão 4 de 10

A mesma conversão leva 18 s na máquina L e 12 s na máquina M. Como o desempenho e o tempo de execução de M se comparam aos de L?
  1. 1,5 vez o desempenho; 50,0% menos tempo
  2. 1,5 vez o desempenho; 33,3% menos tempo
  3. 0,67 vez o desempenho; 33,3% menos tempo
  4. 1,33 vez o desempenho; 25,0% menos tempo
Mostrar respostaOcultar resposta
Resposta: B
O desempenho é o inverso do tempo, portanto M tem 18 dividido por 12, ou 1,5 vez o desempenho de L. A redução do tempo é 6 dividido pelo valor original de 18, cerca de 33,3%. Um aumento de 50% no desempenho não significa uma redução de 50% no tempo porque as duas porcentagens têm denominadores diferentes.

Questão 5 de 10

Um relatório de tempo de uma única thread mostra “real 4,4 s, user 2,7 s, sys 0,5 s”. Qual tempo de CPU é atribuído a essa tarefa?
  1. 4,4 s
  2. 3,2 s
  3. 2,7 s
  4. 1,2 s
Mostrar respostaOcultar resposta
Resposta: B
O tempo de CPU inclui a execução de usuário e a execução do sistema operacional em nome da tarefa, resultando em 2,7 mais 0,5, ou 3,2 s. Considerar apenas 2,7 s exclui o tempo de CPU do sistema. O tempo decorrido de 4,4 s também inclui intervalos em que a tarefa não está usando o processador.

Questão 6 de 10

Uma tarefa usa 7,5 bilhões de ciclos a uma frequência constante de 2,5 GHz. Qual é seu tempo de CPU?
  1. 3,0 s
  2. 0,3 s
  3. 5,0 s
  4. 18,75 s
Mostrar respostaOcultar resposta
Resposta: A
Divida 7,5 bilhões de ciclos por 2,5 bilhões de ciclos por segundo para obter 3,0 s. Multiplicar os dois números resulta em 18,75, mas não produz uma duração. A contagem de ciclos deve ser multiplicada por segundos por ciclo ou dividida por ciclos por segundo.

Questão 7 de 10

Um programa executa 70% de instruções de ULA com 1 ciclo cada e 30% de instruções de memória com 5 ciclos cada. Qual é seu CPI médio?
  1. 3,0
  2. 1,8
  3. 2,5
  4. 2,2
Mostrar respostaOcultar resposta
Resposta: D
Pondere cada custo em ciclos por sua fração de instruções: 0,70 vezes 1 mais 0,30 vezes 5 resulta em 2,2 ciclos por instrução. A média simples dos custos das classes é 3,0, mas ela trata as duas classes como igualmente frequentes. Suas contagens executadas são diferentes.

Questão 8 de 10

Uma tarefa executa originalmente 1,5 bilhão de instruções com CPI 2,0 e frequência de 3 GHz. Um novo código executa 1,2 bilhão de instruções com CPI 2,8. Qual frequência de clock constante faria o novo código terminar 20% mais cedo que o original?
  1. 3,36 GHz
  2. 3,5 GHz
  3. 4,2 GHz
  4. 4,0 GHz
Mostrar respostaOcultar resposta
Resposta: C
O tempo original é 1,0 s, portanto a meta é 0,8 s. O novo código exige 1,2 vezes 2,8, ou 3,36 bilhões de ciclos; dividir por 0,8 s resulta em 4,2 GHz. Uma frequência de 3,36 GHz apenas recupera o tempo original de 1,0 s e não alcança a melhoria solicitada.

Questão 9 de 10

Uma tarefa de 100 s passa 40 s em uma rotina. A rotina se torna quatro vezes mais rápida e todo o trabalho restante permanece inalterado. Qual é o novo tempo da tarefa?
  1. 25 s
  2. 85 s
  3. 70 s
  4. 60 s
Mostrar respostaOcultar resposta
Resposta: C
Os 40 s da rotina passam a 10 s, enquanto o trabalho não afetado ainda leva 60 s, resultando em 70 s no total. Dividir os 100 s completos por quatro aceleraria incorretamente a parte inalterada. Uma aceleração local aplica-se apenas ao tempo original gasto na rotina melhorada.

Questão 10 de 10

Um projeto CMOS reduz a tensão para 90% e a frequência para 80% de seus valores anteriores, sem alterar a capacitância e a atividade. Qual fração da potência dinâmica original permanece?
  1. 0,648
  2. 0,720
  3. 0,810
  4. 0,576
Mostrar respostaOcultar resposta
Resposta: A
A potência dinâmica varia com a tensão ao quadrado e com a frequência, portanto a razão é 0,90 ao quadrado vezes 0,80, ou 0,648. Multiplicar tensão e frequência diretamente resulta em 0,720 e deixa de considerar o efeito quadrático da tensão. O resultado diz respeito à potência dinâmica; nenhum valor de potência estática é fornecido.
Conjunto 2: Interprete cargas de trabalho, distribuições e alterações de projeto10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Uma pessoa projetista altera as portas usadas dentro de um somador, mantendo inalterados todos os resultados visíveis à ISA. A qual camada pertence a alteração nas portas?
  1. Aplicativos
  2. Lógica digital
  3. Software de sistema
  4. Convenções da ABI
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Um compilador já gerou texto em linguagem de montagem, e o programa ainda precisa de uma função de biblioteca externa. Quais são as próximas etapas principais antes do início da execução?
  1. Ligação, compilação e depois carregamento
  2. Carregamento, montagem e depois ligação
  3. Montagem, carregamento e depois ligação
  4. Montagem, ligação e depois carregamento
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Uma execução usa quatro núcleos e informa 2,0 s de tempo decorrido com 6,8 s de tempo de CPU combinado de usuário e de sistema. O que esse relatório mostra?
  1. Uma média de trabalho de CPU equivalente a 3,4 núcleos
  2. Um resultado de tempo fisicamente impossível
  3. Exatamente 4,8 s de espera pelo armazenamento
  4. Uma frequência de clock de 3,4 GHz por núcleo ativo
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um processador conclui em média 2 instruções por ciclo durante uma execução. Qual é o CPI correspondente?
  1. 2,0
  2. 1,0
  3. 0,5
  4. 0,2
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Em um processador de frequência fixa, instruções de ULA custam 1 ciclo e instruções de memória custam 4. A versão U executa 600 milhões de instruções de ULA e 200 milhões de memória; a versão V executa 900 milhões de instruções de ULA e 100 milhões de memória. Qual versão termina primeiro e com qual aceleração?
  1. V; cerca de 1,077 vez mais rápida
  2. U; cerca de 1,250 vez mais rápida
  3. V; cerca de 1,400 vez mais rápida
  4. U; cerca de 1,077 vez mais rápida
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Três programas produzem razões de velocidade normalizadas de 1, 4 e 16. Qual pontuação de média geométrica as resume?
  1. 7
  2. 8
  3. 4
  4. 16
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Uma tarefa fixa leva 160 s em um núcleo, incluindo 40 s que devem permanecer sequenciais. Em oito núcleos, seu trabalho paralelo é dividido igualmente e a coordenação acrescenta 5 s após o trabalho. Quais são a aceleração global e a eficiência paralela?
  1. Cerca de 2,91 e 36,4%
  2. Cerca de 3,20 e 40,0%
  3. Cerca de 2,67 e 66,7%
  4. Cerca de 2,67 e 33,3%
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Qual mudança interrompeu o padrão de escalonamento ideal que permitia clocks mais rápidos com densidade de potência aproximadamente constante?
  1. A contagem de transistores parou de crescer em todos os chips
  2. A tensão parou de cair no mesmo ritmo do tamanho dos dispositivos
  3. Os períodos de clock se tornaram independentes do atraso dos circuitos
  4. As contagens de instruções passaram a ser fixadas pelas linhas de código-fonte
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um chip substitui um núcleo de 3 GHz por quatro núcleos de 3 GHz com o mesmo desempenho por núcleo. Uma tarefa totalmente sequencial não tinha espera em fila. Como a mudança no número de núcleos afeta o tempo de processamento dessa tarefa?
  1. Ele passa a ser um quarto do anterior
  2. Ele permanece igual em um núcleo
  3. Ele passa a ser três quartos do anterior
  4. Ele passa a ser quatro vezes o anterior
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Um processador conclui 1,8 bilhão de instruções em 1,2 segundo de CPU, e contadores registram 3,6 bilhões de ciclos. Um relatório apresenta o processador como “3,6 GHz”. Que CPI e frequência média efetiva descrevem essa execução?
  1. CPI 2,0 e 3,0 GHz
  2. CPI 1,5 e 3,6 GHz
  3. CPI 2,4 e 3,6 GHz
  4. CPI 2,0 e 4,32 GHz
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 3: Encontre gargalos e compare projetos completos10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Dois processadores suportam a mesma ISA de usuário e as mesmas extensões, mas seus sistemas operacionais usam convenções diferentes de chamadas de sistema e de chamadas de funções. Por que não há garantia de que um binário de um ambiente seja executado sem alterações no outro?
  1. Suas ABIs diferem apesar da ISA compartilhada
  2. Os tamanhos de suas caches devem ser idênticos
  3. Suas ISAs devem usar codificações diferentes de adição
  4. Suas frequências de clock devem ser iguais para haver compatibilidade
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Uma parte inalterada de uma tarefa consome 25% de seu tempo original. De qual aceleração global a melhoria apenas da parte restante se aproxima à medida que sua aceleração local cresce sem limite?
  1. 3
  2. 2,5
  3. 4
  4. 5
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Um projeto precisa de 15% mais ciclos para um programa, mas aumenta sua frequência de clock em 25%. Qual é seu novo tempo de CPU como fração do tempo de CPU antigo?
  1. 0,80
  2. 1,10
  3. 1,4375
  4. 0,92
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

O período de um clock é reduzido de 625 ps para 500 ps. Quais são sua nova frequência e o aumento percentual da frequência?
  1. 2,0 GHz; 20% maior
  2. 2,0 GHz; 25% maior
  3. 1,6 GHz; 25% maior
  4. 1,6 GHz; 20% maior
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Para a mesma tarefa em um processador, a versão H apresenta 2.000 MIPS e 0,9 s de CPU; a versão J apresenta 1.500 MIPS e 0,8 s de CPU. O que a comparação estabelece?
  1. H executa 33% mais instruções e é mais rápida
  2. H executa 50% mais instruções e é mais lenta
  3. H executa 50% mais instruções e é mais rápida
  4. H executa 33% mais instruções e é mais lenta
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Uma tarefa de 200 s passa 120 s em uma rotina que pode ser acelerada. Uma pessoa projetista promete uma aceleração global de três vezes alterando apenas essa rotina. Como essa promessa deve ser avaliada?
  1. Viável; uma aceleração local de três vezes atinge a meta
  2. Viável; uma aceleração local de seis vezes atinge a meta
  3. Possível apenas se o tempo da rotina chegar exatamente a zero
  4. Impossível; os 80 s inalterados superam o tempo desejado
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Um programa alcança uma aceleração de 6 em 10 núcleos. Qual é sua eficiência paralela?
  1. 60%
  2. 40%
  3. 67%
  4. 6%
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Com tensão fixa, uma tarefa leva 2 s com 40 W de potência dinâmica e 10 W de potência estática. Reduzir a frequência pela metade dobra sua duração e reduz a potência dinâmica pela metade, enquanto a potência estática permanece em 10 W. Qual é a nova energia total da tarefa?
  1. 80 J, que são 20 J a menos
  2. 100 J, que permanecem inalterados
  3. 120 J, que são 20 J a mais
  4. 200 J, que são 100 J a mais
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Em uma redução ideal de Dennard por um fator de 2, como mudam a potência por transistor e a densidade de transistores?
  1. A potência cai à metade; a densidade dobra
  2. A potência cai a um quarto; a densidade quadruplica
  3. A potência permanece igual; a densidade quadruplica
  4. A potência cai a um oitavo; a densidade quadruplica
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Um núcleo de 4 GHz a 1,2 V é substituído por dois núcleos de 3 GHz a 1,0 V, com capacitância e atividade iguais por núcleo e trabalho igual por ciclo. Uma carga de trabalho tem fração paralelizável de 80% no núcleo original. Sem sobrecarga, como seu novo tempo de conclusão se compara ao antigo?
  1. 0,67 vez o tempo anterior
  2. 0,75 vez o tempo anterior
  3. 0,80 vez o tempo anterior
  4. 1,33 vez o tempo anterior
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 4: Diagnostique afirmações e reconstrua grandezas desconhecidas10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Um aplicativo produz os mesmos resultados em dois computadores compatíveis, mas um trabalho que exige muitos acessos à memória é muito mais lento em um deles. Como a abstração explica as duas observações?
  1. As interfaces exigem hardware idêntico sempre que os resultados coincidem
  2. Tempos diferentes mostram que o aplicativo deve usar uma ISA diferente
  3. O desempenho da memória é fixado pela especificação da linguagem de alto nível
  4. As interfaces preservam o comportamento exigido enquanto projetos inferiores afetam o tempo
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Na linguagem de montagem RISC-V, mv x9, x10 pode ser montada como addi x9, x10, 0. Que tipo de construção de montagem é mv aqui?
  1. Uma interface de chamada de sistema
  2. Uma pseudoinstrução
  3. Um formato de arquivo binário
  4. Um ciclo de clock de hardware
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Uma tarefa com uma única thread informa 9 s de tempo decorrido, 5 s de usuário e 1 s de sistema. Uma atualização dobra a velocidade da CPU; outra reduz pela metade o tempo fora da CPU. Todos os demais tempos permanecem fixos. Qual tempo decorrido resulta da aplicação das duas atualizações?
  1. 4,5 s
  2. 3,0 s
  3. 4,0 s
  4. 6,0 s
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um processador de 2,4 GHz executa uma tarefa em 5 s. Um substituto precisa de 30% mais ciclos e tem período de clock de 250 ps. Quais são o tempo de CPU do substituto e a aceleração da tarefa?
  1. 3,0 s e cerca de 1,67
  2. 6,5 s e cerca de 0,77
  3. 3,9 s e cerca de 1,28
  4. 3,9 s e cerca de 0,78
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um programa usa a extensão M do RISC-V e uma ABI específica do sistema operacional. Uma nova máquina suporta as mesmas convenções de ABI, mas apenas a ISA básica RV64I. De qual suporte nativo adicional o binário precisa?
  1. Uma capacidade idêntica de cache de primeiro nível
  2. Suporte às suas instruções da extensão M
  3. Uma frequência de clock igual à da máquina original
  4. Um compilador que gere exatamente o mesmo número de instruções
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Dois programas levam 8 s e 32 s em X, e 16 s e 18 s em Y. Usando a média geométrica de suas razões de velocidade por programa, como X se compara a Y?
  1. X é cerca de 1,281 vez mais rápido
  2. Y é cerca de 1,061 vez mais rápido
  3. X é cerca de 1,061 vez mais rápido
  4. Y é cerca de 1,176 vez mais rápido
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Um teste de desempenho de vazão usa um tempo de referência de 240 s e conclui seis cópias em um intervalo medido de 120 s. Qual é a razão de vazão?
  1. 12
  2. 2
  3. 6
  4. 3
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Uma tarefa fixa contém 10% de trabalho sequencial. Uma pessoa projetista deseja eficiência paralela ideal de pelo menos 50% em 16 núcleos. Essa tarefa pode atingir a meta sem alterar sua fração sequencial?
  1. Sim; a eficiência ideal é cerca de 64%
  2. Sim; a eficiência ideal é cerca de 53%
  3. Não; a eficiência ideal é apenas 10%
  4. Não; a eficiência ideal é apenas 40%
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

A execução A usa em média 24 W durante 2,5 s. A execução B usa 36 W durante 1,5 s para a mesma tarefa. Qual execução usa menos energia e quanto a menos?
  1. A usa 12 J a menos
  2. B usa 24 J a menos
  3. B usa 6 J a menos
  4. A usa 6 J a menos
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Uma mudança de tecnologia reduz a capacitância pela metade e quadruplica a densidade de dispositivos ativos, mas a tensão não pode cair. Os projetistas mantêm constantes a frequência e a atividade por dispositivo. O que acontece com a potência dinâmica por área?
  1. Ela permanece constante
  2. Ela dobra
  3. Ela cai pela metade
  4. Ela quadruplica
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 5: Integre orçamentos de tempo, paralelismo e potência10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Qual interface especifica como uma função compilada passa argumentos em registradores?
  1. A arquitetura do conjunto de instruções
  2. A interface binária de aplicação
  3. A microarquitetura do processador
  4. O mapa de memória do carregador de programas
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Um serviço tem inicialmente um núcleo; cada requisição sequencial precisa de 0,20 s de processamento. Ele passa a ter quatro núcleos, cada um levando 0,25 s por requisição. Com requisições independentes e sem outros limites, o que acontece com a vazão máxima e o tempo de processamento de cada requisição?
  1. A vazão aumenta 4 vezes; o tempo de processamento cai 75%
  2. A vazão aumenta 3,2 vezes; o tempo de processamento cai 20%
  3. A vazão aumenta 3,2 vezes; o tempo de processamento aumenta 25%
  4. A vazão aumenta 5 vezes; o tempo de processamento aumenta 25%
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Cinco medições controladas de tempo decorrido são 1,8 s, 1,9 s, 7,2 s, 2,0 s e 2,1 s. Qual tempo mediano representa essas execuções?
  1. 2,0 s
  2. 1,9 s
  3. 3,0 s
  4. 2,1 s
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Em uma frequência de clock fixa, um programa executa 75% de instruções de ULA que custam 1 ciclo e 25% de instruções de memória que custam 5 ciclos. Uma otimização mantém as contagens inalteradas e reduz pela metade apenas o custo em ciclos da classe de memória. Qual é a aceleração global da CPU resultante?
  1. Cerca de 1,143
  2. Cerca de 1,600
  3. Cerca de 1,818
  4. Cerca de 1,455
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um novo compilador reduz a contagem de instruções em 20% e aumenta o CPI em 25%. O clock do novo hardware é 10% mais rápido. Para a mesma tarefa, qual é a aceleração final?
  1. 1,00
  2. 1,125
  3. 1,10
  4. 1,375
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Um chip dobra sua contagem de núcleos ativos idênticos e reduz a frequência por núcleo para 75% do valor antigo. Com capacitância e atividade por núcleo inalteradas, qual é a maior razão de tensão que mantém a potência dinâmica total igual ou inferior ao valor antigo?
  1. Cerca de 0,667
  2. Cerca de 0,866
  3. Cerca de 0,943
  4. Cerca de 0,816
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Uma tarefa de 180 s inclui 45 s que uma melhoria não pode alterar. Qual aceleração local do trabalho restante é necessária para alcançar uma aceleração global de três vezes?
  1. 9
  2. 3
  3. 6
  4. 12
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Uma carga de trabalho escalada em 20 núcleos passa 10% de seu tempo medido na execução paralela em trabalho sequencial. Segundo o modelo de Gustafson, qual é a aceleração escalada resultante, e esse valor pode ser usado como aceleração de Amdahl para uma tarefa inalterada em um núcleo com fração sequencial de 10%?
  1. 10,0; sim, ambos os modelos usam a mesma fração
  2. 18,1; não, a carga de trabalho e a base da fração diferem
  3. 18,1; sim, ambos os modelos descrevem trabalho fixo
  4. 6,90; não, a carga de trabalho e a base da fração diferem
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um projeto tem 50 W de potência dinâmica e 20 W de potência estática. A frequência permanece inalterada, a tensão cai 10% e a potência estática permanece em 20 W. Qual é a nova potência total?
  1. 56,7 W
  2. 63,0 W
  3. 40,5 W
  4. 60,5 W
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Um servidor de mídia substitui um núcleo de CPU por quatro núcleos que executam conversões mais lentamente. Seu programa de conversão, que permanece inalterado, usa uma thread de CPU. Por que muitas conversões independentes podem ser concluídas a uma taxa maior enquanto cada conversão leva mais tempo?
  1. Mais tarefas são executadas simultaneamente, enquanto cada uma usa um núcleo mais lento.
  2. Cada tarefa combina quatro núcleos mais lentos em um fluxo de instruções mais rápido.
  3. Os novos núcleos reduzem o tempo de CPU de cada tarefa ao eliminar trabalho sequencial.
  4. As frequências de clock dos quatro núcleos se somam para cada conversão.
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Travou em uma questão sua? Ajuda com Tarefas

Termos-Chave

93 Termos-Chave, cada um com sua definição

A

Abstração
Uma abstração é uma visão simplificada que expõe um comportamento útil enquanto oculta detalhes de como um componente o implementa.
Uma interface de arquivos do sistema operacional é uma abstração que permite a um aplicativo solicitar dados sem controlar os circuitos do disco.
Aceleração
Uma aceleração é a razão entre o tempo de execução original e o novo tempo de execução para a mesma tarefa após uma mudança.
Uma aceleração de 1,25 significa que o novo tempo é 80% do antigo, uma redução de 20% na duração.
Aceleração local
Uma aceleração local é o fator pelo qual uma melhoria acelera sua parte afetada, antes de considerar o restante da tarefa.
Uma aceleração local de quatro divide por quatro o tempo original afetado, mantendo o outro trabalho inalterado.
Acelerador
Um acelerador é um hardware especializado projetado para realizar uma classe selecionada de trabalho com eficiência em comparação com a execução de propósito geral.
Um acelerador de vídeo pode melhorar o trabalho de codificação adequado quando o software direciona esse trabalho ao hardware especializado.
Ajuste dinâmico de tensão e frequência (DVFS)
DVFS é o ajuste dinâmico de tensão e frequência, que ajusta a tensão e a frequência de operação de um chip em conjunto durante o uso.
O DVFS pode reduzir a tensão para um ponto de operação de menor frequência quando a velocidade de comutação necessária permite.
Análise de perfil de execução
A análise de perfil de execução mede como o tempo de execução ou a atividade relacionada se distribui entre partes de um programa para identificar melhorias que valham a pena.
A análise de perfil de execução pode mostrar que uma melhoria modesta em uma rotina comum economiza mais tempo que um grande ganho em uma rotina rara.
Arquitetura do conjunto de instruções (ISA)
Uma arquitetura do conjunto de instruções define as instruções de máquina, os registradores, o endereçamento e o comportamento visíveis ao software de baixo nível.
Dois projetos diferentes de processador podem obedecer à mesma arquitetura do conjunto de instruções e, ainda assim, levar tempos diferentes para uma tarefa.
Arquivo objeto
Um arquivo objeto contém código traduzido e informações relacionadas que podem ser combinados com outros arquivos para construir um executável.
Um arquivo objeto pode conter instruções de máquina e ainda se referir a uma função cuja referência o ligador deve resolver.

B

Barreira de potência
A barreira de potência é a restrição ao crescimento adicional da frequência de clock imposta pelo consumo de potência e pelo calor que um sistema prático consegue remover.
A barreira de potência incentivou projetistas a usar transistores adicionais em vários núcleos em vez de clocks cada vez mais rápidos.
Bytecode
Bytecode é um formato intermediário de instruções para um ambiente de execução de linguagem, que pode interpretá-lo ou traduzi-lo posteriormente em código de máquina.
O CPython compila o código-fonte em bytecode antes que seu interpretador realize as operações correspondentes.

C

Caminho crítico
Um caminho crítico é o caminho lógico necessário mais lento entre registradores, que limita quão curto pode ser um período de clock síncrono seguro.
Reduzir o trabalho ao longo do caminho crítico pode permitir um período de clock mais curto, embora a contagem de ciclos também possa mudar.
Caminho de dados
Um caminho de dados é a parte de um processador que mantém dados e opera sobre eles, realizando operações dirigidas pela unidade de controle.
O caminho de dados soma dois valores de registradores quando a unidade de controle orienta a máquina a executar uma adição.
Carga capacitiva
Uma carga capacitiva é a capacitância elétrica que um sinal deve carregar e descarregar, determinada pelos dispositivos e fios que ele aciona.
Reduzir a carga capacitiva diminui a potência dinâmica quando tensão, frequência e atividade de comutação permanecem inalteradas.
Carregador
Um carregador é um recurso do sistema operacional que mapeia um executável na memória e o prepara para começar a ser executado na máquina.
Depois que um programa foi ligado, o carregador organiza sua imagem na memória antes do início da execução.
Ciclos de clock da CPU
Ciclos de clock da CPU são os pulsos totais do processador atribuídos à execução de um programa, incluindo os ciclos exigidos pelos custos efetivos de suas instruções.
Seis bilhões de ciclos de clock da CPU levam 2 s quando a frequência de clock medida é de 3 GHz durante toda a execução.
Ciclos por instrução (CPI)
Ciclos por instrução é o total de ciclos de CPU dividido pelas instruções executadas em uma execução, representando o custo efetivo médio dessas instruções.
O número de ciclos por instrução aumenta quando ciclos custosos de espera pela memória compõem uma parcela maior da execução do mesmo programa.
Circuito integrado
Um circuito integrado é um chip que contém muitos dispositivos eletrônicos conectados, incluindo transistores, em uma peça de material semicondutor.
Um circuito integrado pode conter vários núcleos de processador, caches e outros componentes de hardware de suporte.
Compatibilidade retroativa
Compatibilidade retroativa é o suporte a software construído para uma interface ou plataforma anterior dentro do ambiente suportado pelo sistema mais novo.
A compatibilidade retroativa pode preservar binários antigos enquanto os projetos internos dos processadores mudam substancialmente.
Compilação em tempo de execução (JIT)
A compilação em tempo de execução traduz código em instruções de máquina durante a execução, frequentemente concentrando-se no código usado com frequência.
Uma máquina virtual Java pode usar compilação em tempo de execução após identificar um método executado com frequência.
Compilador
Um compilador traduz código de programa de alto nível para uma forma de nível mais baixo, como linguagem de montagem ou código objeto, para uma máquina de destino.
O compilador escolhe registradores e uma instrução de adição ao traduzir uma expressão aritmética.
Conjunto de testes de desempenho
Um conjunto de testes de desempenho é uma coleção de cargas de trabalho usada para medir vários aspectos de um sistema em vez de depender de um único programa.
Um conjunto de testes de desempenho pode revelar diferenças que um único programa favorável ocultaria em uma comparação de processadores.
Contador de desempenho
Um contador de desempenho é um recurso de hardware que conta eventos de execução, como ciclos ou instruções, durante um intervalo medido.
Um contador de desempenho registra ciclos que podem ser divididos pela contagem correspondente de instruções para estimar o CPI.
Contagem de instruções
Uma contagem de instruções é o número de instruções de máquina realmente executadas para uma tarefa, incluindo iterações repetidas de laços.
Um compilador pode aumentar a contagem de instruções enquanto reduz o total de ciclos ao substituir instruções custosas por outras mais baratas.
Convenção de chamada
Uma convenção de chamada é uma regra da ABI para a comunicação entre funções compiladas, incluindo onde argumentos e resultados são passados.
A convenção de chamada informa a funções compiladas separadamente quais registradores contêm seus argumentos de entrada.
Corrente de fuga
Corrente de fuga é a corrente que passa por transistores nominalmente desligados, contribuindo para a potência estática em um chip alimentado.
Reduzir os limiares de comutação pode aumentar a corrente de fuga, dificultando uma redução adicional da tensão de alimentação.

D

Densidade de potência
Densidade de potência é a potência dissipada por unidade de área, frequentemente expressa em watts por milímetro quadrado ao discutir chips.
Mais transistores ativos na mesma área podem aumentar a densidade de potência, a menos que a potência por dispositivo caia o suficiente.
Desempenho
Para uma tarefa fixa, desempenho é o inverso do tempo de execução, de modo que uma duração menor representa um valor de desempenho maior.
Reduzir pela metade o tempo para a mesma tarefa concluída dobra seu desempenho, desde que o trabalho comparado permaneça inalterado.
Desempenho por watt
Desempenho por watt é o desempenho útil de processamento dividido pelo consumo de potência, expressando quanto desempenho um orçamento de potência sustenta.
Maior vazão com potência semelhante melhora o desempenho por watt quando ambos os resultados descrevem o mesmo tipo de trabalho útil.
Desequilíbrio de carga
Desequilíbrio de carga é uma distribuição desigual do trabalho paralelo que deixa alguns processadores esperando enquanto outro termina sua parcela maior.
Quando um núcleo recebe 40 unidades de trabalho e os outros recebem muito menos, o desequilíbrio de carga faz a conclusão depender desse núcleo.
Desligamento seletivo da alimentação
O desligamento seletivo da alimentação desconecta a alimentação de uma região ociosa do hardware para reduzir a fuga, em vez de apenas deixar essa região sem uso.
Um chip usa o desligamento seletivo da alimentação após a conclusão de uma tarefa para que os circuitos inativos consumam menos potência estática.
Distribuição de instruções
Uma distribuição de instruções é a distribuição das instruções executadas entre classes, usada para ponderar o custo em ciclos de cada classe.
Uma distribuição com muitas cargas custosas pode ter um CPI maior que uma distribuição dominada por instruções aritméticas simples.

E

Eficiência paralela
A eficiência paralela é a aceleração alcançada ou prevista dividida pelo número de processadores, expressando o ganho em relação à aceleração linear ideal.
Uma aceleração de seis em oito núcleos resulta em eficiência paralela de 75%, embora a tarefa seja substancialmente mais rápida.
Energia
Energia é a quantidade acumulada usada durante um intervalo de tempo, calculada para uma tarefa como potência média multiplicada pela duração.
Um consumo médio de 20 W durante 3 s usa 60 J de energia, que é diferente da taxa de operação de 20 W.
Energia dinâmica
Energia dinâmica é a energia usada nas transições de sinais, que varia com a carga capacitiva e o quadrado da tensão de alimentação.
Na mesma tensão, um número fixo de transições idênticas usa a mesma energia dinâmica mesmo quando ocorre mais lentamente.
Equação de desempenho da CPU
A equação de desempenho da CPU relaciona o tempo de CPU à contagem de instruções, ao CPI médio e ao período de clock, multiplicando os três fatores.
A equação de desempenho da CPU revela por que uma contagem menor de instruções pode perder seu benefício quando o CPI aumenta.
Escalabilidade forte
A escalabilidade forte mede como o tempo de execução muda com o número de processadores enquanto o tamanho total do problema permanece fixo.
Um teste de escalabilidade forte executa a simulação de mesmo tamanho em mais núcleos e mede quanto mais cedo ela termina.
Escalabilidade fraca
A escalabilidade fraca aumenta o tamanho total do problema proporcionalmente ao número de processadores, de modo que a quantidade de trabalho por processador permaneça aproximadamente fixa.
Um estudo de escalabilidade fraca expande a simulação à medida que mais processadores ficam disponíveis, mantendo trabalho semelhante em cada um.
Escalonamento de Dennard
O escalonamento de Dennard é um modelo ideal de escalonamento de dispositivos no qual dimensões e tensão reduzidas permitem maior velocidade com densidade de potência aproximadamente constante.
O escalonamento de Dennard deixa de funcionar quando a tensão já não cai o suficiente para compensar a potência de mais dispositivos ativos e rápidos.
Executável
Um executável é um arquivo de programa preparado para uma máquina e um ambiente de sistema operacional específicos, que o carregador pode iniciar.
O ligador produz um executável após combinar código objeto e resolver as referências necessárias.

F

Fator de atividade
Um fator de atividade expressa quanta capacitância comuta por ciclo de clock segundo a convenção de contagem usada em um modelo de potência.
Uma razão de potência dinâmica que mantém fixo o fator de atividade pressupõe que a atividade de comutação permaneça comparável.
Fração afetada
A fração afetada é a parcela do tempo de execução original gasta em trabalho que uma melhoria proposta pode acelerar.
Operações de memória podem ter uma fração afetada de 60% do tempo, embora representem apenas 30% das instruções.
Fração paralelizável
A fração paralelizável na análise de Amdahl para uma tarefa fixa é a fração do tempo original em um único núcleo que pode ser dividida entre núcleos.
Uma fração paralelizável de 0,95 deixa 5% do tempo original sequencial, limitando os ganhos com núcleos adicionais.
Fração sequencial
A fração sequencial é a parcela do tempo de execução que deve ser executada sem divisão entre núcleos, medida segundo a base estabelecida pelo modelo.
Amdahl usa uma fração sequencial original em um único núcleo, enquanto Gustafson usa a fração da execução paralela.
Frequência de clock
A frequência de clock é o número de ciclos de clock do hardware por segundo, medido em hertz e frequentemente expresso em gigahertz.
Uma frequência de clock de 4 GHz fornece quatro bilhões de ciclos por segundo, não quatro bilhões de comandos de código-fonte concluídos.
Frequência média efetiva
A frequência média efetiva de uma execução é o número de ciclos de CPU contados dividido pelo tempo de execução de CPU correspondente.
A frequência média efetiva considera uma execução que aumenta ou reduz sua frequência em vez de usar uma única frequência anunciada.

I

Instruções por ciclo (IPC)
Instruções por ciclo é a contagem de instruções executadas dividida pelos ciclos de CPU de uma execução, o inverso de seu CPI médio.
O número de instruções por ciclo pode ultrapassar um quando um processador sobrepõe instruções suficientes para concluir várias por ciclo.
Interface binária de aplicação (ABI)
Uma interface binária de aplicação especifica convenções binárias e interfaces do sistema operacional junto com a ISA de nível de usuário.
A correspondência da interface binária de aplicação permite que uma chamada de função use os registradores de argumentos esperados pela função chamada.
Interpretador
Um interpretador é um programa que lê operações em outra representação de programa e as realiza por meio de sua própria execução.
Um interpretador de bytecode executa instruções de máquina para implementar as operações de bytecode que lê.

L

Lei de Amdahl
A lei de Amdahl relaciona a aceleração global à fração do tempo original que é melhorada e à sua aceleração local, mantendo inalterado o tempo não afetado.
A lei de Amdahl explica por que triplicar a velocidade de uma rotina resulta em uma melhoria inferior a três vezes para a tarefa inteira.
Lei de Gustafson
A lei de Gustafson modela a aceleração escalada quando o trabalho paralelo cresce com o número de processadores enquanto o tempo sequencial permanece fixo no modelo.
A lei de Gustafson usa uma fração sequencial medida na execução paralela, diferentemente da fração na análise de Amdahl para tarefa fixa.
Lei de Moore
A lei de Moore é a tendência histórica de fabricação de duplicar aproximadamente a contagem de transistores em um chip a cada dois anos.
Dez duplicações segundo a lei de Moore multiplicariam uma contagem de transistores por 1.024, sem garantir a mesma aceleração.
Ligador
Um ligador combina arquivos objeto e código de bibliotecas e resolve referências a funções e dados definidos em arquivos separados.
O ligador conecta uma chamada em um arquivo objeto à função de biblioteca que fornece sua implementação.
Linguagem de máquina
A linguagem de máquina consiste em instruções codificadas em binário que um processador pode executar conforme sua arquitetura do conjunto de instruções.
O valor hexadecimal 0x007302B3 representa uma codificação em linguagem de máquina para uma adição em RISC-V.
Linguagem de montagem
A linguagem de montagem é uma forma textual simbólica de instruções de máquina, com nomes de registradores e operações legíveis por pessoas.
A linha de linguagem de montagem add x5, x6, x7 indica um registrador de destino e dois de origem.

M

Média geométrica
A média geométrica de valores positivos é a raiz de seu produto, com o grau da raiz igual ao número de valores.
A média geométrica de razões normalizadas de testes de desempenho mantém as comparações entre máquinas independentes da escolha da referência.
Média ponderada
Uma média ponderada atribui a cada valor uma contribuição proporcional a seu peso, como a fração de execução de uma classe de instruções.
O CPI calculado por média ponderada dá a uma instrução frequente de ULA mais peso que a uma classe de desvio raramente executada.
Memória dinâmica de acesso aleatório (DRAM)
A DRAM é uma tecnologia volátil de memória principal usada para manter programas e dados enquanto um computador funciona; ela perde seu conteúdo sem alimentação.
Os dados de trabalho de um programa podem ser mantidos na DRAM, embora um arquivo salvo permaneça em armazenamento não volátil.
Memória estática de acesso aleatório (SRAM)
A SRAM é uma tecnologia de memória volátil usada em estruturas de armazenamento pequenas e rápidas, como caches próximas ao hardware de execução do processador.
Um processador mantém dados usados recentemente em uma cache SRAM para reduzir o tempo gasto no acesso à memória principal.
Microarquitetura
Uma microarquitetura é a organização interna do hardware que implementa uma ISA, incluindo unidades de execução, pipelines e caches.
Uma cache maior altera a microarquitetura sem necessariamente alterar as codificações de instruções usadas por um binário.
Milhões de instruções por segundo (MIPS)
MIPS é uma taxa de milhões de instruções de máquina executadas por segundo de tempo de CPU, que não mede diretamente o trabalho útil da tarefa.
Uma versão pode ter MIPS maior e ainda terminar mais tarde se executar instruções adicionais suficientes para a mesma tarefa.
Montador
Um montador traduz linguagem de montagem simbólica em codificações de instruções de máquina, geralmente produzindo um arquivo objeto.
O montador transforma add x5, x6, x7 em sua codificação binária e expande pseudoinstruções suportadas.

N

Núcleos heterogêneos
Núcleos heterogêneos são projetos diferentes de núcleos dentro de um processador, frequentemente combinando núcleos rápidos de alta potência com outros menores e eficientes.
Um chip com núcleos heterogêneos pode atribuir trabalhos diferentes a tipos de núcleo com custos diferentes de desempenho e potência.

O

Orçamento de ciclos
Um orçamento de ciclos é o número total de ciclos de processador disponíveis ou necessários para uma tarefa com uma meta de tempo especificada.
Um processador de 4 GHz tem um orçamento de 36 bilhões de ciclos se a tarefa precisar terminar em até 9 s de tempo de CPU.

P

Paralelismo em nível de instrução (ILP)
O paralelismo em nível de instrução sobrepõe operações dentro de um fluxo de instruções, usando técnicas de hardware e de compilador para aumentar a taxa de execução.
A segmentação em pipeline contribui para o paralelismo em nível de instrução sem exigir que o programa crie uma thread para cada operação.
Paralelismo em nível de thread (TLP)
O paralelismo em nível de thread executa simultaneamente fluxos separados de instruções de software, permitindo que vários núcleos contribuam para a execução.
Uma biblioteca paralela pode expor paralelismo em nível de thread para que partes independentes de uma tarefa usem núcleos diferentes.
Período de clock
O período de clock é a duração de um ciclo de clock, igual ao inverso da frequência de clock quando as unidades são consistentes.
Um período de clock de 250 ps corresponde a 4 GHz porque período e frequência são inversos.
Potência
Potência é a taxa com que a energia é usada, medida em watts, em que um watt equivale a um joule por segundo.
Um consumo maior de potência ainda pode usar menos energia na tarefa quando o programa termina suficientemente mais cedo.
Potência de projeto térmico (TDP)
A potência de projeto térmico é uma meta de projeto térmico para selecionar o resfriamento sob condições de operação especificadas, não uma leitura instantânea de potência.
O resfriamento projetado com base na potência de projeto térmico deve considerar as condições de operação especificadas do processador.
Potência dinâmica
Potência dinâmica é a taxa de uso de energia decorrente da comutação, proporcional à atividade, à capacitância, à tensão ao quadrado e à frequência.
Uma redução de 10% na tensão, com frequência e atividade inalteradas, diminui a potência dinâmica para 81% de seu valor antigo.
Potência estática
Potência estática é o consumo que persiste sem comutação útil porque dispositivos alimentados deixam passar corrente de fuga.
A potência estática continua durante uma execução mais longa mesmo quando a redução da frequência diminui sua potência dinâmica.
Prefixo binário
Um prefixo binário indica um multiplicador de tamanho baseado em potência de dois, como KiB para 1.024 bytes ou GiB para 1.073.741.824 bytes.
O prefixo binário em KiB distingue unidades de 1.024 bytes das potências decimais usadas em unidades de frequência de clock.
Processador de múltiplos núcleos
Um processador de múltiplos núcleos contém vários núcleos em um chip, cada um capaz de executar seu próprio fluxo de instruções enquanto compartilha alguns recursos.
Um processador de múltiplos núcleos pode atender a requisições independentes simultaneamente sem fundir seus núcleos em um clock mais rápido.
Proporcionalidade energética
Proporcionalidade energética é a meta de projeto de fazer o consumo de potência de um sistema acompanhar a quantidade de trabalho útil que ele realiza.
Um servidor com alto consumo em estado ocioso fica aquém da proporcionalidade energética mesmo que sua eficiência sob carga de pico seja boa.
Pseudoinstrução
Uma pseudoinstrução é uma forma abreviada da linguagem de montagem que um montador expande em uma ou mais instruções reais de máquina.
Em RISC-V, mv x5, x6 é uma pseudoinstrução que pode ser implementada como addi x5, x6, 0.

R

Redução de desempenho por limitação térmica
A redução de desempenho por limitação térmica diminui a velocidade de operação de um processador quando a temperatura atinge limites, ajudando o chip a controlar a produção de calor.
A redução de desempenho por limitação térmica pode prolongar o tempo de CPU ao diminuir a frequência de clock efetiva durante uma carga de trabalho sustentada.
RISC-V
RISC-V é uma arquitetura do conjunto de instruções aberta e livre de royalties, com conjuntos básicos para inteiros e extensões de instruções padronizadas opcionais.
Um programa RISC-V que usa instruções de multiplicação de inteiros precisa de suporte à extensão correspondente.

S

Segmentação em pipeline
A segmentação em pipeline sobrepõe estágios de instruções sucessivas para que um processador possa concluir trabalho a uma taxa maior que no processamento totalmente sequencial.
A segmentação em pipeline pode melhorar o CPI efetivo ou permitir um período de clock mais curto sem alterar os resultados prometidos pela ISA.
Silício escuro
Silício escuro descreve hardware de chip que não pode operar integralmente em velocidade máxima ao mesmo tempo dentro do orçamento de potência e térmico disponível.
Um chip pode deixar algumas unidades inativas porque o silício escuro limita o uso simultâneo, apesar de os dispositivos estarem presentes no chip.
Sistema operacional
Um sistema operacional é um software que gerencia recursos de hardware e fornece serviços para que programas possam compartilhar o computador com segurança.
O sistema operacional escalona outro programa enquanto um aplicativo espera por uma operação de armazenamento.
Software de sistema
O software de sistema fornece serviços compartilhados e suporte à tradução de programas, incluindo sistemas operacionais, compiladores, ligadores e bibliotecas.
Um aplicativo depende do software de sistema para alocar memória e preparar código executável para o processador.
SPECrate
SPECrate é a família de métricas do SPEC CPU que mede a vazão executando várias cópias e contabilizando o trabalho concluído.
Uma razão SPECrate inclui o número de cópias junto com o tempo de referência dividido pelo intervalo medido.
SPECspeed
SPECspeed é a família de métricas do SPEC CPU que mede o tempo de conclusão de uma cópia de um teste de desempenho; a cópia pode usar várias threads.
Um resultado SPECspeed diz respeito ao tempo de uma cópia de programa, portanto não deve ser interpretado como a taxa de muitas cópias separadas.

T

Taxa de pico
Uma taxa de pico descreve uma capacidade máxima ideal de processamento sob condições favoráveis, em vez do resultado medido de um aplicativo.
Um programa que exige muitos acessos à memória pode alcançar muito menos que a taxa de pico de um chip porque a execução espera por dados.
Tecnologia de semicondutor de óxido metálico complementar (CMOS)
CMOS é a tecnologia de transistores usada em processadores modernos, com custos de energia decorrentes da comutação de sinais e da fuga estática.
Uma estimativa de potência em CMOS separa o consumo dinâmico de comutação do consumo que persiste sem transições úteis.
Tempo de CPU
Tempo de CPU é o tempo de execução do processador atribuído a uma tarefa, combinando sua execução de usuário com a execução de sistema em seu nome.
O tempo de CPU somado em vários núcleos ocupados pode ultrapassar o tempo decorrido da tarefa do início ao fim.
Tempo de CPU do sistema
O tempo de CPU do sistema mede o tempo de processador gasto executando código do sistema operacional em nome da tarefa medida.
O tempo de CPU de um programa inclui o tempo de CPU do sistema usado para atender às suas solicitações ao sistema operacional.
Tempo de CPU do usuário
O tempo de CPU do usuário mede o tempo de processador gasto executando o próprio código de nível de usuário de um programa, excluindo a execução do sistema operacional.
Uma ferramenta de medição informa o tempo de CPU do usuário separadamente do tempo gasto em serviços de sistema solicitados pelo programa.
Tempo de resposta
Tempo de resposta é a duração do início de uma tarefa até sua conclusão, incluindo processamento, entrada e saída e espera relevantes.
Um usuário que espera o resultado de uma conversão se interessa pelo tempo de resposta mesmo que o serviço conclua muitas outras tarefas.
Tempo decorrido
Tempo decorrido é a duração de uma execução do início ao fim, medida pelo relógio, incluindo trabalho de CPU, espera e atrasos de escalonamento.
Uma espera por arquivo pode aumentar o tempo decorrido sem acrescentar uma quantidade igual de execução de CPU atribuída à tarefa.
Teste de desempenho
Um teste de desempenho é uma carga de trabalho de programa definida, usada para medir o desempenho de um sistema em um trabalho escolhido para representar uma necessidade prática.
Um teste de desempenho que corresponde ao comportamento de um aplicativo é mais informativo que uma taxa de pico sem relação com essa carga de trabalho.
Transistor
Um transistor é um dispositivo controlado eletricamente que funciona como uma chave, permitindo construir os circuitos usados na lógica digital.
Muitos transistores trabalham juntos em um circuito que implementa um somador dentro de um processador.

U

Unidade de controle
A unidade de controle é o componente do processador que dirige as operações do caminho de dados e coordena a memória e a entrada e saída conforme as instruções.
A unidade de controle seleciona a operação e o destino necessários quando a CPU executa uma instrução de máquina.

V

Vazão
Vazão é a quantidade de trabalho concluído por unidade de tempo, como requisições por segundo ou tarefas por hora.
Executar tarefas independentes em mais núcleos pode aumentar a vazão enquanto o processamento de cada tarefa leva o mesmo tempo.

Sobre esta aula

Por StudeliRelatar um erro

Crie seus próprios Materiais de Estudo

Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.

Começar