Por que o desempenho da CPU é calculado em freqüências em vez de Mbit / s? [fechadas]

0

Por que o desempenho da CPU é calculado como uma frequência, em vez de megabits por segundo? Freqüências são menos comuns na terminologia de computadores.

    
por Jeremiah Luis 30.04.2015 / 07:06

3 respostas

5

Para uma operação confiável, muitos circuitos integrados digitais, incluindo CPUs, usam um gerador de pulsos, chamado clock, que gera um trem de pulsos. As várias portas lógicas e, ou, nem , etc., no CI detectam suas entradas e atualizam suas saídas de acordo com a parte do trem de pulso que elas vêem. A velocidade do clock é limitada porque leva tempo para as portas lógicas atualizarem sua saída e leva tempo para que seus sinais de saída viajem de uma parte do circuito para outra antes que a próxima atualização ocorra. Os fabricantes de CI especificarão uma freqüência máxima de clock na qual um IC será executado de forma confiável. Consequentemente, é natural classificar a velocidade de um circuito lógico pela sua frequência de clock.

Por outro lado, quantos "bits por segundo" são transferidos depende do que a CPU está fazendo. Se estiver fazendo um NOP, pode não estar transferindo nada. Se estiver transferindo bits, a velocidade geralmente depende mais de onde os bits estão vindo ou indo do que na CPU. Então, bits por segundo não é uma maneira natural de classificar as velocidades da CPU.

Como medida da velocidade da CPU, porém, a velocidade do clock é apenas parte da história. Algumas CPUs realizam mais coisas em um ciclo de clock do que outras. Então, se alguém quisesse saber quantas OPerações por ponto de flutuação por segundo (FLOPS) uma CPU pode fazer, uma delas divide o relógio velocidade pelo número de ciclos de clock necessários para realizar alguma operação de ponto flutuante. Esse tipo de medida pode ser mais significativo do que a velocidade bruta do clock.

Como a frequência do clock é bem definida, seja a CPU ocupada fazendo transferências aritméticas ou lentas de dados para um periférico, é natural que os engenheiros elétricos classifiquem os processadores pela frequência do clock.

Então, quão rápido uma CPU move bits?

Para ilustrar a complexidade de definir bits por segundo para uma CPU, aqui está um tabela do número de ciclos de clock necessários para concluir uma transferência de dados para algumas das muitas operações de transferência de dados na CPU 8086 venerável: Como você pode ver, algumas operações de transferência de dados no 8086 podem levar 2 ciclos de clock, alguns levaram mais de 16 ciclos para serem concluídos. Consequentemente, bits por segundo não é um número bem definido, mesmo para este intervalo limitado de instruções da CPU.

    
por 30.04.2015 / 07:40
1

Não, as freqüências são muito parte dos estudos de computador. Para o ponto de vista da CPU, o mbps seria apenas uma medida inadequada.

Se você for à eletrônica, e o nível de eletricidade da eletrônica, tem que haver algum tipo de mecanismo de sincronização.

Digamos que tenhamos um somador de 2 bits:

C 1 0
C 1 1
-----
1 0 1

C is Carry, with initial carry=0, 

00+11 produces Resulting Carry = 0,
10+11 produces Resulting Carry = 1; basic maths.

certo? Mas, o que é 0, o que é 1? E a pergunta exata é WHEN the electronics decide that there is a 0/1 on the line? Então, antes de ir mais longe, deixe-me desenhar o esquema desse bacis adder:

Na verdade, existem duas perguntas na pergunta acima. O primeiro é WHEN , o segundo é the decision of data . Do exemplo when AdderX decides há um 0/1 na linha Xn ou Yn, uma vez que eles vieram da saída de outro circuito. E what is 0, what is 1? Eles são apenas tensões! .. O ponto de vista da CPU 1,25V é lógico-1 e qualquer coisa abaixo disso é lógico-0. Portanto, the decision de 1,25V é igual à lógica 1 é chamado Sampling . E when para essa decisão é chamado synchronisation .

A partir daqui, os somadores precisam amostrar as voltagens uma das linhas x, y e c para conduzi-las pela lógica e precisam decidir o tempo. Isso é porque, basicamente: the data, actually the voltage can change in time! :

Dirija 1,25 volts para a linha y1. Não é 1,25V instantaneamente . Ele gradientes .. Ou tomar 1,25 volts para 0, não é 0V instantaneamente. A subida / descida do gradiente é medida em picossegundos (10 ^ -12) em alguns cirtuits, nanossegundos (10 ^ -9) em alguns. Devido a esta radiação, circuitos integrados - > as portas lógicas - > os transistores DELAY .

Voltar para os adicionadores. Imagine que a amostragem é feita continuamente, mas a questão é a de decidir se é a amostra certa ou errada. Quando esse portão está produzindo o resultado certo? Aqui a sincronização está chegando. Dando tempo suficiente para o gate e, em seguida, provar sua saída. Como isso é feito? Existe um Clock ! Lembre-se de The System Timer ? E esse timer está na placa mãe?

Por este relógio, cada, quero dizer todo IC na CPU é sincronizado. Indo mais longe, você poderia ter notado que a freqüência do temporizador do sistema, digamos 133-Mhz, e estamos falando de CPUs de 2,4 GHz. Isso porque, como as CPUs podem funcionar mais rápido que os MBs, elas multiplicam basicamente o SysTimer por 15 a 20, o Multiplicador de CPU.

Como a CPU está completamente sincronizada com a freqüência do timer, é possível calcular 0 + 1 mais rápido que a freqüência? Não; não é. Então, é verdade quando dizemos a CPU can do ONE job per ONE timer tick : cylce .

Imagine mover 1 byte da memória para a CPU. Isso é feito por vários trabalhos. Então, isso é feito por vários ciclos de clock. Diga que é 5 ciclo. Quantas operações de movimentação podem ser feitas em 1 segundo? Mas aqui vem a parte matadora: que tal uma operação de soma? Tem que haver 2 operandos, eles estão na memória e precisam mover para a CPU, então fazer os cálculos, armazenar de volta o resultado, etc. Digamos que op seja feito por 21 cyles. Mas, ei, eu tinha feito com 8 bits em 5 ciclos, mas 24 bits (8 bits, op1, 8 bits, 8 bits) em 21! Não deveria ser 15?

E quanto à busca de instruções? Micro-instruções .. Isso vai muito além do mais profundo ..

E as operações reais em CPUs diferentes com a mesma frequência de clock? Por exemplo, dadas as mesmas especificações, frequência, cache, etc., quantos ciclos são necessários para fazer a operação mais difícil, a divisão? Pode-se fazer 5/2 em 10 ciclos, o outro pode fazer em 8. Então, freq. basta? Infelizmente não. E é aí que entra o FLOPS (Floating Point Operations per Second) .

Então, resumindo:

Xbps não é suficiente, não é preciso. Tem que ser mais específico e mais preciso. A medição de frequência é específica, mas também não precisa. FLOPS é ao mesmo tempo espinhoso e preciso.

    
por 30.04.2015 / 09:03
1

Além das respostas sólidas fornecidas por John1024 e The_aLiEn, gostaria de destacar um problema maior com o uso do mbps. É uma medida sem sentido nesta situação.

Primeiramente, a taxa de transferência de dados é um produto de frequência e largura. Como barramentos diferentes dentro do layout do sistema têm diferentes larguras de bit, as medidas são estranhas.

Em segundo lugar, diferentes partes do sistema trabalham em freqüências diferentes, mas um único relógio. O scaler de freqüência de loop de fase é muito mais fácil de entender quando é uma freqüência ... 3.3 Ghz é na verdade 300MHz x 11.

Em terceiro lugar, mesmo admitindo que as instruções levam diferentes quantidades de tempo, instruções diferentes têm quantidades diferentes de entrada e saída, de modo que a taxa de transferência de dados dependeria do que você estava tentando fazer, mesmo com 100% de utilização. .

Em quarto lugar, as CPUs modernas usam uma abordagem de pipeline de forma que processam simultaneamente várias instruções. Quão bem ele pode lidar com instruções de pipelining depende das instruções reais sendo processadas.

A frequência é a principal medida para a maioria dos chips, em vez de FLOP, MIPS ou Mbps, simplesmente porque a frequência de clock é o menor denominador comum para os circuitos: sempre tem um significado sensato.

    
por 30.04.2015 / 11:30

Tags