Com 10% de código serial, oito núcleos deixam o programa 4,7 vezes mais rápido, e nenhuma quantidade de núcleos passa de 10 vezes. Fechamos a série com RISC e CISC, métricas de desempenho, a taxonomia de Flynn, SMP, clusters, NUMA, multicore e a Lei de Amdahl.
Esperando um disco de 10 ms em espera ativa, uma CPU de 1 GHz desperdiça dez milhões de ciclos. Comparamos as três formas de tratar entrada e saída (polling, interrupções e DMA), calculamos o overhead de cada uma e vemos por que o polling voltou com os SSDs NVMe.
A mesma expressão custa 5 instruções com três operandos, 7 com dois e 11 com um acumulador. Veremos a ISA, o contrato entre hardware e software, os formatos de instrução, o R-type do RISC-V e os sete modos de endereçamento que dizem onde está cada operando.
Uma linha de montagem não espera um carro ficar pronto para começar o próximo, e o pipeline faz o mesmo com as instruções. Veremos os estágios, os hazards que travam a linha, o cálculo do speedup, os barramentos que ligam CPU, memória e periféricos e a unidade de controle.
Um processador hipotético de 12 bits, com 15 instruções, serve de modelo para acompanhar o ciclo de instrução completo. Executamos LDA e ADD registrador por registrador, codificamos instruções em hexadecimal e escrevemos programas em assembly com desvios e laços.
Um processador de 2 GHz pode executar mais instruções por segundo que um de 3 GHz. Para entender por quê, abrimos a CPU: UAL, unidade de controle, registradores, flags, decodificador e relógio, e os microeventos do ciclo de busca em notação formal.
Com 95% de acerto, a cache faz o processador enxergar uma memória de 4,95 ns onde a DRAM leva 80 ns. Veremos por que ela funciona (localidade), os mapeamentos direto, associativo e por conjuntos, os algoritmos de substituição e as políticas de escrita.
Se o acesso a um registrador durasse um segundo, o acesso à memória principal levaria quatro minutos e meio, e a um disco rígido, mais de um ano. Veremos a hierarquia de memória, células, endereços e barramentos, as fórmulas de dimensionamento e SRAM, DRAM, ROM e ECC.
Você aperta Enter e o resultado aparece três décimos de segundo depois. Nesse intervalo, o processador buscou centenas de milhões de instruções na memória. Esta série de 13 artigos explica como: memória, cache, CPU, pipeline, representação de dados e execução de programas.