Já espreitamos como funcionam os CPUs e também já conhecem bem as minhas "irritações" quanto ao seu mau aproveitamento. Hoje, trago-vos uma curiosa comparação que mostra o tempo relativo que um CPU tem que esperar sempre que necessita de algum dado que não esteja num dos seus registos.
Num CPU que funcione a 1GHz, cada ciclo de funcionamento demora 1ns; passando para um CPU de 3GHz, o tempo reduz-se para cerca de 0.3ns. Para se ter uma noção da escala de tempo de que se está a falar, talvez seja bom referir que 0.3ns, é o tempo que a luz demora a viajar 10cm (e que ajudará a ter uma noção das "batalhas" que os engenheiros têm para criar chips cada vez mais rápidos - é que já se começa a ter que esperar que a própria electricidade percorra os circuitos e chegue ao destino).
Só que poucas coisas conseguem acompanhar esta velocidade a que o CPU processa as suas instruções. E sempre que algum dado é necessário que não esteja num dos seus registos internos, ele terá que "esperar" que esses dados cheguem - e a espera... é mesmo para desesperar.
[tabela via Systems Performance]
Para tornar as coisas mais perceptíveis numa escala humana, vamos assumir que o nosso CPU funciona a 1Hz, fazendo com que o ciclo base de referência seja 1 segundo.
Assim, sempre que o nosso CPU necessita de dados extra, terá que esperar 3 ou 9 segundos para que a informação lhe chegue das suas caches de nível 1 e nível 2. Se os dados não estiverem lá e for necessário recorrer à cache de nível 3, essa espera sobe para os 43 segundos; valor que ainda assim é ultra curto considerando o que temos para fazer um acesso à memória normal do sistema: 120ns, que nesta escala se transformam nuns assustadores 6 minutos!
E daí para a frente, as coisas tornam-se ainda mais assutadoras. A espera pelos dados de um SSD é algo que demora entre 2 e 6 dias; se for um disco tradicional a espera é entre 1 e 12 meses; e o tempo de 81ms que um pacote de dados demore a atravessar meio planeta é o equivalente a 8 anos de espera, na perspectiva do CPU.
Da próxima vez que estiverem a desesperar por uma página web que esteja a demorar mais que alguns segundos a carregar... lembrem-se que por muito grande que seja o vosso desespero, para o CPU do vosso computador será muito maior! :)
Sem comentários:
Enviar um comentário (problemas a comentar?)