Normalmente queremos relacionar o desempenho e dois computadores diferentes quantitativamente. Usaremos a frase “X é n vezes mais rápido que Y” - ou, “X tem n vezes a velocidade de Y” - para indicar:
Se X for n vezes mais rápido que Y, então o tempo de execução em Y é n vezes maior do que em X
Exemplo
Se o computador A executa um programa em 10 segundos e o computador B executa o mesmo programa em 15 segundos, o quanto A é mais rápido que B?
Resposta
Sabemos que A é n vezes mais rápido que B se:
Portanto, A é 1,5 vezes mais rápido que B.
Medindo o desempenho
Tempo de execução de CPU
O tempo real que a CPU gasta calculando para uma tarefa específica
Tempo de CPU do usuário
O Tempo de CPU gasto em um programa propriamente dito
Tempo de CPU do sistema
Tempo de CPU gasto no sistema operacional realizando tarefas em favor do programa
Quase todos os computadores são construídos usando-se um clock que determina quando os eventos ocorrem no hardware. Esses intervalos de tempo discretos são chamados de Ciclos de Clock.
Desempenho da CPU e seus fatores
Uma formula simples para medir o desempenho final (baseado no tempo de execução da CPU) relaciona as métricas mais básicas (ciclos de clock e tempo do ciclo de clock) ao tempo da CPU:
Melhorando o desempenho
A fórmula mencionada anteriormente deixa claro que o desempenho pode melhorar reduzindo o número de clocks necessários para o programa ou reduzindo o tamanho do ciclo de clock.
Exemplo
Um determinado programa executa em 10 segundos no computador A, que tem um clock de 2GHz. Estamos tentando ajudar um engenheiro a montar um computador B, que executará esse programa em 6 segundos. O projetista determinou que é possível haver um aumento considerável na taxa de clock(Hz), mas esse aumento afetará o restante do projeto da CPU, fazendo com que o computador B exija vezes a quantidade de ciclos de clock do computador A para esse programa. Que taxa de clock o projetista deve ter como alvo?
Resposta
Vamos primeiro achar o número de ciclos de clock exigidos para o programa em A
Agora vamos decobrir o tempo de CPU para B:
Para executar o programa em 6 segundos, B deverá ter o dobro de taxa de clock de A
Desempenho da instrução
O tempo de execução é igual ao número de instruções executas multiplicado pelo tempo médio por instrução
Números de ciclos de clock exigidos para um programa pode ser escrito como:
O termo ciclos de clock por instrução, que é o número médio de ciclos de clock que cada instrução leva para executar, normalmente é abreviado como CPI
Exemplo
Suponha que tenhamos duas implementações da mesma arquitetura de conjunto de instruções. O computador A tem um tempo de ciclo de clock de 250 ps e um CPI de 2.0 para um programa, e o computador B tem um tempo de ciclo de clock de 500 ps e um CPI de 1.2 para o mesmo programa. Qual computador é mais rápido para este programa e por quanto?
Resposta
Sabemos que cada computador executa o mesmo número de instruções para o programa. Vamos chamar esse número de I. Primeiro, encontramos o números de ciclos de clock do processador para cada computador
Agora, podemos calcular o tempo de CPU para cada computador