Se a velocidade da carga elétrica não mudou, como os computadores se tornam mais rápidos?

48

Todo mundo sabe que a velocidade da computação aumentou drasticamente desde sua invenção e parece que deve continuar. Mas uma coisa está me intrigando: se você passasse uma corrente elétrica através de um material hoje, ela viajaria na mesma velocidade como se você fizesse isso com o mesmo material há 50 anos.

Com isso em mente, como os computadores se tornaram mais rápidos? Qual é a principal área de design do processador que deu esses incríveis aumentos de velocidade?

Eu pensei que talvez pudesse ser um ou mais dos seguintes:

  • Processadores menores (menos distância para a corrente viajar, mas me parece que você só poderá obter ganhos marginais aqui).
  • Melhores materiais
leylandski
fonte
4
Essa é uma boa pergunta. Obviamente, o material em si não é tão importante - nos últimos 100 anos, os carros se tornaram mais rápidos, mas o gás ainda é o mesmo (mais ou menos), apenas o motor se tornou mais eficiente. A resposta inicial pode ser encontrada aqui , mas espero que ocorra uma resposta mais detalhada.
Ran G.
Tamanho é um grande problema aqui. Mas depois de chegarmos (ou estamos perto) a uma barreira física no design de chips. (Não sou especialista aqui, outros saberão mais sobre isso). Obviamente, o tamanho do processador não é o único parâmetro.
A.Schulz
A frequência de tato da CPU é limitada pela velocidade dos elétrons nos materiais usados, mas outros fatores a dominam.
Raphael
Porque eles não eram otimamente rápidos em primeiro lugar, e ainda não são. A velocidade da luz não é a etapa que determina a taxa.
user207421
1
Shameless plug: superuser.com/questions/543702/...
bwDraco

Respostas:

54

se você usasse uma corrente elétrica através de um material hoje, ela viajaria na mesma velocidade como se você fizesse isso com o mesmo material há 50 anos.

Com isso em mente, como os computadores se tornaram mais rápidos? Qual é a principal área de design do processador que deu esses incríveis aumentos de velocidade?

Você obtém conclusões errôneas porque sua hipótese inicial está errada: você acha que a velocidade da CPU é equivalente à velocidade dos elétrons na CPU.

De fato, a CPU é uma lógica digital síncrona. O limite para sua velocidade é que a saída de uma equação lógica seja estável dentro de um período de relógio. Com a lógica implementada com transistores, o limite está principalmente relacionado ao tempo necessário para fazer os transistores mudarem. Ao reduzir o tamanho do canal, conseguimos alternar mais rapidamente. Esta é a principal razão para a melhoria na frequência máxima de CPUs por 50 anos. Hoje, também modificamos a forma dos transistores para aumentar sua velocidade de comutação, mas, até onde eu sei , apenas Intel, Global Foundries e TSMC são capazes de criar FinFETs hoje.

No entanto, existem outras maneiras de melhorar a velocidade máxima de clock de uma CPU: se você dividir sua equação lógica em várias menores, poderá acelerar cada passo e ter uma velocidade de clock mais alta. Você também precisa de mais períodos de relógio para executar a mesma ação, mas, usando técnicas de pipelining , você pode fazer com que a taxa de instruções por segundo siga sua taxa de relógio.

Hoje, a velocidade dos elétrons tornou-se um limite: a 10 GHz, um sinal elétrico não pode ser propagado em mais de 3 cm. Esse é aproximadamente o tamanho dos processadores atuais. Para evitar esse problema, você pode ter vários domínios síncronos independentes no seu chip, reduzindo as restrições na propagação do sinal. Mas este é apenas um fator limitante, entre velocidade de comutação de transistor, dissipação de calor, EMC e provavelmente outros (mas eu não estou no setor de fundição de silício).

Jacen
fonte
Esta é uma boa informação. Eu nunca havia considerado que havia um limite superior na velocidade do relógio.
nick
3
Esses 3cm a 10GHz são otimistas. Os elétrons nos fios tendem a ser um pouco mais lentos que os fótons no vácuo.
8bittree
6
@ 8bittree: a velocidade dos elétrons não é relevante, é? O que importa é a velocidade do sinal, que é muito mais rápida.
Harry Johnston
1
@HarryJohnston Hmm ... parece que você está correto de acordo com a Wikipedia . Mas os sinais em si ainda são mais lentos que a luz. E três centímetros a 10GHz baseia-se luz no vácuo
8bittree
1
Além de os transistores menores serem mais rápidos, você pode adicionar mais em um chip. Há uma troca de tempo / espaço para circuitos; portanto, mais transistores significam circuitos mais rápidos. ie você pode criar um somador de 32 bits com apenas algumas dezenas de transistores, mas seriam necessários muitos tiques de clock para calcular uma única adição. Os mais recentes processadores Intel podem fazer isso em um relógio, o que eu acho que requer 100.000 transistores.
BlueRaja - Danny Pflughoeft 12/09
15

Existem muitas variáveis ​​complexas que afetam a velocidade geral da CPU, mas a principal é a velocidade do clock, que aumentou em meados dos anos 2000 e depois foi nivelada devido a limitações físicas. O consumo de energia por chip também aumentou durante esse período para compensar as perdas / vazamentos de chips. Os chips da CPU ficaram muito quentes e a tecnologia de resfriamento se tornou mais importante, e mais potência não pôde ser aplicada (sem literalmente derretê-los!).

O Extremetech.com fornece uma boa pesquisa que aponta que a lei de Moore é pensada para ser realmente alimentada principalmente pela escala de Dennard . Este último entrou em colapso em meados dos anos 2000. Existem muitos outros fatores / melhorias de design envolvidos na "velocidade" do chip (em que a "velocidade" é medida como o tempo geral de execução do código e não apenas na velocidade do relógio) que tendem a mascarar o ponto de inflexão na capacidade do hardware, como caches, paralelismo da CPU / multicore , previsão de ramificação etc., que foram adicionados com menores larguras de porta (e, portanto, muito mais portas por chip para funcionalidade adicional). As larguras das portas também tendem a parar de diminuir ou, pelo menos, diminuir menos rapidamente a cada geração.

Por que essas tendências limitantes não são muito conhecidas? Algumas das entidades que têm mais conhecimento dessas tendências "têm mais a perder" e são realmente as menos propensas a publicá-las. Por exemplo, a Intel, no valor de bilhões de dólares, provavelmente não publicará dados internos proprietários apontando para limites ou diminuições no desempenho futuro.

Existem novas possibilidades no horizonte que podem levar a tendências totalmente novas (mas algumas envolvem tecnologias / técnicas de fabricação quase completamente diferentes), incluindo chips fotônicos, chips 3D onde os chips são dispostos em várias camadas, computação quântica, nanotecnologia como nanotubos transistores, etc.

vzn
fonte
veja também moores law & clock speed
vzn 10/09/2015
Algo que eu desejava há muito tempo seria o desenvolvimento de sistema operacional e suporte a idiomas para o conceito de grupos de núcleos, com cada grupo tendo um sistema de memória uniforme e todos os núcleos também tendo acesso a um sistema de memória comum. Deveria ser possível para um trecho de código dizer "Quero gerar um encadeamento que veja exatamente a mesma memória que eu em todos os momentos" e que o sistema garanta que todos os encadeamentos que deveriam ver a mesma memória sejam executados no mesmos núcleos. Alguns algoritmos podem se tornar muito mais eficientes quando essas garantias estão disponíveis, mas em muitos sistemas o único ... #
308
... a maneira de conseguir isso é fazer com que um aplicativo escolha um núcleo da CPU e não permita que os threads sejam executados em nenhum outro, uma abordagem realmente horrível.
Supercat
2
A velocidade do relógio não aumentou significativamente nos últimos 10 anos. Adicionar núcleos, executar conjuntos de instruções em uma única instrução, etc. reduzir gargalos em outros lugares, por exemplo. a largura de banda da memória tem sido os principais contribuintes para a 'velocidade' da CPU moderna.
JamesRyan 11/09/15
5

Delegação para processadores adicionais

Outra consideração (além das outras ótimas respostas) é a delegação de tarefas a outros processadores. Nos primeiros dias da computação, havia apenas um processador. Para gráficos, o cálculo foi compartilhado com outros cálculos na mesma CPU. Agora, temos processadores separados para processamento gráfico.

Núcleos múltiplos

Muitos dos processadores modernos têm vários núcleos, na mesma peça de silício. Como eles compartilham o mesmo pedaço de silício, eles não são afetados tanto pela lentidão da saída do chip para outro núcleo / processador. Exemplo: Processadores gráficos.

Expansão de memória e endereço

Os primeiros microprocessadores de 8 bits tinham um alcance de endereçamento menor do que os atuais processadores de 32 e 64 bits. Os processadores modernos têm uma faixa de memória aumentada, o que significa que mais computação pode ser realizada na memória do que ter que acessar o armazenamento externo.

Isso também se aplica à memória no chip também. O espaço de endereçamento maior permite memórias maiores mais próximas do núcleo central, deixando um espaço de endereçamento grande fora do silício.

Tubulações e caches

Com a memória ficando mais barata, os computadores modernos agora estão implementando canais de dados e instruções mais sofisticados, bem como caches de dados e instruções. Isso acelera a execução, reduzindo a necessidade de buscar da memória mais lenta (fora do silício) para o cache interno. Alguns processadores têm a capacidade de conter forloops em seus caches de instruções.

Sumário

Os computadores de hoje são muito mais rápidos, não apenas devido aos avanços nas tecnologias de transistor e silício, mas também devido à delegação de tarefas a outros processadores / núcleos. A memória cada vez mais rápida e barata permite que os processadores tenham muita memória próxima à CPU. Os intervalos de endereçamento permitem mais memória, o que significa menos buscas no armazenamento externo. Tamanhos maiores de registro permitem que mais dados sejam buscados por ciclo (4 bytes com um sistema de 32 bits, 1 byte com um sistema de 8 bits). Vários núcleos permitem operações paralelas, em vez de serializá-las.

Thomas Matthews
fonte
4

Quase todos os avanços na velocidade do computador vêm de uma dessas áreas:

Transistores menores

Duas coisas resultam da redução dos transistores:

  1. Eles estão fisicamente mais próximos, portanto, o tempo que leva para um sinal elétrico viajar da fonte ao destino é menor. Portanto, embora os sinais elétricos não viajem mais rápido do que 50 anos atrás, eles frequentemente viajam distâncias mais curtas agora .
  2. Mais transistores podem ser incluídos em um chip, o que significa que mais "trabalho" pode ser feito ao mesmo tempo. Quanto mais transistores são adicionados, mais difícil é encontrar um trabalho útil para eles fazerem, mas muitos truques inteligentes são usados ​​(veja abaixo).

Mais "trabalho útil" por instrução

Por exemplo, alguns processadores não possuem instruções para multiplicar ou dividir números inteiros; em vez disso, essa tarefa deve ser executada com rotinas de software lentas. A adição de instruções de multiplicação e divisão acelera consideravelmente as coisas. Adicionar instruções de ponto flutuante pode acelerar o software que requer números de ponto flutuante.

Uma maneira importante de realizar mais "trabalho útil" por instrução é aumentar o tamanho da palavra . As CPUs que podem executar operações em números de 32 bits geralmente exigem muito menos instruções para executar a mesma tarefa que as CPUs de 16 ou 8 bits.

Alguns processadores suportam instruções que fazem várias coisas ao mesmo tempo, em particular instruções que fazem a mesma operação em vários itens de dados ( SIMD ).

Mais instruções por ciclo

O "ciclo do relógio" é como o processador passa do estado atual para o próximo estado. Em certo sentido, é a menor unidade de trabalho que o processador pode executar por vez. No entanto, o número de ciclos de clock de uma instrução específica depende do design do processador.

Com o advento dos processadores em pipeline , tornou-se possível que instruções separadas "se sobrepusessem", ou seja, uma seria iniciada antes da conclusão da anterior. No entanto, certas instruções podem invalidar a próxima instrução, que não será conhecida até que a próxima instrução seja parcialmente executada, para que as coisas possam se complicar. (Os processadores em pipeline incluem lógica para garantir que tudo funcione bem - mas as características de desempenho são mais complexas.)

Os processadores superescalares levam isso para o próximo nível, literalmente permitindo que duas instruções sejam executadas ao mesmo tempo, e a execução fora de ordem leva um passo adiante, permitindo que as instruções sejam executadas fora de ordem. Esses recursos requerem análise do fluxo de instruções, descobrindo quais instruções não se chocam.

Embora existam outros truques (por exemplo , previsão de ramificação , execução especulativa ), o mais importante é o quadro geral:

  • toda instrução leva um certo número de ciclos de clock para ser concluída (não necessariamente constante)
  • mas várias instruções podem estar em andamento ao mesmo tempo
  • portanto, existem " instruções por ciclo " mensuráveis > 1 para processadores de última geração
  • mas isso depende muito da carga de trabalho

Mais ciclos por segundo

Em outras palavras, maior velocidade do relógio . O aumento da velocidade do relógio não apenas aumenta o calor gerado, mas também requer um design de chip muito mais disciplinado, porque há um limite de tempo menor para o circuito se estabilizar. Conseguimos muita quilometragem até esta década de 2000, quando atingimos alguns limites práticos.

Dados no lugar certo, na hora certa

Embora os componentes dentro da CPU tenham se aproximado cada vez mais devido aos transistores encolhidos, a CPU e a RAM ainda estão bem separadas por 5 a 10 cm. Se uma instrução precisar de algo da RAM, ela não levará 5 ou 6 ciclos para ser concluída, levará cerca de 200. Esse é o problema do gargalo de von Neumann .

Nossa principal arma contra isso é o cache . É mais provável que os dados acessados ​​recentemente sejam acessados ​​novamente, portanto, eles são mantidos na memória especial (chamada cache) que está dentro do chip da CPU, tornando o acesso muito mais rápido.

No entanto, outras técnicas (como pipelining e previsão de ramificação ) ajudam ao permitir que o processador faça um trabalho útil enquanto aguarda a chegada dos dados, além de prever quais dados poderão ser necessários em breve.

Processadores múltiplos e / ou especializados

É muito mais fácil escrever software para um único processador do que para vários processadores. No entanto, às vezes os benefícios de desempenho / custo / consumo de energia valem a pena.

Além disso, certos processadores são particularmente adequados para determinadas tarefas. Por exemplo, as GPUs são projetadas especificamente para os cálculos necessários para renderizar gráficos e efeitos 2D e 3D.

Os processadores multinúcleo são essencialmente múltiplos processadores em um único chip.

Artelius
fonte
3

Quando os computadores podem fazer mais cálculos por unidade de tempo, eles são vistos como sendo mais rápidos. Cada cálculo pode não ser feito mais rápido do que antes, mas há mais cálculos sendo feitos. Uma boa analogia seria o número de etapas que um corredor executa. Se um corredor se comportasse de acordo com a lei de Moore, ele poderia dar o dobro de passos a cada dois anos. Em essência, o corredor estaria cobrindo o dobro da distância na mesma quantidade de tempo que o corredor fazia dois anos atrás. A distância dividida pelo tempo é igual à velocidade. 2 X Distância é igual a 2 X Velocidade.

user24719
fonte
3

O poder de processamento de um computador / CPU é realmente a rapidez com que a eletricidade viaja, mas a rapidez com que pode ser ligada e desligada. Quanto mais rápido você alternar entre o fluxo atual e o não fluxo, mais informações você poderá processar dentro de uma CPU ou transmitir pela linha.

Dan
fonte
2

Para processadores típicos usados ​​em PCs, a dissipação de calor é um fator limitante há mais de uma década, onde os processadores refrigerados a ar nos PCs são limitados a cerca de 4 ghz. O resfriamento a água eleva isso para cerca de 5 ghz, e o resfriamento a nitrogênio tem sido usado para elevar as taxas de clock de 6 a 6,5 ​​ghz.

A taxa de clock é basicamente uma função da tensão versus o tamanho lógico do circuito (quanto tempo leva para que um comutador mude de estado). Quanto maior a tensão ou menor a lógica do circuito, mais rápida a taxa, mas isso apresenta um problema de dissipação de calor, pois as densidades geralmente aumentam junto com a redução no tamanho da lógica do circuito. Com a alta densidade, não resta muito espaço para o material condutor de calor dissipar o calor. A redução da densidade aumenta o custo e também aumenta os atrasos de propagação devido a comprimentos mais longos do circuito.

Os processadores não ficaram muito mais rápidos nos últimos anos, o atual Intel i7 4790K (4.0 ghz, 4.4 ghz turbo) não é muito mais rápido que a segunda geração Intel i7 2700K (3.5 ghz, 3.9 ghz turbo), outros do que a taxa de clock mais rápida (14,3% mais rápida). Por outro lado, como os gráficos 3D podem tirar proveito de operações paralelas, as placas de vídeo aumentaram o desempenho em um fator em torno de 3 nos últimos 4 ou 5 anos, algumas têm o equivalente a mais de 3.000 sub-núcleos.

rcgldr
fonte
2

Embora as respostas já dadas sejam boas, todas parecem muito complicadas!

A resposta rápida "TLDR" é "número de portas lógicas" e "com que rapidez essas portas lógicas são acionadas". Pense nos portões lógicos como 1s e 0s. Este é apenas um transistor / tubo de vácuo / o que quer que seja ligado ou desligado. 1 está ativado 0 está desativado.

A eletricidade não se move mais rápido ou mais devagar, mas você pode colocar mais zeros e zeros no chip, porque os zeros e zeros são menores. E você pode fazê-los girar mais rápido com o tempo. Isso faz uma resposta um pouco mais simples?

DigitalGalaxy
fonte
2

Os dois maiores fatores de longe são o fato de que os transistores encolheram em um nível ridículo e, portanto, agora temos smartphones com mais de um bilhão de transistores, e o fato de trocar um transistor de um estado para outro tornou-se muito mais rápido. A troca mais rápida se traduz diretamente em mais velocidade. O número mais alto de transistores aumenta a velocidade indiretamente porque é um facilitador de muitas outras melhorias mencionadas: Temos caches porque temos mais transistores. Temos mais e maiores registros porque temos mais transistores. Temos instruções de vetor porque temos mais transistores. Temos processadores dual, quad core ou dez núcleos porque temos mais transistores.

Em um grau muito menor, temos melhorias de velocidade devido a um melhor design. Por exemplo, um multiplicador não é apenas mais rápido porque temos mais transistores, mas porque usamos métodos melhores. A previsão de ramificação melhorou além de apenas ter mais transistores disponíveis. Mas, em suma, esse é um efeito pequeno comparado à potência bruta de um bilhão de transistores.

(O processador no primeiro Mac foi chamado de processador Motorola 68000 porque tinha 68000 transistores. Um novo iPad possui cerca de 20.000 vezes mais).

gnasher729
fonte
0

Eu sou engenheiro mecânico, então não estou familiarizado com o quanto isso afeta a velocidade de um processador ou se ele se tornou um fator limitante ou não, mas a física por trás disso é sólida. A indutância e capacitância do circuito afetará a rapidez com que os sinais digitais de tensão podem subir e descer - afetando assim a velocidade de comutação. Idealmente, os sinais de comutação seriam boas ondas quadradas. Na realidade, eles são ligeiramente deformados e inclinados nas bordas. Os sinais precisam ser altos e altos o suficiente para serem lidos antes do próximo ciclo do relógio. Essencialmente, a onda de sinal precisa de um "ponto plano" na parte superior. Se você mudar muito rápido, receberá um sinal de onda pontudo. Aqueles que estão mais familiarizados com os sinais digitais podem esclarecer, se necessário, mas a idéia está certa.

Jeff
fonte
2
Bem vinda! Tanto quanto sei, tudo o que você diz é verdade. Mas não vejo como isso responde à questão de como os computadores foram capazes de ficar mais rápidos ao longo dos anos.
David Richerby