Por que precisamos de tantos transistores?

34

Os transistores servem a múltiplos propósitos em um circuito elétrico, ou seja, interruptores, para amplificar sinais eletrônicos, permitindo controlar a corrente etc ...

No entanto, li recentemente sobre a lei de Moore, entre outros artigos aleatórios da Internet, que os dispositivos eletrônicos modernos possuem um grande número de transistores, com a quantidade de transistores que estão na eletrônica moderna na faixa de milhões, se não bilhões.

No entanto, por que exatamente alguém precisaria de tantos transistores? Se os transistores funcionam como interruptores, etc., por que precisaríamos de uma quantidade absurdamente grande deles em nossos modernos dispositivos eletrônicos? Não somos capazes de tornar as coisas mais eficientes, a fim de usar muito menos transistores do que o que estamos usando atualmente?

Kenneth .J
fonte
7
Eu sugiro ir até o que o seu chip é feito. Somadores, multiplicadores, multiplexadores, memória, mais memória ... E pensar nos números destas coisas que precisam estar presentes lá ...
Dzarda
9
Um pouco relacionado (e autopromocional): Por que mais transistores = mais poder de processamento?
Paul A. Clayton
11
Além disso, o uso contínuo de transistores como substitutos da maioria dos dispositivos mecânicos ajudou a moldar os eletrônicos de consumo modernos mais do que qualquer outra coisa. Imagem seu telefone clackering cada vez que transforma a luz de fundo ligada ou desligada (embora seja o tamanho eo peso de um carro)
Mark
7
Você pergunta por que não podemos "tornar as coisas mais eficientes" para usar menos transistores; você assume que procuramos minimizar o número de transistores. Mas e se a eficiência de energia for aprimorada adicionando mais controle? Ou mais notavelmente a eficiência do tempo em fazer qualquer cálculo? 'Eficiência' não é uma coisa.
OJFord
2
Não é que precisemos de muitos transistores para construir uma CPU, mas como podemos fabricar todos esses transistores, é melhor usá-los de maneira a acelerar a CPU.
precisa saber é o seguinte

Respostas:

46

Transistores são interruptores, sim, mas os interruptores são mais do que apenas para ligar e desligar as luzes.

Os interruptores são agrupados em portas lógicas. As portas lógicas são agrupadas em blocos lógicos. Os blocos lógicos são agrupados em funções lógicas. As funções lógicas são agrupadas em chips.

Por exemplo, uma porta TTL NAND normalmente usa 2 transistores (as portas NAND são consideradas um dos blocos de construção fundamentais da lógica, juntamente com a NOR):

esquemático

simular este circuito - esquemático criado usando o CircuitLab

À medida que a tecnologia fazia a transição do TTL para o CMOS (que agora é o padrão de fato), houve basicamente uma duplicação instantânea de transistores. Por exemplo, a porta NAND passou de 2 transistores para 4:

esquemático

simule este circuito

Uma trava (como um SR) pode ser feita usando 2 portas CMOS NAND, portanto 8 transistores. Portanto, um registro de 32 bits pode ser feito usando 32 flip-flops, portanto, 64 portas NAND ou 256 transistores. Uma ALU pode ter vários registros, além de muitos outros portões, portanto o número de transistores cresce rapidamente.

Quanto mais complexas as funções que o chip executa, mais são necessários portões e, portanto, mais transistores.

Hoje em dia, sua CPU média é consideravelmente mais complexa do que se diz um chip Z80 de 30 anos atrás. Ele não usa apenas registros com 8 vezes a largura, mas as operações reais que ele executa (transformações 3D complexas, processamento de vetores etc.) são muito mais complexas do que os chips mais antigos podem executar. Uma única instrução em uma CPU moderna pode levar muitos segundos (ou até minutos) de computação em um antigo 8-bit, e tudo o que é feito, em última análise, com mais transistores.

Majenko
fonte
NAND = 4 não 2 transistores e FF de são mais do que apenas 2 NORs
espaço reservado
2
Oh meu! você realmente precisa repensar isso. Mostre até UM design com milhões de transistores, feito em bipolar !! Todos esses designs são CMOS,
placeholder
2
Ponto justo. Adicionado um segundo esquema para destacar a diferença e a subsequente duplicação de transistores apenas a partir disso.
Majenko 01/07/19
3
pullup fraco vs forte é uma questão completamente diferente de TTL vs CMOS. Afinal, os BJTs vêm no PNP. O CMOS não envolve "duplicação de transistores". Integração em larga escala, uma vez que os transistores são muito menores que os resistores pull-up em qualquer processo ASIC.
Ben Voigt
11
Esse não é um portão TTL NAND. Essa é uma porta lógica RTL.
fuzzyhair2
16

Eu verifiquei o fornecedor local de vários dispositivos semicondutores e o maior chip SRAM que eles tinham era de 32Mbits. São 32 milhões de áreas individuais onde um 1 ou um 0 pode ser armazenado. Dado que "pelo menos" 1 transistor é necessário para armazenar 1 bit de informação, são 32 milhões de transistores no mínimo absoluto.

O que 32 Mbits você recebe? São 4 Mbytes ou aproximadamente o tamanho de um arquivo de música MP3 de 4 minutos de baixa qualidade.


EDIT - uma célula de memória SRAM de acordo com o meu Google fica assim: -

insira a descrição da imagem aqui

Então, são 6 transistores por bit e mais como 192 milhões de transistores naquele chip que mencionei.

Andy aka
fonte
... e agora imaginar 8GB de memória com 68719476736 bits de informação
Kamil
11
... exceto que eles não usam transistores na DRAM.
Majenko 01/07/14
11
@Majenko: Pelo menos, não tanto quanto para outras tecnologias. 1 transistor + 1 capacitor (no escopo microscópico, obviamente) por 1 bit - se bem me lembro.
Rev1.0
28
Cada bit de SRAM é de pelo menos 4 e geralmente 6 transistores, com 128 milhões de transistores ou mais. A DRAM não usa transistores para armazenamento - mas cada bit (armazenado em um capacitor) possui seu próprio comutador de transistor para carregar a tampa.
9788 Brian Drummond #
6
Agora imagine os transistores em um SSD de 1T (concedido 3 bits / célula e está em mais de um chip), mas ainda são 2,7 trilhões de transistores apenas para o armazenamento - sem contar o endereçamento, o controle e a tolerância de bits e desgaste ruins.
Spehro Pefhany
7

Eu acho que o OP pode ser confundido por dispositivos eletrônicos com tantos transistores. A Lei de Moore é principalmente preocupante para computadores (CPUs, SRAM / DRAM / armazenamento relacionado, GPUs, FPGAs etc.). Algo como um rádio transistor pode ser (principalmente) em um único chip, mas não pode fazer uso de todos que muitos transistores. Os dispositivos de computação, por outro lado, têm um apetite insaciável por transistores para funções adicionais e larguras de dados mais amplas.

Phil Perry
fonte
3
Atualmente, os rádios são dispositivos de computação, ou pelo menos os contêm. Síntese digital de frequências FM, processamento de sinal DSP do áudio (um grande negócio), controle digital de supervisão da mudança de estação e assim por diante. Por exemplo, o TAS3208 ti.com/lit/ds/symlink/tas3208.pdf
Spehro Pefhany
11
Você ainda não verá dezenas ou centenas de milhões, muito menos bilhões, de transistores usados ​​para um rádio. Claro, eles estão se tornando pequenos computadores para fins especiais com toda essa função digital, mas nada na escala de uma CPU multicore de 64 bits.
Phil Perry
@PhilPerry certamente um rádio digital tem algo como um braço? Não bilhões de transistores, mas dezenas de milhões.
Bem, se você passou da "linha" do rádio analógico para um computador que (entre outras coisas) recebe sinais de rádio, você usará muitos transistores. Meu argumento ainda é o de que a pergunta do OP sobre dispositivos eletrônicos soa como confusão entre rádios analógicos clássicos etc. e dispositivos de computação. Sim, eles se apresentam de maneiras muito diferentes, mesmo que ambos sejam caixas pretas retirando música do ar.
Phil Perry
4

Como afirmado anteriormente, a SRAM requer 6 transistores por bit. À medida que aumentamos nossos caches (para fins de eficiência), exigimos mais e mais transistores. Olhando para um wafer de processador , você pode ver que o cache é maior que um único núcleo de um processador e, se você olhar mais de perto, verá partes bem organizadas nele, que também são cache (provavelmente dados e instruções L1 caches). Com 6 MB de cache, você precisa de 300 milhões de transistores (mais a lógica de endereçamento).

Mas, também como afirmado anteriormente, os transistores não são a única razão para aumentar o número de transistores. Em um Core i7 moderno, você tem mais de 7 instruções executadas por período de clock e por core (usando o conhecido teste dhrystone). Isso significa uma coisa: os processadores de ponta fazem muita computação paralela. Fazer mais operações ao mesmo tempo exige ter mais unidades para fazê-lo e lógica muito mais inteligente para agendá-lo. A lógica mais inteligente requer equações lógicas muito mais complexas e muito mais transistores para implementá-la.

Jacen
fonte
A SRAM não requer 6 transistores há alguns anos. Na verdade, o 6T Sram é um grande desperdício quando você usa os srams 1T 2T ou 4T, pois diminuem substancialmente as substituições.
cb88
2

Afastando-se um pouco dos detalhes:

Os computadores são complexos dispositivos de comutação digital. Eles têm camada após camada sobre camada de complexidade. O nível mais simples são os portões lógicos como os portões NAND, conforme discutido. Então você adiciona somadores, registros de turnos, travas, etc. Em seguida, você adiciona lógica cronometrada, decodificação de instruções, caches, unidades aritméticas, decodificação de endereços, e assim por diante. . (Sem mencionar a memória, que requer vários transistores por bit de dados armazenados)

Cada um desses níveis está usando muitas partes do nível anterior de complexidade, todas baseadas em muitas e muitas das portas lógicas básicas.

Então você adiciona simultaneidade. Para obter um desempenho cada vez mais rápido, os computadores modernos são projetados para fazer muitas coisas ao mesmo tempo. Dentro de um único núcleo, o decodificador de endereços, a unidade aritmética, o processador de vetores, o gerenciador de cache e vários outros subsistemas são executados ao mesmo tempo, todos com seus próprios sistemas de controle e sistemas de temporização.

Os computadores modernos também têm um número cada vez maior de núcleos separados (várias CPUs em um chip).

Toda vez que você sobe uma camada de abstração, tem muitas ordens de magnitude mais complexas. Mesmo o nível mais baixo de complexidade possui milhares de transistores. Vá para subsistemas de alto nível como uma CPU e você está falando pelo menos milhões de transistores.

Depois, há GPUs (unidades de processamento gráfico). Uma GPU pode ter MIL processadores separados de ponto flutuante que são otimizados para fazer matemática vetorial, e cada subprocessador terá vários milhões de transistores.

Duncan C
fonte
1

Sem tentar discutir quantos transistores são necessários para itens específicos, as CPUs usam mais transistores para aumentar os recursos, incluindo:

  • Conjuntos de instruções mais complexos
  • Mais cache no chip, para que menos buscas na RAM sejam necessárias
  • Mais registros
  • Mais núcleos de processador
Daniel Wilson
fonte
1

Além de aumentar as capacidades de armazenamento bruto de RAM, cache, registradores e adicionar mais núcleos de computação e larguras de barramento mais amplas (32 x 64 bits, etc.), é porque a CPU é cada vez mais complicada.

CPUs são unidades de computação compostas por outras unidades de computação. Uma instrução da CPU passa por vários estágios. Antigamente, havia um estágio, e o sinal do relógio seria o pior período para todos os portões lógicos (feitos de transistores) se estabelecerem. Em seguida, inventamos o revestimento de tubos, onde a CPU foi dividida em estágios: busca de instruções, decodificação, processo e resultado de gravação. Essa simples CPU de quatro estágios poderia então funcionar a uma velocidade de clock de 4x o relógio original. Cada estágio é separado dos outros estágios. Isso significa não apenas que a velocidade do relógio pode aumentar para 4x (com ganho de 4x), mas agora você pode ter 4 instruções em camadas (ou "em pipeline") na CPU, resultando em 4x o desempenho. No entanto, agora "perigos" são criados porque uma instrução que chega pode depender do resultado da instrução anterior, mas porque é ' s em pipeline, ele não será obtido quando entrar no estágio do processo à medida que o outro sair do estágio do processo. Portanto, você precisa adicionar circuitos para encaminhar esse resultado à instrução que entra no estágio do processo. A alternativa é parar o pipeline, o que diminui o desempenho.

Cada estágio do pipeline, e particularmente a parte do processo, pode ser subdividida em mais e mais etapas. Como resultado, você acaba criando uma grande quantidade de circuitos para lidar com todas as interdependências (perigos) no pipeline.

Outros circuitos também podem ser aprimorados. Um adicionador digital trivial chamado de adicionador "ripple carry" é o adicionador mais fácil, menor e mais lento. O somador mais rápido é um somador "leve para frente" e requer uma quantidade exponencial tremenda de circuitos. No meu curso de engenharia da computação, fiquei sem memória no simulador de um somador de look-forward de 32 bits, então o cortei ao meio, 2 adicionadores de CLA de 16 bits em uma configuração de ripple-carry. (Adicionar e subtrair são muito difíceis para computadores, multiplicar fácil, divisão é muito difícil)

Um efeito colateral de tudo isso é que, à medida que diminuímos o tamanho dos transistores e subdividimos os estágios, as frequências do relógio podem aumentar. Isso permite que o processador faça mais trabalho para que fique mais quente. Além disso, à medida que as frequências aumentam, os atrasos de propagação se tornam mais aparentes (o tempo que leva para o estágio de um pipeline ser concluído e o sinal estar disponível no outro lado). Devido à impedância, a velocidade efetiva de propagação é de cerca de 1 pé por nanossegundo (1 Ghz). À medida que a velocidade do relógio aumenta, o layout do chip se torna cada vez mais importante, pois um chip de 4 Ghz tem um tamanho máximo de 3 polegadas. Portanto, agora você deve começar a incluir barramentos e circuitos adicionais para gerenciar todos os dados que circulam pelo chip.

Também adicionamos instruções aos chips o tempo todo. SIMD (dados múltiplos de instrução única), economia de energia, etc. todos eles requerem circuitos.

Finalmente, adicionamos mais recursos aos chips. Antigamente, sua CPU e sua ULA (Unidade Lógica Aritmética) eram separadas. Nós os combinamos. A FPU (unidade de ponto flutuante) era separada, também combinada. Hoje em dia, adicionamos USB 3.0, Aceleração de Vídeo, decodificação MPEG etc ... Movemos cada vez mais a computação do software para o hardware.

user9170
fonte
1

Majenko tem uma ótima resposta sobre como os transistores são usados. Então, deixe-me seguir um vetor de abordagem diferente e lidar com a eficiência.

É eficiente usar o mínimo de transistores possível ao projetar alguma coisa?

Isso basicamente se resume à eficiência da qual você está falando. Talvez você seja membro de uma religião que sustenta que é necessário usar o menor número possível de transistores - nesse caso, a resposta é praticamente dada. Ou talvez você seja uma empresa que cria um produto. De repente, uma pergunta simples sobre eficiência se torna uma questão muito complicada sobre a relação custo-benefício.

E aí vem o pontapé inicial - os transistores em circuitos integrados são extremamente baratos e estão ficando cada vez mais baratos com o tempo (os SSDs são um ótimo exemplo de como o custo dos transistores foi reduzido). O trabalho, por outro lado, é extremamente caro.

Nos tempos em que os CIs estavam apenas começando, houve um certo esforço para manter a quantidade de componentes necessária o mais baixa possível. Isso ocorreu simplesmente porque eles tiveram um impacto significativo no custo de um produto final (na verdade, eles costumavam ser a maior parte do custo do produto) e, quando você está construindo um produto final "em caixa", o custo da mão-de-obra é espalhado por todas as peças que você faz. Os primeiros computadores baseados em IC (acho que arcades de vídeo) foram direcionados para o menor custo por peça possível. No entanto, os custos fixos (em oposição aos custos por peça) são fortemente impactados pelo valor que você pode vender. Se você vendesse apenas um par, provavelmente não valia a pena gastar muito tempo na redução dos custos por peça. Se você estava tentando construir um mercado enorme, por outro lado,

Observe uma parte importante - faz sentido investir muito tempo na melhoria da "eficiência" quando você está projetando algo para a produção em massa. Isso é basicamente o que é "indústria" - com os artesãos, os custos de mão-de-obra qualificada costumam ser o principal custo do produto acabado; em uma fábrica, mais custos vêm de materiais e mão-de-obra (relativamente) não qualificada.

Vamos avançar rapidamente para a revolução do PC. Quando os PCs da IBM apareceram, eles eram muito estúpidos. Extremamente estúpido. Eles eram computadores de uso geral. Para praticamente qualquer tarefa, você pode projetar um dispositivo que o faça melhor, mais rápido e mais barato. Em outras palavras, na visão simplista da eficiência, eles eram altamente ineficientes. As calculadoras eram muito mais baratas, cabiam no bolso e funcionavam por muito tempo com uma bateria. Os consoles de videogame tinham hardware especial para torná-los muito bons na criação de jogos. O problema era que eles não podiam fazer mais nada. O PC podia fazer tudo - tinha uma relação preço / produção muito pior, mas você não precisava fazer uma calculadora ou um console de jogos em sprite 2D. Por que Wolfenstein e Doom (e nos Apple PCs, Marathon) aparecem em computadores de uso geral e não em consoles de jogos? Como os consoles eram muito bons em jogos 2D baseados em sprites (imagine o JRPG típico, ou jogos como Contra), mas quando você queria se afastar do hardware eficiente, descobriu que não há poder de processamento suficiente para fazer qualquer outra coisa!

Portanto, a abordagem aparentemente menos eficiente oferece algumas opções muito interessantes:

  • Dá mais liberdade. Compare os antigos consoles 2D com os antigos PCs IBM e os antigos aceleradores gráficos 3D com as GPUs modernas, que estão lentamente se tornando praticamente computadores de uso geral por conta própria.
  • Permite aumentar a eficiência da produção em massa, mesmo que os produtos finais (software) sejam "artesanais" em alguns aspectos. Assim, empresas como a Intel podem reduzir o custo da unidade de trabalho com muito mais eficiência do que todos os desenvolvedores individuais em todo o mundo.
  • Dá mais espaço para mais abstrações no desenvolvimento, permitindo assim uma melhor reutilização de soluções prontas, o que, por sua vez, permite menores custos de desenvolvimento e teste, para obter melhores resultados. Essa é basicamente a razão pela qual todo aluno de escola pode escrever um aplicativo completo baseado em GUI com acesso a banco de dados e conectividade à Internet e todas as outras coisas que seriam extremamente difíceis de desenvolver se você sempre começasse do zero.
  • Nos PCs, isso costumava significar que seus aplicativos basicamente ficavam mais rápidos com o tempo sem a sua entrada. O horário do almoço gratuito está praticamente acabado agora, já que está ficando cada vez mais difícil melhorar a velocidade bruta dos computadores, mas moldou a maior parte da vida útil do PC.

Tudo isso ocorre com um "desperdício" de transistores, mas não é um desperdício real, porque os custos totais reais são mais baixos do que seriam se você pressionasse pelo simples " menor número possível de transistores".

Luaan
fonte
1

Outro lado da história de "tantos transistores" é que esses transistores não são projetados individualmente por um ser humano. Um núcleo de CPU moderno possui da ordem de 0,1 bilhões de transistores e nenhum ser humano projeta cada um desses transistores diretamente. Não seria possível. Uma vida útil de 75 anos é de apenas 2,3 bilhões de segundos.

Portanto, para viabilizar projetos tão grandes, os humanos estão envolvidos na definição da funcionalidade do dispositivo em um nível de abstração muito mais alto do que nos transistores individuais. A transformação para os transistores individuais é conhecida como síntese de circuitos e é feita por ferramentas proprietárias muito caras que custam coletivamente da ordem de um bilhão de dólares para serem desenvolvidas ao longo dos anos, agregando-se aos principais fabricantes e fundições de CPU.

As ferramentas de síntese de circuitos não geram projetos com o menor número possível de transistores. Isso é feito por várias razões.

Primeiro, vamos cobrir o caso mais básico: qualquer circuito complexo pode ser simulado por uma CPU muito mais simples, talvez serial, com memória suficiente. Você certamente pode simular um chip i7, com precisão perfeita, se você conectar RAM serial suficiente a um Arduino. Essa solução terá muito menos transistores que a CPU real e funcionará muito lentamente, com uma taxa de clock efetiva de 1kHz ou menos. Claramente, não pretendemos que a redução do número de transistores chegue tão longe .

Portanto, devemos nos limitar a uma certa classe de transformações de projeto em transistores: aquelas que mantêm a capacidade paralela incorporada ao projeto original.

Mesmo assim, a otimização para um número mínimo de transistores provavelmente produzirá projetos que não são fabricáveis ​​usando qualquer processo de semicondutor existente. Por quê? Porque os chips que você pode realmente fazer são estruturas 2D e requerem alguma redundância de circuito simplesmente para que você possa interconectar esses transistores sem precisar de um quilograma de metal para fazer isso. A entrada e saída dos transistores e as portas resultantes são importantes.

Por fim, as ferramentas não são teoricamente perfeitas: geralmente seria necessário muito tempo e memória da CPU para gerar soluções globalmente mínimas em termos de número de transistores, dada a restrição de um chip fabricável.

Restabelecer Monica
fonte
0

Eu acho que o que o OP precisa saber é que um 'comutador simples' geralmente precisa de vários transistores? Por quê? Bem, por muitas razões. Às vezes, são necessários transistores extras para que o consumo de energia seja baixo tanto para o estado 'ligado' como para 'desligado'. Às vezes, são necessários transistores para lidar com incertezas nas entradas de tensão ou nas especificações dos componentes. Muitas razões. Mas eu aprecio o ponto. Veja o diagrama de circuitos para um OP-AMP e você verá algumas dezenas de transistores! Mas eles não estariam lá se não tivessem algum objetivo no circuito.

Jiminion
fonte
0

Basicamente, tudo o que o computador entende é 0s e 1s .. que é decidido por esses comutadores. Sim, as funções dos transistores são mais do que as dos comutadores. Portanto, se um switch puder decidir se a saída deve ser 0 ou 1 (assumindo que como uma única operação bi), maior o número de bits. quanto mais transistores ... então não é de admirar por que temos que incorporar milhões de transistores em um único microprocessador .. :)


fonte
0

Na era da tecnologia, precisamos de dispositivos inteligentes (pequenos, rápidos e eficientes). Esses dispositivos são constituídos por circuitos integrados (ICs) que contêm um não. de transistores. Precisamos de mais e mais transistores para tornar o IC mais inteligente e mais rápido, porque na eletrônica, todos os circuitos em um CI são feitos de somador, subtrator, multiplicador, divisor, portas lógicas, registradores, multiplexadores, flip-flops, contadores, shifters, memórias e microprocessadores etc. para implementar qualquer lógica nos dispositivos e estes são compostos apenas de transistores (MOSFETs). Com a ajuda de transistores, podemos implementar qualquer lógica. Então, precisamos de mais e mais transistores ...

insira a descrição da imagem aqui

Deepak Berwal
fonte